终于,我的博士论文的最后一篇 🧮 在13个参数中学习推理 🧮 我们开发了TinyLoRA,一种新的微调方法。使用TinyLoRA + RL,模型可以在数十或数百个参数下良好学习 例如:我们仅使用13个参数将7B Qwen模型的GSM8K从76%训练到91% 🤯
我喜欢一篇2018年的论文,名为《用六个神经元玩Atari》。它为强化学习可以学习一些只需很少字节的“程序”奠定了先例。 然而,如今人们通常进行的最小微调是使用rank=1的LoRA,这仍然使用了数百万个参数... 🤔
我们之所以走到这一步,是在思考什么样的“程序”可以教会 LLaMA 或 Qwen 推理。3 百万参数的 bf16 占用 6 MB。这似乎太大了? 我们的理论是:如果每个 RL 事件大约传输 1 位,我们应该能够用更少的数据编码,例如 GSM8K...
请注意,这 *不适用于* SFT。基本上,要完全最小化 SFT 的损失,您必须以 100% 的信心记住所有输出令牌。这需要更多的位数。 因此,我们需要更大的更新大小来使 SFT 模型达到良好的性能: (在第 3 节中有更多内容)
这不仅仅是GSM8K或任何特定模型的一个特征 在我们尝试的所有数据集上(MATH、AIME、Minerva...),通过训练数百个参数,我们能够恢复超过90%的性能提升(除了AMC,有时需要数千个参数)
一个有趣的工程细节是,使用不同的 LoRA 形状进行 RL 实际上很困难,因为 LLM RL 需要快速推理,这需要硬件级别的实现(内核) 我通过在每次回合中合并 LoRA 权重,然后在训练时再拆分它们来解决这个问题。实际上并没有那么慢。论文中有更多细节,代码也会很快分享。
107