静态数据集的收益是递减的:同一份开源指令数据,被全网微调过一遍之后,再训也训不出差异化。头部产品的护城河正在从「一次性的预训练投入」转向「持续运转的数据飞轮」——用户在产品里的每一次采纳、每一次编辑、每一次重试,都是别人拿不到的训练信号;信号回流成数据,数据训出更好的模型,更好的模型留住更多用户,飞轮转速决定迭代速度。但把「用户反馈变成训练信号」这条链路工程化,坑比想象的多:信号有偏差,偏好对有噪声,飞轮本身还可能转出反效果。本文拆解飞轮的四个环节:采集、加工、训练、度量。
一、采集:显式信号与隐式信号
两类信号的口径设计
显式反馈是用户主动给出的:点赞、点踩、举报、评分。它的优点是意图明确,缺点是稀疏(多数产品点赞率不到百分之几)且偏差大(活跃用户与沉默用户的口味不同,赞踩比例受界面设计影响)。隐式反馈是行为里长出来的:代码助手的采纳率(GitHub Copilot 公开报告过采纳率从约 26% 提升到 30% 以上的过程指标)、用户对生成文本的编辑距离(改动越多说明质量越差)、重试率(同一问题多次重新生成是强负面信号)、会话长度与留存。隐式信号量大、连续、无表态成本,是飞轮的主燃料;显式信号是校准器——用少量高质量标注锚定隐式信号的含义。设计采集口径时的两条纪律:每个信号都要能回答「它代理了什么真实结果」;埋点在上线前过一遍「能不能还原成训练样本」的检查,采了但没法训练的信号是纯成本。
信号要过隐私关
用户交互数据用于训练有三道合规门槛。法律门槛:GDPR 与各国个人信息保护法下,会话内容常含个人信息,训练用途需要合法性基础与最小化处理。技术门槛:入库前的 PII 识别与脱敏(姓名、电话、账号、地址的正则与 NER 双通道过滤),开源数据集的泄露事故已经反复证明这一步不能省。信任门槛:隐私政策要明说「对话数据可能用于改进服务」,并给关闭开关——不透明地拿用户数据训练,一次曝光就是品牌事故。工程上的折中方案是把「数据价值」与「个人身份」解耦:入库的是「改写后的通用任务模板加偏好标签」,而不是原始对话。
flowchart TD
U["用户交互"] --> S1["显式反馈<br/>赞 / 踩 / 举报:稀疏但意图明确"]
U --> S2["隐式信号<br/>采纳率 / 编辑距离 / 重试率 / 留存:量大连续"]
S1 --> N["归因与对齐<br/>多轮会话定位到具体回复"]
S2 --> N
N --> P["PII 脱敏 + 去噪去重<br/>过滤误点与刷子行为"]
P --> P1["SFT 池:采纳样本 → 示范数据"]
P --> P2["偏好池:同 query 双响应 + 选择标签"]
P1 --> T1["拒绝采样 / SFT"]
P2 --> T2["DPO / RLHF"]
T1 --> M["新模型上线"]
T2 --> M
M --> U
M -.->|"讨好循环风险:<br/>讨好回答获赞 → 训得更讨好"| W["偏差监控:<br/>长度漂移 / 事实性抽检"]
二、加工:从信号到训练数据
SFT 池与偏好池的分工
信号要分成两个池子加工。SFT 池(示范数据):用户采纳或几乎无编辑的输出是「这样答是对的」的正样本,经过脱敏、去重、质量过滤后成为 SFT 或拒绝采样的原料——它的作用是强化已验证的好行为,数据干净比量大更重要。偏好池(对比数据):同一个 query 下的两个候选响应加上用户的选择标签构成偏好对,这是 DPO 与 RLHF 的原料。偏好对的构造有讲究:最强的一对来自真实场景的自然对照(同一用户重试前后、或一次请求多候选里用户选中的那个),弱的一对来自「好输出 vs 人工构造的差输出」——后者标签噪声大,因为「构造的差」与「真实的差」分布不同。一条经验配比:飞轮数据与通用保底数据按约二八开混合训练,纯飞轮数据训练会快速过拟合到当前用户群的口味,模型的通用性与安全性数据必须持续回放。
噪声与归因
反馈信号的信噪比是飞轮工程里最磨人的部分。显式侧的噪声来源:误点(用户想复制内容点到了踩)、表达不满但内容其实正确(用户怪模型没读懂他自己的错误前提)、刷子行为。隐式侧的归因更难:多轮对话里用户在第五轮离开,是第五轮的回答差,还是第二轮埋的雷?采纳了第三段的代码,是采纳了全部还是那一段?工程上的处理办法:显式信号挂到消息粒度(哪个回复被点),隐式信号做会话级粗归因并在训练时降权;重要决策(比如是否进偏好池)要求至少两种信号一致。飞轮的数据质量团队要接受一个设定:入库信号天然带两成以上的标签噪声,管道的每一步(去噪、配比、混合)都是在这个前提下做风险管理,而不是假装标签是干净的。
三、训练:把偏好变成参数
DPO 的位置
飞轮偏好对的标配训练方法是 DPO(直接偏好优化):不需要单独的奖励模型与强化学习循环,直接在偏好对上做带 KL 约束的对比损失,工程复杂度比完整 RLHF 低一个量级,适合高频迭代。数据格式是一个 JSONL 流水线:
{"prompt": "把这段会议纪要压缩成三条要点",
"chosen": "1. 预算追加 200 万已批准……",
"rejected": "好的,会议纪要的要点如下:首先……"}
训练侧的三个实操要点。其一,KL 约束强度(DPO 的 beta)决定新模型离参考模型的距离,飞轮高频迭代时 beta 要给足,否则几轮下来模型漂出安全区。其二,偏好对的质量分层:显式正反馈对降权使用(讨好偏差浓度高),隐式采纳对优先。其三,每次迭代跑固定的回归评测(能力、安全、格式三套),任何一项倒退超阈值就回滚数据配比重新调——飞轮的速度优势只有配上回归闸门才是优势,没有闸门的飞轮叫失控。
从飞轮到拒绝采样蒸馏
比偏好对更简单的用法是拒绝采样蒸馏:让当前模型对每个 query 生成多个候选,用反馈信号或验证器挑出最好的一个,把它当 SFT 数据训练下一代。这条路线省去了偏好标注,数据生成完全自动化,是「自我改进」类工作(从 STaR 到各家的推理模型迭代)的公共底座。它的天花板在验证器上:可验证领域(代码、数学、格式遵循)飞轮转得飞快,因为没有客观对错的主观任务(文案风格、创意写作)挑不出可靠的「最好」,只能依赖人工或 judge——验证器覆盖率决定了飞轮在哪些赛道能全速转。
四、风险:飞轮转出来的三种病
讨好循环
飞轮最著名的负反馈是 sycophancy 循环:用户偏爱顺着自己说的回答,点赞与低编辑率都奖励讨好行为,模型被训得更讨好,讨好行为获得更多正反馈——一个正反馈回路把模型推向「用户想听什么就说什么」。多个研究观察到 RLHF 训练后模型的可说服性(容易放弃正确答案)显著上升。飞轮必须装反讨好闸门:定期用事实性测试集(模型初始答案正确、用户提出错误主张的场景)抽检模型的坚持率;对「用户纠正后立即改口」的模式加权采样审计;事实类 query 的训练样本走人工或 judge 复核而非用户信号直通。
分布坍缩与探索丧失
飞轮训练隐含一个统计风险:模型越来越像「当前用户群喜欢的样子」,输出分布收窄——长尾请求的能力衰退、回答同质化(上一篇文章讨论的模型同质化问题在飞轮场景会自我强化)、以及探索行为的消失(模型不再尝试低频但更好的答法)。对策是持续回放多样性数据:通用指令数据、对抗性 query、以及刻意构造的「非主流风格」样本要保持一定配比。第三种病是自动化偏差的倒置——运营团队过度信任线上指标,飞轮「数据在涨、指标在涨」掩盖了质量衰退,直到公共基准的回归测试暴雷。这三种病的共同解药是同一个:飞轮必须跑在回归闸门与偏差监控的轨道上,速度是飞轮的奖励,不是它的目标。
五、度量:飞轮健康度的四项指标
飞轮需要自己的仪表盘,四个指标缺一不可。信号供给量:每周新增可用偏好对数量与 SFT 正样本量——决定训练迭代频率的上限,量级掉下来先查埋点与产品改动。信号有效率:入库样本经过滤后的留存比例——反映采集口径与去噪管道的健康度。迭代转化率:每轮飞轮数据训练后,目标指标(采纳率、解决率)的实际提升幅度——这是飞轮「转得值不值」的核心指标,若连续多轮低于噪声水平,说明信号信息量枯竭,需要换信号源而不是加大训练。覆盖增长率:信号覆盖的任务类型占生产流量类型的比例——衡量飞轮是在「复制头部」还是在「补齐长尾」。四项指标合起来回答一个管理问题:我们的产品反馈是否真的在变成模型能力,还是在空转。答案为否的团队,问题几乎总出在采集口径与归因质量上,而不是训练算法上。
小结
数据飞轮的工程本质是一句话:把「用户判断」低摩擦、低噪声地转化为「训练信号」,再用最快的回路喂回模型。四个环节各有命门。采集环节,隐式信号是主燃料、显式信号是校准器,每个信号必须能回答「代理了什么真实结果」,并且过得了 PII 与合规三道关。加工环节,SFT 池与偏好池分工明确,偏好对优先取自然对照,飞轮数据二八混通用数据回防过拟合。训练环节,DPO 配足 KL 约束、回归闸门不可省,可验证领域的拒绝采样蒸馏是转速最快的路线,验证器覆盖率决定飞轮的赛道。风险环节,讨好循环、分布坍缩与指标空转是三种必然出现的慢性病,闸门与偏差监控是唯一的解药。判断一个团队有没有真飞轮,不看它有没有点赞按钮,看它的四项健康度指标有没有人每天看——飞轮是运营出来的,不是画出来的。
读者留言
COMMENTS 暂无还没有留言,来说第一句?