大模型上线并不意味着能力建设结束。真实用户的问题远比训练集复杂:业务规则持续变化,输入分布不断漂移,RAG、工具和 Prompt 也会频繁升级。模型在离线评测中表现良好,进入生产环境后仍可能出现幻觉、格式错误、工具误调用和安全误判。

这些线上失败既是问题,也是改进模型和系统的重要数据来源之一。通过采集反馈与执行轨迹、定位失败原因、挖掘高价值样本,再经过标注、训练、评测和灰度发布,系统可以把真实问题持续转化为经过验证的能力提升。

这就是数据飞轮:不是让模型直接学习所有用户日志,而是建立一条从“线上失败”到“验证后改进”的可控闭环。

要理解数据飞轮,可以先记住四个结论:

  1. 用户反馈只是原始信号,并不等于训练标签;
  2. 高价值难例通常比大量普通样本更有训练价值;
  3. 训练集与评测集必须隔离,否则指标会被数据污染;
  4. 数据飞轮优化的是整个 LLM 系统,不只是模型参数。

数据飞轮把线上反馈转化为数据、模型和系统能力

为什么需要数据飞轮

模型训练完成后,参数和能力基本固定,但生产环境始终在变化。可以将这种差异理解为:

1
训练分布 P_train(x) ≠ 持续变化的生产分布 P_prod(x, t)

随着时间推移,用户表达方式、任务复杂度和业务规则都会发生变化;Prompt、RAG、工具接口和安全策略的升级,也可能引入新的失败模式。公开 Benchmark 能衡量模型的通用能力,却无法完整覆盖真实业务中的数据分布和系统链路。

因此,模型上线后仍需持续解决三个问题:

  1. 发现问题:模型在哪些真实任务和系统环节中失败;
  2. 选择数据:哪些样本具有足够的训练价值和业务影响;
  3. 验证改进:新版本是否修复问题,同时保持原有能力与安全边界。

数据飞轮通过“观测、归因、优化、验证”闭环,将线上问题转化为持续改进

从上图可以看出,数据飞轮真正建立的不是一条简单的“日志到训练”链路,而是一套让 LLM 系统持续发现问题、选择正确优化方式并验证改进结果的工程机制

从反馈到高质量数据

线上日志只是带有噪声的行为记录,并不能直接作为训练数据。它需要依次经过任务轨迹还原、隐私治理、失败归因和价值筛选,才能转化为可训练、可评测的数据资产。

采集完整任务轨迹

仅记录“用户问题和模型回答”无法判断问题根因。一次错误可能来自 Prompt、RAG、模型生成、工具执行或安全策略,因此需要用 Trace 串联完整任务链路。

信号类型 典型内容 主要作用
用户反馈 点赞、点踩、修改、重新生成 识别主观偏好与明显错误
行为信号 放弃、复制、任务完成、人工接管 判断回答是否真正解决问题
模型信息 模型、Prompt、采样参数版本 复现当时的生成环境
RAG 轨迹 Query、召回文档、Rerank 分数 判断知识是否正确召回
工具轨迹 工具名称、参数、返回值、错误码 定位选择和执行错误
校验结果 格式、安全、引用、执行验证 提供可自动判断的质量信号

一个简化的 Trace 可以表示为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"trace_id": "trace_1024",
"input_redacted": "...",
"model_version": "model_v8",
"prompt_version": "prompt_v12",
"retrieval": {
"query": "...",
"knowledge_base_version": "kb_v6",
"retriever_version": "retriever_v3",
"reranker_version": "reranker_v2",
"document_ids": ["doc_17", "doc_28"]
},
"tool_calls": [{
"name": "query_order",
"tool_version": "order_api_v4",
"arguments": {"order_id": "..."},
"status": "failed",
"error_code": "INVALID_ARGUMENT"
}],
"policy_version": "policy_v5",
"response": "...",
"user_feedback": "negative",
"task_outcome": "failed"
}

其中,模型、Prompt、知识库、工具和策略版本都需要记录。否则即使保留了输入输出,也很难复现当时的系统行为,更无法判断后续修改是否真正解决了问题。

