数据工程·多轮对话演化树
《AI 数据全书》· 第 22 章 · 多轮 Agent 交互数据多轮数据不是「一堆单轮拼接」,轨迹的天花板是环境。四个 Tab 各堵一个洞: 结构规则不满足,多轮数据直接变脏信号; 模板换了而 mask 逻辑没换,模型会学会自问自答; 上下文一致性是规则层只能抓住最明显那 30–50% 的活; 意图波动不是「上下文不够长」——信息还在窗口里、但已经过期了,外推与压缩都救不了。 三条结构规则、loss mask 边界、泄漏检查、两种平均、JSON Schema 校验、规则层一致性全部在浏览器里真算; Tab ② 的对话是规则模板生成(已明示),环境 Scaling Law 曲线是示意,13 种波动场景回源到论文原表。
🧮本 Tab 的三条结构规则、token 切分、两种平均与泄漏检查全部在浏览器里真跑,不是模拟动画。 分词是浏览器端近似 (中文按字、英文按空白与标点),不是真实 BPE——它只用来演示「mask 的边界落在哪」,真实训练必须按 tokenizer 的 vocabulary 对齐。
🧪脏样本库
🔍validate_messages 实时结果
1 处system#0
你是一个有用的助手。
user#1
帮我订一张机票
system#2
你现在是订票专员。
✗ system at position 2assistant#3
好的,请问出发地?
user#4
北京
assistant#5
已为您查询北京出发的航班。
🎭loss mask 逐 token 高亮
📖 §22.2.2🧮 真跑
<|start_header_id|>system<|end_header_id|>你是一个有用的助手。<|eot_id|><|start_header_id|>user<|end_header_id|>今天天气怎么样?<|eot_id|><|start_header_id|>assistant<|end_header_id|>我需要查询天气数据。请问你在哪个城市?<|eot_id|><|start_header_id|>user<|end_header_id|>北京<|eot_id|><|start_header_id|>assistant<|end_header_id|>北京今天晴,最高温度25°C。<|eot_id|><|start_header_id|>user<|end_header_id|>明天呢?<|eot_id|><|start_header_id|>assistant<|end_header_id|>明天多云,最高23°C,风力3级,空气质量良,适合出行,记得带伞以防阵雨。<|eot_id|>
assistant 正文 · 正确算 lossassistant 正文 · 被漏掉非 assistant · 被算进 loss(泄漏)模板 token · 被算进 loss条件部分(不计 loss)
总 token
121
算进 loss
69
泄漏 token
0
模板 0 / 其他 0
漏算 token
0
泄漏检查(零模型)
✓ 通过
Δ=0.000000
🧠第三层 mask:教师推理标注(Thought)计不计 loss
📖 §22.2.2 末🧮 真算
上面两张卡片的粒度停在「assistant vs 非 assistant」;这一层在 assistant 输出内部再切一刀。 下方每轮 assistant 的 Thought 区段即教师推理标注, 开关切换它是否进入监督区间——被 mask 的 Thought 仍保留在上下文里,只是不计 loss。
<|start_header_id|>system<|end_header_id|>你是航班预订助手。<|eot_id|><|start_header_id|>user<|end_header_id|>帮我把下周三去西安的机票改成早班。<|eot_id|><|start_header_id|>assistant<|end_header_id|>用户要改签,需要