LLM function calling

2023/09/12 NLP LLM 共 560 字,约 2 分钟
闷骚的程序员

Function calling 让大模型具备了调用工具的能力,可以为传统的API工具进行赋能,以前的chat会先需要通过词槽的形式从用户的对话中收集相关的实体内容。

例如最简单的订票系统,当用户提问订机票时,需要进行澄清出发地、目的地、时间、航司等内容的澄清,当这些必要的信息都收集到时,才会进行对应的机票查询的API的调用。

Function Calling 的加入看似能够直接平替这一系统,但是实验下来这套系统依旧存在很大的问题:

  1. 对于API的选择,当API的候选集过大时,选择正确的API成了一个比较大的问题,完全依赖大模型的function calling能力有点力不从心,比较合适的做法是通过意图或其他强规则的手段召回Topk个对应的API。
  2. 即便将 Topk 个API选择出来给模型,模型漏选和错选的事情还是不可避免。
  3. 参数的抽取会存在一些问题,识别错误,没有办法找到准确的值导致最后工具使用无法得到正确的值。

优化大模型的function calling准确率有以下方式:

  1. 通过填入已知参数
  2. 加入System Prompt
  3. function 和 parameters 调优
  4. parameters examples added

具体可以参考:https://composio.dev/blog/gpt-4-function-calling-example/

文档信息

Search

    Table of Contents