在自我指令范式 [42] 的指导下,采用 GPT-4 来生成合成指令数据。提供三个上下文示例以及参考 API 文档,并要求模型生成调用 API 的真实用例。特别指示模型在创建指令时不要使用任何 API 名称或提示。为三个模型中心中的每一个构建六个示例(指令 API 对)。这总共 18 个点是唯一手工生成或修改的数据。对于 1,645 个 API 数据点中的每一个,对 6 个相应指令示例中的 3 个进行采样,生成总共 10 个指令 API 对,如图所示。
上图所示Gorilla是一个使LLM能够与 API 交互的系统。上半部分是训练过程,这是一个详尽的 ML API 数据集。在推理过程中(下半部分),Gorilla 支持两种模式 - 检索和零样本。在此示例中,它能够建议正确的 API 调用,以便根据用户的自然语言查询生成图像。要强调的是,只需要使用 GPT-4 来生成指令,这可以与 LLaMA、Alpaca 等开源替代模型进行交换。
在推理过程中,用户以自然语言提供提示。这可以是一个简单的任务(例如,“我想识别图像中的目标”),或者他们可以指定一个模糊的目标(例如,“我要去动物园,并且想要跟踪动物 ”)。Gorilla 与训练类似,可以通过两种模式进行推理:零样本和检索。在零样本中,此提示(无需进一步的提示调整)将被馈送到 Gorilla LLM 模型,然后返回有助于完成任务和/或目标的 API 调用。在检索模式下,检索器(BM25 或 GPT-Index)首先检索 API 数据库中存储的最新 API 文档。然后将其连接到用户提示以及消息“使用此 API 文档作为参考:在将其提供给 Gorilla 之前”。Gorilla 的输出是要调用的 API。除了所描述的串联之外,没有在系统中进行进一步的提示调整。虽然确实有一个执行这些 API 的系统,但这不是本文的重点。