大语言模型API调用顺序优化技术解析

本文介绍了一种名为FLAP的创新方法,通过依赖图约束解码技术解决大语言模型在API调用顺序和流程遵循方面的问题,显著减少API幻觉和顺序错误,提升任务执行准确性。

使大语言模型按正确顺序进行API调用

在大语言模型取得惊人成功之前,基于对话的AI系统研究主要沿着两条路径发展:能够进行开放式对话的聊天机器人,以及旨在提取API参数并代表用户执行任务的任务导向对话模型。大语言模型在第一个挑战上取得了巨大进展,但在第二个挑战上进展较少。

这部分是因为大语言模型难以遵循规定的操作序列,无论是操作工作流还是API依赖关系。例如,旅行代理应用可能希望在客户预订航班后推荐租车服务;同样,搜索航班选项的API调用只能在将城市名称转换为机场代码的API调用之后进行。

在今年北美计算语言学协会会议上,我们提出了一种新方法来约束大语言模型的输出,使其遵循规定的操作序列。幸运的是,该方法不需要对大语言模型的参数进行任何微调,并且可以与任何具有logit访问权限的大语言模型即开即用。

我们使用图来表示API和工作流依赖关系,并构建一个提示,引导大语言模型通过生成计划来响应用户请求——包括一系列API调用以及每个调用的自然语言原理说明。给定提示后,我们考虑大语言模型预测的k个最可能的后续标记。对于每个标记,我们向前看,继续输出生成直到固定长度。我们根据语义内容以及它们遵循图中表示的依赖约束的程度来对k个标记延续序列进行评分,最终仅选择得分最高的序列。

实验设计与结果

现有的任务导向对话数据集往往不包含许多操作序列依赖关系,因此为了测试我们的方法,我们创建了自己的数据集。它包括13个不同的工作流和64个API调用,每个工作流有20个相关查询——例如,不同表述的在不同城市间预订航班的请求。每个工作流都有一个由按顺序排列的API调用组成的黄金标准计划。

在实验中,我们将我们的方法与使用相同提示和相同大语言模型但使用不同解码方法的情况进行了比较。给定查询,模型应该生成能够成功解决查询的计划。我们根据与黄金解决方案的偏差来评估解决方案,例如计划中顺序错误操作的数量,以及其他因素,如API幻觉和API冗余。

我们的方法经常将幻觉API调用和顺序错误生成的数量减少一个数量级——甚至两个数量级。根据模型和解码方法的超参数,它将解决生成计划与黄金计划所需的编辑次数减少了8%到64%。

我们还表明,我们的方法使较小的大语言模型——大约70亿参数——能够实现与300-400亿参数的大语言模型相同的性能。这是一个令人鼓舞的结果,因为随着大语言模型商业使用的增加,运营效率和成本正变得越来越重要的考虑因素。

FLAP方法详解

使用我们的方法——我们称之为FLAP(流程遵循规划)——每个对代理的查询都 preceded by 一组指令,这些指令建立了可用的API调用和相关的工作流序列。提示还包括用自然语言解释每个API调用的思考示例。

我们试验了包含和不包含思考的指令集,发现包含思考始终提高了生成的质量。

对于每个输入标记,大语言模型会生成一个可能的后续标记列表,并根据概率进行评分。所有大语言模型都使用某种解码策略将这些列表转换为字符串:例如,贪婪解码器简单地抓取最高概率的后续标记;核采样仅选择一组核心的高概率后续标记并从其中采样;而束搜索解码并行跟踪多个高概率标记序列,并选择整体概率最高的序列。

FLAP提出了一种替代解码策略,它使用一个评分系统,鼓励选择遵循API和工作流依赖图的标记。首先,对于每个输出思考,我们使用语义相似性评分模型来识别指令工作流规范中最相似的步骤。

然后,基于工作流依赖图,我们确定当前思考是否被允许——即图中对应其祖先节点的步骤是否已被执行(前提条件满足)。如果已满足,思考获得高分;如果没有,则获得低分。

我们以相同的方式对API调用进行评分——即基于它们的执行顺序是否符合依赖图。我们还使用相似性评分模型来测量生成的思考与用户查询之间的相似性,以及思考与生成的API调用之间的相似性。

最后,我们根据计划是否遵循计划中每个步骤的<思考,API调用>语法来对计划进行评分,思考和API调用分别以"[thought]“和”[API]“标签为前缀。基于所有这些度量,我们的模型从大语言模型输出中采样的k个标记序列中选择一个。

实验结果与未来方向

在我们的实验中,我们考虑了指令集的两种变体:一种是将整个域的所有工作流约束都包含在提示中,另一种是仅包含相关工作流。基线和FLAP实现使用相同的大语言模型,仅解码策略不同:基线使用贪婪、束搜索和核采样解码器。

在所有测试的大语言模型上,FLAP全面优于基线。此外,我们在不同指标上没有观察到基线中有明确的亚军。因此,即使在FLAP在特定指标上相对于特定基线提供相对温和的改进的情况下,它经常在其他指标之一上展示出更大的改进。

当前的FLAP实现为输入用户查询生成初始计划。但在现实世界中,客户经常在对话过程中修改或扩展他们的意图。在正在进行的工作中,我们计划研究能够基于与客户的持续对话动态调整初始计划的模型。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计