llm
大模型
Function calling
为什么需要function calling?
大模型存在如下缺陷:
- 容易出现“幻觉”
- 无法获取实时性信息
- 对于垂直领域数据的训练,无法回答专业性很强的问题
- 无法计算复杂的数学计算
而function calling可以让大模型选择对应的工具(function)来完成自己所不能完成的任务,根据工具返回的结果,来进行下一步的操作,实际测试时发现,如果只有function calling,大模型还是不能完成复杂的任务(采用通义千问模型,计算复杂点的数学算式,函数已经返回了正确答案,模型却不采纳)
AI Agent
概念:自主作出决策,并通过执行器采取行动,只是手段,并非新的技术
与Function calling的关系:Agent能让大模型变得更加聪明,从而更好的调用工具
Agent的实现:
- 感知:多模态输入
- 大脑:自然语言处理、记忆、决策
- 行动:文本输出、工具调用、具身智能
Agent常见的推理模式
CoT(Chain of Thoughts)
最简单的思维链实现就是在模型的访问中输入一句“Let’s think step by step”,这让大模型有了脸时思考的过程,但是,如果在顺序执行的时候,某一步的执行结果出错了,后续的过程就会全部出错,导致幻觉。
Reason Act(推理行动,简称ReAct)
ReAct的目的是为了解决大模型的两个问题:第一执行结果不可观测,导致出现幻觉。第二,大模型不能与外界交互,无法回答一些特定垂直领域的问题或实时性问题。
在让大模型执行任务时,将相应的API也提供给大模型,大模型进行推理,然后选择工具、工具执行结果,返回给大模型,大模型再次思考,直至大模型认为已经回答了问题。
Reflection && Reflexion
Reflection: generate大模型产生的答案会交给Reflect模型进行评估,评估完成后再交给generate模型进行修改,如此循环,达到一定次数后将答案返回给用户。
Reflexion: 用户提问->大模型生成答案->Evaluator模型评估答案->self-reflection汇总反思形成长期记忆和经验->返回给大模型再次思考给出答案直至完成任务。
ReWOO(Resion without Oberversion)
大模型不具有记忆,所以我们每次对话的时候都需要把历史对话发送给大模型,当有很多工具需要调用时,就会有大量的历史对话反复逐次发送给大模型,浪费token,如果将大模型需要的全部工具及调用列表一次性给用户,用户填充模版后就可以反馈给大模型,就可以大幅减少对话的次数。
ReWOO通过Planner模型规划出问题的解决步骤,以及每一步需要调用的工具,形成模版,返回给人类,人类调用工具得到答案填充模版,将结果发送给Solver大模型得出最终答案。