【LLM】什么是Function Calling以及实现原理

背景

大模型诞生之初的的缺陷:

  1. 时效性局限:由于大模型训练需要耗费大量计算资源和时间,其知识库通常基于特定时间节点前的数据。以GPT-3.5和GPT-4为例,它们的知识仅更新至2021年9月。

  2. 逻辑性缺陷:大模型的文本生成主要依赖训练数据的统计规律,而非真正的逻辑推理或形式化证明过程。
    在这里插入图片描述

比如之前大模型分不清9.9和9.11谁大的问题,如果大模型具备调用计算器的能力,此问题也将避免。

为了解决该问题,我们可以让大模型具备调用函数工具的能力,比如查询网页,查询数据库,查询天气等,Function Calling也就诞生了。

Function Calling

函数调用(Function Calling):函数调用使用户能够更可靠地从模型中获取结构化数据。

UserChat AppLLM API"纽约的天气怎么样?"提示:"纽约的天气怎么样?"可用函数:- get_weather(地点)- get_forecast(地点, 天数)选择调用 get_weather("纽约")(应用执行函数调用)结果:"降雨,湿度90%,气温57华氏度"响应:"纽约正在降雨,湿度为90%,气温为57华氏度""纽约正在降雨,湿度为90%,气温为57华氏度"UserChat AppLLM API
  • User :用户
  • Chat App :大模型聊天应用,工程层面
  • LLM API:大语言模型本身,算法层面

大模型本身不具备直接调用工具的能力,而是通过生成一个调用函数的指令(通常为JSON格式)让一个固定程序调用工具,固定程序将调用结果返回给大模型,大模型将结构化的数据转换为自然语言的形式返回给用户。

  1. 用户提问 → 用户向应用发送自然语言查询:“纽约的天气怎么样?”
  2. Chat App构造提示词:向LLM发送用户问题+可用函数声明(get_weather/get_forecast)
  3. 模型决策:LLM分析后选择调用get_weather函数并生成参数{“location”:“纽约”}
  4. 执行函数:Chat App获取到LLM的调用函数指令,执行get_weather(“纽约”)获取真实天气数据
  5. 返回结果 → Chat App将函数执行结果"降雨,湿度90%,气温57华氏度"返回给LLM
  6. 生成回答 → LLM将原始数据转换为用户易于理解的自然语言进行响应
  7. 最终回复 → 应用将生成的"纽约正在降雨…"返回给用户

💡 核心流程:用户提问 → 大模型选函数 → App帮大模型调用函数 → 大模型将结果转人话 → 给用户最终答案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值