llm

大模型

Function calling

为什么需要function calling?

大模型存在如下缺陷:

  1. 容易出现“幻觉”
  2. 无法获取实时性信息
  3. 对于垂直领域数据的训练,无法回答专业性很强的问题
  4. 无法计算复杂的数学计算

而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大模型得出最终答案。