Press "Enter" to skip to content

呼叫所有功能

作者使用Dall-E创建的图像

OpenAI函数调用和解释的基准测试

特别感谢Roger Yang对本文的贡献

由于Anthropic的Claude模型、OpenAI的GPT模型和Google的PaLM 2模型都是专有的,第三方大型语言模型(LLM)的可观察性主要通过基准测试和评估来进行。在这篇博文中,我们使用函数调用和解释来对OpenAI的GPT模型进行基准测试,评估各种性能指标。我们特别关注GPT模型和OpenAI功能在正确分类虚构和相关的回答方面的表现。下面的结果显示了不同LLM应用系统的速度和性能之间的权衡,以及如何利用这些带有解释的结果进行数据标注、LLM辅助评估和质量检查的讨论。我们提供了下面使用的实验框架,以便从业者可以对默认的分类模板进行迭代和改进。

OpenAI函数调用和解释

通过OpenAI函数调用,您可以描述各种GPT模型的函数,这些函数可以用于输出包含调用这些函数的参数的JSON对象。函数调用本质上充当一种工具或代理,用于以给定格式记录响应,以便可靠地连接OpenAI GPT模型的功能与外部工具和API。至于解释,由于在许多情况下很难理解LLM以特定方式响应的原因,解释的目的是促使LLM证明其输出是正确的还是错误的。然后,您可以给输出附上一个标签(’relevant’或’irrelevant’)和LLM的解释。下面是一个带有解释的“relevant”评估的示例,用于调试LLM的响应。

作者创建的图像

在下面的结果和权衡部分,我们为两种用例提供了比较表格:预测相关性和预测幻象(分别对应表1和表2)。每个表格都比较了GPT-4-turbo、GPT-4、GPT-3.5和GPT-3.5-turbo在特定提示指令和LLM属性下的各种分类指标(准确率、精确度、召回率和F1得分)的性能。

这四个基础模型通过以下情况进行评估:

  • 无函数调用和无解释
  • 有函数调用和无解释
  • 有函数调用和解释
  • 无函数调用和解释

因此,对于没有函数调用和无解释的示例,LLMs中的提示模板保持不变(即普通的提示补全)。具有函数调用和无解释的示例要求LLM将其答案放入只接受枚举作为输入的JSON对象中,具有函数调用和解释的示例要求LLM在同一个JSON对象中同时提供答案和解释(见Google colab笔记本)。

基准测试数据集和评估指标

在LLM输出中正确识别幻觉和相关回答是我们的客户当前正在实施LLM应用的两个最大痛点。为了优化幻觉的LLM评估系统,需要正确识别所有虚构的回答,同时跟踪事实性的输出。对于利用搜索和推荐作为用户体验的一部分的用例,与用户满意度相关的最重要因素是结果的速度和相关性。为了评估LLM系统在相关和无关输出上的性能,您应该了解关键指标:

  • 精度和召回率:检索到的信息有多相关?
  • 准确性:响应的上下文准确程度如何?
  • 延迟:系统提供响应所需的时间有多长?
  • 用户反馈:结果的相关性和响应时间如何影响用户体验?

结果与权衡

下面是对LLM系统在无关和相关预测方面进行基准测试的结果:

作者绘制的表1

下面是对LLM系统在幻觉和事实预测方面进行基准测试的结果:

作者绘制的表2

在分析结果之前,您可以在此Google Colab笔记本中自行复现这些结果。请注意,由于LLMs的非确定性特性,您通常无法完全复制这些表中的数字,但对于此笔记本,我们已添加了一个种子以进行采样,因此每次结果都相同。此外,我们还添加了分层采样,使二元类别恰好为50/50。请注意,使用您的OpenAI API密钥运行此笔记本会导致计算成本。默认样本数设置为2,但如果您想要复制此博文中的结果,可以将数量更改为100。

VoAGI处理时间

为了清晰起见,这些比较(使用100个样本)在Google Colab上使用标准的OpenAI API帐户和密钥运行。因此,当在不同的设置上运行时,延迟值可能不会准确,但最慢和最快的模型将被重现。

另外,使用解释来评估可能需要3-20倍的时间来编译(这与函数调用无关)。

对于整体相关性的模型预测能力

  • 延迟:GPT-3.5-instruct > GPT-3.5-turbo > GPT-4-turbo > GPT-4

对于幻觉的模型预测能力

  • 延迟:GPT-3.5-instruct > GPT-3.5-turbo ~ GPT-4-turbo > GPT-4

在带有函数调用的GPT模型中,延迟往往比没有函数调用的LLMs略高,但请注意,这有几个注意事项。首先,延迟是从OpenAI返回给我们的HTTP头中提取的,因此根据您的帐户和发出这些请求的方法,延迟值可能会变化,因为它们是由OpenAI内部计算的。对于您的用例,函数调用的权衡也取决于。例如,如果您的用例是结构化数据提取,那么直接使用OpenAI函数调用API进行工作将是最简单的。

总体而言,具有函数调用的LLMs与不使用函数调用且使用普通提示完成的LLMs表现相当。您是否决定在提示工程中使用OpenAI函数调用API,将取决于您的用例和输出的复杂性。

GPT模型性能比较

