在人工智能领域,让语言模型执行复杂的推理任务一直是一个挑战。最近,技术博主 Hrishbh Dalal 分享了一个有趣的实验,展示了如何使用强化学习(RL)训练一个 7B 参数的小型语言模型来解决数独难题。更令人惊讶的是,该模型仅通过规则奖励和 DeepSeek 开发的 GRPO 算法,在没有任何冷启动数据的情况下,成功地学会了玩数独。
数独的挑战
数独对语言模型提出了独特的挑战,因为它需要结构化思维、空间推理和逻辑推理。与开放式文本生成不同,数独需要:
- 遵循严格的规则(每行、每列和每宫必须包含数字 1-9,且不能重复)
- 保持一致的网格格式
- 应用逐步的逻辑推理
- 理解网格元素之间的空间关系
- 得出一个正确的解答
数据准备
Hrishbh 使用了来自 Kaggle 的包含 400 万个数独的数据集。数据准备过程包括以下步骤:
- 加载和过滤:使用 kagglehub 库下载数据集并根据难度级别过滤数独。
- 难度分类:根据线索数量,将数独分为四个难度级别:非常简单、简单、中等和困难。
- 格式转换:将每个数独从 81 个字符的字符串转换为具有适当行、列和宫分隔符的网格格式。
- 提示词工程:将每个数独封装在一个精心设计的提示词中,指示模型在
<think>
标签中逐步思考解决方案,并在 <answer>
标签中提供具有适当网格格式的最终答案。
实验方法
该实验探索了强化学习(特别是 GRPO)是否能让语言模型变成数独求解器。实验使用了两种不同的模型大小:Qwen 2.5 7B Instruct 和 Qwen 2.5 3B Instruct,并使用 LoRA 进行微调。值得注意的是,该实验没有使用冷启动数据或从 DeepSeek R1 等较大模型中蒸馏的数据,而是从基础指令微调版模型开始,单纯使用强化学习。
训练配置包括:
- 批量大小:1
- 梯度累积步骤:8
- 学习率:3e-4
- 最大部署:500
- 每 10 步评估一次
- 最大序列长度:3000 token
奖励系统
强化学习的核心是奖励函数。Hrishbh 设计了一个多分量奖励系统,具有以下功能:
- 格式合规性奖励:鼓励模型包含所有必需的标签(
<think>
和 <answer>
)并以正确的顺序出现。
- 网格架构奖励:评估模型维持正确网格结构的能力,奖励正确的行数、分隔符位置和分隔符使用。
- 解答准确度奖励:为完全正确的解答提供大奖励,并为部分正确的解答提供部分 credit。
- 规则合规奖励:检查每行、每列和每 3×3 宫是否有重复项,模型满足每个约束时都能获得一些奖励。
实验结果
实验结果表明,模型大小对学习稳定性和性能具有巨大的影响。7B 模型保持了稳定的完成长度,能生成格式一致的解答,奖励指标稳步提升,并在整个训练过程中保持了策略稳定性。而 3B 模型则表现不佳,训练期间出现灾难性的不稳定性,出现巨大的策略分歧,未能保持一致的性能,并最终崩溃无法恢复。
启示
该实验揭示了关于复杂推理任务的语言模型教学的几个重要启示:
- 最小规模阈值:对于某些任务,要实现稳定学习,对基础模型有最低的尺寸要求。
- 稳定性是学习的前提:模型需要保持稳定的训练动态才能取得稳步进展。
- 多成分奖励提供更好的指导:与单一的通过 / 失败信号相比,将奖励细分为格式合规性、规则遵守性和解题准确性有助于更有效地指导学习过程。
- 强化学习可以教授结构化思维:GRPO 成功地教会 7B 模型保持正确的格式并开始解题,这些技能并不是语言模型所固有的。
下一步
Hrishbh 计划通过以下步骤扩大实验范围:
- 增加难度:引入更具挑战性的谜题来测试模型的推理能力。
- 扩大计算规模:使用更多计算资源,进行更长时间和更大批次的训练。
- 探索模型架构:测试 7B 模型的 LoRA rank 32,看更高的 rank 是否能提高性能。
- 蒸馏法:从 DeepSeek R1 等大型模型中提炼出冷启动数据集,然后在此基础上应用 GRPO。
- 高级奖励函数:实施更细致入微的奖励机制。
- 评估框架:开发更复杂的评估指标,以评估推理质量,而不仅仅是解决方案的准确性。
总的来说,这个实验展示了强化学习在教语言模型执行复杂推理任务方面的潜力,并为未来的研究开辟了新的方向。