大型语言模型(LLM)Agent 领域在飞速发展,UC Berkeley 开设的“高级 LLM Agents”MOOC 正是掌握前沿技术的绝佳机会。我在 2024 年秋季完成了 LLM Agents MOOC 的基础课程后,对这次高级课程期待已久。本次课程由 Google DeepMind 的 Xinyun Chen 开讲,聚焦于 LLM 推理时计算的扩展策略,并深入探讨了思维链(CoT)、搜索算法以及自迭代优化等关键技术。这不仅让我对 LLM 推理有了更深刻的理解,也为构建更强大的 LLM Agent 打下了坚实的基础。
推理时计算:算力提升带来的性能飞跃
Xinyun Chen 在课程伊始便强调了 2024 年是推理模型发展的关键一年,特别是 OpenAI 的 o1 模型在编码、数学、STEM 等领域复杂的推理任务中表现出色。核心观点是:性能随着推理时计算量的增加而提升。例如,OpenAI 的 o3 模型在 ARC-AGI 基准测试中,通过为每个任务花费超过 1000 美元的测试时计算资源,达到了 87.5% 的准确率。这清晰地表明,更大规模的 推理时计算 对于解决复杂问题至关重要。这个概念可以类比于人类解决难题时,需要投入更多的时间和精力去思考和推演。对于 LLM 而言,增加计算资源意味着模型能够更充分地利用自身知识和推理能力,从而获得更优的答案。
思维链(CoT):激发 LLM 的推理潜能
为了充分挖掘 LLM 的推理潜力,关键在于引导 LLM 生成更长的 思维链(CoT)。课程中提到了多种方法,包括少样本 CoT 提示、指令提示、指令微调和强化学习。思维链 本质上是让 LLM 将解决问题的步骤分解成一系列逻辑推理过程,从而更清晰地展示其思考路径。
- 少样本 CoT 提示(Few-shot CoT prompting): 通过提供包含推理步骤的示例,引导 LLM 生成类似的思维过程。
- 零样本 CoT 提示(Zero-shot CoT prompting): 在没有示例的情况下,通过添加诸如 “Let’s think step by step.” 这样的触发词,鼓励 LLM 逐步推理。
虽然少样本 CoT 提示通常优于零样本 CoT 提示,而零样本 CoT 提示又优于零样本方法,但关键在于如何改进 CoT 的性能,而无需手动标注示例。一个具体的例子是,在解决复杂的数学问题时,如果直接向 LLM 提问,它可能无法给出正确答案。但如果使用 CoT 提示,引导 LLM 逐步解释解题思路,它就能更准确地找到答案。这表明 思维链 能够帮助 LLM 更好地理解问题并进行推理。
搜索策略:探索更广阔的解空间
当面对复杂问题时,仅仅依靠单条 思维链 可能不够。课程重点介绍了基于 搜索 的策略,通过探索多个潜在的解决方案,提高 LLM 的鲁棒性和准确性。
-
自洽性(Self-consistency): 通过采样多个推理路径,并选择最常见的最终答案,就像从 LLM 本身进行众包思考。这能够有效处理歧义并提高答案的可靠性。例如,在进行图像识别时,模型可能会生成多个不同的标签,通过自洽性方法,选择出现频率最高的标签,可以提高识别的准确率。
-
思维树(Tree-of-Thoughts,ToT): 将思维结构化为分支路径,并通过广度优先搜索(BFS)或蒙特卡洛树搜索等算法进行探索。课程中以“24 点游戏”为例,生动地展示了如何利用多步骤逻辑和回溯来解决问题。 ToT 使得 LLM 能够更系统地探索不同的解题思路,并在遇到错误时及时回溯,从而提高解决复杂问题的能力。例如,在玩 24 点游戏时,LLM 可以尝试不同的运算组合,并在发现某个组合无法得到 24 时,回溯到上一步,尝试其他的运算方式。
迭代自优化:不断精炼答案
除了生成多个候选答案并进行选择之外,LLM 还可以通过迭代的方式不断改进自身的答案。这类似于人类在解决问题时,会不断地反思和修正自己的思路。
-
Reflexion、Self-Refine 和 Self-Debugging: 这些技术让 LLM 生成初始答案,然后进行自我批评和改进。虽然在没有外部反馈的情况下进行自我纠正仍然是一个挑战(有时甚至会降低性能),但将 LLM 生成的反馈与外部评估相结合,特别是在代码生成方面,可以取得显著的成果。例如,在代码生成任务中,LLM 可以先生成一段代码,然后通过运行测试用例来评估代码的质量。如果测试用例失败,LLM 就可以根据错误信息来修正代码,直到代码能够顺利通过测试。
-
类比提示(Analogical prompting): 在解决问题之前,要求模型生成自己的示例,这受到人类通过类比解决任务的启发。这消除了对人工策划示例的依赖。例如,在学习新的编程语言时,LLM 可以先生成一些简单的示例代码,然后通过阅读这些示例代码来理解该语言的语法和特性。
Prompt 工程的演进:让 LLM 自主学习
Prompt 工程也在不断发展。像 PaLM-2 这样的模型现在可以迭代地自我优化提示,以找到更高性能的指令格式,有时甚至超过人工设计的少样本提示。这意味着 LLM 不再仅仅是被动地执行指令,而是可以主动学习如何更好地完成任务。例如,PaLM-2 可以通过尝试不同的提示语,来找到最能激发其推理能力的提示语。
总结:面向未来的 LLM Agent 构建
课程的最后强调,我们需要根据模型的能力调整我们的交互策略。仅仅扩展模型参数是不够的,我们需要扩展我们在 推理时 如何查询、选择和优化输出。这次讲座让我大开眼界,了解了在运行时巧妙地指导 LLM 所能实现的潜力。课程内容的深度、清晰度和前瞻性都非常有价值。我现在更有信心探索更复杂的 LLM Agent 行为,并迭代更智能的 推理 流程。总而言之,这次“高级 LLM Agents”MOOC 是一次顶级的学习体验,让我对 LLM Agent 的未来充满期待。 通过学习 推理时计算,掌握 思维链(CoT) 的精髓, 熟悉 搜索 策略与 迭代自优化 方法, 我更有信心构建出更强大, 更智能的 LLM Agent。