18 KiB
18 KiB
LLM 子网 — 训练目标与训练计划
概述
LLM 子网类比人脑的布洛卡区(表达核),是 NextAgent 架构中唯一的输出路径(当前仅输出自然语言;可扩展图像、视频等输出子网)。
在认知解耦架构下,LLM 不再是"全知怪物",而是降级为专业的语言生成引擎:知识来源外置到记忆子网,逻辑推理外置到推理子网,LLM 仅负责将结构化的推理结果转换为自然语言。
核心设计:LLM 下位化
传统 LLM:
┌────────────────────────────────────────────────────────┐
│ LLM │
│ 知识存储(参数内) │ 逻辑推理(隐式) │ 语言生成 │ 编码 │
│ 全部在同一个模型中耦合 │
└────────────────────────────────────────────────────────┘
↓ 认知解耦
NextAgent LLM 子网:
┌────────────────────────────────────────────────────────┐
│ LLM 子网(表达专用) │
│ 输入:结构化推理路径张量(Core 提供) │
│ 知识:来自记忆子网(非自身参数) │
│ 逻辑:来自推理子网(非自身推理) │
│ 功能:仅做结构化→自然语言的精确转换 + 表达验证张量输出 │
└────────────────────────────────────────────────────────┘
双输出通道
这是 LLM 子网最核心的设计:
┌──────────────────────┐
│ LLM 子网 │
│ │
推理路径张量 ──────→ │ 张量解码层 │
(来自 Core) │ (标准→内部) │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ LLM 核心 │ │
│ │ 语言生成模型 │ │
│ └──────┬───────┘ │
│ │ │
│ ┌────┴────┐ │
│ │ │ │
│ ▼ ▼ │
│ 通道1 通道2 │
│ 自然语言 表达验证 │
│ 文本 张量 │
│ │ │ │
│ │ │ │
└────┼─────────┼────────┘
│ │
▼ ▼
用户 → 调度 Core
(最终输出) (验证正确性)
通道1 — 自然语言 → 用户:
- 流畅、准确、有情感的自然语言输出
- 用户直接看到这部分
通道2 — 表达验证张量 → Core:
- 不包含自然语言文本
- 包含:语义编码向量、置信度分数、情感标记、表达结构元数据
- Core 通过分析此张量判断 LLM 是否正确表达了推理结果
- Core 不通过自然语言判断输出质量
输入/输出
| 项目 | 说明 |
|---|---|
| 输入 | 结构化推理路径张量(来自 Core,经过张量解码层转换) |
| 输出1 | 自然语言文本(直接发送给用户) |
| 输出2 | 表达验证张量(发送给 Core) |
| 输出2格式 | 统一通信张量,fmt_id=5 (expression_verify) |
表达验证张量格式
遵循统一通信张量协议,无 JSON 结构,全部为纯数值张量:
统一通信张量 (纯数值)
prefix: [fmt_id=5, parser_id=5]
payload:
[semantic_encoding (768)] # 输出文本的语义向量
[intention_alignment (1)] # 与输入推理路径的意图对齐度 (0~1)
[factual_consistency (1)] # 与输入事实的一致性 (0~1)
[emotion_vector (n_dims)] # 情感向量
[entity_preserved_mask (n_entities)] # 关键实体保留掩码 [0/1]
[overall_score (1)] # 综合验证得分 (0~1)
编码示例:
def encode_expression_verify(output_text: str,
reasoning_path: Tensor) -> Tensor:
"""LLM 自然语言输出 → 表达验证张量 (通道2)
通道1: 自然语言文本直接输出给用户
通道2: 此函数编码验证特征为纯张量返回给 Core
"""
sem_enc = sentence_encoder(output_text) # [768]
alignment = cosine_sim(sem_enc, path_embedding) # [1]
consistency = compute_factual_consistency(
output_text, reasoning_path) # [1]
emotion = emotion_analyzer(output_text) # [n]
entity_mask = check_entities_preserved(output_text) # [n_entities]
overall = compute_overall_score([alignment, consistency,
entity_mask.mean()]) # [1]
payload = concat(sem_enc, alignment, consistency,
emotion, entity_mask, overall)
return codec.encode(fmt_id=5, parser_id=5, data=payload)
# Core 收到后解析
payload = codec.decode(comm_tensor) # 剥离 fmt_id=5
overall = payload[-1]
if overall > THRESHOLD: # 验证通过
user_output = channel_1_text # 允许输出
子网内部架构
┌──────────────────────────────────────────────────────────────┐
│ LLM 子网 内部架构 │
│ │
│ 推理路径张量 ──→ ┌────────────────────────────────────┐ │
│ (来自 Core) │ 1. 张量解码层 (Tensor Decoder) │ │
│ │ 标准张量 → 内部结构化数据 │ │
│ └──────────────────┬─────────────────────┘ │
│ │ │
│ ┌──────────────────▼─────────────────────┐ │
│ │ 2. 输入适配器 (Input Adapter) │ │
│ │ 将推理路径转换为 LLM 适配的提示模板 │ │
│ │ 插入指令前缀和系统提示 │ │
│ │ 格式:系统提示 + 推理路径描述 + 格式约束 │ │
│ └──────────────────┬─────────────────────┘ │
│ │ │
│ ┌──────────────────▼─────────────────────┐ │
│ │ 3. LLM 核心 (语言生成模型) │ │
│ │ │ │
│ │ 模型选项: │ │
│ │ - Llama 3 (7B/70B) │ │
│ │ - Qwen 2.5 (7B/72B) │ │
│ │ - DeepSeek-V3 │ │
│ │ │ │
│ │ 生成参数:temperature=0.7, top_p=0.9 │ │
│ └──────────────────┬─────────────────────┘ │
│ │ │
│ ┌──────────────────┴──────────────────┐ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────────────────┐ ┌──────────────────────────┐ │
│ │ 4a. 输出适配器 (通道1) │ │ 4b. 表达编码器 (通道2) │ │
│ │ (Output Adapter) │ │ (Expression Encoder) │ │
│ │ │ │ │ │
│ │ 后处理: │ │ 语义编码提取 │ │
│ │ - 格式规范化 │ │ 意图对齐度计算 │ │
│ │ - 长度裁剪 │ │ 事实一致性验证 │ │
│ │ - 特殊标记移除 │ │ 情感分析 │ │
│ │ - 情感调整 │ │ 关键实体保全面核查 │ │
│ └────────────┬─────────────┘ └────────────┬─────────────┘ │
│ │ │ │
└───────────────┼──────────────────────────────┼──────────────────┘
│ │
▼ ▼
自然语言文本 表达验证张量
(→ 用户) (→ 调度 Core)
训练目标
目标 1:结构化到自然语言的精准转换
| 指标 | 目标值 | 说明 |
|---|---|---|
| 信息保留率 | ≥ 98% | 输入推理路径中的信息全部体现在输出中 |
| 忠实度 F1 | ≥ 95% | 输出与输入事实之间的一致性 |
| 幻觉率 | ≤ 1% | 输出中包含输入中没有的信息的比例 |
| 歧义解析准确率 | ≥ 90% | 对推理路径中的歧义点的正确处理 |
目标 2:情感表达与语气控制
| 指标 | 目标值 | 说明 |
|---|---|---|
| 情感一致性 | ≥ 85% | 输出情感与推理路径中指定的情感一致 |
| 语气多样度 | 至少 5 种 | 正式/友好/专业/热情/简洁等 |
| 人设匹配度 | ≥ 90% | 输出风格与记忆子网中的人设一致 |
目标 3:多语言输出
| 指标 | 目标值 | 说明 |
|---|---|---|
| 中文流畅度 | BLEU ≥ 40 | 中文生成的自然度 |
| 英文流畅度 | BLEU ≥ 35 | 英文生成的自然度 |
| 语言切换准确率 | ≥ 98% | 按输入要求切换到指定语言 |
| 专业术语翻译 | ≥ 90% | 技术术语的准确翻译 |
目标 4:表达验证张量准确性
| 指标 | 目标值 | 说明 |
|---|---|---|
| 语义编码对齐度 | cosine ≥ 0.95 | 编码向量与输出文本的语义匹配 |
| 置信度校准 | ECE ≤ 0.05 | 预测置信度与实际准确率的一致性 |
| 遗漏检测召回率 | ≥ 95% | 能检测出输出中遗漏了关键信息 |
| 情感分类准确率 | ≥ 90% | 情感分析的准确度 |
训练计划
阶段 1:指令微调 (SFT) — 结构化输入转译
目标:训练 LLM 将结构化推理路径精确转换为自然语言
技术路线:
- 构建 (推理路径张量 → 自然语言) 的配对数据集
- 使用 LoRA 微调开源 LLM
训练数据集构建:
- 从 GSM8K / MATH / HotpotQA 等推理数据集中提取推理链
- 将推理链格式化为 NextAgent 标准推理路径格式
- 由人工标注对应的自然语言输出
- 数据规模:至少 100K 条配对
数据示例:
{
"input": {
"reasoning_steps": [
{"step": 1, "type": "fact_extraction", "content": "用户问北京今天天气"},
{"step": 2, "type": "context_retrieval", "content": "记忆子网查到用户偏好空气质量"},
{"step": 3, "type": "conclusion", "content": "北京今天晴,AQI 45,空气质量优"}
],
"persona": "友好专业",
"language": "zh-CN"
},
"output": "北京今天天气晴好,空气质量为优(AQI 45),很适合外出活动!"
}
训练步骤:
- 构建输入模板:[系统提示] + [推理路径描述] + [格式约束]
- 使用 LoRA rank=64, alpha=128 进行微调
- 训练 3 epochs, batch size 64, learning rate 1e-4
- 评估:信息保留率、忠实度 F1
阶段 2:RLHF — 优化表达自然度
目标:使用人类反馈优化表达的自然度和情感一致性
技术路线:
- 收集人类偏好数据
- 训练 Reward Model
- PPO 强化学习
训练步骤:
-
收集偏好数据:
- 从阶段1的模型生成多条 output 候选
- 人工标注偏好(哪条更自然、更准确、情感更恰当)
- 收集 50K 对偏好数据
-
训练 Reward Model:
- 基于 Llama / Qwen 训练分类头
- 输入:推理路径 + 生成文本
- 输出:质量评分(1-5分)
- 训练 2 epochs
-
PPO 训练:
- 使用阶段1的 SFT 模型初始化策略网络
- Reward Model 提供奖励信号
- 加入 KL 散度惩罚防止偏离基座
- 训练 30K steps
阶段 3:多语言对齐训练
目标:扩展多语言输出能力
训练步骤:
- 收集多语言配对数据(中/英/日/韩/法/德)
- 使用课程学习(Curriculum Learning):
- 阶段 A:英语 → 中文(最高优先级)
- 阶段 B:中文 → 其他主要语言
- 阶段 C:所有语言混合训练
- 评估各语言 BLEU 分数
- 重点优化低资源语言
阶段 4:表达验证张量输出训练
目标:训练 LLM 同时输出表达验证张量
技术路线:
- 在 LLM 基础上添加额外的输出头(Verification Head)
- 训练 LLM 在生成文本的同时,计算表达验证特征
训练步骤:
-
构建验证数据集:
- 对于每条训练样本,计算: a. 输出文本的语义编码(使用 Sentence-BERT) b. 输出与输入的意图对齐度 c. 关键实体保留情况 d. 情感标签
- 作为监督信号
-
添加验证输出头:
- 在 LLM 的最后一层添加 MLP 头
- 输入:LLM 的隐藏状态
- 输出:语义编码向量 + 置信度标量 + 情感向量
-
联合训练:
- 损失函数:L = L_language + α * L_verification + β * L_alignment
- L_language: 文本生成交叉熵损失
- L_verification: 验证输出的 MSE 损失
- L_alignment: 意图对齐度的对比损失
-
训练 2 epochs
-
评估:ECE 校准误差、语义编码对齐度
阶段 5:人设适应训练
目标:训练 LLM 根据人设张量调整表达风格
训练步骤:
- 构建人设-表达配对数据集:
- 同一推理路径 → 不同人设下的不同表达
- 示例:
- 人设"猫娘":通过三元组编码输入
- 人设"专业助手":同上
- 在人设条件下微调 LLM
- 评估:人设匹配度人类评分
评估指标体系
离线评估
| 指标 | 计算方法 | 目标 |
|---|---|---|
| 信息保留率 | 输入关键实体在输出中出现的比例 | ≥ 98% |
| 忠实度 F1 | 输出与输入事实的一致性 | ≥ 95% |
| 幻觉率 | 输出中新增信息占输出的比例 | ≤ 1% |
| BLEU (中文) | 中文生成自然度 | ≥ 40 |
| BLEU (英文) | 英文生成自然度 | ≥ 35 |
| ECE 校准误差 | 预测置信度校准 | ≤ 0.05 |
在线评估(与 Core 集成后)
| 指标 | 说明 |
|---|---|
| Core 表达验证通过率 | Core 接收表达验证张量后判定为"正确表达"的比例 |
| 用户满意度 | 用户对自然语言输出的评分 |
| 重生成频率 | Core 因验证不通过而要求 LLM 重新生成的比例 |
| 端到端幻觉率 | 用户感知到的最终输出中的错误信息比例 |
技术难点与对策
| 难点 | 对策 |
|---|---|
| 结构化输入理解 | 设计专门的输入适配器,将张量转为LLM可理解的格式 |
| 严格约束下的自然度 | 温度采样+重复惩罚+语感奖励 |
| 多语言一致性 | 课程学习 + 回译增强 |
| 验证张量质量 | 独立验证头 + 自监督一致性训练 |
| 人设切换 | 人设编码向量条件注入 |
与传统 LLM 的关键区别
| 维度 | 传统 LLM | NextAgent LLM 子网 |
|---|---|---|
| 知识来源 | 模型参数内隐 | 外部记忆子网 |
| 推理能力 | 模型内部隐式 | 外部逻辑推理子网 |
| 输入格式 | 用户原始问题 | 结构化推理路径张量 |
| 输出去向 | 返回原始对话 | 自然语言→用户, 验证张量→Core |
| 角色定位 | 全知全能 | 专业语言生成引擎 |
| 幻觉风险 | 高(知识+生成耦合) | 极低(知识外置+验证机制) |
| 可控制性 | 低(提示工程) | 高(验证张量 + 人设编码) |