为了解决这一问题,封神榜团队提出了Ziya-Reader,它使用了注意力增强的训练方法,通过专门的训练缓解了多文档问答中的幻觉问题,在多项中文长文本任务的基准评测中都取得了第一名。并且我们经过精心的调教,让Ziya-Reader的通用指令遵循能力,不输于同尺寸的优秀模型。今天,封神榜团队发布了Ziya-Reader的技术报告,公开了Ziya-Reader的训练细节,希望这个拥有130亿参数(13B)的模型,能够真正帮助相关的研究者和开发者,共同促进产业进步。 论文题目:Never Lost in the Middle: Improving Large Language Models via Attention Strengthening Question Answering 论文链接:https://arxiv.org/abs/2311.09198
模型下载链接
Hugging Face:
https://hf.co/IDEA-CCNL/Ziya-Reader-13B-v1.0
ModelScope:
https://modelscope.cn/models/Fengshenbang/Ziya-Reader-13B-v1.0/
近来,越来越多拥有超长上下文窗口的LLM被提出,LLM甚至可以处理达到200k token的长序列内容。虽然窗口长度得到极大的扩展,但是在需要识别输入上下文中相关信息的任务中,当相关信息出现在输入上下文的中间部分时性能会有明显的下降,如下图所示,改变相关信息的位置(正确段落的位置),LLM会产生一个U型的性能曲线。这也就是有名的“Lost in the Middle“问题[2],即使是GPT-3.5-turbo-16k、Claude-1.3-100k、Longchat-13b-16k等优秀的长窗口LLM也存在这一问题。这使得我们使用LLM在进行检索增强的知识问答任务时,存在明显的性能缺陷。
为了克服这一问题,我们提出了注意力增强的多文档问答(Attention Strengthenning Multi-doc QA,ASM QA)的训练方法,它通过显式地在训练中引入类似CoT机制的多步推理回答过程,让模型能够更加注意到与位置无关的正确上下文信息。它在仅仅使用了8k窗口的情况下,就能在多项长文本任务中超过拥有16k或者32k窗口的其他优秀模型。
注意力增强的问答任务设计
我们将ASM QA任务,分解成一个多步推理的过程,并显式地在训练中让模型学会这种推理范式。
第一步,我们在指令的输出中,让模型先进行问题(question)的复述,这使得模型在阅读了一段非常长的上下文信息后,也不会因为距离衰减的原因忘记原始的提问,因而在生成答案时,更加能够关注到问题。
第二步,我们构造了上下文段落的下标预测的任务,即让模型尝试预测相关上下文信息中正确上下文段落的索引下标。通过这种方式,我们让模型能够更加关注于正确的上下文段落。
最后,在以上两步的输出基础上,我们让模型输出最后的答案总结。我们使用一些提示前缀(prefix)来关联这三部分的输出,使其更符合自然语言表达的习惯。整体的流程如下图所示。
任务数据构造
我们构造了两个阶段的训练数据来训练Ziya-Reader。在第一阶段我们进行通用能力的有监督微调(Supervised Finetuning,SFT)训练,并将窗口扩充到8k token。在第二阶段,我们构造ASM QA数据,并继续使用8k窗口进行SFT训练。
在第一阶段中,我们精选了300k条通用的指令数据,包括常识问答、阅读理解、角色扮演、写作、代码生成、翻译、头脑风暴等任务,并混合了部分预训练数据,进行Language Modeling任务的训练(即计算整个文本序列的交叉熵损失)。我们将所有的任务数据拼接起来,使得拼接后的样本都尽量具有8k的窗口长度。
在第二阶段中,我们从DuReader2.0[3]和WebCPM[4]中过滤了约50k的数据,并按照任务设计中的形式构造了样本。特别地,我们使用了一个奖励模型(Reward Model)来进行数据的过滤,使得我们挑选出来的50k数据都具有非常高的数据质量。
为了使得模型对上下文的注意力得到进一步的增强,让模型更加注意到位于不同位置的正确的上下文段落,我们构造了位置无关的高难度样本。我们将所有的文档向量化后灌入向量搜索引擎中,并在70%的数据中,根据问题和文档的相似度构造了不相关但相似的上下文负例。在另外30%的数据中,我们进行随机采样来构造不相关的上下文负例。我们还构造了少部分样本,这一部分样本中没有任何相关的正确上下文段落,这部分样本的输出是“根据以上内容,我不知道正确的答案“。最后,我们在构造样本时,保证样本的长度是均匀分布的,并正确的上下文段落会被随机分配到任何位置,这就保证了模型可以关注到任何位置的正确上下文段落。
实验与分析
我们在中文权威的长文本评测基准LongBench[5]上进行了实验并重点评测了Multi-doc QA、Synthesis Task和Summarization三个和RAG紧密相关的任务。评测结果如下:
相比于其他的拥有更长窗口的模型,例如32k窗口的ChatGLM2-6B-32k,以及16k窗口的GPT-3.5-turbo-16k,Ziya-Reader在Multi-doc QA和Synthesis Tasks两项任务中都达到了SOTA效果,在Summarization任务中也仅比最好的模型效果低0.5%。说明即使仅有8k的窗口长度,也能具备非常扎实的长文理解效果。
与此同时,我们将Multi-doc QA评测中的正确上下文段落进行了随机的顺序打乱,使得其能够出现在上下文中的任何位置,重新构造了评测集Multi-doc QA shuffled。在这个评测集上,Ziya-Reader基本保持了优秀的多文档问答能力,而其他的长窗口模型均出现了非常明显的性能下降。这说明Ziya-Reader极大地缓解了前文提到的“Lost in the middle”的问题。具体的评测指标如下图所示。
我们也进行了详尽的消融实验,结果表示我们的ASM QA任务构造方式,能够明显地提升模型的相关信息检索和多文档问答能力,优于普通的多文档问答训练方式,让模型对问题和上下文的注意力得到增强。详细的分析结论请参阅我们的技术报告。
最后,我们也评测了Ziya-Reader的通用能力,如下图所示。我们使用匿名Side-by-Side的评测方式,在写作、QA、推理、代码、自然语言理解等多个方面的评估中,基本与Baichuan2-13B-Chat持平,并大幅胜出与Ziya-Llama-13B-v1.1。说明Ziya-Reader不仅可以作为QA模块中的一部分,也可以作为一个Agent,在整个RAG链路中发挥更大的价值。
我们所提出的ASM QA训练方法,能够极大地增强LLM的长文本问答能力,缓解“Lost in the middle”的问题。我们也将这一工作进行了开源,希望Ziya-Reader能够对大模型的应用落地带来真正的帮助。
未来,我们计划继续Ziya-Reader系列的研发,探索在更大的模型尺寸、更长的上下文窗口上,进一步提升与知识整合和知识创造相关的任务的效果,持续探索大模型的应用边界。我们也将持续为社区提供先进的大模型基座,分享先进的技术及经验,共同推进大模型生态的发展。
参考文献
[1] Shi W, Han X, Lewis M, et al. Trusting Your Evidence: Hallucinate Less with Context-aware Decoding[J]. arXiv preprint arXiv:2305.14739, 2023.[2] Liu N F, Lin K, Hewitt J, et al. Lost in the middle: How language models use long contexts[J]. arXiv preprint arXiv:2307.03172, 2023.[3] He W, Liu K, Liu J, et al. Dureader: a chinese machine reading comprehension dataset from real-world applications[J]. arXiv preprint arXiv:1711.05073, 2017.[4] Qin Y, Cai Z, Jin D, et al. WebCPM: Interactive Web Search for Chinese Long-form Question Answering[J]. arXiv preprint arXiv:2305.06849, 2023.[5] Bai Y, Lv X, Zhang J, et al. LongBench: A Bilingual, Multitask Benchmark for Long Context Understanding[J]. arXiv preprint arXiv:2308.14508, 2023.
联系我们
更多有用、有趣的知识问答体验期待你的开启
了解更多信息欢迎关注封神榜开源主页封神榜 ModelScope 主页:https://modelscope.cn/organization/Fengshenbang封神榜 Hugging Face 主页:https://hf.co/IDEA-CCNL封神榜 Github 主页:https://github.com/IDEA-CCNL/Fengshenbang-LM
本文由 Hugging Face 中文社区内容共建项目提供,稿件由社区成员投稿,经授权发布于 Hugging Face 公众号。文章内容不代表官方立场,文中介绍的产品和服务等均不构成投资建议。了解更多请关注公众号:
如果你有与开源 AI、Hugging Face 相关的技术和实践分享内容,以及最新的开源 AI 项目发布,希望通过我们分享给更多 AI 从业者和开发者们,请通过下面的链接投稿与我们取得联系:
https://hf.link/tougao