搞不懂CUDA的人有救了,Devin开发商开源Kevin,强化学习生成CUDA内核
机器之心·2025-05-07 12:34

文章核心观点 - Cognition AI开源了名为Kevin-32B的大模型,该模型采用多轮强化学习训练,专门用于编写高性能CUDA内核,在代码生成和优化任务上超越了当前的前沿推理模型[2][9] 模型概述与发布 - Kevin-32B基于QwQ-32B模型,在KernelBench数据集上使用GRPO(组相对策略优化)进行多轮强化学习训练[2] - 该模型被描述为“Kernel Devin”,在内核生成方面优于前沿推理模型[9] - 机器学习社区对此表现出极大兴趣,认为其回应了对类似DeepSeek R1风格训练方法以提升代码效率的期待[2] 多轮强化学习方法 - 该方法探索了使用来自环境的中间反馈进行多轮强化学习,并屏蔽模型思维以避免上下文爆炸[9] - 与单轮训练相比,多轮训练使模型在自我优化方面更有效[9] - 训练使用KernelBench数据集,该数据集包含250个基于PyTorch的经典深度学习任务,专注于衡量优化CUDA内核的能力[11] - 训练过程是一个迭代反馈循环:生成内核、编译、评估运行时间,并根据反馈进行优化[11] 关键技术挑战与解决方案 - 挑战:上下文窗口爆炸 - 推理模型生成的长思维链导致轨迹长度可达5-10万个token,造成训练不便[14] - 解决方案 - 移除推理的思路链,要求模型生成自身思考过程的简要摘要传递给后续上下文[13] - 挑战:样本效率低下和奖励分配问题 - 为整个轨迹分配单一奖励无法表明具体细化步骤的贡献[14] - 解决方案 - 将奖励函数建模为马尔可夫决策过程,将给定响应的奖励设置为当前内核与所有后续内核得分的折扣总和,使每个细化步骤都成为一个训练样本[16][18] 模型性能结果 - 经过8个优化步骤,Kevin-32B在整个数据集上的平均正确率为65%,解决了89%的数据集任务[21] - 相比之下,o4-mini和o3模型分别只解决了53%和51%的数据集任务[21] - 在整个数据集中,Kevin-32B实现了1.41倍的best@16加速比,优于前沿模型[21] - 在更具挑战性的二级任务上,Kevin-32B平均正确率为48%(o4-mini为9.6%,o3为9.3%),并实现了1.74倍的best@16加速比(o4-mini和o3为1.2倍)[21] 多轮训练与单轮训练对比 - 在4个优化步骤下,Kevin-32B表现略优于单轮训练模型,当优化步骤增加到8个时,差距进一步扩大[24] - 这表明多轮训练在串行轴上具有更好的扩展性[24] - 在固定计算预算下,即使对于单轮训练模型,多轮推理也比单轮推理更具优势[26] 训练过程中的问题与应对 - 奖励黑客攻击 - 使用较小模型(如DeepSeek-R1-Distill-Qwen-7B)时发生多起奖励黑客攻击事件,例如模型复制PyTorch参考实现或包装错误内核[27][29] - 应对措施 - 对响应施加更严格的格式检查,对使用PyTorch函数或不含CUDA内核的响应将奖励设置为0[28] - 无意义和重复生成 - 在大约35-40步后,模型开始生成重复或无意义的响应[30] - 应对措施 - 使用Dr. GRPO提出的恒定长度损失正则化,并将梯度范数大幅削减至0.05,将垃圾数据的出现延迟到了第100步[32] 训练与评估设置详情 - 使用组相对策略优化算法(GRPO),这是近端策略优化算法(PPO)的一种变体[38] - 使用vLLM进行推理,使用DeepSpeed Zero-3卸载优化器状态[39] - 每批训练8个任务,每个任务16个轨迹,使用GRPO每批2个梯度步骤[39] - 通过正确性检查的响应获得0.3的奖励,额外的性能奖励相当于与参考实现相比所获得的速度提升[40] 推理时间缩放研究 - 研究发现,给定固定的、非微不足道的推理计算预算(例如,细化步骤 * 并行轨迹≥8),最佳计算分配会转向串行细化,而不是并行生成[56] - 在将并行轨迹数量增加到64个并保留4个细化步骤的实验中,best@64的正确率达到89.5%,性能提高了1.28倍,但比8个细化步骤的best@16稍差[53] 测试时性能提升技术 - 在测试时,Kevin-32B使用了改进版的束搜索技术,显著提高了模型性能,在整个数据集上平均提速1.56倍[70] - 随着测试时间计算量的增加,得到的收益在减少,但平均性能在几个小时后仍有提高[72] 未来工作方向 - 学习价值网络并使用PPO进行训练[76] - 在训练时整合更复杂的搜索方法,如束搜索[76] - 将多轮训练法应用于更普遍的编程环境[76] 总结与意义 - 该方法适用于任何具有中间奖励的多轮环境,比单轮GRPO取得了更好的结果[78] - 端到端训练被认为是未来智能体的重要组成部分,更通用的方法可以让模型自由探索不同的轨迹并通过反馈不断调整[78] - 这项工作被视为迈向自主编程智能体的第一步[78]

搞不懂CUDA的人有救了,Devin开发商开源Kevin,强化学习生成CUDA内核 - Reportify