0

0

英伟达对话模型ChatQA进化到2.0版本,上下文长度提到128K

WBOY

WBOY

发布时间:2024-07-26 08:31:47

|

1155人浏览过

|

来源于机器之心

转载

开放 llm 社区正是百花齐放、竞相争鸣的时代,你能看到 llama-3-70b-instruct、qwen2-72b-instruct、nemotron-4-340b-instruct、mixtral-8x22binstruct-v0.1 等许多表现优良的模型。但是,相比于以 gpt-4-turbo 为代表的专有大模型,开放模型在很多领域依然还有明显差距。

在通用模型之外,也有一些专精关键领域的开放模型已被开发出来,比如用于编程和数学的 DeepSeek-Coder-V2、用于视觉 - 语言任务的 InternVL 1.5(其在某些领域可比肩 GPT-4-Turbo-2024-04-09)。

作为「AI 淘金时代的卖铲王」,英伟达自身也在为开放模型领域做贡献,比如其开发的 ChatQA 系列模型,参阅本站报道《英伟达新对话 QA 模型准确度超 GPT-4,却遭吐槽:无权重代码意义不大》。今年初,ChatQA 1.5 发布,其整合了检索增强式生成(RAG)技术,在对话问答方面的表现超过了 GPT-4。

现在,ChatQA 进化到 2.0 版,这一次改进的主要方向是扩展上下文窗口。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

英伟达对话模型ChatQA进化到2.0版本,上下文长度提到128K

  • 论文标题:ChatQA 2: Bridging the Gap to Proprietary LLMs in Long Context and RAG Capabilities

  • 论文地址:https://arxiv.org/pdf/2407.14482

近段时间,扩展 LLM 的上下文窗口长度是一大研究和开发热点,比如本站曾报道过的《直接扩展到无限长,谷歌 Infini-Transformer 终结上下文长度之争》

所有领先的专有 LLM 都支持非常大的上下文窗口 —— 你可以在单个 prompt 中向其灌输数百页文本。比如 GPT-4 Turbo 和 Claude 3.5 Sonnet 的上下文窗口大小分别为 128K 和 200K。而 Gemini 1.5 Pro 可支持 10M 长度的上下文,让人叹为观止。

不过开源大模型也在加紧追赶。比如 QWen2-72B-Instruct 和 Yi-34B 各自支持 128K 和 200K 的上下文窗口。但是,这些模型的训练数据和技术细节并未公开,因此很难去复现它们。此外,这些模型的评估大都基于合成任务,无法准确地代表在真实下游任务上的性能。比如,有多项研究表明开放 LLM 和领先的专有模型在真实世界长上下文理解任务上依然差距明显。

而英伟达的这个团队成功让开放的 Llama-3 在真实世界长上下文理解任务上的性能赶上了专有的 GPT-4 Turbo。

在 LLM 社区中,长上下文能力有时被认为是一种能与 RAG 竞争的技术。但实事求是地说,这些技术是可以相互增益的。

对具有长上下文窗口的 LLM 来说,根据下游任务以及准确度和效率之间的权衡,可以考虑在 prompt 附带大量文本,也可以使用检索方法从大量文本中高效地提取出相关信息。RAG 具有明显的效率优势,可为基于查询的任务轻松地从数十亿 token 中检索出相关信息。这是长上下文模型无法具备的优势。另一方面,长上下文模型却非常擅长文档总结等 RAG 可能并不擅长的任务。

因此,对一个先进的 LLM 来说,这两种能力都需要,如此才能根据下游任务以及准确度和效率需求来考虑使用哪一种。

此前,英伟达开源的 ChatQA 1.5 模型已经能在 RAG 任务上胜过 GPT-4-Turbo 了。但他们没有止步于此,如今又开源了 ChatQA 2,将足以比肩 GPT-4-Turbo 的长上下文理解能力也整合了进来!

具体来说,他们基于 Llama-3 模型,将其上下文窗口扩展到了 128K(与 GPT-4-Turbo 同等水平),同时还为其配备了当前最佳的长上下文检索器。

将上下文窗口扩展至 128K

那么,英伟达如何把 Llama-3 的上下文窗口从 8K 提升到了 128K?首先,他们基于 Slimpajama 准备了一个长上下文预训练语料库,使用的方法则来自 Fu et al. (2024) 的论文《Data engineering for scaling language models to 128k context》。

