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
This commit is contained in:
312
docs/llm-subnet.md
Normal file
312
docs/llm-subnet.md
Normal file
@ -0,0 +1,312 @@
|
||||
# LLM 子网(布洛卡区/表达核)
|
||||
|
||||
## 概述
|
||||
|
||||
LLM 子网类比人脑的**布洛卡区(Broca's Area)**——大脑中负责语言表达的关键区域。在 NextAgent 架构中,LLM 子网是**唯一与自然语言打交道的组件**,负责将子网间流转的结构化信息转换为人类可读的自然语言输出。
|
||||
|
||||
### 核心设计哲学
|
||||
|
||||
**知识存储与语言表达分离**:LLM 子网本身不存储事实知识,它只负责"表达"。所有事实知识来自记忆子网和推理子网的引用包。这一设计从根本上杜绝了 LLM 子网产生"幻觉"的可能性——它不"知道"任何事,它只"表达"收到的结构化信息。
|
||||
|
||||
### 核心职责
|
||||
|
||||
- **结构化→自然语言转换**:将推理路径、记忆片段等结构化数据转化为流畅的自然语言
|
||||
- **情感表达**:根据上下文和用户情感状态,调整输出的语气和情感色彩
|
||||
- **多语言输出**:支持中、英、日、韩、法、德等多语言的表达
|
||||
- **风格适配**:根据应用场景(正式、友好、专业、通俗)适配语言风格
|
||||
- **输出格式化**:支持 Markdown、JSON、表格、列表等多种输出格式
|
||||
|
||||
## 架构设计
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
Input["结构化输入<br/>(推理路径 + 记忆引用包)"] --> Decoder["结构化解码器"]
|
||||
|
||||
Decoder --> Intent["意图与情感分析器"]
|
||||
|
||||
Intent --> StyleRouter["风格路由器"]
|
||||
|
||||
StyleRouter -->|"正式"| Formal["正式表达分支"]
|
||||
StyleRouter -->|"友好"| Friendly["友好表达分支"]
|
||||
StyleRouter -->|"专业"| Professional["专业表达分支"]
|
||||
StyleRouter -->|"通俗"| Simple["通俗表达分支"]
|
||||
|
||||
Formal --> Generator["语言生成器<br/>Causal LM"]
|
||||
Friendly --> Generator
|
||||
Professional --> Generator
|
||||
Simple --> Generator
|
||||
|
||||
Generator --> Format["格式处理器"]
|
||||
Format --> Output["自然语言输出"]
|
||||
|
||||
subgraph Controls ["控制组件"]
|
||||
LangCtrl["语言控制<br/>(LangID)"]
|
||||
ToneCtrl["语气控制<br/>(Prompt Tuning)"]
|
||||
FactCtrl["事实一致性检查<br/>(对照源引用包)"]
|
||||
end
|
||||
|
||||
Generator -.-> LangCtrl
|
||||
Generator -.-> ToneCtrl
|
||||
Generator -.-> FactCtrl
|
||||
|
||||
subgraph Training ["训练管线"]
|
||||
SFT["指令微调<br/>(SFT)"]
|
||||
RLHF["人类反馈强化学习<br/>(RLHF)"]
|
||||
MulAlign["多语言对齐<br/>(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% |
|
||||
Reference in New Issue
Block a user