High-performance spreading activation engine for Pero
Project description
Pero-Memory-Core (KDN Engine)
"Stop Vector Search, Start Knowledge Diffusion."
🚀 Pero-Memory-Core 是一个基于认知神经科学原理构建的、理论上可支撑万亿级的语义记忆引擎。其核心 KDN (Knowledge Diffusion Network) 是一个纯粹的拓扑计算算子。
该算子在理论上源自认知科学中经典的扩散激活 (Spreading Activation) 模型。它摒弃了传统向量数据库(Vector DB)死板的 Top-K 检索模式,通过高性能的 Rust 工程实现,完成了类脑化的关联联想与逻辑回溯。
🧠 为什么是 KDN 而不是 RAG?
传统的 RAG (Retrieval-Augmented Generation) 依赖向量相似度,存在三大致命缺陷:
- 孤岛效应:只能找到“长得像”的片段,无法理解知识点之间的深层逻辑链条。
- 多跳性能崩塌:执行 3 步以上的逻辑推理(Multi-hop)时,向量检索的延迟会呈指数级增长。
- 超级节点困境:无法有效处理高权重核心知识点带来的能量塌缩。
PeroCore 采用 PEDSA (Parallel Energy-Decay Spreading Activation) 算法,通过模拟神经元电信号扩散,在 1ms 内穿透理论上的万亿级逻辑迷宫(实机已验证千万级至亿级规模)。
📊 性能核爆 (Benchmark)
在 1,000,000 条干扰噪音(Noise Edges)的严苛测试下,PeroCore 与传统 RAG 方案的性能对比:
| 指标 | 传统 RAG (Top-K + Rerank) | PeroCore (KDN Engine) | 提升幅度 |
|---|---|---|---|
| 单步检索延迟 | ~1,545.00 ms | 2.95 ms | 523x 🚀 |
| 11步逻辑链穿透 | 无法完成 (超时) | 2.95 ms | ∞ |
| 内存占用 (100M 边) | ~42 GB | 12 GB | 3.5x |
| 高并发吞吐量 | 低 (I/O 密集型) | 极高 (CPU 密集型/并行优化) | -- |
测试环境: Ryzen 9 5950X, 32GB RAM, Windows 11 (WSL2)
🛠 技术壁垒
1. 极致的类 CSR (Simulated CSR) 变体结构
不同于传统的邻接表,PeroCore 在 Rust 底层实现了高性能的 类 CSR (Simulated CSR) 内存布局,将图结构的存储开销压缩至极限,同时保证了 O(1) 的邻居节点访问速度。这种设计允许系统实时写入新的逻辑关联而无需重新构建整个索引,仅在未来处理万亿级静态数据时切换至标准 CSR。
2. 并行能量扩散 (PEDSA) 与 Top-K 优化
利用 Rust 的 rayon 实现无锁并行化,每一轮扩散都会进行 动态能量剪枝 (Dynamic Pruning)。
核心加速逻辑:为了适配 AI 桌面助手(Agent)的实时长记忆需求,引擎在每一步扩散中仅处理能量值最高的前 10,000 个活跃节点。实测证明,10,000 个节点已足以捕捉绝大多数复杂的语义上下文,这种“Top-K 活跃过滤”策略将检索复杂度锁定在常数级,确保了在亿级甚至万亿级规模下的极速响应。
3. 稳定性防御
内置 ReDoS 防御清洗器 和 逻辑坍塌抑制器,确保在大规模对抗性注入场景下,引擎依然能保持 1ms 级的稳定响应。
💻 快速上手
from pero_memory_core import CognitiveGraphEngine
# 1. 初始化引擎
engine = CognitiveGraphEngine()
# 2. 注入记忆 (源ID, 目标ID, 关联强度)
# 这种关联是有向且带权的,模拟突触连接
engine.batch_add_connections([
(101, 102, 0.9), # "苹果" -> "乔布斯"
(102, 103, 0.85), # "乔布斯" -> "皮克斯"
(103, 104, 0.7) # "皮克斯" -> "玩具总动员"
])
# 3. 执行激活扩散 (PEDSA)
# initial_scores: 初始激活点 {节点ID: 能量值}
# steps: 扩散步数 (逻辑链深度)
results = engine.propagate_activation(
initial_scores={101: 1.0},
steps=10,
decay=0.7
)
# 4. 获取排名靠前的关联记忆
for node_id, score in sorted(results.items(), key=lambda x: x[1], reverse=True)[:5]:
print(f"节点: {node_id}, 关联能量: {score:.4f}")
📜 许可证 (License)
本项目采用 GPL-3.0 开源许可证。
对于大厂/商业机构的特别说明:
- 您可以自由使用本引擎。
- 如果您对本引擎的源代码进行了修改或封装,根据 GPL-3.0 协议,您必须公开您的源代码。
- 我们尊重原创,也请尊重每一行用 Rust 堆出来的性能。
🤝 贡献与反馈
如果您对认知科学、图算法或极致性能优化感兴趣,欢迎提交 Issue 或 PR。
Designed with ❤️ by YoKONCy & AI Team.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pero_memory_core-0.2.4.tar.gz.
File metadata
- Download URL: pero_memory_core-0.2.4.tar.gz
- Upload date:
- Size: 36.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b13dfe25b33b888db84f565a5c2d374eefd8b7c10655ee861df5efcd8bcddfe4
|
|
| MD5 |
ee3ba26a84c5b91a94f875093973fd82
|
|
| BLAKE2b-256 |
29eeb8d16a1811ebd7043f47852e50b3b9804c4f395b70d5f175c3ce16ecd9e6
|
File details
Details for the file pero_memory_core-0.2.4-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: pero_memory_core-0.2.4-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 743.0 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14e02ad393ff564e872b60c5521b29726f32afd2105ae9e59fd15d1c239b3ee0
|
|
| MD5 |
d8303c8b2bcda3eb883ee7b8661e8c05
|
|
| BLAKE2b-256 |
6323b749acb8f26306b9fe921417a14cc75f19ba9242b9152a723aea104af054
|
File details
Details for the file pero_memory_core-0.2.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pero_memory_core-0.2.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 877.0 kB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
010dbc5149f6097a6198c5e00e8509c3a290392caa47449b108b62e743a406f5
|
|
| MD5 |
1bb54dc28b80739d39aace80cbb62874
|
|
| BLAKE2b-256 |
718736ed8d56f342db846de1cdbcdf38b7d8c4fb57e212c505feaf3ba8eaf825
|