训练过程中他们还得到了一个有趣发现:相比于使用原有的起始和结束 token ,使用 这样的特殊字符来分隔不同文档的效果会更好。他们猜测,原因是 Llama-3 中的 token 是告知模型在预训练之后忽略之前的文本块,但这无助于 LLM 适应更长的上下文输入。

使用长上下文数据进行指令微调

该团队还设计了一种可同时提升模型的长上下文理解能力和 RAG 性能的指令微调方法。

具体来说,这种指令微调方法分为三个阶段。前两个阶段与 ChatQA 1.5 一样,即首先在 128K 高质量指令遵从数据集训练模型,然后使用对话问答数据和所提供的上下文组成的混合数据进行训练。但是,这两个阶段涉及的上下文都比较短 —— 序列长度最大也不过 4K token。为了将模型的上下文窗口大小提升到 128K token,该团队收集了一个长监督式微调(SFT)数据集。

其采用了两种收集方式:

1. 对于短于 32k 的 SFT 数据序列:利用现有的基于 LongAlpaca12k 的长上下文数据集、来自 Open Orca 的 GPT-4 样本、Long Data Collections。

2. 对于序列长度在 32k 到 128k 之间的数据:由于收集此类 SFT 样本的难度很大,因此他们选择了合成数据集。他们使用了 NarrativeQA,其中既包含真实的总结(ground truth),也包含语义相关的段落。他们将所有相关段落组装到了一起,并随机插入真实总结以模拟用于问答对的真实长文档。

然后,将前两个阶段得到的全长的 SFT 数据集和短 SFT 数据集组合到一起,再进行训练。这里学习率设置为 3e-5,批量大小为 32。

长上下文检索器遇上长上下文 LLM

当前 LLM 使用的 RAG 流程存在一些问题:

1. 为了生成准确答案,top-k 逐块检索会引入不可忽略的上下文碎片。举个例子,之前最佳的基于密集嵌入的检索器仅支持 512 token。

2. 小 top-k(比如 5 或 10)会导致召回率相对较低,而大 top-k(比如 100)则会导致生成结果变差,因为之前的 LLM 无法很好地使用太多已分块的上下文。

为了解决这个问题,该团队提出使用最近期的长上下文检索器,其支持成千上万 token。具体来说,他们选择使用 E5-mistral 嵌入模型作为检索器。

表 1 比较了 top-k 检索的不同块大小和上下文窗口中的 token 总数。

SekoTalk
SekoTalk

商汤科技推出的AI对口型视频创作工具

下载

英伟达对话模型ChatQA进化到2.0版本,上下文长度提到128K

比较 token 数从 3000 到 12000 的变化情况,该团队发现 token 越多,结果越好,这就确认了新模型的长上下文能力确实不错。他们还发现,如果总 token 数为 6000,则成本和性能之间会有比较好的权衡。当将总 token 数设定为 6000 后,他们又发现文本块越大,结果越好。因此,在实验中,他们选择的默认设置是块大小为 1200 以及 top-5 的文本块。

实验

评估基准

为了进行全面的评估,分析不同的上下文长度,该团队使用了三类评估基准:

1. 长上下文基准,超过 100K token;

2. 中等长上下文基准,低于 32K token;

3. 短上下文基准,低于 4K token。

如果下游任务可以使用 RAG,便会使用 RAG。

结果

该团队首先进行了基于合成数据的 Needle in a Haystack(大海捞针)测试,然后测试了模型的真实世界长上下文理解和 RAG 能力。

1. 大海捞针测试

Llama3-ChatQA-2-70B 能否在文本之海中找到目标针?这是一个常用于测试 LLM 长上下文能力的合成任务,可看作是在评估 LLM 的阈值水平。图 1 展示了新模型在 128K token 中的表现,可以看到新模型的准确度达到了 100%。该测试证实新模型具有堪称完美的长上下文检索能力。

英伟达对话模型ChatQA进化到2.0版本,上下文长度提到128K

2. 超过 100K token 的长上下文评估

在来自 InfiniteBench 的真实世界任务上,该团队评估了模型在上下文长度超过 100K token 时的性能表现。结果见表 2。

英伟达对话模型ChatQA进化到2.0版本,上下文长度提到128K

可以看到,新模型的表现优于许多当前最佳模型,比如 GPT4-Turbo-2024-04-09 (33.16)、GPT4-1106 preview (28.23)、Llama-3-70B-Instruct-Gradient-262k (32.57) 和 Claude 2 (33.96)。此外,新模型的成绩也已经非常接近 Qwen2-72B-Instruct 得到的最高分数 34.88。整体来看,英伟达的这个新模型颇具竞争力。

