增强语言模型(Augmented Language Models,ALM)
- ALM 指 LLM 使用各种非参数的外部模块/工具,来扩展上下文处理能力
- LLM 在事实确认、信息更新、算术推理和程序编译等方面存在客观局限性
- LLM 可以通过提示、微调、强化学习等方式优化,来更好地利用外部工具
- ALM 常用外部工具:搜索引擎、浏览器、编程工具、其他模型、智能硬件
按照模型增强的方式可大致分为:检索增强、编程增强、工具增强、综合增强
编程增强:
- 直接利用 LLM 来生成包含文本和 Python 代码的混合输出
- 代码交给 Python 解释器来执行,从而实现推理和计算的解耦
- 借助编程工具,增强 LLM 对复杂推理、数值/方程计算的能力
- 经典方法:程序辅助语言模型(PAL)、思维程序提示(PoT)
工具增强:
- 广义上所有 ALM 都可以看做一种工具增强,LLM 只需要负责推理,而推理之外的工作都可以通过调用外部工具来实现;此处的工具增强偏狭义,主要指浏览器、计算器、QA 系统、翻译系统等常见软件工具
- 目前主流 LLM 都可以通过 Function Calling 或 MCP 协议来实现外部标准定义工具的调用
- TALM 和 Toolformer 通过自监督(self-supervised) 机制,让 LLM 学习如何以及何时使用工具
- 自动推理并使用工具 (Automatic Reasoning and Tool-use, ART) 则是一种工具增强的提示框架,可以引导模型的推理和工具调用过程,并支持灵活的链式调用、人工反馈和手动扩展
综合增强:
- Agents = 大模型 + 记忆 + 任务规划 + 工具使用
- ReAct(1)交替生成推理轨迹和任务行动,并实现二者的最大协同(2)推理轨迹主要包括模型的引导与跟踪、任务行动更新和异常情况处理(3)任务行动主要包括与知识库或外部环境的交互
- HuggingGPT (1)对任务请求进行规划和拆分(2)在 Hugging Face 开源模型中按照任务类型和模型热度进行模型列表初筛(3)让 LLM 选择合适的开源模型来完成子任务(3)汇总子任务结果并输出结论
其他拓展阅读:提示工程 Prompt、思维链 CoT 技术
参考: