NuoNuo: Hippocampal memory module prototype

Hopfield + Hebbian hybrid memory system for LLMs.
Two nights of experiments (16 iterations), validated on LongMemEval (ICLR 2025).

Architecture:
- Single-hop: Two-Stage Hopfield (NN top-20 → softmax settle)
- Multi-hop: Hebbian W matrix with WTA pattern separation
- 64% on LongMemEval (500 questions), retrieval-only, no LLM dependency
- 4ms latency @ 20K memories, ~1GB VRAM

Key findings:
- Hopfield attention solved noise tolerance (20% → 100% vs flat Hebbian)
- WTA pattern separation enables 20K+ capacity
- Multi-hop associative chains (6 hops, CosSim=1.0) — RAG can't do this
- MiniLM-L6 is optimal (discrimination gap > absolute similarity)
- Paraphrase cue augmentation: 55% → 100% on synthetic, 36% → 64% on benchmark
- SNN encoder viable (CosSim 0.99) but not needed for current architecture
This commit is contained in:
2026-04-07 10:37:24 +01:00
commit d923aa1e31
65 changed files with 13148 additions and 0 deletions

84
doc/README.md Normal file
View File

@@ -0,0 +1,84 @@
# NuoNuo: Hippocampal Memory Module for LLMs
通宵原型验证实验记录2026-04-06 ~ 07
最终架构:**Hopfield + Hebbian 混合记忆系统**。
## 核心能力
| 能力 | 数值 |
|------|------|
| 跨会话召回 (12 memories) | **100%** |
| Paraphrase recall (+ augmentation, 2K bg) | **95-100%** |
| Multi-hop 联想 (3 hops, 500 bg) | **100%** |
| Scale (20K memories, no augmentation) | **80%** |
| Latency @ 20K | **4ms** |
| VRAM | **~1 GB** |
## 实验索引
### Phase 1: 基础验证exp01-06
| # | 实验 | 结论 |
|---|------|------|
| 01 | [SNN Encoder Roundtrip](exp01_encoder_roundtrip.md) | ✅ CosSim 0.99 |
| 02 | [Associative Recall](exp02_associative_recall.md) | ✅ WTA+Hebbian 20K, multi-hop 完美 |
| 03 | [Sleep Consolidation](exp03_consolidation.md) | ⚠️ 简化为权重重建 |
| 04 | [Real Embeddings](exp04_real_embeddings.md) | ✅ 语义 embedding 可用 |
| 05 | [Benchmark](exp05_benchmark.md) | ✅ 3ms E2E |
| 06 | [BioHash](exp06_biohash.md) | ⚠️ 改善编码但不解决 W 矩阵问题 |
### Phase 2: 突破exp07
| # | 实验 | 结论 |
|---|------|------|
| 07 | [**Hopfield Attention**](exp07_hopfield.md) | ⭐ 噪声容忍 + 多跳 = 完美 |
### Phase 3: P0-P6 深入探索
| # | 问题 | 文档 | 结论 |
|---|------|------|------|
| P0 | [LLM Integration](p0_llm_integration.md) | `exp08` | ✅ Pipeline 可用LLM Gateway 待验证 |
| P1 | [Embedding Models](p1_embedding_models.md) | `exp09` | ⭐ MiniLM 最优gap 比 sim 重要) |
| P2 | [Auto Paraphrase](p2_auto_paraphrase.md) | `exp10` | ✅ Heuristic +20pp, Oracle +45pp |
| P3 | [Scale Ceiling](p3_scale_ceiling.md) | `exp11` | 结论=P2ceiling 来自 embedding 不是架构)|
| P4 | [Lifecycle](p4_lifecycle.md) | `exp12` | ✅ Dedup + importance scoring 可行 |
| P5 | [SNN Hopfield](p5_snn_hopfield.md) | `exp13` | ❌ 不可行softmax 远优于 LIF dynamics |
| P6 | [Multi-turn](p6_multiturn.md) | `exp14` | ✅ 12/12 跨会话召回 |
## 综合文档
- [**架构设计 v2**](architecture.md) — Hopfield + Hebbian 混合架构
- [核心发现](findings.md) — 什么有用、什么没用、反直觉结论
## 核心模块
- **`src/nuonuo/hippocampus.py`** — Hopfield-Hebbian 混合实现 (v2)
- `llm.py` — LLM 集成(提取/paraphrase/context injection
- `src/nuonuo/encoder.py` — SNN spike encoder (备用)
## Quick Start
```python
from sentence_transformers import SentenceTransformer
from nuonuo.hippocampus import HippocampalMemory
model = SentenceTransformer('all-MiniLM-L6-v2', device='cuda')
memory = HippocampalMemory(embed_dim=384)
def emb(text):
return model.encode([text], convert_to_tensor=True,
normalize_embeddings=True, device='cuda')[0]
# Store with paraphrase augmentation
memory.store(emb("The database is slow"), emb("Check missing indexes"),
cue_variants=[emb("DB performance terrible"), emb("Database crawling")],
metadata={"target": "Check missing indexes"})
# Recall
results = memory.recall(emb("DB is really slow today"), top_k=3)
chain = memory.recall_chain(emb("DB is really slow today"), hops=3)
# Save/Load
memory.save("hippocampus.pt")
```