当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > LLM超长上下文查询-性能评估实战

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

来源:51CTO.COM 2024-04-24 19:15:32 0浏览 收藏

从现在开始,努力学习吧!本文《LLM超长上下文查询-性能评估实战》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

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

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

所谓的“高基数分组值”,指的是那些必须从有限的选项中选择的值,这些值不能随意指定,而必须来自一个预定义的集合。在这种集合中,有时会存在有效值数量非常庞大的情况,我们称之为“高基数数值”。处理这类数值之所以困难,是因为LLM本身并不知道这些可行的值是什么。因此,我们需要向LLM提供关于这些可行值的信息。即使忽略了只有少数几个可行值的情况,我们仍然可以在提示中明确列出这些可能的值来解决这个问题。然而,由于可能值非常多,问题就变得复杂了。

随着可能值数量的增加,LLM选择值的难度也随之增加。一方面,如果可能的值太多,它们可能无法适应LLM的上下文窗口。另一方面,即使所有可能的值都能适应上下文,将它们全部包含在内会导致处理速度变慢、成本增加,以及LLM在处理大量上下文时的推理能力下降。 `随着可能值数量的增加,LLM选择值的难度也随之增加。一方面,如果可能的值太多,它们可能无法适应LLM的上下文窗口。另一方面,即使所有可能的值都能适应上下文,将它们全部包含在内会导致处理速度变慢、成本增加,以及LLM在处理大量上下文时的推理能力下降。` (Note: The original text appears to be URL encoded. I have corrected the encoding and provided the rewritten text.)

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

结果的概览可以在LangSmithhttps://smith.langchain.com/public/8c0a4c25-426d-4582-96fc-d7def170be76/d?ref=blog.langchain.dev中查看。接下来,我们将详细介绍:

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

数据集概览

详细的数据集可以在这里查看https://smith.langchain.com/public/8c0a4c25-426d-4582-96fc-d7def170be76/d?ref=blog.langchain.dev。

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

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

通过这种设置,我们可以针对我们创建的别名数据集进行测试,检查它们是否能够正确映射到真实姓名。同时,我们还会记录查询的延迟和成本。这种查询分析系统通常用于搜索,因此我们非常关心这两个指标。出于这个原因,我们也限制了所有方法只能进行一次LLM调用。我们可能会在未来的文章中对使用多次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个值,而许多现实世界中的系统可能需要处理的是数百万级别的基数。因此,对更高基数的数据进行基准测试将是非常有价值的。

终于介绍完啦!小伙伴们,这篇关于《LLM超长上下文查询-性能评估实战》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布科技周边相关知识,快来关注吧!

版本声明
本文转载于:51CTO.COM 如有侵犯,请联系study_golang@163.com删除
如何使用 go/analysis 查找 Ident 的声明?如何使用 go/analysis 查找 Ident 的声明?
上一篇
如何使用 go/analysis 查找 Ident 的声明?
比亚迪发布新一代魔方储能系统MC Cube-T:6.432MWh大容量
下一篇
比亚迪发布新一代魔方储能系统MC Cube-T:6.432MWh大容量
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • SEO标题协启动:AI驱动的智能对话与内容生成平台 - 提升创作效率
    协启动
    SEO摘要协启动(XieQiDong Chatbot)是由深圳协启动传媒有限公司运营的AI智能服务平台,提供多模型支持的对话服务、文档处理和图像生成工具,旨在提升用户内容创作与信息处理效率。平台支持订阅制付费,适合个人及企业用户,满足日常聊天、文案生成、学习辅助等需求。
    9次使用
  • Brev AI:零注册门槛的全功能免费AI音乐创作平台
    Brev AI
    探索Brev AI,一个无需注册即可免费使用的AI音乐创作平台,提供多功能工具如音乐生成、去人声、歌词创作等,适用于内容创作、商业配乐和个人创作,满足您的音乐需求。
    9次使用
  • AI音乐实验室:一站式AI音乐创作平台,助力音乐创作
    AI音乐实验室
    AI音乐实验室(https://www.aimusiclab.cn/)是一款专注于AI音乐创作的平台,提供从作曲到分轨的全流程工具,降低音乐创作门槛。免费与付费结合,适用于音乐爱好者、独立音乐人及内容创作者,助力提升创作效率。
    9次使用
  • SEO标题PixPro:AI驱动网页端图像处理平台,提升效率的终极解决方案
    PixPro
    SEO摘要PixPro是一款专注于网页端AI图像处理的平台,提供高效、多功能的图像处理解决方案。通过AI擦除、扩图、抠图、裁切和压缩等功能,PixPro帮助开发者和企业实现“上传即处理”的智能化升级,适用于电商、社交媒体等高频图像处理场景。了解更多PixPro的核心功能和应用案例,提升您的图像处理效率。
    9次使用
  • EasyMusic.ai:零门槛AI音乐生成平台,专业级输出助力全场景创作
    EasyMusic
    EasyMusic.ai是一款面向全场景音乐创作需求的AI音乐生成平台,提供“零门槛创作 专业级输出”的服务。无论你是内容创作者、音乐人、游戏开发者还是教育工作者,都能通过EasyMusic.ai快速生成高品质音乐,满足短视频、游戏、广告、教育等多元需求。平台支持一键生成与深度定制,积累了超10万创作者,生成超100万首音乐作品,用户满意度达99%。
    12次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码