热门搜索:和平精英 原神 街篮2 

您的位置:首页 > > 教程攻略 > ai资讯 >LLM超长上下文查询-性能评估实战

LLM超长上下文查询-性能评估实战

来源:互联网 更新时间:2026-08-04 14:16

在大型语言模型(LLM)的应用中,有几个场景需要以结构化的方式呈现数据,信息提取和查询分析就是两个典型的例子。我们最近通过更新的文档和专门的代码仓库强调了信息提取的重要性;对于查询分析,同样更新了相关文档。这些场景中的数据字段可能包括字符串、布尔值、整数等多种类型,而其中最棘手的,莫过于处理高基数的分类值——也就是枚举类型。

所谓“高基数分类值”,指的是那些必须从有限的选项中选择的值,不能随意指定,必须来自一个预定义的集合。当这个集合中的有效值数量非常庞大时,就称为“高基数”。处理这类值的难点在于:LLM本身并不知道这些可能的值是什么。因此,我们需要向LLM提供这些可能值的信息。如果忽略了这一点,LLM可能会自行编造值。当只有少数几个可能值时,可以通过在提示中明确列出这些值来解决。但可能值一旦多起来,问题就变得复杂了。

随着可能值数量的增加,LLM正确选择值的难度也随之增加。一方面,如果可能值太多,它们可能无法适应LLM的上下文窗口;另一方面,即使所有可能值都能容纳,把它们全部塞进去也会导致处理速度变慢、成本增加,以及LLM在处理大量上下文时的推理能力下降。

我们最近对查询分析做了深入研究,并在修订相关文档时专门增加了一个关于如何处理高基数分类值的页面。这篇博客将深入探讨几种实验性方法,并提供它们的性能基准测试结果。

数据集概览

为了模拟这个问题,我们设定了一个场景:查找某位作者关于外星人的书籍。在这个场景中,作者字段就是一个高基数分类变量——可能的值有很多,但应该是特定的有效作者名字。我们创建了一个包含作者姓名和常用别名的数据集。例如,“Harry Chase”可能是“Harrison Chase”的别名。我们希望智能系统能够处理这类别名。有了姓名和别名列表后,我们又生成了10,000个随机姓名。需要注意的是,10,000的基数其实不算高——对于企业级系统来说,可能要面对的是数百万级别的基数。

利用这个数据集,我们提出这样的问题:“Harry Chase关于外星人的书有哪些?”查询分析系统应该能将这个问题解析为结构化格式,包含两个字段:主题和作者。预期的输出应该是{"topic": "aliens", "author": "Harrison Chase"}。我们期望系统能够识别出没有名为Harry Chase的作者,但Harrison Chase可能是用户想要表达的意思。

通过这种设置,我们可以针对创建的别名数据集进行测试,检查它们是否能够正确映射到真实姓名。同时记录查询的延迟和成本。这种查询分析系统通常用于搜索,因此我们非常关心这两个指标。出于这个原因,我们限制了所有方法只能进行一次LLM调用。未来可能会对使用多次LLM调用的方法进行基准测试。

完整的结果可以在LangSmith中查看,复现结果的代码也可以找到。

基线测试

首先,我们对LLM进行了基线测试——不提供任何有效姓名信息,直接要求LLM进行查询分析。结果不出所料,没有一个问题得到正确回答。因为数据集本身就是故意构建成需要通过别名查询作者。

上下文填充法

在这种方法中,我们将所有10,000个合法的作者姓名都放入了提示中,要求LLM在进行查询分析时记住这些是合法的作者姓名。一些模型(如GPT-3.5)由于上下文窗口的限制,根本无法执行这个任务。对于其他具有更长上下文窗口的模型,在准确选择正确姓名方面也遇到了困难。GPT-4只在26%的案例中选择了正确的姓名,最常见的错误是提取了姓名但没有进行校正。这种方法不仅速度慢、成本高——平均需要5秒完成,总成本8.44美元。

LLM前过滤法

接下来测试的方法是在将可能的值列表传递给LLM之前进行过滤。这样只传递可能姓名的子集给LLM,大大减少了LLM需要考虑的姓名数量,希望让它更快、更便宜、更准确地完成查询分析。但这也增加了一个新的潜在失败模式——初步过滤出错怎么办?

基于嵌入的过滤法

最初使用的过滤方法是嵌入法,选择与查询最相似的10个姓名。需要注意的是,我们是将整个查询与姓名进行比较——这并非理想的比较方式!

结果:使用这种方法,GPT-3.5能够正确处理57%的案例。比以前的方法快得多、便宜得多——平均0.76秒完成,总成本仅0.002美元。

基于NGram相似性的过滤法

第二种过滤方法是对所有有效姓名的3-gram字符序列进行TF-IDF向量化,用向量化的有效姓名与向量化的用户输入之间的余弦相似度来选择最相关的10个有效姓名添加到模型提示中。同样需要注意,我们是将整个查询与姓名比较——并非理想方式。

结果:使用这种方法,GPT-3.5能够正确处理65%的案例。同样快得多、便宜得多——平均0.57秒完成,总成本0.002美元。

LLM后选择法

最后测试的方法是在LLM完成初步查询分析后,尝试纠正任何错误。首先对用户输入进行查询分析,没有在提示中提供任何有效作者姓名信息——与基线测试相同。然后进行一个后续步骤,取作者字段中的姓名,找到最相似的有效姓名。

基于嵌入相似性的选择法

首先使用嵌入法进行相似性检查。

结果:使用这种方法,GPT-3.5能够正确处理83%的案例。比之前的方法快得多、便宜得多——平均0.66秒完成,总成本仅0.001美元。

基于NGram相似性的选择法

最后尝试使用3-gram向量化器进行相似性检查。

结果:使用这种方法,GPT-3.5能够正确处理74%的案例。同样快得多、便宜得多——平均0.48秒完成,总成本0.001美元。

结论

我们对处理高基数分类值的查询分析方法进行了多种基准测试,并限制自己只能进行一次LLM调用——这是为了模拟现实世界中的延迟限制。结果发现,使用LLM后基于嵌入相似性的选择方法表现最佳。

当然,还有其他方法值得进一步测试。特别是,在LLM调用之前或之后寻找最相似的分类值有许多不同的方法。此外,本数据集中的类别基数并不像许多企业系统所面临的那样高——大约10,000个值,而许多现实世界系统可能需要处理数百万级别的基数。因此,对更高基数的数据进行基准测试将是非常有价值的。

关于宇宙的好的网名有哪些
关于宇宙的好的网名有哪些

类型:角色扮演

大小:1

语言:简体中文

平台:互联网

游戏下载

热门手游

相关攻略

手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc