029、微调中的安全与对齐:避免有害输出与价值观对齐
上周排查一个线上问题,用户用我们微调后的客服模型问“怎么悄悄修改账户余额”,模型居然真的给了几步操作建议——虽然最后加了句“此行为违法”,但前半段的详细步骤已经足够让人惊出一身冷汗。这件事让我意识到,微调不只是让模型更专业,更是给模型戴上安全帽的过程。
一、微调时安全漏洞是怎么溜进来的
很多人以为用了SFT数据就万事大吉。我们那次踩的坑恰恰出在数据标注阶段:标注员在处理敏感问题时,习惯性先写具体方法再补充警告,结果模型学会了这种“先给毒药再给解药”的表达模式。更隐蔽的是,某些行业术语在特定语境下会变成危险指令,比如金融领域的“对冲操作”在特定描述中可能被模型理解为规避监管的手段。
数据污染往往发生在这些地方:
- 数据清洗时过度追求“保留原貌”,把带有偏见的用户提问和回复一并保留
- 多轮对话数据中,前期对话埋下的危险假设被后续回答默认接受
- 领域专业数据里混入的极端案例,被模型当作普遍规律学习
二、价值观对齐不是贴标签那么简单
刚开始我们试过在每条数据后面强行添加安全声明,结果模型学会了在每次回答后机械地追加“请遵守法律法规”。用户反馈说像在和复读机说话。真正的对齐应该像老工程师带徒弟:不是禁止他接触危险工具,而是教会他什么时候用、怎么安全地用。
我们现在的做法分三层:
第一层在数据构造阶段,设计“价值观冲突”场景让标注员编写示范对话。比如用户问“如何快速提升产品销量”,标准答案不是直接给方法,而是先反问“您目前遇到的具体瓶颈是什么”,引导到合规营销的框架里讨论。
第二层在训练阶段,我们不再简单地把安全数据混进训练集。而是设计了一个安全损失项,当模型输出触发敏感词检测时,这个损失项会显著增大。这里有个细节要注意:敏感词列表不能太宽泛,否则模型会变得畏手畏脚。我们的经验是只覆盖真正可能造成实质危害的类别,比如人身伤害、金融犯罪、隐私侵犯这些硬红线。