大型语言模型(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。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注