训练ChatQA 2模型的策略
为了构建能够处理长上下文并具备RAG能力的模型,训练过程设计为三个阶段:
1.1 扩展上下文窗口至128K
初始步骤是将基础模型Llama3-70B的上下文窗口从8K扩展至128K token。这一扩展是通过持续预训练实现的,使用了参照SlimPajama数据集的方法,生成了100亿个token的序列,每个序列长度达到128K。这一策略不仅增加了模型处理长文本的能力,同时也为后续的微调阶段奠定了基础。
1.2 基于长上下文数据的模型微调
ChatQA 1流程
微调过程分为三个阶段,前两个阶段遵循ChatQA 1的训练方式 (在第一阶段,对预训练的LLM模型在高质量的128K指令遵循数据集进行有监督微调(SFT),以提高模型遵循指令的能力。在第二阶段,通过上下文增强的指令微调,进一步增强模型在给定上下文中的对话式QA能力)。然而,鉴于这些数据集的上下文长度相对较短,最大仅为4K token,因此,为了提升模型处理更长上下文的能力,构建了一个专门的长上下文微调(SFT)数据集 。
长SFT数据集的构成:
- 小于32k的SFT数据序列 :利用现有的长上下文数据集,如LongAlpaca12k、Open Orca中的GPT-4样本,以及Long Data Collections中的资源,这些数据集为模型提供了丰富的长文本处理经验。
- 32k至128k的序列长度 :鉴于收集此类长文本样本的挑战性,研究团队转而采用合成数据集。特别是,他们利用NarrativeQA数据集,该数据集包含了真实的摘要和与之语义相关的段落。通过将这些段落整合,并在其中随机插入摘要,模拟了真实的长文档环境,为QA对提供了上下文 。
1.3 长上下文检索器与长上下文LLM的结合
1.3.1 当前RAG流程的局限性
- 上下文碎片化:在使用top-k块状检索时,较短的文本块会增加上下文的碎片化 ,这可能对生成准确答案产生影响。
- 检索效率问题:较小的top-k值可能导致检索回召率较低,而较大的k值则可能引入过多不相关上下文,影响生成质量。
如下表:
1.3.2 长上下文检索器的引入
为了解决上述问题,论文提出使用最新的长上下文检索器。这些检索器能够支持数千个token的上下文,从而减少上下文碎片化,并提高检索效率。论文中使用的是E5-mistral 嵌入模型作为检索器。
上表的结论:
- 随着上下文窗口中总token数的增加,模型的性能也随之提高。具体来说,他们对比了从3000到12000个token的不同设置,结果表明,更多的token通常能够带来更好的结果。这表明,长上下文的能力对于理解复杂的文本信息至关重要。
- 6000个token在上下文窗口中提供了一个良好的折中方案。在这个token数下,模型能够以合理的计算成本实现较高的性能。当总token数固定为6000时,较大的分块大小(例如1200个token的块)能够带来更优的性能。这可能是因为较大的分块能够减少上下文的碎片化,使得模型能够更有效地理解和利用长文本信息。
评测结果
- 大海捞针评测(图显示全绿 )
- 超过100K token的长文本处理能力评估
- 32K token内的中等长度文本处理能力评估
- 4K token内的短文本处理能力评估
- RAG与长上下文
参考文献
- ChatQA: Surpassing GPT-4 on Conversational QA and RAG,https://arxiv.org/abs/2401.10225
- ChatQA 2: Bridging the Gap to Proprietary LLMs in Long Context and RAG Capabilities,https://arxiv.org/pdf/2407.14482
往期相关
【文档智能 & RAG】RAG增强之路:增强PDF解析并结构化技术路线方案及思路
【RAG】FoRAG:面向网络增强型长形式问答的事实性优化RAG
【RAG】Dense X Retrivel:合适的检索粒度对RAG的重要性(浅看命题粒度的定义及分解方法)
【RAG】RAG性能提升之路-RAPTOR:一种构建递归文档树的增强检索方法
【RAG】浅尝基于多头注意力机制思想设计的Multi-Head RAG(多头RAG)
【文档智能 & RAG】RAG增强之路:增强PDF解析并结构化技术路线方案及思路
【LLM & RAG】RAFT:垂域知识微调LLM提升RAG表现