3. token 数在 32K 以内的中等长上下文评估

表 3 给出了上下文的 token 数在 32K 以内时各模型的性能表现。

英伟达对话模型ChatQA进化到2.0版本,上下文长度提到128K

可以看到,GPT-4-Turbo-2024-04-09 的分数最高,为 51.93。新模型的分数为 47.37,比 Llama-3-70B-Instruct-Gradient-262k 高,但低于 Qwen2-72B-Instruct。原因可能是 Qwen2-72B-Instruct 的预训练大量使用了 32K token,而该团队使用的持续预训练语料库小得多。此外,他们还发现所有 RAG 解决方案的表现都逊于长上下文解决方案,这表明所有这些当前最佳的长上下文 LLM 都可以在其上下文窗口内处理 32K token。

4. ChatRAG Bench:token 数低于 4K 的短上下文评估

在 ChatRAG Bench 上,该团队评估了模型在上下文长度少于 4K token 时的性能表现,见表 4。

英伟达对话模型ChatQA进化到2.0版本,上下文长度提到128K

新模型的平均分数为 54.81。尽管这个成绩不及 Llama3-ChatQA-1.5-70B,但依然优于 GPT-4-Turbo-2024-04-09 和 Qwen2-72B-Instruct。这证明了一点:将短上下文模型扩展成长上下文模型是有代价的。这也引出了一个值得探索的研究方向:如何进一步扩展上下文窗口同时又不影响其在短上下文任务上的表现?

5. 对比 RAG 与长上下文

表 5 和表 6 比较了使用不同的上下文长度时,RAG 与长上下文解决方案的表现。当序列长度超过 100K 时,仅报告了 En.QA 和 En.MC 的平均分数,因为 RAG 设置无法直接用于 En.Sum 和 En.Dia。

英伟达对话模型ChatQA进化到2.0版本,上下文长度提到128K

可以看到,当下游任务的序列长度低于 32K 时,新提出的长上下文解决方案优于 RAG。这意味着使用 RAG 可以节省成本,但准确度会有所下降。

另一方面,当上下文长度超过 100K 时,RAG(Llama3-ChatQA-2-70B 使用 top-5,Qwen2-72B-Instruct 使用 top-20)优于长上下文解决方案。这意味着当 token 数超过 128K 时,即使当前最佳的长上下文 LLM,可能也难以实现有效的理解和推理。该团队建议在这种情况下,能使用 RAG 就尽量使用 RAG,因为其能带来更高的准确度和更低的推理成本。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6490

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

839

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

1088

2023.12.21

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

1793

2024.03.01

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2770

2024.08.16

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

46

2026.02.28

Golang 工程化架构设计:可维护与可演进系统构建
Golang 工程化架构设计:可维护与可演进系统构建

Go语言工程化架构设计专注于构建高可维护性、可演进的企业级系统。本专题深入探讨Go项目的目录结构设计、模块划分、依赖管理等核心架构原则,涵盖微服务架构、领域驱动设计(DDD)在Go中的实践应用。通过实战案例解析接口抽象、错误处理、配置管理、日志监控等关键工程化技术,帮助开发者掌握构建稳定、可扩展Go应用的最佳实践方法。

42

2026.02.28

Golang 性能分析与运行时机制:构建高性能程序
Golang 性能分析与运行时机制:构建高性能程序

Go语言以其高效的并发模型和优异的性能表现广泛应用于高并发、高性能场景。其运行时机制包括 Goroutine 调度、内存管理、垃圾回收等方面,深入理解这些机制有助于编写更高效稳定的程序。本专题将系统讲解 Golang 的性能分析工具使用、常见性能瓶颈定位及优化策略,并结合实际案例剖析 Go 程序的运行时行为,帮助开发者掌握构建高性能应用的关键技能。

37

2026.02.28

Golang 并发编程模型与工程实践:从语言特性到系统性能
Golang 并发编程模型与工程实践:从语言特性到系统性能

本专题系统讲解 Golang 并发编程模型,从语言级特性出发,深入理解 goroutine、channel 与调度机制。结合工程实践,分析并发设计模式、性能瓶颈与资源控制策略,帮助将并发能力有效转化为稳定、可扩展的系统性能优势。

21

2026.02.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
正则表达式手册
正则表达式手册

共7课时 | 7.1万人学习

Git 教程
Git 教程

共21课时 | 4万人学习

Django 教程
Django 教程

共28课时 | 4.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号