昨天都在喊过年了!kimi难得出技术报告,瞧瞧技术细节。
技术报告在这里:https://github.com/MoonshotAI/Kimi-k1.5
首先还是kimi一贯的宣传特色,长上下文,所以问题来了,如果我们给模型更长的《思考空间》,它是否能自然地学会规划和推理?
其次不得不说,这张图太会玩了。推理模型对比普通模型,AIME楞了好久(单指这张图)。
3个阶段:预训练&SFT -> RL -> Longshort
预训练
分3个子阶段,在Appendix B.4
简单来说
- 预训练阶段:先构建基础的语言模型,然后先单独训练视觉部分,不更新语言模型参数,然后解冻,最后将视觉:文本=30%训练
- 退火阶段:使用高质量的数据,合成数据训练。
- 训练长上下文, base设置到1,000,000,长度逐渐扩展,从4,096逐步扩展到32,768,最终达到131,072。长上下文数据比例控制在40%:60%
RL
分为2个阶段, 预热 & 强化学习
强化学习没有价值函数,没有蒙特卡洛,没有过程监督,仅仅根据结果监督。
如何构造一个高质量的数据?
-
多样性,覆盖领域广
-
难度均衡,如何评估难度?采样10次,算通过率,通过越高,难度越低,反之。
-
准确性,答案客观可验证。
-
应对reward hacking
-
排除易猜测问题,排除,选择题,是非题,基于证明的问题
-
去掉易破解问题,不推理,直接说答案,如果几次内就能对,太容易了
-
数据筛选
-
自动过滤, 根据推理过程,评估角度,图文角度来过滤
-
标签系统,领域,学科,分类均衡
-
特定领域特殊处理,如编程,数学
RL步骤:
- 预热:用一个小的验证过的long-cot数据微调。
- 强化学习
强化学习用到了一个部分Rollout的策略。用于处理长序列
比如说,假设有3个样本: A需要2000 tokens B需要500 tokens C需要300 tokens
要是等A结束,BC就有很多的浪费token,所以批处理效率低。部分Rollout,就是会指定一个最大长度,比如500,A生成500之后就停了,然后下次接着算。避免了长任务阻塞训练流程。
为啥不需要过程监督呢?他们觉着,模型探索错误路径也是有意义的,只要最终能得到正确答案,模型就能从错误中学习。
这里,没有价值函数估计advantage,直接用采样rewards均值作为baseline。
最后是,Longshort阶段
longcot已经很强了,但是有没有可能将长思维链转移到短思维链上。也就是,使用有限的token预算下提升性能。
看上图,一共有4种方式:
- 合并:将长短2个模型的权重平均一下
- 短采样:对一个问题采样8次,选最短的正确响应,微调
- dpo,选最短的正确响应最为positive, 长的不管是否正确作为negative
- rl,增加长度惩罚,减少rollout长度。