小鹏 大模型算法 二面

1. 你做过的后训练项目里,最难解决的问题是什么

2. SFT 数据你怎么构造,怎样避免模型被训练“油了”

SFT 最大的问题不是量不够,而是数据风格太单一,最后把模型训成一种固定腔调:很会说、很圆滑、但信息密度低。构造数据时我一般会先按任务拆层,比如信息抽取、工具调用、复杂问答、拒答、安全、长文总结、结构化输出,每一层的目标都不一样。然后再做难度分桶,避免模型只见过简单样本。

另一个关键点是负面风格清理。很多数据表面上没错,但非常模板化,比如“这是一个非常好的问题,让我们一步一步分析”,这类东西在少量数据里没问题,规模一大就会把模型带偏。所以我会专门清掉这种“高礼貌、低信息”的样本,保留更接近真实生产环境的表达。SFT 不是教模型会说话,而是教它先把事做对。

3. 偏好数据怎么做,才能让 DPO 或 PPO 学到真正有用的东西

偏好数据最怕两件事:一是 chosen 和 rejected 的差异太明显,训练出来的模型只会做简单判断;二是标注标准漂移,最后学到的是标注员口味,不是业务目标。我一般会把偏好对分成几类来构造,一类是事实正确 vs 事实错误,一类是证据闭环 vs 证据不足,一类是工具选择合理 vs 路径脏,一类是表达清晰 vs 含糊冗长。

真正有效的数据,往往不是“一个特别好一个特别差”,而是“两个看起来都能用,但其中一个更稳、更可信”。这种样本更接近线上真实竞争态,也更能逼模型学细节差异。比如两个答案都答对了,但一个混用了旧政策,一个严格引用了最新规则,后者才应该是 chosen。

sample = {
    "prompt": "解释某公司利润改善原因",
    "chosen": "引用当季财报与经营数据,指出毛利率改善与费用率下降",
    "rejected": "泛泛而谈行业回暖,未绑定证据"
}

4. 奖励模型为什么容易学歪,线上怎么发现它学歪了

奖励模型最容易学到表面模式。比如回答更长、语气更稳、格式更像模板,分数就更高;或者只要多引用几段文本,看起来像“有依据”,它就给高分。但这些东西和真实质量并不总是正相关。尤其在复杂问答里,一个冗长但含混的答案,可能比一个短而准的答案危险得多。

线上发现它学歪,通常不是看离线 AUC,而是看 badcase 结构。比如开始频繁出现“答得很满但不落地”“过度拒答”“喜欢复述用户问题”“引用很多但结论不闭环”,这往往不是策略模型单独的问题,而是奖励模型在鼓励这些行为。这时候要回头查偏好数据分布和 reward 特征,而不是只调 PPO 超参。

5. 你怎么理解 DPO、IPO、KTO 这类方法的差别,实际怎么选

这几类方法本质上都在做偏好优化,但它们对样本形式和优化目标的处理不太一样。DPO 最常见,依赖 chosen / rejected 成对数据,训练直接、稳定性也不错;IPO 更强调隐式偏好优化,对噪声偏好对有时更稳一些;KTO 则更适合只有单边反馈、没有严格成对数据的场景,比如只有“这个回答值得保留”或“这个回答不太行”的弱反馈。

如果数据质量好、成对样本足够,我通常优先 DPO,因为最实用。要是业务里拿不到很规范的 pair,只能拿到点赞、点踩、转人工、停留时长这类信号,那就会考虑 KTO 这类更贴近弱监督的方案。不是哪个更先进,而是看你手里的反馈是什么形态。

6. PPO 训练里 KL 一直爆,你会怎么排查

KL 爆通常不是单一原因。第一反应要看 learning rate 和 reward scale,是不是 reward 给太猛了,模型为了拿高分直接偏离 reference。第二步看 rollout 分布,尤其 temperature、top-p、长度截断,如果采样出来的答案太散,策略更新就容易非常激进。第三步看 reward model 本身是不是有漏洞,比如某种固定句式会被异常偏爱。

我一般不会一上来就只加大 KL 系数,因为那往往只是把问题压住,不是真解决。比较稳的做法是先把 reward 标准化,优势归一化,再把采样温度收一点,同时检查高分样本是不是都长得很像。如果是,那就说明 reward model 在被模型钻空子。

def normalize_reward(rewards):
    mean = rewards.mean()
    std = rew

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

AI-Agent面试实战专栏 文章被收录于专栏

本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.

全部评论

相关推荐

03-28 08:35
已编辑
浙江大学 Java
好焦虑。 来jd三周了第一周三天培训,两天熟悉项目技术。第二周熟悉项目框架业务。第三周也就是这一周,做了一个从数据库提数进行业务计算的活,前两天在写sql,后两天在折腾低代码工作流。虽然这个低代码工作流是我提出的,因为纯sql太复杂了,不好排查问题。下周要做的也就是一些小需求,虽然我看同期排班其他正职的活看上去也没多核心。之前还担心会做一些不是很后端的而偏ai的,网上又说纯后端好。但是这些天下来,组里里面也都是Java后端,我倒是又想学一些偏ai的东西。组里有ai的感觉最多就是调接口。工作流是平台的低代码dify类似的,拉拉模块写写js、python脚本。这种体量公司,mcp都一键化了,写个Java接口秒变mcp,都用不着自己写。这周折腾sql和调低代码工作流,耗费心力,没什么技术含量,就靠时间磨。这周SQL确实精进了不少,从只会增删改查(甚至不熟练),到现在能看懂、能写复杂语句,可这点进步根本压不住心里的焦虑。低代码工作流这种东西,谁来上手都能会,毫无技术壁垒可言。今天跟产品沟通,她早就玩得比我熟练,还反过来教我看工作流日志,女朋友在产品实习,平时也用低代码工作流。越想越觉得压抑,一周下来,除了SQL,其他全是原地踏步。工作流节点一多平台就卡到崩溃,跟问AI等半天、报错反复改再等半天一样,磨人心志。搞这些真的很好费时间,不能好好学想学的东西。心里有点想学python那些agent应用开发,感觉是趋势,又判断不清后端的路是否还是很有前景。同时又想着骑驴找马,想准备八股算法去其他公司。还要包装产出。实在是迷茫往哪个方向准备。我想四月中旬开始投暑期。我不是很想留北京,我想回杭州或者上海。南方人在北京生活不习惯,没有归属感。求职好难,找个工作好难。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务