清洗、脱敏与数据分层

Trace 中可能包含个人信息、企业机密、访问凭证、恶意指令和大量重复内容,必须经过治理后才能进入数据集。

线上日志必须经过权限、质量和标注治理,才能进入训练与评测

如上图所述,这部分核心的处理如下:

  1. 隐私脱敏:移除姓名、手机号、密钥、Token 和内部敏感字段;
  2. 内容过滤:识别 Prompt Injection、恶意输入和无效会话;
  3. 重复治理:使用精确 Hash、MinHash、SimHash 和向量聚类处理近重复样本;
  4. 数据血缘:记录来源、权限、处理步骤、标注方式和版本信息;
  5. 来源标记:区分人工数据、真实用户数据和模型生成数据;
  6. 评测隔离:按用户、会话、文档和时间分组切分,防止相似样本同时进入训练集与评测集。

Raw Zone 应限制访问并设置保留周期;Curated Zone 用于分析和挖掘;Gold Zone 则保存通过审核、可以进入训练或评测的数据。每次转换都需要可追踪、可复现。

难例挖掘

难例(Hard Example)是当前模型容易失败或表现不稳定的样本;其中,根因明确、标签可靠且能代表同类问题的高价值难例,通常比大量重复的普通样本更能提供有效的训练信号。一个简化的样本优先级可以表示为:

1
2
3
4
5
6
7
8
priority(x) =
w1 × failure_score
+ w2 × uncertainty
+ w3 × business_impact
+ w4 × novelty
+ w5 × verifier_failure
- w6 × duplicate_score
- w7 × label_noise

各项含义如下:

  • failure_score:任务是否失败、是否收到明确负面反馈;
  • uncertainty:Token 概率熵、多次采样分歧或多个 Judge 评分分歧;
  • business_impact:问题对交易、安全或核心流程的影响;
  • novelty:样本是否代表训练集中未覆盖的新分布;
  • verifier_failure:代码测试、引用校验、规则检查是否失败;
  • duplicate_score:与已有数据的重复程度;
  • label_noise:问题是否模糊、冲突或难以形成可靠标签。

需要注意,这些信号的取值范围并不相同。例如,任务失败可能是 0/1,业务影响可能是 1~5,而模型熵和重复度又有各自的数值范围。因此,在加权计算之前,需要先将各项信号归一化到统一尺度。权重也应根据标注通过率、业务影响和下游训练收益持续校准,避免多个高度相关的信号被重复计分。成熟系统还可以使用 Learning-to-Rank 模型代替固定权重,对候选样本进行排序。

难例挖掘综合失败、影响、不确定性和新颖度,而不是只依赖用户点踩

需要注意,高不确定性不一定代表高训练价值:它也可能来自问题本身存在歧义或标签错误。因此,难例必须经过归因和可标注性检查。同时,训练数据中还要保留一定比例的正常样本、历史能力样本和安全样本,避免模型过度拟合少数失败场景。

难例挖掘的目标不是简单收集“模型不会的问题”,而是找到那些根因明确、标签可靠、具有业务价值,并且训练后能够泛化到同类任务的样本。

数据如何转化为模型能力

线上样本经过清洗和难例筛选后,仍不能直接用于训练。它还需要完成三个步骤:把反馈转成可靠标签、选择匹配的训练目标,并通过数据混合控制能力提升的方向。

自动标注与人工审核

不同任务的“正确答案”并不相同。代码可以运行测试,结构化输出可以校验 Schema,而开放问答和用户偏好通常需要模型或人工判断。

确定性任务优先使用执行结果,模糊和高风险任务交给人工审核

不同数据类型,主要的标注方式如下表所示:

数据类型 主要标注方式
可执行代码、可验证 SQL、答案确定的数学题 编译器、测试用例、执行器
JSON、函数参数 Schema、类型和业务规则校验
开放式回答 多个 Judge 按统一 Rubric 评分
回答偏好 人工或用户进行 Pairwise 排序
法律、医疗、安全 领域专家审核
Agent 轨迹 工具结果、任务状态和最终结果联合判断

