12 KiB
12 KiB
路由与压缩子网 — 训练目标与训练计划
概述
路由与压缩子网类比人脑的感觉中枢,负责处理多模态输入(图像、语音、文本)的特征提取与压缩,将原始数据转化为轻量级的标准引用张量(Reference Tensor)。
架构定位
路由与压缩子网是 NextAgent 唯一外部信息输入路径。所有图像、文本、语音输入都必须经过此子网处理。
原始输入 (图像/语音/文本) ←── 唯一外部输入入口
│
▼
┌──────────────────────────────────────────────┐
│ 路由与压缩子网(感觉中枢) │
│ │
│ ┌──────────────────────────────────────────┐│
│ │ 阶段 A(即时处理) ││
│ │ 输入产生时立即执行 ││
│ │ ││
│ │ ┌──────────┐ ┌──────────┐ ┌────────┐ ││
│ │ │ 多模态 │→│ 特征融合 │→│ 标签 │ ││
│ │ │ 编码器 │ │ (Attention)│ │ 生成器 │ ││
│ │ └──────────┘ └──────────┘ └────────┘ ││
│ │ ││
│ │ 输出:标签张量 → 立即发送给调度 Core ││
│ │ 原始数据 → 存入滑动窗口(保留一段时间) ││
│ └──────────────────────────────────────────┘│
│ │
│ ┌──────────────────────────────────────────┐│
│ │ 阶段 B(轮结束后执行) ││
│ │ Core 通知后触发 ││
│ │ ││
│ │ ┌──────────┐ ┌──────────┐ ┌────────┐ ││
│ │ │ 压缩编码 │→│ 张量化 │→│ 归档/ │ ││
│ │ │ (AutoEnc) │ │ (Tensor) │ │ 丢弃 │ ││
│ │ └──────────┘ └──────────┘ └────────┘ ││
│ │ ││
│ │ 处理目标:滑动窗口中的原始数据 ││
│ └──────────────────────────────────────────┘│
│ │
└──────────────────┬───────────────────────────┘
│
├── 阶段 A: 标签张量(即时) → 调度 Core
└── 阶段 B: 处理后数据(轮结束)→ 冷区存储/丢弃
滑动窗口机制
路由子网维护一个滑动窗口暂存原始输入数据:
| 参数 | 说明 |
|---|---|
| 窗口大小 | 最近 N 条输入(可配置,默认 10 条) |
| 保留时间 | 窗口内数据在本轮调度结束前均有效 |
| 触发清除 | Core 通知 flush_window() 后处理残留数据 |
| 数据用途 | 供 Core 调度中间再次提取详细特征 |
边界规则
| 规则 | 说明 |
|---|---|
| 唯一输入路径 | 所有外部数据必须经过此子网 |
| 不参与调度循环内部 | 路由子网不参与 Core 的内部记忆/推理循环(除非 Core 要求从窗口提取更多特征) |
| 两阶段处理 | 快速出标签 → 轮结束再处理原始数据 |
输入/输出
| 项目 | 说明 |
|---|---|
| 输入 | 原始多模态数据(图像/语音/文本)+ 控制张量(来自Core) |
| 输出 | 标准引用张量(发送给Core) |
| 输出格式 | 统一通信张量,fmt_id=0 (ref_tensor) |
| 压缩目标 | 10:1 ~ 100:1 压缩率 |
| 延迟目标 | 单次处理 < 50ms |
子网内部架构
┌──────────────────────────────────────────────┐
│ 路由与压缩子网 内部架构 │
│ │
│ 图像输入 ──→ ViT 编码器 ─┐ │
│ 语音输入 ──→ Wav2Vec ────┤ │
│ 文本输入 ──→ BERT ──────┤ │
│ │ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ 多模态特征融合层 │ │
│ │ Cross-Attention │ │
│ │ Transformer 交叉编码 │ │
│ └──────────┬──────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ 压缩编码器 │ │
│ │ Variational AE │ │
│ │ 或 Vector Quantized │ │
│ │ VAE (VQ-VAE) │ │
│ └──────────┬──────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ 张量编码层 │ │
│ │ 内部格式→统一通信张量 │ │
│ │ 拼接 fmt_id=0 前缀 │ │
│ └──────────┬──────────┘ │
└─────────────────────────┼─────────────────────┘
│
▼
标准引用张量输出
训练目标
目标 1:多模态特征提取能力
| 指标 | 目标值 | 说明 |
|---|---|---|
| 图像分类 Top-1 | ≥ 85% | 在 ImageNet 上 |
| 语音识别字错率 | ≤ 5% | 在 LibriSpeech 上 |
| 文本理解 F1 | ≥ 90% | 在 GLUE 基准上 |
| 多模态对齐准确率 | ≥ 92% | 跨模态检索任务 |
目标 2:高压缩率下的信息保留
| 指标 | 目标值 | 说明 |
|---|---|---|
| 压缩率 | 10:1 ~ 100:1 | 可配置,动态调整 |
| 重建质量 PSNR | ≥ 30dB | 图像重建 |
| 语义保留率 | ≥ 95% | 压缩前后语义相似度 |
| 信息瓶颈下界 | ≤ 理论下限的 110% | 接近最优压缩 |
目标 3:标准张量格式兼容性
| 指标 | 目标值 | 说明 |
|---|---|---|
| 张量编码精度损失 | ≤ 0.1% | 编码/解码循环误差 |
| 协议兼容率 | 100% | 与所有子网的标准张量协议兼容 |
| 编码延迟 | ≤ 5ms | 张量编码层处理时间 |
训练计划
阶段 1:对比学习预训练(单模态编码器)
目标:为每个模态预训练独立编码器
技术路线:
| 模态 | 模型 | 预训练方法 | 数据集 |
|---|---|---|---|
| 图像 | ViT (Vision Transformer) | SimCLR / MoCo v3 | ImageNet-1K, JFT-300M |
| 语音 | Wav2Vec 2.0 / HuBERT | 对比预测编码 (CPC) | LibriSpeech, CommonVoice |
| 文本 | BERT / RoBERTa | Masked Language Model | BookCorpus, Wikipedia |
训练步骤:
- 图像编码器:使用 SimCLR 对比学习预训练 ViT-Base,batch size 4096,训练 200 epochs
- 语音编码器:使用 HuBERT 自监督预训练,k-means 聚类作为伪标签,训练 400k steps
- 文本编码器:使用 RoBERTa 预训练,MLM 任务,训练 500k steps
- 评估:分别在下游任务上评估各编码器质量
阶段 2:知识蒸馏(编码器轻量化)
目标:将大模型能力蒸馏到轻量编码器
技术路线:
- Teacher-Student 蒸馏框架
- Teacher 模型:ViT-Large / HuBERT-Large / RoBERTa-Large
- Student 模型:ViT-Tiny / TinyHuBERT / DistilBERT
训练步骤:
- 冻结 Teacher 模型权重
- Student 模型学习 Teacher 的隐藏层输出(MSE loss)
- 同时学习 Teacher 的 attention map(KL divergence)
- 添加任务损失保持下游性能
- 目标:Student 参数量 ≤ Teacher 的 20%,性能 ≥ Teacher 的 95%
阶段 3:AutoEncoder 端到端训练
目标:训练压缩-重建网络,实现高压缩率下的信息保留
技术路线:
- 架构:VQ-VAE (Vector Quantized Variational Autoencoder)
- 或 改进版本:VQ-GAN (加入对抗损失)
训练步骤:
- 固定阶段1-2的编码器输出作为特征输入
- VQ-VAE 编码器将特征压缩到潜在空间
- 代码本(Codebook)大小为 8192,每个码字维度 64
- 解码器重建原始特征
- 损失函数:
- 重建损失: MSE(原特征, 重建特征)
- 码本损失: sg[encoder_output] - codebook + β * sg[codebook] - encoder_output
- 承诺损失: 鼓励编码器输出靠近选中的码字
- 训练 100 epochs,batch size 256
- 评估:在不同压缩率 (10x, 50x, 100x) 下测量重建质量
阶段 4:编码适配器训练
目标:训练编码层将内部张量转换为统一通信张量(拼接 fmt_id/parser_id 前缀)
技术路线:
- 可学习的线性投影层 + LayerNorm
- 维度对齐网络(Projection Head)
训练步骤:
- 定义统一通信张量的目标维度(payload 部分)
- 收集阶段3的 VQ-VAE 潜在表示作为训练数据
- 训练投影网络将内部张量映射到 payload 格式
- 实现编码适配器: payload + 拼接 [fmt_id=0, parser_id=0, padding..., data]
- 训练配套的解码网络(供其他子网使用)
- 验证编码/解码循环的一致性误差
阶段 5:联合端到端微调
目标:将前四个阶段整合,端到端微调路由子网
训练步骤:
- 构建完整的路由子网流水线:输入 → 编码 → 压缩 → 张量化
- 与记忆子网、逻辑子网联合训练(参看训练流程)
- 使用多任务损失: L_total = L_rec + L_semantic + L_tensor + λ * L_reg
评估指标体系
离线评估
| 指标 | 计算方法 | 目标 |
|---|---|---|
| 压缩率 | 原始数据大小 / 张量大小 | ≥ 10x |
| 重建 PSNR | 峰值信噪比 | ≥ 30 dB |
| 语义保留率 | cosine_sim(原语义向量, 重建语义向量) | ≥ 0.95 |
| 编码延迟 | 从输入到张量输出的时间 | ≤ 50 ms |
| 张量协议兼容性 | 编码/解码循环一致性 | ≥ 99.9% |
在线评估(与 Core 集成后)
| 指标 | 说明 |
|---|---|
| 信息缺失率 | Core 通知缺少信息时触发 |
| 冗余压缩率 | 引用张量中实际被使用的比例 |
| 多模态融合质量 | 下游任务表现的改善 |
技术难点与对策
| 难点 | 对策 |
|---|---|
| 不同模态特征空间不统一 | 使用 Cross-Attention Transformer 对齐特征分布 |
| 极端压缩下信息丢失 | 引入语义损失(对比学习) + 自适应压缩率 |
| 实时性要求高 | 编码器轻量化 + 量化加速(INT8) |
| 多模态时间同步 | 时间戳对齐 + 滑动窗口缓冲 |