机器之心 报道
人工智能领域再传捷报!近日,技术博主Hrishbh Dalal通过实践证明,仅需强化学习,7B参数的语言模型也能成功破解数独难题。而在这项突破中,DeepSeek公司开发的GRPO算法扮演了关键角色,最终助力模型在小型数独数据集上实现了高奖励和精准解答。
这一成果引发了业界对于语言模型在结构化问题解决能力上的新思考。Dalal在他的博客文章中详细阐述了他的开发思路,为我们揭示了如何通过强化学习,赋予语言模型解决数独这类需要结构化思维、空间推理和逻辑推理难题的能力。
挑战:语言模型与数独的“水土不服”
传统的语言模型擅长文本生成等开放式任务,但数独游戏对它们而言,却面临着诸多挑战:
- 规则严苛: 必须遵循每行、每列和每宫(3×3的小方格)包含数字1-9且不重复的规则。
- 格式固定: 需要保持一致的网格格式。
- 逻辑推理: 依赖逐步的逻辑推理。
- 空间关系: 需理解网格元素之间的空间关系。
正如Dalal所指出的,语言模型并非为结构化问题而生。它们的训练目标是预测文本,而非遵循逻辑规则或维持网格结构。然而,通过巧妙的方法,它们完全可以习得这些技能。
数据准备:从数值到网格的精细转换
为了训练模型,Dalal使用了来自Kaggle的包含400万个数独的数据集,其中涵盖了从简单到困难的各种难度级别。数据准备过程包含以下关键步骤:
- 加载和过滤: 使用kagglehub库下载数据集,并根据难度级别进行筛选。
-
难度分类: 根据线索数量,将数独分为四个难度级别:
- Level 1(非常简单):50-81 条线索
- Level 2(简单):40-49 条线索
- Level 3(中等):30-39 条线索
- Level 4(困难):17-29 条线索
- 格式转换: 将每个数独从最初的81个字符的字符串转换为具有适当行、列和框分隔符的网格格式,使其更易于模型理解。
-
提示词工程: 为每个数独设计精心制作的提示词,指示模型:
- 在
<think>标签中逐步思考解决方案。 - 在
<answer>标签中提供具有适当网格格式的最终答案。
- 在
Dalal特别强调,他创建了一个包含400个训练样本的聚焦数据集,主要使用更简单的数独来为学习构建基线。数据集规模较小,旨在测试模型使用有限样本的学习效率。
实验方法:强化学习与奖励机制的巧妙结合
Dalal选择探索强化学习,特别是DeepSeek开发的GRPO算法,来训练语言模型成为数独求解器。他实验了两种不同的模型大小:
- Qwen 2.5 7B Instruct:使用秩为 16 的 LoRA 进行微调。
- Qwen 2.5 3B Instruct:使用秩为 32 的 LoRA 进行微调。
值得注意的是,Dalal未使用任何冷启动数据或从大型模型中蒸馏的数据,而是从基础指令微调版模型开始,单纯使用强化学习。
强化学习的核心在于奖励函数。Dalal设计了一个多分量奖励系统,包含以下几个关键功能:
- 格式合规性奖励: 鼓励模型使用正确的
<think>和<answer>标签,并将推理过程与最终答案分开。 - 网格架构奖励: 评估模型维持正确网格结构的能力,包括正确的行数、分隔符位置等。
- 解答准确度奖励: 评估模型解答的准确性,完全正确的解答会获得高额奖励,部分正确的解答也会获得部分奖励,但前提是必须保留原始线索。
结论与展望
这项研究表明,通过巧妙的数据准备、强化学习算法和奖励机制的设计,语言模型完全可以胜任需要结构化思维和逻辑推理的任务。DeepSeek GRPO算法的成功应用,也为未来语言模型在更广泛领域的应用提供了新的思路。
未来,我们可以期待看到更多基于强化学习的语言模型,在解决复杂问题、进行科学研究等方面发挥更大的作用。
参考文献
- Hrishbh Dalal. Teaching Language Models to Solve Sudoku Through Reinforcement Learning. https://hrishbh.com/teaching-language-models-to-solve-sudoku-through-reinforcement-learning/
Views: 0
