From 398d35c50bceed9a3bb52beab98d3a0db8565918 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 1 Jun 2026 08:55:27 +0800 Subject: [PATCH] chore: init project docs - NextAgent cognitive decoupled architecture - README.md with architecture diagram and project overview - docs/architecture-overview.md: core design, scheduling, RefPack protocol - docs/routing-compression-subnet.md: multi-modal encoding, compression training - docs/memory-subnet.md: MANN, GNN, retrieve-pull mechanism training - docs/logic-trace-subnet.md: RLHF+PRM, MCTS, self-correction training - docs/llm-subnet.md: SFT, RLHF fine-tuning, multi-language alignment --- README.md | 147 ++++++++++++++ docs/architecture-overview.md | 202 +++++++++++++++++++ docs/llm-subnet.md | 312 +++++++++++++++++++++++++++++ docs/logic-trace-subnet.md | 311 ++++++++++++++++++++++++++++ docs/memory-subnet.md | 234 ++++++++++++++++++++++ docs/routing-compression-subnet.md | 173 ++++++++++++++++ 6 files changed, 1379 insertions(+) create mode 100644 README.md create mode 100644 docs/architecture-overview.md create mode 100644 docs/llm-subnet.md create mode 100644 docs/logic-trace-subnet.md create mode 100644 docs/memory-subnet.md create mode 100644 docs/routing-compression-subnet.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..977c2f7 --- /dev/null +++ b/README.md @@ -0,0 +1,147 @@ +# NextAgent — 认知解耦智能体架构 + +NextAgent 是一套颠覆传统单一 LLM 模式的**认知解耦智能体架构**。通过模拟人脑的模块化分工,将认知、记忆、推理与表达分离为独立子网,从根本上解决大模型的**幻觉**问题与**效率瓶颈**。 + +## 核心架构 + +``` +┌─────────────────────────────────────────────────────────────┐ +│ NextAgent 架构总览 │ +│ │ +│ ┌────────────────────────────────────────────────────┐ │ +│ │ 调度 Core(前额叶皮层) │ │ +│ │ 逻辑判断 · 任务调度 · 信息同步 │ │ +│ └──────┬──────────┬──────────┬──────────┬────────────┘ │ +│ │ │ │ │ │ +│ ▼ ▼ ▼ ▼ │ +│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ +│ │ 路由与压缩 │ │ 记忆子网 │ │ 逻辑链路 │ │ LLM 子网 │ │ +│ │ (感觉中枢) │ │(海马体/皮层)│ │追踪神经网络│ │(布洛卡区) │ │ +│ │ │ │ │ │ (推理回路) │ │ │ │ +│ │ 多模态 │ │ 长期记忆 │ │ 逻辑验证 │ │ 结构化→自然│ │ +│ │ 特征提取 │ │ 知识图谱 │ │ 自我修正 │ │ 多语言输出 │ │ +│ │ 信息压缩 │ │ 情景索引 │ │ 路径重规划 │ │ 情感表达 │ │ +│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ +│ │ │ │ │ │ +│ └──────────┴──────────┴──────────┘ │ +│ │ │ +│ ▼ │ +│ ┌────────────────────┐ │ +│ │ 冷区存储(原始数据) │ │ +│ └────────────────────┘ │ +└─────────────────────────────────────────────────────────────┘ +``` + +### Mermaid 架构图 + +```mermaid +graph TB + Core["调度 Core
(前额叶皮层)"] + + subgraph Subnets ["四大子网"] + RCN["路由与压缩子网
(感觉中枢)"] + MEM["记忆子网
(海马体与皮层)"] + LTC["逻辑链路追踪神经网络
(推理回路)"] + LLM["LLM 子网
(布洛卡区/表达核)"] + end + + Cold["冷区存储
(原始数据)"] + + Core -->|"任务调度"| RCN + Core -->|"记忆存取"| MEM + Core -->|"推理验证"| LTC + Core -->|"表达输出"| LLM + + RCN -->|"压缩引用包"| Core + MEM -->|"检索记忆"| Core + LTC -->|"验证结果"| Core + LLM -->|"自然语言"| Core + + Core -->|"热数据"| Cold + Cold -->|"按需拉取"| Core + + RCN -.->|"引用-拉取"| MEM + RCN -.->|"引用-拉取"| LTC + RCN -.->|"引用-拉取"| LLM +``` + +## 四大子网概述 + +| 子网 | 类比人脑 | 核心职责 | 关键技术 | +|------|---------|---------|---------| +| **路由与压缩子网** | 感觉中枢 | 多模态特征提取、信息压缩、引用包生成 | SimCLR/MoCo、知识蒸馏、AutoEncoder | +| **记忆子网** | 海马体与皮层 | 长期存储与检索、情景索引、知识图谱 | MANN、GNN、引用-拉取机制 | +| **逻辑链路追踪神经网络** | 推理回路 | 逻辑验证、错误追溯、路径重规划、自我修正 | RLHF + PRM、MCTS、错误案例数据集 | +| **LLM 子网** | 布洛卡区/表达核 | 结构化→自然语言、情感表达、多语言输出 | SFT、RLHF、多语言对齐 | + +## 设计哲学 + +### 🧠 认知解耦 —— 解决"幻觉"问题 + +传统单一 LLM 的幻觉根源:**知识存储与语言表达在同一网络中耦合**。NextAgent 将两者解耦: + +- **记忆子网** 负责存储和检索事实知识 +- **LLM 子网** 只负责将结构化信息转换为自然语言 +- 两者通过 **引用包机制** 通信,LLM 子网从不"猜测"事实 + +### ⚡ 效率与灵活性 —— 冷热数据分离 + +- **热区(计算单元)**:只处理当前任务需要的活跃数据 +- **冷区(原始存储)**:全部原始数据以压缩格式存储 +- **引用-拉取机制**:子网间传递轻量级引用包,仅在需要时拉取完整数据 + +## 快速开始 + +```bash +# 克隆仓库 +git clone https://github.com/your-org/NextAgent.git +cd NextAgent + +# 环境准备 +python -m venv venv +source venv/bin/activate + +# 安装依赖 +pip install -r requirements.txt + +# 查看文档 +# 架构总览:docs/architecture-overview.md +# 子网细节:docs/routing-compression-subnet.md +# docs/memory-subnet.md +# docs/logic-trace-subnet.md +# docs/llm-subnet.md +``` + +## 目录结构 + +``` +NextAgent/ +├── README.md # 项目概述(本文件) +├── docs/ +│ ├── architecture-overview.md # 架构概览 +│ ├── routing-compression-subnet.md # 路由与压缩子网 +│ ├── memory-subnet.md # 记忆子网 +│ ├── logic-trace-subnet.md # 逻辑链路追踪神经网络 +│ └── llm-subnet.md # LLM 子网 +├── src/ +│ ├── core/ # 调度 Core +│ ├── subnets/ # 四大子网实现 +│ └── storage/ # 冷区存储 +├── tests/ # 测试套件 +├── config/ # 配置文件 +└── requirements.txt # Python 依赖 +``` + +## 文档索引 + +| 文档 | 内容 | +|------|------| +| [架构概览](docs/architecture-overview.md) | 整体设计、调度 Core 职责、子网通信 | +| [路由与压缩子网](docs/routing-compression-subnet.md) | 多模态编码、训练计划、评估指标 | +| [记忆子网](docs/memory-subnet.md) | MANN、GNN、引用-拉取训练策略 | +| [逻辑链路追踪神经网络](docs/logic-trace-subnet.md) | RLHF+PRM、MCTS、自我修正训练 | +| [LLM 子网](docs/llm-subnet.md) | SFT、RLHF 微调、多语言对齐 | + +--- + +> NextAgent — 让智能体像人脑一样思考,模块化、可解释、可信赖。 diff --git a/docs/architecture-overview.md b/docs/architecture-overview.md new file mode 100644 index 0000000..16f6c69 --- /dev/null +++ b/docs/architecture-overview.md @@ -0,0 +1,202 @@ +# 架构概览 + +## 整体架构设计 + +NextAgent 采用 **认知解耦架构(Cognitive Decoupled Architecture)**,将传统单一 LLM 拆解为多个具有独立职能的子网,通过调度 Core 统一协调。每个子网类比人脑的一个功能区域,各司其职、协同工作。 + +### 设计原则 + +- **单一职责**:每个子网只负责一种认知功能,降低复杂度 +- **信息压缩**:子网间传递轻量级引用包而非原始数据 +- **冷热分离**:活跃数据在计算单元处理,原始数据存储在冷区 +- **可追溯**:每次推理决策都有完整的链路追踪记录 + +### 架构分层 + +``` +┌──────────────────────────────────────────────────────────────┐ +│ 应用层 │ +│ CLI / API / SDK / Web Interface / 第三方集成 │ +└──────────────────────┬───────────────────────────────────────┘ + │ +┌──────────────────────▼───────────────────────────────────────┐ +│ 调度 Core(前额叶皮层) │ +│ ┌────────────┐ ┌────────────┐ ┌────────────────────────┐ │ +│ │ 任务解析器 │ │ 调度引擎 │ │ 同步总线 │ │ +│ │ 拆解用户意图 │ │ 分配子任务 │ │ 子网间状态同步 │ │ +│ └────────────┘ └────────────┘ └────────────────────────┘ │ +└──────┬──────┬──────┬──────┬──────┬──────┬──────┬───────────┘ + │ │ │ │ │ │ │ +┌──────▼──┐ ┌─▼──────┐ ┌─▼──────┐ ┌─▼──────┐ ┌─▼──────────┐ +│ 路由与 │ │ 记忆 │ │ 逻辑链路 │ │ LLM │ │ 冷区存储 │ +│ 压缩子网 │ │ 子网 │ │ 追踪子网 │ │ 子网 │ │ (原始数据) │ +│(感觉中枢) │ │(海马体) │ │(推理回路)│ │(布洛卡) │ │ │ +└─────────┘ └────────┘ └────────┘ └────────┘ └────────────┘ +``` + +## 调度 Core(前额叶皮层) + +调度 Core 是整个架构的**总指挥**,类比人脑的前额叶皮层,负责高级认知功能。 + +### 核心职责 + +1. **任务解析**:接收用户输入,拆解为可执行的子任务序列 +2. **调度决策**:根据任务类型,决定调用哪些子网及调用顺序 +3. **信息同步**:维护子网间的共享上下文状态 +4. **冲突解决**:当子网返回矛盾结果时,启动仲裁机制 +5. **链路追踪**:记录完整的推理决策路径,支持回溯 + +### 工作流程 + +```mermaid +sequenceDiagram + participant User as 用户 + participant Core as 调度 Core + participant RCN as 路由与压缩子网 + participant MEM as 记忆子网 + participant LTC as 逻辑链路追踪子网 + participant LLM as LLM 子网 + + User->>Core: 用户输入/任务 + Core->>RCN: 1. 发送原始输入 + RCN->>RCN: 特征提取与压缩 + RCN-->>Core: 返回引用包(RefPack) + + Core->>MEM: 2. 携带引用包检索记忆 + MEM->>MEM: 搜索知识图谱与情景记忆 + MEM-->>Core: 返回关联记忆引用包 + + Core->>LTC: 3. 发送任务+记忆进行推理 + LTC->>LTC: MCTS 推理路径搜索 + LTC->>LTC: 逻辑验证与修正 + LTC-->>Core: 返回验证后的推理路径 + + Core->>LLM: 4. 发送结构化推理结果 + LLM->>LLM: 结构化→自然语言转换 + LLM-->>Core: 返回自然语言输出 + + Core->>MEM: 5. 更新记忆(本次交互记录) + Core-->>User: 返回最终结果 +``` + +### 调度算法伪代码 + +``` +function process(input): + # 1. 任务解析 + task_graph = parse_task(input) + + # 2. 逐节点执行 + for node in topological_sort(task_graph): + # 2a. 路由与压缩 + refpack = routing_subnet.compress(node.input) + + # 2b. 记忆检索 + memories = memory_subnet.retrieve(refpack) + + # 2c. 逻辑推理 + reasoning_path = logic_subnet.reason(refpack, memories) + + # 2d. 若需语言输出 + if node.requires_language: + output = llm_subnet.express(reasoning_path) + else: + output = reasoning_path + + # 3. 记忆更新 + memory_subnet.store(interaction_record) + + return output +``` + +## 子网间通信机制 + +### 引用包(RefPack)协议 + +所有子网间通信通过 **引用包(Reference Package)** 完成。引用包是一种轻量级的数据结构,包含: + +```json +{ + "refpack_id": "uuid-xxxx", + "type": "compressed_feature | memory_chunk | reasoning_path | expression", + "metadata": { + "source_subnet": "routing_compression", + "target_subnet": "memory", + "timestamp": 1717200000, + "compression_ratio": 0.85, + "confidence": 0.92 + }, + "payload": { + "dim": 768, + "data": [0.12, -0.34, ...], // 压缩向量或结构化数据 + "indices": [1024, 2048, ...] // 冷区索引(可选) + }, + "signature": "sha256-checksum" +} +``` + +### 引用-拉取机制 + +1. **引用阶段**:发送方生成轻量级引用包(通常 1-10 KB) +2. **路由阶段**:调度 Core 将引用包分发到目标子网 +3. **拉取阶段**:目标子网根据引用包中的索引,按需从冷区拉取完整数据 +4. **缓存阶段**:热区缓存常用数据,减少冷区访问频率 + +```mermaid +graph LR + A["发送方子网"] -->|"1. 生成引用包"| B["引用包 (1-10KB)"] + B -->|"2. 调度 Core 分发"| C["目标子网"] + C -->|"3. 按需拉取"| D["冷区存储"] + D -->|"4. 返回完整数据"| C + C -->|"5. 缓存热数据"| E["热区缓存"] +``` + +## 数据流 + +```mermaid +flowchart TD + Input["用户输入/多模态数据"] -->|"原始数据"| RCN["路由与压缩子网"] + RCN -->|"引用包"| Core["调度 Core"] + + Core -->|"记忆查询"| MEM["记忆子网"] + MEM -->|"记忆引用包"| Core + + Core -->|"推理请求"| LTC["逻辑链路追踪子网"] + LTC -->|"推理路径"| Core + + Core -->|"表达请求"| LLM["LLM 子网"] + LLM -->|"自然语言"| Core + + Core -->|"冷存储"| Cold["冷区存储"] + Cold -->|"按需拉取"| Core + + RCN -.->|"引用包索引"| Cold + MEM -.->|"批量拉取"| Cold + + Core -->|"最终输出"| Output["用户结果"] + + style Input fill:#e1f5fe + style Output fill:#e8f5e9 + style Core fill:#fff3e0,stroke:#ff9800,stroke-width:3px + style Cold fill:#f3e5f5 +``` + +## 关键设计决策 + +| 决策 | 选择 | 理由 | +|------|------|------| +| 子网间通信协议 | 引用包(RefPack) | 轻量级、低延迟、支持异步 | +| 冷区存储格式 | 压缩向量 + 倒排索引 | 高压缩率、快速模糊检索 | +| 调度策略 | 有向无环图(DAG)调度 | 支持并行执行与依赖管理 | +| 错误处理 | 三级降级(重试→降级→报错) | 保证系统鲁棒性 | +| 状态同步 | 事件驱动 + 共享内存 | 低延迟、去中心化 | + +## 与现有架构对比 + +| 特性 | 传统单一 LLM | Agent + 工具调用 | NextAgent(认知解耦) | +|------|-------------|----------------|-------------------| +| 知识存储 | 模型参数内隐式存储 | 外部工具/数据库 | 专用记忆子网 | +| 推理能力 | 隐式(端到端) | 提示工程驱动 | 专用推理子网 + MCTS | +| 幻觉控制 | 无专门机制 | 工具结果覆盖 | 知识-表达解耦,根本上杜绝 | +| 可解释性 | 低(黑箱) | 中(可追踪工具调用) | 高(完整推理链路) | +| 计算效率 | 每次推理全模型参与 | 按需调用工具 | 冷热分离,仅热数据参与计算 | diff --git a/docs/llm-subnet.md b/docs/llm-subnet.md new file mode 100644 index 0000000..d8402d7 --- /dev/null +++ b/docs/llm-subnet.md @@ -0,0 +1,312 @@ +# LLM 子网(布洛卡区/表达核) + +## 概述 + +LLM 子网类比人脑的**布洛卡区(Broca's Area)**——大脑中负责语言表达的关键区域。在 NextAgent 架构中,LLM 子网是**唯一与自然语言打交道的组件**,负责将子网间流转的结构化信息转换为人类可读的自然语言输出。 + +### 核心设计哲学 + +**知识存储与语言表达分离**:LLM 子网本身不存储事实知识,它只负责"表达"。所有事实知识来自记忆子网和推理子网的引用包。这一设计从根本上杜绝了 LLM 子网产生"幻觉"的可能性——它不"知道"任何事,它只"表达"收到的结构化信息。 + +### 核心职责 + +- **结构化→自然语言转换**:将推理路径、记忆片段等结构化数据转化为流畅的自然语言 +- **情感表达**:根据上下文和用户情感状态,调整输出的语气和情感色彩 +- **多语言输出**:支持中、英、日、韩、法、德等多语言的表达 +- **风格适配**:根据应用场景(正式、友好、专业、通俗)适配语言风格 +- **输出格式化**:支持 Markdown、JSON、表格、列表等多种输出格式 + +## 架构设计 + +```mermaid +graph TB + Input["结构化输入
(推理路径 + 记忆引用包)"] --> Decoder["结构化解码器"] + + Decoder --> Intent["意图与情感分析器"] + + Intent --> StyleRouter["风格路由器"] + + StyleRouter -->|"正式"| Formal["正式表达分支"] + StyleRouter -->|"友好"| Friendly["友好表达分支"] + StyleRouter -->|"专业"| Professional["专业表达分支"] + StyleRouter -->|"通俗"| Simple["通俗表达分支"] + + Formal --> Generator["语言生成器
Causal LM"] + Friendly --> Generator + Professional --> Generator + Simple --> Generator + + Generator --> Format["格式处理器"] + Format --> Output["自然语言输出"] + + subgraph Controls ["控制组件"] + LangCtrl["语言控制
(LangID)"] + ToneCtrl["语气控制
(Prompt Tuning)"] + FactCtrl["事实一致性检查
(对照源引用包)"] + end + + Generator -.-> LangCtrl + Generator -.-> ToneCtrl + Generator -.-> FactCtrl + + subgraph Training ["训练管线"] + SFT["指令微调
(SFT)"] + RLHF["人类反馈强化学习
(RLHF)"] + MulAlign["多语言对齐
(Cross-lingual Alignment)"] + end + + SFT --> RLHF + RLHF --> MulAlign +``` + +## 训练目标 + +### 目标 1:结构化信息到自然语言的转换 + +训练模型将结构化输入(JSON 格式的推理路径、知识图谱片段、逻辑链)转换为高质量的自然语言。 + +- **信息保真度**:输出内容与输入结构化信息的一致性 ≥ 95% +- **完整度**:输入中的关键信息点 100% 体现在输出中 +- **简明度**:在不丢失信息的前提下,输出长度 ≤ 推理路径长度的 3 倍 + +### 目标 2:情感表达 + +训练模型根据用户情感状态和上下文,调节输出的情感色彩。 + +- **情感一致性**:输出情感与用户期望情感的匹配度 ≥ 85% +- **情感粒度**:支持 8 种基本情感(喜、怒、哀、惧、惊、厌、盼、信)及其复合情感 +- **情感调节**:在信息传递准确的前提下,情感表达不影响事实信息 + +### 目标 3:多语言输出 + +训练模型在保持语义不变的前提下,输出多种语言。 + +- **支持语言**:中文、英语、日语、韩语、法语、德语、西班牙语、阿拉伯语 +- **翻译质量**:跨语言语义保留 BLEU ≥ 35,COMET ≥ 0.8 +- **语言切换**:支持单次输出中的语言切换(如中英混杂) + +## 训练计划 + +### 阶段 1:指令微调(Supervised Fine-Tuning, SFT) + +**目标**:使用高质量的"结构化输入 → 自然语言输出"配对数据,对基座模型进行指令微调。 + +#### 基座模型选择 + +| 模型 | 参数量 | 优势 | 适用场景 | +|------|--------|------|---------| +| Qwen2.5-7B 或同等 | 7B | 中文能力突出、推理效率高 | 主推模型 | +| LLaMA-3.1-8B | 8B | 英文能力突出、生态完善 | 英文场景 | + +#### 训练数据 + +1. **结构化→自然语言配对数据** + +| 数据类型 | 输入 | 输出 | 规模 | +|---------|------|------|------| +| 推理路径转文字 | JSON 推理链 | 自然语言解释 | 100,000 | +| 知识图谱转叙述 | 三元组集合 | 流畅段落 | 80,000 | +| 记忆片段转回答 | 检索到的记忆 | 回答用户 | 120,000 | +| 逻辑链路转报告 | 推理过程 | 分析报告 | 50,000 | + +2. **数据生成流程** + +``` +原始问题 → 调度 Core 生成结构化推理路径 → 人工标注员写出参考输出 + +结构化输入示例: +{ + "task": "解释光合作用的过程", + "reasoning_path": [ + {"step": 1, "content": "光合作用发生在叶绿体中", "source": "memory:biology/chapter_5"}, + {"step": 2, "content": "需要叶绿素、光、CO₂、H₂O", "source": "memory:biology/chapter_5"}, + {"step": 3, "content": "光反应阶段:光能→ATP+NADPH", "source": "logic:verified"}, + {"step": 4, "content": "暗反应阶段(Calvin循环):CO₂→葡萄糖", "source": "logic:verified"}, + {"step": 5, "conclusion": "光合作用将光能转化为化学能", "source": "reasoning:deduction"} + ], + "language": "zh", + "tone": "educational" +} +``` + +#### 训练配置 + +- **输入格式**:`<|struct|>{结构化信息}<|output|>` +- **损失函数**:自回归语言建模(交叉熵) +- **批大小**:128(梯度累积 8 步) +- **优化器**:AdamW(β1=0.9, β2=0.95) +- **学习率**:1e-5,余弦退火至 1e-6 +- **warmup**:500 steps +- **权重衰减**:0.01 +- **梯度裁剪**:max_norm = 1.0 +- **训练轮数**:3 epochs(SFT 数据量充足,防止过拟合) +- **LoRA 配置**(如使用全参微调资源不足): + - r = 64, α = 128, dropout = 0.05 + - 目标模块:q_proj, k_proj, v_proj, o_proj, gate_proj + +### 阶段 2:人类反馈强化学习(RLHF) + +**目标**:通过人类偏好反馈,优化表达的自然度、流畅度和信息呈现方式的优劣。 + +#### 奖励模型训练 + +- **模型架构**:基于 SFT 模型,移除语言头,添加线性奖励头 +- **训练数据**: + +| 来源 | 类型 | 规模 | +|------|------|------| +| 人工标注 | 对同一输入的不同输出进行偏好排序 | 50,000 对 | +| 自动评估 | 使用 GPT-4/Claude 作为评估者 | 200,000 对 | +| 红队测试 | 对抗样本的偏好标注 | 10,000 对 | + +- **标注维度**: + +| 维度 | 评分范围 | 说明 | +|------|---------|------| +| 信息准确度 | 1-5 | 与结构化输入的一致性 | +| 自然度 | 1-5 | 读起来像人写的 | +| 完整度 | 1-5 | 关键信息是否全部覆盖 | +| 简洁度 | 1-5 | 在信息完整下是否简洁 | +| 情感适配 | 1-5 | 语气是否符合作者期望 | + +- **损失函数**:Bradley-Terry + 维度加权 + ``` + L = -E[Σ w_d · log(σ(r_d_better - r_d_worse))] + w = [0.4, 0.3, 0.15, 0.1, 0.05] # 各维度权重 + ``` + +- **训练配置**: + - 学习率:1e-5 + - 批大小:64 + - 训练轮数:3 epochs + +#### PPO 训练 + +- **策略模型**:SFT 模型 +- **价值模型**:与策略模型共享基座 + 价值头 +- **KL 散度惩罚**:β = 0.04 +- **GAE λ**:0.95 +- **折扣因子 γ**:0.99 +- **学习率**:1e-6(策略),1e-5(价值) +- **PPO clip**:ε = 0.2 +- **批大小**:256 +- **总 PPO 轮次**:200(每轮采样 1024 条) +- **句子级奖励**:使用 PRM 对每句话评分,而非仅整段评分 + +### 阶段 3:多语言对齐训练 + +**目标**:扩展模型的多语言表达能力和跨语言一致性。 + +#### 训练数据 + +| 语言 | 对齐数据规模 | 来源 | +|------|------------|------| +| 中文 | 200,000 | 自建 + 翻译 | +| 英语 | 200,000 | 自建 + 翻译 | +| 日语 | 100,000 | 翻译 + 人工校对 | +| 韩语 | 100,000 | 翻译 + 人工校对 | +| 法语 | 100,000 | 翻译 + 人工校对 | +| 德语 | 100,000 | 翻译 + 人工校对 | +| 西班牙语 | 100,000 | 翻译 + 人工校对 | +| 阿拉伯语 | 50,000 | 翻译 + 人工校对 | + +#### 对齐方法 + +1. **平行语料监督学习** + - 同一结构化输入对应多语言的 GT 输出 + - 训练模型在不同语言分支上输出语义一致的内容 + +2. **跨语言对比学习** + - 正样本对:同一结构化输入的不同语言输出 + - 负样本对:不同结构化输入的同语言输出 + - 损失函数:InfoNCE,温度 τ = 0.07 + +3. **反向翻译一致性** + - 模型输出 A 语言 → 翻译为 B 语言 → 模型输出从 A→B + - 要求 A 语言输出和 B 语言输出语义一致 + - 一致性损失:余弦相似度(语义嵌入(输出_A), 语义嵌入(输出_B)) + +4. **语言自适应层** + - 为每种语言添加可训练的 LayerNorm + 偏置(Adapter 风格) + - 共享语言无关的参数 + 语言特定的适配层 + - 参数量:每种语言 +5M(极小开销) + +#### 训练配置 + +- **阶段 3a(平行语料训练)**:3 epochs,LR=5e-6 +- **阶段 3b(对比学习)**:2 epochs,LR=3e-6 +- **阶段 3c(一致性训练)**:2 epochs,LR=3e-6 +- **总轮数**:7 epochs + +### 阶段 4:事实一致性对齐 + +**目标**:确保 LLM 子网严格依据输入的结构化信息生成输出,不添加、不遗漏、不改动事实。 + +#### 训练方法 + +1. **负采样对抗训练** + - 故意在结构化输入中植入与常见知识矛盾的信息 + - 如果模型依赖"固有知识"而非输入结构信息,则产生错误 + - 训练模型学会"忽略固有知识,只遵循输入" + +2. **事实对比损失** + - 在输出层添加事实一致性评分头 + - 计算输出中每个实体/关系与输入结构化信息的匹配度 + - 损失函数:Focal Loss(处理事实类不平衡) + +3. **约束解码** + - 推理阶段使用受限 Beam Search + - 约束条件:输出必须包含输入中的所有关键信息点 + - 惩罚项:缺失信息点数量 × 0.1 + +#### 评估配置 + +- 测试集:5,000 条包含事实冲突的结构化输入 +- 期望行为:模型严格按输入生成,不引入外部知识 +- 目标值:事实一致性 ≥ 98% + +## 评估指标 + +### 表达准确度 + +| 指标 | 定义 | 目标值 | +|------|------|--------| +| 信息保真度 | 输出与输入结构化信息的一致性 | ≥ 95% | +| 实体准确率 | 输出中实体的正确率 | ≥ 98% | +| 关系准确率 | 输出中关系描述的正确率 | ≥ 95% | +| 事实幻觉率 | 输出来源非输入中信息的比例 | ≤ 2% | + +### 自然度评分 + +| 指标 | 定义 | 目标值 | +|------|------|--------| +| 人工评分(5 分制) | 标注员对输出自然度的评分 | ≥ 4.2 | +| GPT-4 评分(5 分制) | 大模型评估的自然度评分 | ≥ 4.0 | +| Perplexity | 语言模型的困惑度 | ≤ 15 | +| 平均句长标准差 | 句子长度的多样性指标 | ≥ 5 | + +### 情感一致性 + +| 指标 | 定义 | 目标值 | +|------|------|--------| +| 情感匹配度 | 输出情感与目标情感的匹配度 | ≥ 85% | +| 情感误判率 | 产生与目标相反情感的比率 | ≤ 3% | +| 情感粒度 F1 | 复合情感识别的 F1 | ≥ 0.75 | + +### 多语言能力 + +| 指标 | 定义 | 目标值 | +|------|------|--------| +| BLEU | 各语言的 BLEU 分数加权平均 | ≥ 35 | +| COMET | 跨语言语义保留评分 | ≥ 0.80 | +| 跨语言一致性 | 不同语言输出的语义相似度 | ≥ 0.90 | +| 语言切换准确率 | 中英混杂场景的语言切换正确率 | ≥ 90% | + +### 系统性能 + +| 指标 | 定义 | 目标值 | +|------|------|--------| +| 生成延迟(首 token) | 从输入到首个输出 token | ≤ 200ms | +| 生成吞吐量 | tokens/second | ≥ 50 tokens/s | +| 冷启动适应 | 新语言的 few-shot 适应所需样本 | ≤ 100 条 | +| 输出长度控制 | 指定长度与实际长度的偏差 | ≤ ±20% | diff --git a/docs/logic-trace-subnet.md b/docs/logic-trace-subnet.md new file mode 100644 index 0000000..5c4c82f --- /dev/null +++ b/docs/logic-trace-subnet.md @@ -0,0 +1,311 @@ +# 逻辑链路追踪神经网络(推理回路) + +## 概述 + +逻辑链路追踪神经网络(Logic Trace Network, LTN)类比人脑的**推理回路**,是 NextAgent 的"思维引擎"。它负责对任务进行逻辑推理、验证推理路径的正确性,并在发现错误时执行自我修正。这是实现 **可解释 AI** 和 **可信推理** 的核心组件。 + +### 核心职责 + +- **逻辑验证**:对调度 Core 下达的任务进行逻辑一致性检查 +- **推理路径搜索**:探索多条可能的推理路径,选择最优解 +- **错误追溯**:当推理结果矛盾或错误时,定位错误节点 +- **路径重规划**:在错误节点处分支,重新规划推理路径 +- **自我修正**:从错误中学习,更新推理策略偏好 + +## 架构设计 + +```mermaid +graph TB + Input["输入:任务 + 记忆引用包"] --> Parser["推理任务解析器"] + + Parser --> MCTS["蒙特卡洛树搜索"] + + subgraph MCTS_Tree ["MCTS 推理树"] + Root["根节点"] + N1["推理节点 1"] + N2["推理节点 2"] + N3["推理节点 3"] + N11["子节点 1.1"] + N12["子节点 1.2"] + Leaf["叶节点(结论)"] + + Root --> N1 + Root --> N2 + Root --> N3 + N1 --> N11 + N1 --> N12 + N2 --> Leaf + end + + MCTS --> Selection["选择
UCT 算法"] + MCTS --> Expansion["扩展
策略网络"] + MCTS --> Simulation["模拟
奖励预测"] + MCTS --> Backprop["反向传播
更新访问计数"] + + Selection --> Validator["逻辑验证器"] + Validator --> ErrorTrace["错误追踪器"] + ErrorTrace --> Corrector["自我修正器"] + + Corrector --> Replan["路径重规划"] + Replan --> MCTS + + Validator --> PathSelect["最优路径选择"] + PathSelect --> Output["输出:验证后的推理路径"] + + subgraph Learning ["训练组件"] + PRM["过程奖励模型
Process Reward Model"] + RLHF_P["RLHF 训练
(推理偏好)"] + ErrorDS["错误案例数据集"] + end + + Validator -.-> PRM + Corrector -.-> ErrorDS + PathSelect -.-> RLHF_P +``` + +## 训练目标 + +### 目标 1:逻辑验证 + +训练子网能够识别推理链中的逻辑错误,包括事实矛盾、步骤跳跃和循环依赖。 + +- **验证粒度**:逐步骤验证,而非仅验证最终结论 +- **错误类型覆盖**:≥ 10 种常见逻辑谬误(偷换概念、循环论证、错误归因等) +- **验证速度**:每步推理 ≤ 10ms + +### 目标 2:错误追溯与定位 + +当推理结果错误时,精确定位错误发生的步骤和原因。 + +- **定位精度**:Top-1 错误步骤准确率 ≥ 80% +- **根因分析**:错误分类准确率 ≥ 85% +- **回溯效率**:N 步推理的回溯复杂度 O(log N) + +### 目标 3:路径重规划与自我修正 + +在错误步骤处分支,探索替代推理路径,实现自我修正。 + +- **修正成功率**:首次修正成功率 ≥ 70% +- **修正轮次上限**:最多 3 轮修正后必须输出结果 +- **修正代价**:修正后的推理路径长度 ≤ 原始路径 × 1.5 + +## 训练计划 + +### 阶段 1:过程奖励模型(Process Reward Model, PRM)训练 + +**目标**:训练一个能够对推理中间步骤进行质量评分的模型,替代仅评估最终结果的传统方法。 + +#### 数据构建 + +1. **自动推理链生成**:使用 GPT-4 / Claude 对数学、逻辑、常识类问题生成多步推理链 +2. **人工标注**:标注员对推理链的每个步骤进行评分(-1: 错误, 0: 中性, 1: 正确) +3. **数据规模**:200,000 条推理链,平均链长 8 步,总计 160 万标注步骤 +4. **数据覆盖**: + +| 类别 | 占比 | 示例 | +|------|------|------| +| 数学推理 | 30% | GSM8K、MATH 题目 | +| 逻辑推理 | 25% | 三段论、命题逻辑、谓词逻辑 | +| 常识推理 | 20% | 物理常识、社会常识 | +| 因果推理 | 15% | 因果推断、反事实推理 | +| 代码推理 | 10% | 代码执行跟踪、bug 定位 | + +#### 模型架构 + +- **基座模型**:基于 LLaMA-3.1-8B 或同等规模模型 +- **奖励头**:在每一层 Transformer 后添加线性层,输出步骤质量评分 +- **输入格式**:`[问题] [步骤1] [步骤2] ... [当前步骤]` +- **输出**:当前步骤的奖励值(连续值,范围 [-1, 1]) + +#### 训练配置 + +- **损失函数**:排序损失(Pairwise Ranking Loss) + ``` + L = max(0, margin - (r_pos - r_neg)) + margin = 0.5 + ``` +- **批大小**:64(每条含完整推理链) +- **优化器**:AdamW(β1=0.9, β2=0.95) +- **学习率**:1e-5,余弦退火 +- **权重衰减**:0.01 +- **训练轮数**:5 epochs(防止过拟合) +- **验证集**:人工标注数据的 10% 作为验证 + +#### PRM 推理流程 + +``` +def evaluate_step(question, steps_so_far, next_step): + # 1. 编码上下文 + context = tokenize(question, steps_so_far) + + # 2. 逐层提取 hidden states + hidden_states = model(context) + + # 3. 奖励头预测 + reward = reward_head(hidden_states[-1]) + + # 4. 可选:+ 置信度校准 + confidence = calibrate(reward) + + return reward, confidence +``` + +### 阶段 2:蒙特卡洛树搜索(MCTS)推理训练 + +**目标**:在推理过程中使用 MCTS 探索多条路径,找到最优解决方案。 + +#### MCTS 四步流程 + +```mermaid +graph LR + S["1. 选择 (Select)"] --> E["2. 扩展 (Expand)"] + E --> Sim["3. 模拟 (Simulate)"] + Sim --> BP["4. 反向传播 (Backprop)"] + BP --> S +``` + +#### MCTS 组件设计 + +1. **选择(Selection)** + - 算法:UCT(Upper Confidence Bound Applied to Trees) + - 公式:`UCT = Q(s,a) + c · P(s,a) · sqrt(N_parent / (1 + N_child))` + - 探索系数 c:1.5(可通过贝叶斯优化调参) + - 剪枝:当节点 UCT 值低于阈值时不再扩展 + +2. **扩展(Expansion)** + - 策略网络:轻量级 Transformer(6 层),预测下一步推理方向 + - 候选动作数:top-K = 5 + - 动作空间:推理方向编码(演绎、归纳、溯因、类比、分解) + +3. **模拟(Simulation)** + - 使用 PRM 对节点评分作为奖励信号 + - 模拟深度:最大 20 步 + - 终止条件:得出确定性结论 或 达到步数上限 + - 快速回滚:当奖励值骤降时提前终止 + +4. **反向传播(Backpropagation)** + - 更新路径上所有节点的 Q 值和访问计数 + - 折扣因子 γ:0.9(越远的节点贡献越小) + - 更新公式:`Q_new = Q_old + α · (G - Q_old)`,其中 α = 1/N + +#### 训练配置 + +- **模拟次数**:每轮推理 50 次 MCTS 模拟 +- **温度参数**: + - 训练阶段:τ = 1.0(充分探索) + - 推理阶段:τ → 0(选择最优路径) +- **批处理大小**:并行搜索 16 棵推理树 +- **策略网络训练**:使用 MCTS 访问计数作为软标签 + - 损失函数:KL 散度(策略网络输出 || MCTS 访问分布) + - 学习率:1e-4 + +### 阶段 3:强化学习(RLHF + 过程奖励)训练推理偏好 + +**目标**:通过人类反馈强化学习,优化推理路径选择的偏好。 + +#### 训练流程 + +``` +1. 策略模型(要训练的推理模型)生成多条推理路径 +2. PRM 对每条路径的每一步评分 +3. 人类标注员对比不同路径,给出偏好标签 +4. 训练奖励模型拟合人类偏好 +5. PPO 算法优化策略模型 +``` + +#### 奖励模型训练 + +- **输入**:完整的推理链(含每一步) +- **输出**:标量奖励值 +- **模型架构**:与 PRM 共享基座,但奖励头为单标量输出 +- **损失函数**:Bradley-Terry 偏好模型 + ``` + L = -E[log(σ(r_better - r_worse))] + ``` +- **数据**:50,000 对人类偏好对比对 + +#### PPO 训练配置 + +- **策略模型**:推理路径生成模型(基于 LLaMA 架构) +- **价值模型**:与策略模型共享部分参数 +- **KL 散度惩罚**:β = 0.04(防止策略偏离基座过远) +- **GAE λ**:0.95 +- **折扣因子 γ**:0.99 +- **学习率**:1e-6(策略),1e-5(价值) +- **PPO clip**:ε = 0.2 +- **批大小**:512 +- **训练轮数**:3 epochs 每个 PPO 轮次 +- **总 PPO 轮次**:100 + +### 阶段 4:错误案例数据集与针对性训练 + +**目标**:构建高质量的错误推理案例数据集,针对性训练错误检测与修正能力。 + +#### 数据集构建 + +| 来源 | 方法 | 规模 | +|------|------|------| +| 模型自生成 | 奖励模型筛选低分路径 | 500,000 | +| 人工构造 | 标注人员植入特定错误类型 | 50,000 | +| 对抗生成 | 使用 Red-Teaming 方法生成困难错误 | 20,000 | +| 真实对话 | 从生产环境收集失败案例 | 100,000 | + +#### 错误类型覆盖 + +1. 事实性错误(Factual Error) +2. 逻辑跳跃(Logic Leap) +3. 循环论证(Circular Reasoning) +4. 假两难推理(False Dilemma) +5. 错误归因(False Attribution) +6. 以偏概全(Hasty Generalization) +7. 偷换概念(Equivocation) +8. 诉诸权威(Appeal to Authority) +9. 诉诸情感(Appeal to Emotion) +10. 因果倒置(Reverse Causality) + +#### 针对性训练 + +- **多任务学习**:同时优化错误检测 + 错误定位 + 修正生成 +- **数据增强**:对正确推理链随机注入错误,生成训练样本 +- **课程学习**:从简单错误(事实错误)到复杂错误(循环论证)渐进训练 +- **训练轮数**:30 epochs +- **早停**:验证集 F1 连续 5 轮不提升则停止 + +## 评估指标 + +### 推理准确率 + +| 指标 | 定义 | 目标值 | +|------|------|--------| +| 最终答案准确率 | 推理结论的总体正确率 | ≥ 85% | +| 步骤准确率 | 推理链中每步的正确率 | ≥ 90% | +| 推理路径一致性 | 相同输入多次推理的结论一致性 | ≥ 95% | +| 对抗鲁棒性 | 面对对抗性输入仍保持正确 | ≥ 75% | + +### 自我修正 + +| 指标 | 定义 | 目标值 | +|------|------|--------| +| 错误检测率 | 错误推理被正确标记的比例 | ≥ 90% | +| 修正成功率 | 首次修正即得到正确结果 | ≥ 70% | +| 修正效率 | 修正路径 / 原路径长度比 | ≤ 1.5 | +| 过修正率 | 原本正确被错误修改的比例 | ≤ 5% | +| 冗余修正率 | 不必要的额外修正步骤比例 | ≤ 10% | + +### 错误定位 + +| 指标 | 定义 | 目标值 | +|------|------|--------| +| Top-1 定位准确率 | 错误步骤的首位命中率 | ≥ 80% | +| 根因分类准确率 | 错误类型判别的准确率 | ≥ 85% | +| 定位粒度 | 能定位到句子/公式级别 | 句子级 | +| 假阳性率 | 正确步骤被误判为错误的比率 | ≤ 3% | + +### 系统性能 + +| 指标 | 定义 | 目标值 | +|------|------|--------| +| 推理延迟 | 从输入到输出的端到端延迟 | ≤ 500ms | +| MCTS 扩展数 | 平均每次推理扩展的节点数 | ≤ 200 | +| 内存占用 | 推理过程中的峰值内存 | ≤ 4GB | +| 修正收敛 | 平均修正轮数 | ≤ 1.8 | diff --git a/docs/memory-subnet.md b/docs/memory-subnet.md new file mode 100644 index 0000000..06aa218 --- /dev/null +++ b/docs/memory-subnet.md @@ -0,0 +1,234 @@ +# 记忆子网(海马体与皮层) + +## 概述 + +记忆子网类比人脑的**海马体与大脑皮层**,负责长期记忆的存储、索引和检索。与传统向量数据库不同,记忆子网是一个**可训练的学习系统**,能够自主构建知识关联、更新记忆权重,并支持情景记忆的时序追溯。 + +### 核心职责 + +- **长期记忆存储**:将压缩引用包持久化存储于冷区,构建可检索的记忆库 +- **情景记忆索引**:记录交互的时间戳、上下文和情感标签,支持时序回溯 +- **知识图谱构建**:从记忆片段中自动提取实体与关系,构建动态知识图谱 +- **关联检索**:根据当前任务上下文,检索最相关的历史记忆片段 + +## 架构设计 + +```mermaid +graph TB + Input["输入引用包"] --> Router["记忆路由器"] + + Router -->|"存储"| Store["记忆存储管线"] + Router -->|"检索"| Retrieve["记忆检索管线"] + + Store --> Encoder["记忆编码器
MANN"] + Encoder --> Graph["知识图谱更新
GNN"] + Graph --> Cold["冷区持久化"] + + Retrieve --> Query["查询编码器"] + Query --> Index["倒排索引搜索"] + Index --> Rerank["重排序器"] + Rerank --> Output["记忆引用包输出"] + + subgraph Storage ["存储架构"] + Cold + Cache["热区缓存
LRU"] + IndexStore["索引存储
HNSW"] + end + + Cache --> IndexStore + IndexStore --> Cold + + subgraph Learning ["学习模块"] + MANN["Memory-Augmented
Neural Networks"] + GNN["Graph Neural
Networks"] + Consolidation["记忆巩固
(sleep phase)"] + end + + Encoder -.-> MANN + Graph -.-> GNN + Cold -.-> Consolidation +``` + +## 训练目标 + +### 目标 1:长期记忆存储与检索 + +训练记忆子网能够高效存储大量历史交互记录,并在需要时准确检索。 + +- **存储容量**:支持 ≥ 10⁸ 条记忆片段 +- **写入延迟**:≤ 10ms/条 +- **检索延迟**:p99 ≤ 50ms +- **检索准确率**:Top-1 ≥ 90%,Top-5 ≥ 98% + +### 目标 2:情景记忆索引 + +对每条记忆附加时间戳、上下文标签、情感值,支持按时间和场景检索。 + +- 时间范围查询:任意时间窗口的回忆准确率 ≥ 85% +- 情景聚类:同场景记忆的聚类纯度 ≥ 0.8 +- 遗忘曲线模拟:模拟人脑 Ebbinghaus 遗忘曲线,重塑低频记忆 + +### 目标 3:知识图谱构建 + +从记忆片段中自动抽取实体和关系,构建可查询的知识图谱。 + +- 实体抽取 F1 ≥ 85%(基于预训练 NER 模型) +- 关系抽取准确率 ≥ 75% +- 图谱密度:≥ 5 条边/节点 +- 推理路径长度:支持最多 5 跳的关系推理 + +## 训练计划 + +### 阶段 1:Memory-Augmented Neural Networks(MANN)预训练 + +**目标**:训练记忆增强神经网络,使其具备快速读写外部记忆的能力。 + +- **模型架构**:基于 Differentiable Neural Computer(DNC)改进 + - 控制器:LSTM,隐藏层维度 512 + - 外部记忆矩阵:N × M = 256 × 128 + - 读写头:4 个并行读写头 + - 记忆注意力:基于内容寻址 + 位置寻址的混合机制 + - 时间链路记录:记录记忆写入的时序顺序 + +- **训练数据**: + - 合成记忆任务:Copy、Repeat Copy、Associative Recall(Graves et al., 2016) + - 真实对话数据:MultiWOZ、DSTC 系列对话数据集 + - 时序序列:WikiText-103(分段记忆) + +- **损失函数**: + - 主损失:交叉熵损失(任务预测) + - 记忆使用惩罚:鼓励稀疏记忆访问 + - 记忆冲突惩罚:避免写入冲突 +- **优化器**:Adam(β1=0.9, β2=0.999) +- **学习率**:1e-4,含 warmup 5000 steps +- **梯度裁剪**:max_norm = 10 +- **训练轮数**:300 epochs + +#### DNC 控制器更新规则 + +``` +# 读取 +r_t = Σ_i w_t^r(i) · M_t(i) # 按读取权重加权记忆 + +# 写入 +M_t(i) = M_{t-1}(i) ⊙ (1 - w_t^w(i) · e_t) + w_t^w(i) · a_t # 擦除后写入 + +# 记忆保持 +w_t^r, w_t^w = attend(q_t, M_{t-1}) # 基于查询的注意力 +``` + +### 阶段 2:图神经网络(GNN)知识关联训练 + +**目标**:构建和更新知识图谱,发现记忆间的隐式关联。 + +- **模型架构**:Relational Graph Convolutional Networks(R-GCN) + - 层数:3 层 GCN + - 隐藏维度:256 + - 关系类型数:50 种预设关系 + 动态关系发现 + - 聚合函数:均值聚合(mean aggregator) + - 自注意力:GAT(Graph Attention Network)层提升关联权重 + +- **训练任务**: + 1. **链接预测**:预测实体间是否存在某种关系 + 2. **实体分类**:预测实体的类别 + 3. **关系分类**:预测两个实体间的关系类型 + 4. **子图匹配**:识别与当前上下文最匹配的子图 + +- **训练数据**: + - 通用知识图谱:Wikidata 子集、ConceptNet + - 自构建图谱:从对话数据中自动抽取的关系三元组 + - 时序图谱:Temporal Knowledge Graph(事件时序关联) + +- **损失函数**: + - 链接预测:二元交叉熵 + 负采样(1:10 正负比) + - 实体/关系分类:交叉熵 + - 正则项:L2 权重衰减(5e-4) +- **优化器**:AdamW +- **学习率**:5e-5,线性衰减 +- **训练轮数**:100 epochs + +### 阶段 3:引用-拉取训练策略 + +**目标**:训练子网学习何时生成引用包、何时拉取完整数据,在带宽与信息量间找到平衡。 + +#### 训练框架 + +``` +环境:模拟多轮对话任务 +智能体:NextAgent(含记忆子网) +奖励信号: + +1: 正确使用了历史记忆 + +0.5: 引用包命中,无需完整拉取 + -0.5: 不必要的完整拉取(浪费带宽) + -1: 遗漏了关键记忆 + -2: 检索到错误记忆导致错误输出 +``` + +#### 训练步骤 + +1. **行为克隆(Behavior Cloning)预热** + - 使用专家轨迹数据(人工标注的"正确引用/拉取"决策) + - 监督学习 10 epochs,初始化策略网络 + +2. **强化学习训练** + - 算法:PPO(Proximal Policy Optimization) + - Actor 网络:2 层 MLP(512 → 256 → 2 动作) + - Critic 网络:2 层 MLP(512 → 256 → 1 值) + - 动作空间:[引用(REFERENCE), 拉取(FETCH)] + - 折扣因子 γ:0.95 + - GAE λ:0.95 + - clip 系数 ε:0.2 + - 训练轮数:1000 episodes + +3. **记忆巩固阶段(Memory Consolidation)** + - 模拟"睡眠"过程:定期重放低频记忆,防止遗忘 + - 使用 Experience Replay 从冷区采样 + - 记忆重加权:根据访问频率动态调整记忆强度 + +### 阶段 4:端到端联合训练 + +**目标**:将 MANN、GNN 和引用-拉取策略联合微调。 + +- 联合损失:L = L_MANN + λ₁·L_GNN + λ₂·L_RL + - λ₁ = 0.3, λ₂ = 0.5 +- 冻结策略网络的初期 10 epochs,后全部放开 +- 交替训练:每 5 个 batch 的记忆检索 → 1 个 batch 的图谱更新 +- 总训练轮数:50 epochs + +## 评估指标 + +### 记忆检索 + +| 指标 | 定义 | 目标值 | +|------|------|--------| +| Top-1 准确率 | 首条检索结果相关 | ≥ 90% | +| Top-5 召回率 | 前五条中包含相关记忆 | ≥ 98% | +| 平均倒数排名(MRR) | 相关记忆的排名倒数均值 | ≥ 0.92 | +| 归一化折损累计增益(NDCG@10) | 排序质量 | ≥ 0.85 | + +### 关联发现 + +| 指标 | 定义 | 目标值 | +|------|------|--------| +| 链接预测 Hits@10 | 图谱补全准确率 | ≥ 75% | +| 关联发现 F1 | 新关联预测的精确率与召回率调和均值 | ≥ 0.7 | +| 时序一致性 | 时序关系推理准确率 | ≥ 80% | +| 聚类纯度 | 同主题记忆聚类纯度 | ≥ 0.85 | + +### 系统性能 + +| 指标 | 定义 | 目标值 | +|------|------|--------| +| 写入延迟 | 单条记忆写入时间 | ≤ 10ms | +| 检索延迟 p50 | 中位数检索响应时间 | ≤ 20ms | +| 检索延迟 p99 | 99 分位检索响应时间 | ≤ 50ms | +| 存储密度 | 每条记忆平均存储开销 | ≤ 1KB | +| 有效压缩率 | 原始数据大小 / 引用包大小 | ≥ 10× | + +### 遗忘曲线 + +| 指标 | 定义 | 目标值 | +|------|------|--------| +| 短期遗忘率 | 24h 后同场景记忆召回率 | ≥ 90% | +| 长期遗忘率 | 30 天后同场景记忆召回率 | ≥ 70% | +| 干扰抵抗 | 相似记忆插入后的检索准确率变化 | ≤ 5% 下降 | diff --git a/docs/routing-compression-subnet.md b/docs/routing-compression-subnet.md new file mode 100644 index 0000000..e934bd9 --- /dev/null +++ b/docs/routing-compression-subnet.md @@ -0,0 +1,173 @@ +# 路由与压缩子网(感觉中枢) + +## 概述 + +路由与压缩子网类比人脑的**感觉中枢**,负责将外部的多模态输入(文本、图像、音频等)转化为结构化的内部表示。它是 NextAgent 的**入口层**,所有输入数据必须经过此子网处理才能进入后续流程。 + +### 核心职责 + +- **多模态特征提取**:将不同模态的原始数据统一为向量表示 +- **信息压缩**:在保留语义的前提下最大化压缩率,降低存储与传输成本 +- **引用包生成**:将压缩后的特征打包为标准引用包(RefPack),供调度 Core 分发 +- **输入路由**:根据输入类型将数据分发到对应的特征提取通道 + +## 架构设计 + +```mermaid +graph TB + Input["多模态输入"] --> Router["输入路由器"] + + Router -->|"文本"| TextEnc["文本编码器
BERT/RoBERTa"] + Router -->|"图像"| ImageEnc["图像编码器
ViT/ResNet"] + Router -->|"音频"| AudioEnc["音频编码器
Wav2Vec 2.0"] + Router -->|"视频"| VideoEnc["视频编码器
VideoMAE"] + + TextEnc --> Merger["特征融合器"] + ImageEnc --> Merger + AudioEnc --> Merger + VideoEnc --> Merger + + Merger --> Compressor["压缩模块
AutoEncoder"] + Compressor --> RefPack["引用包生成器"] + RefPack --> Output["引用包输出"] + + subgraph Training ["训练组件"] + SimCLR["对比学习
SimCLR/MoCo"] + KD["知识蒸馏"] + AE["AutoEncoder
训练"] + end + + TextEnc -.-> SimCLR + ImageEnc -.-> SimCLR + Merger -.-> KD + Compressor -.-> AE +``` + +## 训练目标 + +### 目标 1:多模态特征提取 + +训练各模态编码器,使其能够从原始输入中提取高质量的语义特征。 + +- **文本模态**:预训练语言模型(BERT-base / RoBERTa-base),输出 768 维向量 +- **图像模态**:视觉 Transformer(ViT-B/16),输出 768 维向量 +- **音频模态**:自监督语音模型(Wav2Vec 2.0 Base),输出 768 维向量 +- **视频模态**:视频掩码自编码器(VideoMAE Base),输出 768 维向量 + +### 目标 2:信息压缩 + +在保持重建质量的前提下,将特征维度压缩至原始大小的 10%-20%。 + +- 压缩率目标:≥ 5 倍(即 768 维 → ≤ 150 维) +- 重建相似度:余弦相似度 ≥ 0.92 +- 推理速度:单次压缩 ≤ 5ms(GPU) + +### 目标 3:引用包生成 + +将压缩特征包装为标准化的引用包,包含元数据、签名和冷区索引。 + +## 训练计划 + +### 阶段 1:对比学习预训练(SimCLR / MoCo) + +**目标**:为各模态编码器学习通用的特征表示。 + +- **SimCLR**:用于文本和图像编码器的初始训练 + - 批大小:4096 + - 温度系数 τ:0.07 + - 投影头:2 层 MLP(2048 → 2048 → 128) + - 损失函数:NT-Xent(归一化温度标度交叉熵损失) + - 优化器:LARS(Layer-wise Adaptive Rate Scaling) + - 学习率:0.3 × BatchSize / 256 + - 训练轮数:100 epochs + +- **MoCo v3**:用于视频和音频编码器的训练 + - 动量系数 m:0.999 + - 队列大小:65536 + - 编码器更新:动量式(momentum encoder) + - 损失函数:InfoNCE + - 优化器:AdamW + - 学习率:1.5e-4 + - 训练轮数:200 epochs + +**数据集**: + +| 模态 | 数据集 | 规模 | +|------|--------|------| +| 文本 | Wikipedia + BookCorpus | 16GB | +| 图像 | ImageNet-1K + LAION-400M | 4 亿样本 | +| 音频 | LibriSpeech + AudioSet | 5000 小时 | +| 视频 | Kinetics-700 + HowTo100M | 70 万视频 | + +### 阶段 2:知识蒸馏 + +**目标**:将大模型的丰富特征迁移到轻量编码器,减少推理成本。 + +- **教师模型**:CLIP ViT-L/14(文本+图像)、HuBERT-Large(音频)、InternVideo(视频) +- **学生模型**:各模态专用编码器(参数量为教师模型的 1/10) +- **蒸馏损失**: + - 特征蒸馏:MSE(教师特征, 学生特征) + - 关系蒸馏:基于互信息的对比蒸馏 + - 逻辑蒸馏:KL 散度(教师输出 || 学生输出) +- **总损失**:L = α·L_feat + β·L_rel + γ·L_logit + - α = 0.5, β = 0.3, γ = 0.2 +- **温度 T**:4.0(软化概率分布) +- **训练轮数**:50 epochs + +### 阶段 3:AutoEncoder 压缩训练 + +**目标**:训练压缩-解压缩的 AutoEncoder 结构。 + +- **编码器结构**: + ``` + Input (768) → Dense(512, ReLU) → BN → Dense(256, ReLU) → BN → Dense(128, Linear) + ``` +- **解码器结构**: + ``` + Latent (128) → Dense(256, ReLU) → BN → Dense(512, ReLU) → BN → Dense(768, Linear) + ``` +- **损失函数**: + - 重建损失:MSE + 余弦相似度 + - 感知损失:基于预训练编码器的特征匹配 + - 对抗损失:附加判别器,提升重建质量 + - KL 散度正则项:β-VAE 风格 +- **优化器**:Adam(β1=0.9, β2=0.999) +- **学习率**:1e-4,余弦退火调度 +- **训练轮数**:150 epochs +- **压缩比搜索**:在 {2×, 3×, 5×, 8×, 10×} 中搜索最优压缩比 + +### 阶段 4:端到端联合微调 + +**目标**:将编码器、压缩器联合微调,优化跨模态对齐。 + +- 固定解码器参数 +- 引入跨模态对比损失:batch_size 内的跨模态负样本挖掘 +- 训练轮数:30 epochs(低学习率 5e-5) + +## 评估指标 + +### 压缩效率 + +| 指标 | 定义 | 目标值 | +|------|------|--------| +| 压缩率 | 原始维度 / 压缩后维度 | ≥ 5× | +| 压缩延迟 | 单次前向推理时间 | ≤ 5ms | +| 吞吐量 | 每秒处理的样本数 | ≥ 1000 samples/s | + +### 重建质量 + +| 指标 | 定义 | 目标值 | +|------|------|--------| +| MSE | 原始与重建的均方误差 | ≤ 0.01 | +| 余弦相似度 | 原始与重建的余弦相似度 | ≥ 0.92 | +| PSNR | 峰值信噪比(图像模态) | ≥ 30dB | +| 感知距离 | LPIPS( Learned Perceptual Image Patch Similarity) | ≤ 0.05 | + +### 检索与召回 + +| 指标 | 定义 | 目标值 | +|------|------|--------| +| Top-1 召回 | 压缩查询的最近邻检索准确率 | ≥ 85% | +| Top-5 召回 | Top-5 召回率 | ≥ 95% | +| 跨模态检索 | 文本→图像/图像→文本检索准确率 | ≥ 70% | +| 反事实一致性 | 语义相近输入的重建一致性 | ≥ 90% |