专栏名称: 计算机视觉深度学习和自动驾驶
讨论计算机视觉、深度学习和自动驾驶的技术发展和挑战
目录
相关文章推荐
深圳发布  ·  抢票 |《法医探案团之迷雾回响》 ·  昨天  
深圳大件事  ·  两大人一小孩,夜爬至光明水库被困 ·  昨天  
51好读  ›  专栏  ›  计算机视觉深度学习和自动驾驶

超越极限:在大语言模型中扩展上下文长度的技术综述

计算机视觉深度学习和自动驾驶  · 公众号  ·  · 2024-06-13 00:00

正文

24年2月加拿大华为的论文“Beyond the Limits: A Survey of Techniques to Extend the Context Length in Large Language Models”。

该综述对旨在延长LLM序列长度的最新技术和方法进行包容性回顾,从而增强他们的长上下文理解能力。特别是,回顾和分类广泛的技术,包括架构修改,例如修改的位置编码和改变的注意机制,这些技术旨在增强较长序列的处理,同时避免计算要求的成比例增加。本研究中多种方法可以在LLM的不同阶段(即训练、微调和推理)中利用。这使得LLM能够有效地处理扩展序列。最后讨论当前方法的局限性以及对未来研究方向的建议,强调序列长度在LLM持续发展中的重要性。

如图是长上下文LLM的分类,包括五个不同的部分:长度外推、注意近似、无注意transformer、模型压缩和硬件-觉察Transformer。还建立各种方法及其相关适用场景之间的联系。有些需要从头开始训练新模型,有些需要微调预训练的模型,有些需要在不更新超参的情况下实现推理。

位置外推法和插值法成为扩展模型能力的关键方法,可以处理比LLM最初训练序列更长的序列。此外,上下文窗口分割和滑动是一种关键技术,可将输入序列变成较小的片段或移动上下文窗口以处理较长的序列。另外,提示压缩策略,是一种在保留基本信息的同时有效压缩输入提示的方法。

位置外推和插值是指调整与输入tokens相关的位置嵌入 (PE) 的技术,从而修改这些tokens在模型架构中的定位和解释方式。PE 在 Transformer 模型的架构中发挥着关键作用,因为它们赋予输入tokens至关重要的意义,使模型能够识别序列中每个token的特定位置。这确保模型可以有效地捕获和利用输入数据中固有的顺序信息。

位置外推是指模型处理超过其训练长度输入序列的能力,从而能够保留扩展序列的上下文和连贯性。此功能对于负责理解和生成冗长文档或对话的模型至关重要。另一方面,位置插值涉及模型在现有序列中插入或集成新信息的熟练程度。

基于 Transformer 的 LLM 本质上受到有限的上下文窗口的限制,使得它们无法直接集成或利用长序列中的全部信息。为了减轻这种限制,人们开发了各种方法来将输入划分为多个片段,并应用滑动窗口方法来管理上下文。

提示压缩是指在保留重要信息的同时缩短原始提示的方法。提示压缩过程通过压缩大量提示输入或通过学习获取提示的简洁表示来加快 LLM 输入的处理。


注意近似的基础在于降低普通自注意的计算和记忆复杂性,其相对于序列长度 n 呈二次方增加,即 O(n^2)。这可以通过用低秩版近似全秩注意图、利用注意层中的稀疏模式或解构普通注意的与softmax相关的复杂性以获得简化但有效的近似来实现。

低秩分解方法可以通过减少矩阵中的参数量来使注意计算更加有效。解决 Transformer 中自注意模块的计算和内存挑战的另一种策略是利用稀疏模式。

普通注意的功效通常归因于 softmax 操作,它是捕获远程依赖关系的重要元素。然而,此操作在时间和空间上引入了二次复杂性,阻碍Transformer无缝扩展和/或将长序列tokens作为输入。Softmax 运算的替代有可能降低计算复杂性,为提高处理大量tokens序列的效率铺平道路。这类方法称为无 softmax 注意。


无注意Transformer是指在不依赖传统注意机制的情况下提供tokens之间依赖信息的计算方法。这些机制为依赖计算提供了不同的视角,同时保持次二次的内存复杂性。其中有两个不同的子类别,即状态空间模型(SSM)和位置依赖注意。

SSM 是一种统计序列-到-序列 (seq2seq) 模型,它采用隐藏状态的线性投影来根据输入序列计算输出序列。SSM引入类似RNN的seq2seq模型,没有非线性,可以实现并行训练并优化推理效率。基于状态的 seq2seq 操作可以展开,类似于具有参数化内核的卷积操作。理论上,与 RNN 类似,这种卷积运算可以扩展到无限长度,从而无需计算各个状态即可计算输出。在使用整个输入序列的训练阶段,该卷积过程可以异常快速且并行,这使其与传统的 RNN 不同。

位置相关注意在这个独特的类别中,出现一种独特的依赖计算形式,其中依赖取决于tokens的位置而不是它们之间的交互。


另一种可以使 LLM 支持更长序列的方法是模型压缩。各种模型压缩方法都有不同的重点。有些人专注于通过消除冗余权重来最小化 LLM 架构的大小,从而减少计算和内存需求。其他一些人优先考虑降低计算精度以减轻计算复杂性。此外,某些方法强调提高内存效率和优化数据存储方法。

量化被认为是提高通用神经网络的计算时间和能量效率的有前途方法。此外,神经网络足够强大,可以量化为较低的位带宽,对网络精度的影响相对较小。这提供利用量化来降低 LLM 复杂性的想法,从而使它们能够支持更长的输入序列。根据量化实施的阶段,LLM的量化技术可以分为量化感知训练(QAT)和训练后量化(PTQ)。

剪枝是指删除对模型不太重要的冗余参数来减小 LLM 的大小。剪枝可以帮助优化模型的部署,并使模型在计算复杂度和内存使用方面更加高效。因此,剪枝可以被认为是一种使语言模型能够支持更长的序列长度同时保持所需的复杂性和性能的方法。一般来说,模型剪枝可以分为结构化剪枝和非结构化剪枝。

虽然多头注意已经证明了其在表征tokens之间相关性方面的有效性,但由于随输入序列长度增加造成重复加载大 KV 张量,在推理过程中它受到了增加的内存带宽成本和更长延迟的影响。


应对LLM中长序列带来的挑战,可行的解决方案包括算法适配硬件、提高效率并能够处理更长的序列。为了解决 IO-觉察、资源管理、多设备分布式注意和内存管理的不同方面,讨论不同的方法。







请到「今天看啥」查看全文