百川智能再发新模型,超越Claude2将上下文窗口做到了全球第一
大模型的上下文窗口正变得越来越大,从 ChatGPT 的 4K,到 GPT-4 的 32K,从 MPT-7B 的 65K,到 Claude 的 100K,持续扩展上下文窗口长度已经成为了提升大模型应用效果的核心路径。
现在上下文窗口长度又有了新突破。10 月 30 日,百川智能发布 Baichuan2-192K 大模型。其上下文窗口长度高达 192K,是目前全球最长的上下文窗口。Baichuan2-192K 能够一次性处理约 35 万个汉字,是 Claude2(支持 100K 上下文窗口,实测约 8 万字)的 4.4 倍,GPT-4(支持 32K 上下文窗口,实测约 2.5 万字)的 14 倍。Baichuan2-192K 不仅在上下文窗口长度上超越了 Claude2,在长窗口文本生成质量、长上下文理解以及长文本问答、摘要等方面的表现也全面领先 Claude2。
在语言模型中,上下文窗口对于理解和生成与特定上下文相关的文本至关重要。一般而言较大的上下文窗口可以提供更丰富的语义信息、消除歧义,进而让模型能够更准确、流畅的生成内容,提升模型的创造力。
既然如此,是否将上下文窗口的长度提升到无限大,AGI 就指日可待了?理论上存在这种可能,但是就像受限于算力、数据等因素,大模型的参数不可能无限大一样,扩展上下文窗口同样面临诸多问题。
现阶段 Transformer 是大模型的主流结构,而消耗的资源和窗口长度的平方成正比是 Transformer 模型自注意力机制的特点之一,即当模型输入长度变长之后,所需要的计算空间和时间便会爆炸性增长。因此,想要扩展上下文窗口不仅需要优化算法还要解决工程问题。
这也正是今年 5 月份,Anthropic 公司将 Claude 的上下文窗口从 9K tokens 扩展到了 100K 后,立刻成为了上下文窗口领域标杆的原因。100K 的上下文窗口长度不仅反映了 Anthropic 的技术实力,还有效提升了 Claude 的文本理解、生成质量、逻辑推理等各种能力。
表面上看是可输入的文本越来越长,模型的阅读能力越来越强。GPT-3.5 的 4K 窗口最多只能输入 3000 个英文单词或者 2000 个汉字,连大部分文章都难以读完;GPT-4 的 32K 窗口达到了阅读一篇短篇小说的程度;100K 窗口的 Claude 可输入约 8 万个单词,不到一分钟就可以阅读完一本《了不起的盖茨比》;而 Baichuan2-192K 一次可输入 35 万汉字,能够直接读完一本《三体》。
然而,扩大 Transformer 的上下文长度是一项极具挑战性的工作,因为其核心的注意力层在时间复杂度和空间复杂度与输入序列长度的平方成正比。
例如,一个标准的 13B 模型,输入长度为 2K tokens 的时候,其 Attention 部分在不经过任何优化和重消耗的情况下占用的空间只有 12.5GB。然而当长度扩展到 64K 之后,Attention 部分所需空间会达到惊人的 12.5TB。除了巨大存储空间占用之外,模型的训练时间也会随着上下文窗口长度的扩展呈现平方式增长的趋势。
为解决这一问题,大模型的从业者和研究人员进行了很多探索和实践,稀疏 Attention 便是主要方向之一。稀疏 Attention 指的是对全连接的 Attention 进行近似逼近,以滑动窗口或者固定大小进行 Attention,这样整体的计算消耗和输入长度就会呈线性关系,在长度超过一定程度后这种方法可以显著的降低显存占用。LongFormer、BigBird 以及最近推出的 StreamingLLM 和 LM-Infinite 使用的都是这种方法。
不过,由于大部分稀疏 Attention 仅仅是对标准 Attention 的近似,在一些需要精细化理解的场景里,这种方案往往会丢失重要的局部信息,进而导致大模型的长文本处理能力下降。
拓展上下文窗口的另一个主要方向是训练阶段不调整上下文窗口长度,仅在模型部署推理阶段提升模型的处理长度,即 Train-short,Test-long。这种方法的核心思路是在推理阶段通过相对位置编码进行内插(interpolation)或者外推(extrapolation),让模型能够处理在训练阶段没有见到过的长度。
在位置编码层对更长的窗口进行近似,然后改造短窗口位置编码来适应长窗口,虽然能够在长窗口处理方面取得一些效果,但是经常会出现长窗口变好,但之前训练长度内的短窗口变差的情况。此外,由于训练、推理不一致,这种方法会造成 Attention 动态性能的极大变化,在实际应用中虽然能够提升 PPL 等指标的表现,但是模型长文本上下文理解的能力并未提升。
不同于以上两种优化路径,Baichuan2-192K 同时优化算法和工程,实现了窗口长度和模型性能之间的平衡,做到了窗口长度和模型性能的同步提升。Baichuan2-192K 采用了标准的全连接 Attention 而非近似的稀疏 Attention,以保证模型的长文本理解效果,同时对位置编码进行改造使之能够适应不同长度的上下文场景。
算法方面,通过对注意力分布的可视化分析和算法分析,百川团队发现随着序列变长,模型会因为 OOD 导致网络中对应 token 的 hidden_states 呈现爆炸 (explosion) 的迹象;同时,Attention score 的方差也会随着序列增长而不断下降。
在此基础上,百川智能提出了一种针对 RoPE 和 ALiBi 的动态位置编码的外推方案,该方案能够对不同长度的 ALiBi 位置编码进行不同程度的 Attention-mask 动态内插,在保证分辨率的同时增强了模型对长序列依赖的建模能力。
根据 DeepMind 发布的语言建模基准数据集 PG19 的测试结果,Baichuan2-192K 的困惑度在窗口长度内保持了持续下降的状态。困惑度是衡量大模型文本生成质量的重要标准,可以简单理解为将符合人类自然语言习惯的高质量文档作为测试集时,模型生成测试集中文本的概率越高,模型的困惑度就越小,模型也就越好。
LongEval 的评测结果显示,Baichuan2-192K 的长窗口内容记忆和理解能力大幅领先其他模型,窗口长度超过 100K 后依然能够保持非常强劲的性能,而其他模型在窗口增长后效果都出现了近乎直线下降的情况。Claude2 也不例外,在窗口长度超过 80K 后整体效果下降非常严重。
此外,为更好的验证长上下文窗口的真实能力,Baichuan2-192K 还使用 Dureader、NarrativeQA、TriviaQA、LSHT 等 10 个权威中英文长文本问答、摘要评测集进行了评测,其中有 7 项取得 SOTA,显著超过其他长窗口模型 。
Dureader: 是由百度发布的一个中文真实场景问答数据,需要多文档进行问答 NarrativeQA: 一个根据长文本小说进行问答的英文数据集 TriviaQA: 是由华盛顿大学发布智力游戏问答数据集 LSHT: 是一个包含有24个类别的中文新闻分类数据集 MFQA: MultifiledQA,包含有中英两种语言的文档阅读理解数据集 QMSUM: 一个根据会议纪要进行问答的英文数据集 RepoBench-P: 是一个根据Github中代码仓库的上下文预测后续代码的代码补全测试集 Trec: 包含有50个类别的网页问题分类数据集 VCSUM: 一个对中文会议进行摘要和总结的任务
可以看到 Baichuan2-192K 表现优异,在大部分长文本评测集上都取得了最好效果。
35万字只是起点,深度赋能垂直场景才是关键
当模型处理的上下文变得更长后,大模型便能够与更多垂直场景深度结合,真正在人们的工作、生活、学习中发挥作用,而且由于可以直接基于全文理解进行问答和信息处理,大模型的“幻觉”问题也可以得到缓解。
此外,一次性读取 35 万汉字的能力,还能够让其生成更连贯、更吸引人的长篇内容,帮助创作者更快更好的创作内容。不仅如此,更长的上下文还为其更好的处理和理解复杂的多模态输入,以及实现更好的迁移学习提供了底层支撑。
目前,Baichuan2-192K 已经与财经类媒体和讯网、海德律师事务所等机构达成了合作,将其全球领先的长上下文能力应用到了传媒、法律等具体场景当中。
百川智能成立于 2023 年 4 月,成立至今,百川智能接连发布 Baichuan-7B/13B,Baichuan2-7B/13B 四款开源可免费商用大模型以及 Baichuan-53B、Baichuan2-53B 两款闭源大模型,平均每个月就会发布一款新的大模型,研发速度处于行业的顶尖水平。
192K 的上下文窗口既是百川智能在大模型技术创新上的又一次突破,也是大模型发展过程中的又一里程碑式进展,百川智能再一次走在了大模型技术创新的最前沿。
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
微信扫码关注该文公众号作者