自动标注并不意味着完全取消人工参与。系统需要记录标注模型、Prompt、规则和版本,并将低置信度、模型间分歧以及高风险样本交给人工复核。评测集还应独立抽样和严格审核,与训练数据保持隔离,避免评测结果失真。

除了为真实样本生成标签,LLM 还可以根据少量种子数据扩展新的指令、问题和答案,这类方法通常称为合成数据生成Self-Instruct 就展示了“模型生成指令、过滤后再用于训练”的技术路线,可以降低大规模人工构造数据的成本。但合成数据更适合补充真实数据,而不是完全替代用户反馈和专家样本。如果模型未经验证地反复学习自身生成的内容,错误和分布偏差可能持续累积,造成长尾信息丢失和模型能力退化,即“模型坍塌”(参考:AI models collapse when trained on recursively generated data)。

不同数据对应不同训练目标

数据结构决定了模型获得什么监督信号,也决定了应该采用哪种训练方法。

数据形式 训练方式 主要作用
领域原始文本 持续预训练 学习领域语言与知识分布
指令与标准答案 SFT 学习任务行为、格式和表达
Chosen / Rejected DPO、RLHF 学习人类偏好和行为边界
Agent 执行轨迹 轨迹微调、过程监督 学习工具选择和多步执行
安全攻击与拒答样本 Safety SFT、偏好训练 调整安全边界

SFT 使用标准答案进行最大似然训练:

1
L_SFT(θ) = -Σ_{t=1}^{T} log π_θ(y_t^* | x, y_{<t}^*)

其中,y_t^* 表示标准答案中的第 t 个 Token。在指令微调中,通常只计算回答部分的 Loss,Prompt 和 Padding Token 会通过 Loss Mask 排除。

它会提高模型在输入 x 下生成目标答案 y* 的概率,适合稳定指令遵循、输出格式和领域表达。偏好数据通常表示为:

1
(x, y+, y-)

其中 y+ 是更优回答,y- 是较差回答。RLHF 通常先训练奖励模型,再通过强化学习优化策略;DPO 则直接学习两个回答之间的偏好差异:

1
2
3
4
Δθ   = log πθ(y+|x)   - log πθ(y-|x)
Δref = log πref(y+|x) - log πref(y-|x)

L_DPO = -E log σ(β × (Δθ - Δref))

πref 是冻结的参考模型,用于防止模型行为偏移过大;β 控制偏好优化与参考模型约束之间的权衡。简单理解:

  • SFT 告诉模型“应该怎样回答”;
  • DPO/RLHF 告诉模型“两个回答中哪个更好”;
  • 过程监督为推理或执行过程中的中间步骤提供质量信号,帮助模型学习哪些规划、动作和状态转换更合理。

数据混合与能力保持

持续训练不能只使用最新失败样本。否则模型可能过度适配少数场景,并造成通用能力下降或安全边界退化。训练数据通常来自多个数据分布:

1
2
3
4
5
6
7
8
p_train(x) =
λ1 × p_replay(x)
+ λ2 × p_new(x)
+ λ3 × p_hard(x)
+ λ4 × p_safety(x)
+ λ5 × p_domain(x)

Σ λi = 1

这里描述的是训练时的采样概率:

  • replay:历史高质量数据,用于保持原有能力;
  • new:最新线上数据,用于适应输入分布变化;
  • hard:高价值难例,用于修复明确能力缺口;
  • safety:攻击、拒答和边界样本;
  • domain:垂直领域任务和专业表达。

当不同数据集规模差距很大时,还可以使用温度采样:

1
p_i = n_i^α / Σ n_j^α,0 < α < 1

其中,n_i 是第 i 个数据源的样本规模。直接按数据量采样时,大规模数据源可能主导训练;设置 α < 1 可以压平不同数据源之间的规模差异,提高小规模数据源的相对采样概率(需要注意:这一方法只能平衡数据规模,不能自动判断数据价值;样本质量仍需通过质量评分、业务影响或梯度贡献单独衡量)。

