【新智元导读】黑科技来了!开源LLM微调神器Unsloth近期更新,将GRPO训练的内存使用减少了80%!只需7GB VRAM,本地就能体验AI「啊哈时刻」。
李飞飞团队仅用16张H100训了26分钟,半岛彩票训出的模型就超越了o1-preview,震动业内。
甚至利用其训练方法GRPO,AI开源界开始了竞赛:看谁能用最少的成本,复现AI的「啊哈时刻」。
开源项目Unsloth AI带来了好消息,不用云服务,本地也能体验「Aha」 时刻:
没有看错:只需7GB VRAM的GPU,AI模型在本地就能体验「啊哈时刻」。
但体验过「Aha」时刻后,AI模型Phi-4就能完成这类问题:从无推理能力的模型,化身为DeepSeek-R1同款推理模式,带有原始思维链、展示推理过程的那种半岛彩票!
总之,如果现在你已经有输入和输出数据(比如问题和答案),但没有CoT或推理过程,那就可以见证GRPO创造的奇迹了——
此次,unsloth更新主要增强了对DeepSeek-R1-Zero强化学习训练方法的GRPO支持,减少了对内存的占用。
之前,GRPO仅支持完整微调,但现在已经能够与QLoRA和LoRA配合使用。
请注意,这并不是微调DeepSeek-R1蒸馏模型或用R1蒸馏数据进行调优(Unsloth已经支持)。实际上,此项目用GRPO将标准模型转化为「满血」的推理模型。
GRPO的应用场景:带有奖励机制的定制化推理模型,例如法律、医学等领域;其他需要显示推理链或思维过程的场景。
在使用纯粹的强化学习(RL)训练R1-Zero时,DeepSeek观察到了神奇的「啊哈时刻」——
在没有任何人类的指导或预定义的指令的情况下,模型竟开始重新评估其初始方法,学会了延长思考时间。
即便只使用GRPO对Phi-4做100步的训练,结果也一目了然:未使用GRPO的模型没有思考token,使用GRPO训练后的模型则具有思考token,而且得出了正确答案!
这种「啊哈时刻」表明,GRPO不仅帮助模型提升推理能力,还能让模型在没有外部提示的情况下,学会自我反思和调整,从而提高问题解决的质量。
回到「9.11和9.9哪个大?」的问题,没有GRPO训练前,Phi-4介绍了如何从左到右按位比较小数,坚持认为虽然十分位上19,但百分位上1>0,而9.9可以写作9.90, 所以:「9.11比9.90大」。
经过GRPO训练,Phi-4已经能正确分析回答此问题了,而且推理过程清晰,严丝合缝——
在推理过程中的第2步,基于十分位的比较,已经得出了正确答案;在第3步,依然比较了9.11和9.90的百分位半岛彩票,但这次AI模型发现比较百分位并不影响在第2步得出的结果。
GRPO是一种强化学习(RL)算法半岛彩票,与近端策略优化(Proximal Policy Optimization,PPO)不同,它不依赖值函数,能够更高效地优化模型的回答质量。
在项目的Notebook中,使用GRPO训练模型,能够自主发展出自我验证(self-verification)和搜索能力,从而创造出一个迷你「Aha 时刻」。
2 根据正确性或其他设定的奖励函数,对回答进行评分(不同于使用LLM作为奖励模型)
但是,GRPO(DeepSeek使用的算法)以及其他RL算法可以引导模型自动表现出推理能力,并创建推理轨迹。
RL不需要数据,相反需要精心设计的奖励函数或验证器。例如,如果它得到了正确答案,就给它打1分;如果有些单词拼写错误,就减0.1分。以此类推。
训练提示:耐心等待至少300步才能看到奖励分数的明显提升;为了确保最佳兼容性,请使用最新版本的vLLM。
Colab示例仅训练了1小时,结果较一般,要获得高质量结果,建议训练至少12小时(但可以随时停止)。
较小的模型可能无法生成思考token,建议至少使用1.5B参数的模型,正确生成「思考token」(thinking tokens)。
Unsloth现已内置GRPO训练损失跟踪功能,无需再使用外部工具(如wandb)。
除了新增GRPO支持,还增加了对Online DPO(在线直接偏好优化)、PPO(近端策略优化)和RLOO(强化学习偏好优化)的支持!
在TLDR数据集 ,他使用GPT 4o-mini作为判断模型,与原始模型(下图用绿色表示)相比,微调后的AI模型胜率都有所提升:Online DPO模型(下图用紫色表示)的胜率显著高于原始模型,并且比SFT模型(下图用红色表示)高出12%,充分证明了强化学习训练方法的有效性。
相比之下,标准的Llama 3.2(10亿参数模型) 需要50GB显存,但在尝试额外分配2GB显存时,会发生OOM(内存溢出)错误。更令人惊讶的是,即使在配备48GB显存的A40 GPU上,标准Llama也会直接崩溃。
更多详情,请参阅Keith的下列文章,半岛彩票其中包括如何让在线DPO正常工作更多细节。
另一位活跃的开源贡献者Joey,在X上也详细介绍了自己如何在Google Colab上实现GRPO变更的方法。
现在,在微调流程中,可以直接使用vLLM,这使得模型的吞吐量大幅提升,并且可以同时进行微调和推理。
而如果不优化内存管理,同时加载Unsloth和vLLM,会导致VRAM双倍占用,从而需要至少80GB VRAM才能运行。
1. 现在,vLLM可以加载Unsloth Dynamic 4-比特量化。就像Unsloth的1.58比特动态R1 GGUF一样,发现将某些层动态量化为4比特,将某些层动态量化为16比特,在减小模型规模的同时,显著提高精确度。
2. 对于RAM、VRAM效率和最大吞吐量(如分块预填充标记数、最大序列数等)等设置,还可以自动选择多个参数。在vLLM中默认启用-O3并启用前缀缓存。发现老GPU上的Flashinfer实际上要慢10%。FP8 KV缓存会让速度慢10%,但吞吐量会翻倍。
3. 在vLLM中通过解析状态字典,允许加载LoRA,而不是从磁盘加载——可以让GRPO训练运行速度提高1.5倍。半岛彩票在vLLM中直接编辑LoRA适配器,相关研究是否活跃。这可以大大提高速度,因为目前版本的算法还做了不必要的GPU数据移动。
4. vLLM会诡异地出现随机VRAM峰值,尤其是在批量生成时。为此在unsloth中,添加了批量生成功能,以减少内存峰值。
另外值得一提的是,Unsloth目前在Github上有2万多星,但核心团队Unsloth AI,只有两兄弟。
本文为澎湃号作者或机构在澎湃新闻上传并发布,仅代表该作者或机构观点,不代表澎湃新闻的观点或立场,澎湃新闻仅提供信息发布平台。申请澎湃号请用电脑访问。