复旦大学计算机学院、上海人工智能实验室和香港中文大学的研究人员推出Case2Code,旨在训练和评估大语言模型(LLMs)进行归纳推理。归纳推理是一种认知过程,通过观察例子或序列变化来推断潜在规则。在编程领域,这意味着让计算机通过观察输入输出(I/O)转换来学习编写代码。比如,你有一个计算机程序,它可以接受一些输入并产生一些输出。你想让计算机通过观察这些输入输出对来自己“学会”编写类似的程序。这就像是让计算机通过看别人如何解决问题来学习解决问题的技能。
- GitHub:https://github.com/choosewhatulike/case2code
- 论文:https://arxiv.org/abs/2407.12504
主要功能
- 归纳推理任务:通过观察输入输出对来推断程序的逻辑。
- 数据合成:自动生成大量的输入输出对,用于训练和评估LLMs。
- 训练LLMs:使用合成的数据训练LLMs,提高它们在归纳推理任务上的表现。
主要特点
- 多样性:收集了多种可执行程序,生成了多样化的输入输出转换。
- 大规模:通过自动化的方式生成了大规模的Case2Code训练样本。
- 低成本:相比于人工生成的数据,合成数据的成本更低。
- 无需污染:合成的数据避免了在训练过程中对模型的潜在污染。
工作原理
- 程序收集:从大规模数据集中收集可执行的程序代码。
- 输入生成:使用LLMs生成多样化的输入示例。
- 输出计算:通过代码解释器执行程序,获取对应的输出。
- 数据过滤:过滤掉无效的输入或程序,确保数据质量。
- 后处理:将程序及其对应的输入输出对转换为Case2Code风格的数据,用于训练LLMs。
具体应用场景
- 代码生成:在软件开发中,自动生成代码片段或整个程序。
- 程序理解:帮助计算机更好地理解程序的逻辑和功能。
- 教育工具:作为教学辅助工具,帮助学生通过例子学习编程。
- 自动化测试:生成测试用例,自动测试程序的正确性。
通过这些功能和特点,Case2Code任务展示了通过合成数据学习归纳推理的潜力,并为LLMs在编程领域的应用提供了新的可能性。
0条评论