CodeIt: Self-Improving Language Models with Prioritized Hindsight Replay
作者: Natasha Butt, Blazej Manczak, Auke Wiggers, Corrado Rainone, David W. Zhang, Michaël Defferrard, Taco Cohen
分类: cs.AI, cs.CL, cs.LG
发布日期: 2024-02-07 (更新: 2024-07-01)
备注: ICML'24 camera-ready version
🔗 代码/项目: GITHUB
💡 一句话要点
提出CodeIt以解决ARC基准的程序合成问题
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 程序合成 自我改进 神经符号方法 优先经验重放 抽象与推理语料库
📋 核心要点
- 现有大型语言模型在ARC等基准测试中表现不佳,尤其在程序合成任务上面临奖励稀疏性的问题。
- 本文提出的CodeIt方法通过程序采样和后见重标定,结合优先经验重放,旨在提升模型的自我改进能力。
- 实验结果显示,CodeIt在ARC数据集上成功解决了15%的任务,超越了现有的神经和符号基线,展现出良好的跨任务泛化能力。
📝 摘要(中文)
大型语言模型在解决被认为需要人类级推理能力的任务上表现越来越好。然而,这些模型在一般智能基准测试(如抽象与推理语料库ARC)上仍表现不佳。本文将ARC视为一个示例编程问题,提出了一种新颖且可扩展的自我改进方法,称为代码迭代(CodeIt)。该方法通过程序采样与后见重标定、优先经验重放的学习迭代,成功应对程序合成中的奖励稀疏性。实验表明,结合优先后见重放、预训练和数据增强,CodeIt在ARC数据集上实现了成功的跨任务泛化,首次将神经符号方法扩展到完整的ARC评估数据集,解决了15%的ARC评估任务,达到了最先进的性能,超越了现有的神经和符号基线。
🔬 方法详解
问题定义:本文旨在解决大型语言模型在抽象与推理语料库(ARC)基准测试中的程序合成问题,现有方法在奖励稀疏性方面存在显著不足,导致模型性能不佳。
核心思路:提出的CodeIt方法通过程序采样与后见重标定的迭代过程,结合优先经验重放,旨在有效利用稀疏奖励信息,提升模型的学习效率和效果。
技术框架:整体流程包括两个主要阶段:第一阶段为程序采样和后见重标定,第二阶段为从优先经验重放中学习。通过这种迭代,模型能够不断优化其输出。
关键创新:CodeIt是首个能够扩展到完整ARC评估数据集的神经符号方法,创新性地结合了后见重标定和优先经验重放,显著提升了模型在程序合成任务中的表现。
关键设计:在参数设置上,采用了优先经验重放机制以优化学习过程,损失函数设计上则考虑了重标定后的目标输出,确保模型能够更好地适应稀疏奖励环境。
🖼️ 关键图片
📊 实验亮点
实验结果表明,CodeIt在ARC评估任务中解决了15%的问题,达到了最先进的性能,超越了现有的神经和符号基线,展现出显著的跨任务泛化能力。
🎯 应用场景
该研究的潜在应用领域包括自动编程、智能助手和教育工具等,能够帮助提升机器在复杂任务中的推理和学习能力,未来可能对人机协作和智能系统的开发产生深远影响。
📄 摘要(原文)
Large language models are increasingly solving tasks that are commonly believed to require human-level reasoning ability. However, these models still perform very poorly on benchmarks of general intelligence such as the Abstraction and Reasoning Corpus (ARC). In this paper, we approach ARC as a programming-by-examples problem, and introduce a novel and scalable method for language model self-improvement called Code Iteration (CodeIt). Our method iterates between 1) program sampling and hindsight relabeling, and 2) learning from prioritized experience replay. By relabeling the goal of an episode (i.e., the target program output given input) to the realized output produced by the sampled program, our method effectively deals with the extreme sparsity of rewards in program synthesis. Applying CodeIt to the ARC dataset, we demonstrate that prioritized hindsight replay, along with pre-training and data-augmentation, leads to successful inter-task generalization. CodeIt is the first neuro-symbolic approach that scales to the full ARC evaluation dataset. Our method solves 15% of ARC evaluation tasks, achieving state-of-the-art performance and outperforming existing neural and symbolic baselines. Our code is available at https://github.com/Qualcomm-AI-research/codeit .