各类数据权重不应长期固定,而应根据回归评测中的能力缺口动态调整。同时,可以利用梯度相似度、影响函数或代理模型评分,估计样本对目标能力的贡献。LESS 就使用低秩梯度特征选择更相关的指令数据。

因此,从数据到能力的关键不在于“训练了多少数据”,而在于标签是否可靠、训练目标是否匹配,以及数据混合是否保持了模型整体能力。

持续评测与发布闭环

训练完成不代表飞轮闭合。只有新版本经过评测、灰度并产生真实收益,数据才真正转化为能力。

数据、模型、评测和发布都需要版本化,并支持快速回滚

评测体系至少要覆盖:

  1. 数据质量:标注一致率、抽检通过率、重复率和任务分布覆盖率;
  2. 数据安全:敏感信息残留率、异常样本率,以及训练集与评测集重合率;
  3. 目标能力:任务成功率、准确率、格式通过率和偏好胜率;
  4. 能力回归:通用问答、代码、推理和原有业务能力是否下降;
  5. 系统质量:RAG 忠实度、工具成功率和 Agent 完成率;
  6. 安全边界:攻击成功率、越权访问、过度拒答和敏感信息泄露;
  7. 工程指标:TTFT、Token/s、推理成本、错误率和资源占用;
  8. 业务结果:问题解决率、人工转接率、用户修订率和任务完成率;
  9. 飞轮效率:问题修复周期、单位有效样本成本,以及每千条有效数据带来的指标提升。

评测集需要按用户、会话、模板和时间进行隔离,并对训练数据做近重复检测。固定 Golden Set 用于长期能力回归,滚动评测集(Rolling Eval Set)用于覆盖最新线上问题;发布阶段的 Shadow Deployment 则用于复制真实流量,在不影响用户的情况下验证新版本。

生产环境通常采用“周期性离线训练 + 持续线上评测”,而不是让模型直接根据单个用户反馈在线更新。这样才能保证数据可审计、模型可复现、问题可回滚。

生产边界与未来演进

数据飞轮不会天然向正方向运转。线上反馈本身带有噪声和偏差,如果数据来源、失败归因或评测机制不可靠,闭环反而可能持续放大错误。

核心风险 典型表现 主要治理方式
反馈偏差 少数极端用户主导数据分布 多信号融合、分层采样
错误归因 将检索或工具故障当成模型问题 保存完整 Trace,进行根因分类
数据投毒 恶意输入被收录为训练样本 来源校验、异常检测、隔离审核
奖励投机 模型迎合评分,但没有真正完成任务 引入执行结果和业务指标
灾难性遗忘 新能力提升,原有能力下降 Replay 数据与全量回归评测
评测污染 测试样本进入训练集 数据血缘、分组切分和版本隔离
合成数据退化 输出趋同,长尾信息逐渐丢失 保留真实数据并加强质量验证
隐私泄露 用户或企业信息进入模型参数 授权、脱敏、访问控制与审计

未来,数据飞轮将从简单的“收集反馈再训练”,逐步演进为更精细的持续优化系统:

  1. 数据选择更精准:结合不确定性、梯度影响、样本新颖度和业务价值选择数据;
  2. 反馈粒度更深入:从最终回答扩展到 Agent 的规划、工具调用和完整执行轨迹;
  3. 验证机制更可靠:由规则、执行器、多个 Judge 和人工专家共同验证标签;
  4. 训练策略更动态:根据评测暴露的能力缺口,调整数据配比和训练课程;
  5. 优化范围更完整:同时改进模型、Prompt、RAG、工具、安全策略和推理系统。

一个成熟的数据飞轮应当具备三个特征:线上信号可以追溯,训练数据可以解释,模型更新可以验证和回滚。

数据飞轮的价值不在于持续积累更多日志,而在于建立一条从真实问题到可靠改进的工程链路:发现失败、定位根因、构造数据、优化系统,并通过评测和灰度发布把改进安全地带回生产环境。

一句话概括:数据飞轮让大模型的每一次真实失败,都有机会转化为下一次经过验证的能力提升。