对于整体相关性的模型预测能力:

  • 性能:GPT-4 ~ GPT-4-turbo ~ GPT-3.5-turbo >>> GPT-3.5-instruct

针对幻觉的模型预测能力:

  • 性能:GPT-4 〜 GPT-4-turbo > GPT-3.5-turbo > GPT-3.5-instruct

有趣的是,无论在哪种使用情况下,使用解释并不总是能提高性能。下面将详细介绍。

评估指标

如果您正在决定选择哪个LLM来预测相关性,您可以使用GPT-4、GPT-4-turbo或GPT-3.5-turbo。

GPT-4-turbo能够准确地识别输出是否相关,但会牺牲召回所有50个例子,实际上即使使用解释,召回率也不比抛硬币好。

GPT-3.5-turbo也存在同样的权衡,同时具有较低的延迟和较低的准确性。根据这些结果,GPT-4具有最高的F1分数(精确度和召回率的调和平均值)和总体最佳性能,同时与GPT4-turbo运行时间相当。

GPT-3.5-instruct预测所有内容都是相关的,因此不适用于预测相关性。有趣的是,使用解释后,预测性能显著提高,尽管它仍然不如其他LLMs。此外,GPT-3.5-instruct无法使用OpenAI的函数调用API,预计将在2024年初被弃用

如果您正在决定选择哪个LLM来预测幻觉,您可以使用GPT-4、GPT-4-turbo或GPT-3.5-turbo。

结果显示,与GPT-4-turbo相比,GPT-4更常正确识别出虚构和事实性输出(多出约3%的时间),无论是在精确度、准确度、召回率还是F1值方面。

虽然GPT-4和GPT-4-turbo的表现略优于GPT-3.5-turbo(请注意,在得出这个小差距不是噪声之前,应使用更多样本),但如果您打算使用解释,也许与GPT-3.5-turbo合作会更值得。

预测虚构和实际返回的解释,对于GPT-3.5-turbo来说比GPT-4和GPT-4-turbo更快三倍以上,但与GPT-4模型在正确预测幻觉方面的召回率相比,两个GPT-3.5模型的召回率都有所下降。

讨论与影响

在决定使用哪个LLM进行应用程序时,需要进行一系列的实验和迭代来做出决策。同样地,当决定是否使用LLM作为评估器时,也需要进行基准测试和实验。基本上,这些是基准测试LLMs的两种主要方法:LLM模型评估(评估基础模型)和通过可观测性评估LLM系统。

作者提供的图片 | 在一个基础模型上评估两个不同提示模板。我们在这两个模板上测试相同数据集,看看它们的精确度和召回率等指标如何比较。

最终,当决定一个LLM是否适合作为您的用例中的性能评估器时,您需要考虑到您系统的延迟以及相关预测指标的性能。在本文中,我们总结了这些模型的开箱性能,没有添加任何增加速度和性能的技术。请记住,所有这些LLMs都使用零-shot模板,因此没有添加例子到LLM提示模板以提高模型输出。由于这些数字是基准,团队可以通过提示工程、提示模板(和存储库)、agents、微调以及像RAG和HyDE这样的搜索和检索应用来改善LLM系统性能。

未来潜在工作:数据标签解释

通过这个基准测试,我们发现一些有趣的例子,通过提供解释可以改变预测的标签。下面的例子在没有使用解释时预测为“相关”,并且实际的标签也是“相关”。由于即使是“黄金数据集”也可能存在错误标注(尤其是对于更主观的任务),一个合理的解释来自LLM可能足以编辑实际的标签。这可以被视为一种LLM辅助的评估或质量检查。

下面是一个来自维基数据集的相关示例,注意列‘D’是数据集提供的实际标签,列‘E’是没有调用函数和解释的预测标签,而列‘F’是使用解释(没有调用函数)创建的预测标签,解释在列‘G’中。因此,列‘E’和列‘F’&‘G’是来自两个单独的LLM调用的响应。F&G是从下图中的同一调用中生成的。

作者提供的图1:脚本的屏幕截图(代码在colab中提供)。在这里,标签和解释是一起返回的,但我们要求首先提供解释(请参见提示)

下表显示了一个示例,其中我们有一个实际标签=“相关”,一个没有调用函数的LLM预测标签=“相关”,但当要求LLM首先提供解释时,标签变为“不相关”。和我们遇到的几个类似的例子一样,LLM对将检索到的回答标记为“不相关”的论证是有效的。虽然我们中的许多人经常思考罗马帝国,但我们可以同意,“罗马帝国持续了多久?”的多段回答既不简洁也不相关,不能引发最终用户的积极反馈。对于需要标记数据的公司来说,LLM辅助评估有很多可能性,包括成本和时间的节约。这以及解释提供的可见性,以及LLM返回它们的参考(用于预测的文档),都是LLM可观察性空间的重大进展。

作者提供的示例

结论

希望本文能为希望更好地理解和平衡性能和速度的LLM应用系统的团队提供一个良好的起点。正如大家所知,生成式人工智能和LLMOps领域正在迅速发展,因此,观察这些发现和该领域随时间的变化将会很有趣。

有问题吗?请联系我们!

Leave a Reply

Your email address will not be published. Required fields are marked *