在浩瀚的代码海洋中,AI 智能体就像初出茅庐的航海家,渴望探索未知的宝藏。然而,面对复杂的编程任务,他们常常迷失方向。今天,就让我们跟随“反思”的灯塔,见证 AI 智能体如何通过语言的力量,点亮智慧的明灯,成为代码世界的征服者!
🤔 智能体的困境
近年来,大型语言模型(LLM)在与外部环境(如游戏、编译器、API)交互的领域中大放异彩,化身为目标驱动的智能体。然而,传统的强化学习方法如同一位严苛的训练师,需要大量的训练样本和昂贵的模型微调,才能让这些语言智能体从试错中学习。面对这“蜀道难,难于上青天”的挑战,我们不禁要问:难道就没有更轻松、更高效的学习方法了吗?
答案是肯定的!
✨ 反思:语言的馈赠
本文将为您揭开“反思”(Reflexion)的神秘面纱。这是一种全新的框架,它不像传统方法那样通过更新权重来强化语言智能体,而是通过语言反馈,引导智能体自我提升。
想象一下,一位经验丰富的导师,在学生遇到困难时,不是直接给出答案,而是用启发性的语言引导学生思考,帮助他们找到解决问题的方法。反思框架正是扮演了这样的角色。
具体来说,反思智能体会对任务反馈信号进行语言化的反思,并将反思文本存储在一个情景记忆缓冲区中,以便在后续的任务中做出更明智的决策。这种自我反思的反馈就像一面“魔镜”,让智能体看清自己的不足,并指引他们不断进步。
与传统的强化学习方法相比,反思框架具有以下几个显著优势:
- 轻量级:无需微调 LLM,就像一位经验丰富的老师,只需要稍加点拨,就能让学生茅塞顿开。
- 更细致的反馈: 可以提供更细致的反馈,例如针对特定行动的建议,而传统的标量或向量奖励往往难以实现精确的信用分配,就像用一把尺子衡量所有学生的才能,难免会有偏颇。
- 更明确的记忆: 允许对过去的经验进行更明确和可解释的情景记忆,就像一本记录了成功和失败经验的笔记本,可以随时翻阅,从中汲取智慧。
- 更清晰的行动指南: 为未来行动提供更明确的提示,就像一位经验丰富的向导,为智能体指明前进的方向。
当然,反思框架也并非完美无缺。它依赖于 LLM 的自我评估能力(或启发式方法),并且没有成功的正式保证。但可以预见,随着 LLM 能力的不断提升,这种范式只会变得越来越强大。
💡 反思的实现方式
生成有效的反思性反馈极具挑战性,因为它需要充分理解模型出错的地方(即信用分配问题 [25]),以及生成包含可操作的改进见解的摘要的能力。在论文中,作者探索了三种实现方式:
- 简单的二元环境反馈: 就像给智能体一个“是”或“否”的答案,简单直接。
- 针对常见故障案例的预定义启发式方法: 就像为智能体提供了一本故障排除指南,帮助他们快速定位问题。
- 自我评估: 例如使用 LLM 进行二元分类(决策)或自写单元测试(编程),就像让智能体自己给自己批改作业,找出错误的地方。
在所有实现中,评估信号都会被放大为自然语言体验摘要,并存储在长期记忆中,就像将每一次的经验教训都记录下来,以便日后查阅。
🚀 反思的应用
为了验证反思框架的有效性,作者在以下三类任务上进行了实验:
- 决策任务: 测试长轨迹上的顺序动作选择,例如在游戏中选择下一步行动。
- 推理任务: 测试知识密集型、单步生成改进,例如回答需要多步推理的问题。
- 编程任务: 教导智能体有效地使用外部工具,例如编译器和解释器。
实验结果表明,反思智能体在所有三类任务中都表现出色,证明了反思框架的强大能力。
任务类型 | 数据集 | 性能提升 |
---|---|---|
决策 | AlfWorld [24] | 22% |
推理 | HotpotQA [28] | 20% |
编程 | HumanEval [6] | 11% |
🤖 代码世界的 LeetcodeHardGym
除了上述实验,作者还引入了一个名为 LeetcodeHardGym 的代码生成强化学习环境,其中包含 19 种编程语言的 40 道 Leetcode 难题(“困难级别”)。 💪
特征 | 描述 |
---|---|
任务数量 | 40 |
编程语言 | 19 |
难度级别 | 困难 |
LeetcodeHardGym 的引入为代码生成研究提供了一个极具挑战性的测试平台,也为反思框架的应用提供了更广阔的舞台。
🏆 反思的力量:GPT-4 也望尘莫及
在 HumanEval 编码基准测试中,反思框架更是取得了令人瞩目的成绩,其准确率高达 91%,超越了之前最先进的 GPT-4(80%)。这足以证明,反思框架可以让 AI 智能体在代码世界中“更上一层楼”。
🌅 展望未来:反思,照亮 AI 的未来
反思框架的提出为强化学习领域开辟了一条全新的道路,也为 AI 智能体的未来发展带来了新的希望。相信在不久的将来,我们将见证更多 AI 智能体在反思的力量加持下,突破自我,创造无限可能!
参考文献
[1] Ahn, M., Brohan, A., Brown, N., Chebotar, Y., Child, R., ... & Zettlemoyer, L. (2022). Do as i can, not as i say: Grounding language in robotic affordances. arXiv preprint arXiv:2204.01691.
[5] Austin, J., Odena, A., Nye, M., Bosma, M., Michalewski, H., ... & Sutton, C. (2021). Program synthesis with large language models. arXiv preprint arXiv:2108.07732.
[6] Chen, M., Tworek, J., Jun, H., Yuan, Q., de Oliveira Pinto, H. P., ... & Kaplan, J. (2021). Evaluating large language models trained on code. arXiv preprint arXiv:2107.03374.
[7] Gupta, L., Biewald, L., Ly, A., Miller, A., & Hajishirzi, H. (2022). Self-debug: Self-debugging in language models improves code generation. arXiv preprint arXiv:2205.12251.
[9] Goodman, S. (2022). Teaching language models to self-debug. arXiv preprint arXiv:2210.14495.
[14] Li, Y., Choi, D., Chung, J., Kushman, N., Stańczyk, P., ... & Wu, Y. (2022). Competition-level code generation with alphacode. Science, 378(6624), 1092-1097.
[15] Madaan, A., Schmitt, M., & Hajishirzi, H. (2022). Self-refine: Iterative refinement with self-feedback. arXiv preprint arXiv:2203.16237.
[16] Nair, S., Prabhumoye, S., Dalvi, B., & Mausam (2022). Reasoning about actions over long documents. arXiv preprint arXiv:2205.00457.
[17] OpenAI. (2021). Webgpt: Browser-assisted question-answering with human feedback. arXiv preprint arXiv:2112.09332.
[19] Park, J. S., Cho, Y., Kim, H., Lee, G., Ryu, S., ... & Oh, J. (2023). Generative agents: Interactive simulacra of human behavior. arXiv preprint arXiv:2304.03519.
[20] Paul, A., Xu, J., & Neubig, G. (2022). Learning to improve code with critic guided self-training. arXiv preprint arXiv:2204.01216.
[21] Pryzant, R., Iter, D., Zhao, J., Wang, Y., Cao, Y., ... & Liang, P. (2022). Controllable generation from pre-trained language models via inverse prompting. arXiv preprint arXiv:2205.10465.
[22] Schick, T., Dwivedi-Yu, J., Dessì, R., Raileanu, R., Lomeli, M., ... & Hajishirzi, H. (2023). Toolformer: Language models can teach themselves to use tools. Transactions of the Association for Computational Linguistics, 11, 159-178.
[23] Shen, W., Zhou, P., Zhao, Z., Wang, J., Yu, W., ... & Zhou, H. (2023). Hugginggpt: Solving ai tasks with chatgpt and its friends in huggingface. arXiv preprint arXiv:2303.17580.
[24] Shridhar, M., Thomason, J., Gordon, D., & Zettlemoyer, L. (2020). Alfred: A benchmark for interpreting grounded instructions for everyday tasks. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition (pp. 10740-10749).
[25] Sutton, R. S. (1988). Learning to predict by the methods of temporal differences. Machine learning, 3(1), 9-44.
[27] Xie, Z., Xie, S., Liu, F., Zhang, Y., & Sun, M. (2022). Planning with self-evaluation for spoken dialogue systems. arXiv preprint arXiv:2204.13186.
[28] Yang, Z., Qi, P., Zhang, S., Wang, Y., Duan, W., ... & Tang, J. (2018). Hotpotqa: A dataset for diverse, explainable multi-hop question answering. In Proceedings of the 2018 conference on empirical methods in natural language processing (pp. 2369-2380).
[30] Yao, S., Zhao, J., Yu, D., Shah, N. B., Narasimhan, K., & Chang, M. W. (2022). React: Synergizing reasoning and acting in language models. arXiv preprint arXiv:2210.11413.
[31] Yoran, A., Schuster, N., Gupta, A., & Hajishirzi, H. (2022). Learning to reason with language models: Text generation as a symbolic behavior. arXiv preprint arXiv:2203.14494.
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于