1. 基本框架
分类
- 单智能体= 大语言模型(LLM) + 观察(obs) + 思考(thought) + 行动(act) + 记忆(mem)
- 多智能体=智能体 + 环境 + SOP + 评审 + 通信 + 成本
组成主要有四个部分:推理、记忆、工具、行动
2. 常见推理模式
各种智能体可以结合使用。
2.1 ReAct: Synergizing Reasoning and Acting in Language Models
- 定义:结合了推理能力(Reasoning)和执行行动(Acting)能力的智能体。智能体原本的行动空间为A,在A的基础上增加了一个L,即行动空间变成了A U L。其中L是思考推理,不会对environment有影响。
- 适用场景:知识密集型推理任务
- 两大应用:
- ALFWorld
- WebShop
2.2 Reflection
- 定义:将任务反馈信号转化为反思,并将其保存在循环记忆缓冲区中以诱导更好的决策,在后续试验中提高决策能力。
- 适用场景:长期对话系统
2.3 LATS: Language Agents Tree Search
- 定义:
- 方法描述:LATS是一种基于蒙特卡罗树搜索(MCTS)的推理决策框架,旨在支持自然语言任务中的推理和决策。该框架通过将一个思考序列作为节点,使用预训练的语言模型来评估每个节点的价值,并根据环境反馈更新价值函数。同时,它还具有自我反思功能,可以从失败的轨迹中学习并提高其决策能力。
- 适用场景:
- 推理问题:当输入一个问题时,可以通过LATS生成一系列中间想法(思考序列),最终得到答案。
- 决策问题:当需要在多个选项之间做出选择时,LATS可以根据不同的情况生成不同的决策路径,并从中选择最优解。
3. 微调
微调(Fine-tuning)智能体模型(Agent)是一种常见的方法,用于在特定任务或特定数据集上优化预训练模型的性能。以下是一些常见的微调方法,尤其是在深度学习和大模型中的应用:
3.1 全模型微调(Full Model Fine-Tuning)
- 方法:在微调过程中,对预训练模型的所有参数进行更新。这种方法通常用于当目标任务与预训练任务有较大差异时,需要模型在所有层次上进行调整。
- 优点:可以最大化适应目标任务。
- 缺点:计算开销大,容易过拟合。
3.2 冻结部分层微调(Layer-wise Fine-Tuning)
- 方法:冻结模型的前几层,只微调模型的后几层(通常是顶层)。这是因为底层特征往往是通用的,而顶层特征则与具体任务更相关。
- 优点:减少计算量,保留底层特征的稳定性。
- 缺点:在任务差异较大时,可能效果不佳。
3.3 适配器(Adapters)
- 方法:引入小型的适配器模块(Adapter Modules),将其插入预训练模型的各层。这些模块具有可训练的参数,而原始模型参数则保持冻结或部分微调。
- 优点:参数量小,计算效率高,容易在多个任务之间切换。
- 缺点:需要额外设计和实现适配器模块。
3.4 提示学习(Prompt-based Learning)
- 方法:通过设计提示词(Prompts)引导预训练模型适应新任务。提示词可以是文本形式,也可以是嵌入向量。
- 优点:无需对模型进行大规模修改或微调,只需调整输入。
- 缺点:对提示词设计要求高,适用范围有限。
3.5 混合微调(Hybrid Fine-Tuning)
- 方法:结合冻结部分层微调和适配器等方法,同时调整模型的一部分参数和增加少量新参数。这种方法平衡了适应性和计算开销。
- 优点:在适应性和资源效率之间找到平衡点。
- 缺点:设计复杂,可能需要多次实验进行调优。
3.6 逐层解冻(Progressive Layer Unfreezing)
- 方法:逐层解冻模型的参数,从顶层开始逐步解冻每一层,并微调解冻的层。这可以逐步调整模型参数,避免一次性调整导致的剧烈变化。
- 优点:逐步调整,降低过拟合风险。
- 缺点:训练时间较长,需精细管理。
3.7蒸馏(Knowledge Distillation)
- 方法:将大型预训练模型(Teacher Model)的知识传递给较小的模型(Student Model),通过微调小模型使其在性能上接近大模型。
- 优点:得到轻量化模型,部署更高效。
- 缺点:蒸馏过程复杂,需要额外的教师模型训练。