作者: Chengshu Li, Jacky Liang, Andy Zeng, Xinyun Chen, Karol Hausman, Dorsa Sadigh, Sergey Levine, Li Fei-Fei, Fei Xia, Brian Ichter
提交/修订日期: 2023年12月7日提交,2024年7月29日修订 (v4)
摘要/简介:
代码提供了一种通用的语法结构来构建复杂程序,并在与代码解释器配对时执行精确计算。本文假设语言模型(LMs)可以利用代码编写来改进思维链推理,不仅适用于逻辑和算术任务,也适用于语义任务(特别是那些混合了逻辑和语义的任务)。例如,考虑提示一个语言模型编写代码来计算在一篇文章中检测到讽刺的次数:模型可能难以编写一个可以被解释器执行的 detect_sarcasm(string) 实现(处理边缘情况将是不可逾越的)。然而,如果语言模型不仅编写代码,还能通过生成 detect_sarcasm(string) 的预期输出,选择性地“模拟”解释器,那么它们仍然可以产生有效的解决方案。
在这项工作中,我们提出了代码链,这是一个简单但出奇有效的扩展,用于改进语言模型的代码驱动推理。其核心思想是鼓励语言模型将程序中的语义子任务格式化为灵活的伪代码,解释器可以明确捕获未定义的行为,并将其移交给语言模型进行模拟(作为一个“LMulator”)。实验表明,代码链在多种基准测试中优于思维链和其他基线方法;在 BIG-Bench Hard 上,代码链达到了 84% 的准确率,比思维链高出 12%。简而言之,代码链通过“用代码思考”,拓宽了语言模型能够回答的推理问题的范围。
主题/分类:
- 计算与语言 (cs.CL)
- 人工智能 (cs.AI)
- 机器学习 (cs.LG)
- 机器人学 (cs.RO)
备注: ICML 2024 口头报告;项目网页:https://chain-of-code.github.io