从Gemini15解读大模型上下文技术发展
作者: 吃果冻不吐果冻皮 来源: 吃果冻不吐果冻皮
近日,谷歌公司发布了备受瞩目的Gemini 1.5模型,其放出的Pro版本的功能引发了业界广泛关注。Gemini 1.5 Pro模型的突破之处在于其稳定支持高达一百万(1M)长度的上下文,这意味着在处理文本、视频、音频或代码等多种数据形式时,Gemini都能提供更加全面、准确的分析与理解。值得一提的是,谷歌公司甚至声称他们在研究中成功测试了长达10M长度上下文的情景,这为Gemini的未来发展打开了更广阔的可能性。作为一款原生多模态大模型,Gemini所能处理的1M tokens的信息量相当于一个小时的视频、11个小时的音频、3万行的代码或者70万个单词的文本。这种多样性的数据处理能力使Gemini成为了当今技术领域中备受瞩目的利器。这种强大的信息处理能力,为模型在不同领域的应用提供了无限可能。从深入分析复杂的程序代码到理解长篇的文学作品,从处理和生成高清视频到转写和理解长时间的音频材料,Gemini 1.5模型的能力几乎涵盖了数字信息的所有形态。
在这个背景下,深入理解大模型的上下文技术变得尤为重要。上下文技术是大语言模型能力的核心之一,它决定了模型对信息的理解深度和广度。随着技术的进步,模型对上下文的处理能力不断提升,这直接影响到模型的应用范围和效果。我们将深入探讨大语言模型在上下文技术方面的技术发展,理解这一领域的最新进展和挑战。
大模型上下文(通常指的是在大型语言模型中的上下文)是指模型在生成文本、回答问题或执行其他任务时,能够考虑并参照的前置文本的数量或范围 。在自然语言处理(NLP)中,上下文对于理解和生成连贯、相关和准确的文本意义非凡。因此对于一个模型来说,其可以支持的上下文最大长度至关重要。
扩展大型语言模型的上下文长度带来的益处大致可以归为以下几点:
改善理解和连贯性: 更大的上下文长度允许模型在生成、回应、或继续一段文字时,考虑到更多之前的文本,从而可以生成更连贯和与上下文更相关的输出内容,进而提升完成文本翻译等任务的质量。
增强记忆和参考能力: 允许模型“记住”更多的文本信息,使它可以生成含有更多信息量的回应。这对于需要理解和整合一段文本中多个部分的复杂任务尤其重要,例如对细节信息的讨论和多步骤问题的解答。
处理复杂任务: 更长的上下文长度使模型能够处理需要对长文本有广泛理解的复杂任务。例如长文档总结,根据长文本回答提问 等。
支持更长对话: 因为不会丢失更加早期的“记忆”,扩展上下文长度使模型在处理长对话时更有效,而这对于客服聊天机器人等应用十分重要。
研究和开发: 提升上下文长度是持续改进大语言模型能力的研究工作的一部分。探索如何有效管理更长的上下文可能带动模型架构、训练技巧和内存管理方面的进步 ,进而使大语言模型变得更强大和高效。
虽然大上下文长度可以为大语言模型带来多种收益,但扩展上下文长度却面临许多挑战。这些挑战不仅涉及技术层面,还包括计算资源和优化策略等方面:
**计算资源需求增加:**处理更长的上下文需要更多的计算能力。 这意味着模型训练和推理的时间会增加,同时对硬件(如GPU或TPU)的需求也会增加,导致成本上升。
**内存限制:**随着上下文长度的增加,模型在处理输入时需要的内存也随之增加 。当前的硬件和模型架构一定程度上限制了可用于处理这些大量数据的内存大小,而可能导致低效率或无法处理极长的上下文。
梯度消失和爆炸: 在训练模型时,随着模型深度的增加,可能会出现梯度消失或爆炸(Vanishing/Exploding Gradients)的问题。虽然技术如残差连接(Residual Connections)和层归一化(Layer Normalization)可以缓解这一问题,但在处理非常长的序列时,这些问题依然可能影响模型的学习能力。
注意力机制的局限性: 现有的大语言模型通常基于Transformer结构,而注意力机制是该结构的关键组成部分,其计算复杂度与序列长度的平方成正相关。这意味着增加上下文长度会使计算成本大幅增长。
数据稀疏性: 上下文长度的增加可能导致数据稀疏性问题,即模型在训练过程中没有足够的数据来学习长上下文中存在的长距离依赖关系。该问题易导致模型出现过拟合现象。
能效平衡: 扩展上下文长度虽然可以提高模型的性能,但也可能导致效率降低。开发者需要在模型的计算效率和任务性能之间重新寻找平衡点,这可能需要复杂的优化策略调整。
**训练成本
扩展大模型上下文长度的难点之一就是训练成本,因为这关系着上到大型企业,下到个人用户的预算投入。OpenAI的CEO Sam Altman 曾被问及GPT-3这样的项目是否需要花费数百万美元,他的回答是 “更高。” 据此推断,GPT-3的训练成本可能超过千万美元。在国盛证券的一份报告中,根据GPT-3所需设备,电力及计算量可以得出下列等式。也就是说,GPT-3训练一次需约140万美元。GPT-3早在2020年就已发布,不难想象当下参数更多,能力更强的大模型可能需要远高于GPT-3的投入。
现有大语言模型上下文长度
现有大语言模型支持的上下文长度各不相同。值得注意的是,最大支持的上下文长度并不是衡量模型能力的唯一指标,支持更大的上下文长度不一定代表模型在各方面都有更佳表现。例如GPT-4最大支持128k上下文,Claude 2.1最大支持200k,可两个模型却各有所长。以下列举了一些国内外大模型产品及它们所支持的上下文长度。
扩展上下文长度的技术有哪些
扩展上下文长度的技术一般可以归为内插法(interpolation) 和外推法(extrapolation) 。
-
内插法通过从不同来源或上下文中合并信息以提高预测准确性。这种技术适用于融合来自不同文本段落或具有不同上下文长度的模型的信息。
-
相反,外推法作用于预测超出观察数据范围的值,目的是扩大模型对其原定训练上下文长度之外的理解。
每种方法下还可以继续细分为零样本学习(zero-shot learning) 和微调(fine-tuning) 。零样本学习意在让模型学会正确预测在训练期间从未明确见过的任务,而微调是为一个预训练模型在较小的、特定于某个任务的数据集上进一步训练或调整,从而提高其在具体任务上的表现。下文将着重介绍外推法下零样本学习的几种技术。
RoPE (Rotary Position Embedding)
旋转式位置编码(RoPE)使用序列内各个token的相对位置信息进行编码,使模型不必受制于固定长度的输入,从而支持更长的上下文长度。在对token进行编码的过程中,通过旋转矩阵以不同速度旋转query和key的投影矩阵的片段,即使两个相同编码的token也能各自获得唯一角度的旋转。相比于最原始的绝对位置信息编码,query和key的点积产生了变化,从而改变了注意力(attention)得分。当旋转加大query和key的差异时,点积以及注意力得分会减少;如果旋转使query和key更加对齐,则会增加得分。RoPE 细致地规定了嵌入维度中query和key向量的所有二条目切片(2-slice)的旋转,从而建立了一种能精细化处理不同距离token的注意力得分函数。RoPE 的一个优势在于它仅依赖query和key之间的相对距离,消除了对绝对位置的需求。这种方法增强了模型对token间关系的理解,从而在注意力公式中促进了更准确的预测。下图为一个RoPE原理的示例。
论文地址http://arxiv.org/abs/2104.09864
Attention with Linear Biases (ALiBi)
RoPE在零样本学习(zero shot learning)下的外推一般被认为表现不佳,而 ALiBi改善了这个问题。在原始的Transformer架构中,对于一个长度表示为L的输入序列,标准的注意力层在每个头(head)中为第i个query使用前i个key计算注意力分数,这些分数会乘以一个缩放因子,然后输入给softmax函数。这之后得到的注意力分数随后乘以value向量,以产生注意力层的输出。然而在ALiBi中,神经网络中的任何环节都不包含绝对位置编码。Alibi在计算出query和key的点积之后,添加了一个静态且非通过学习获得的偏差(bias)m。在一些文本中,单词与其上下文的意义呈现非线性关系,而Alibi可以有效应对这种情况。同时,因结构简单,Alibi可以被轻松适配进已有的模型项目,并降低训练成本。下式是一个简单的示例。
论文地址https://arxiv.org/pdf/2108.12409.pdf
Randomized Positional Encodings
随机位置编码(Randomized Positional Encodings)致力于解决如下问题:假使一个配备了标准位置编码transformer模型使用序列最大长度为N的数据进行训练。当此模型遇到一个测试序列长度超过M > N时,位置编码会重新分布,导致与训练时的编码不一致。随着M的增加,这种不一致愈加明显。随机位置编码的做法是,在训练期间,通过从范围[1, L]中均匀地抽取N个样本来随机生成位置向量,其中N是训练上下文长度,L是一个预先设定的大于模型最大支持上下文长度的值。这些被抽取的位置随后按递增顺序排序,然后作为位置输入传递给模型。与传统方法相比,随机位置编码允许在更短的序列上进行训练,在保有较高测试准确率的同时缩短了模型训练的时间 。值得注意的是,随机相对编码处理了先前方法认为具有挑战性的任务,如解决反转字符串或缺失重复项等问题。下图是随机位置编码原理的简单示例。
论文地址https://aclanthology.org/2023.acl-short.161.pdf
xPos(Extrapolatable Position Embedding)
可外推位置嵌入(xPos)能提高transformer对平移变化的抵抗力和外推上下文长度的能力。xPos的作者认为RoPE外推不理想是因为高频分量导致了注意力得分中包含残余噪声,这种现象即使在token相隔很远时也会发生。于是在RoPE的基础上,xPos在旋转向量的每个维度上引入了独有的指数衰减,随着旋转度的增加而幅度减小。这一特性使这些噪声高频分量的衰减速度快于低频分量,从而缓解训练过程中随着距离的增加而出现的不稳定性。实验表明,这种方法在从头开始训练的大型语言模型上显示出了良好的效果。xPos的表达如下,其中ζ为一个经过优化的值,用以减轻噪声的影响。
论文地址http://arxiv.org/abs/2212.10554
LongNet
LongNet引入了扩张注意力 (Dilated Attention)的概念。在LongNet中,输入(Q, K, V)被分割成长度为w的段,这些段再沿着序列的维度(序列维度为N)使用行选择间隔r进行稀疏化。为了得出注意力,稀疏化的段会被并行计算,随后再经过分散(scatter)以及连接(concatenation)后形成输出。段大小w用来在注意力的全局性和效率之间取得平衡,而扩张行选择间隔r通过近似注意力矩阵而减少计算成本 。通过分散和连接的操作,扩张注意力可以无缝转换为稠密(dense)注意力,因此可以利用为原始注意力机制设计的优化策略,例如flash attention。这种转换导致与原始的注意力机制相比,计算成本降低了N/w*r^2。下图为LongNet的原理示例。
论文地址http://arxiv.org/abs/2307.02486
大模型上下文长度扩展技术的进步,如Gemini 1.5模型所展示的,不仅推动了人工智能在处理更复杂、更长内容方面的能力,同时也揭示了未来AI发展的新方向。通过技术创新如RoPE、ALiBi和随机位置编码等,大模型能更高效地管理和利用大量数据,从而在多种任务中实现更精准的理解和生成。虽然这些进步伴随着计算资源、内存限制和训练成本等挑战,但通过不断的研究和开发,这些挑战也将逐步被克服。未来,随着上下文技术的不断完善和优化,我们可以期待大模型在自然语言处理、多模态交互和复杂问题解决等领域发挥更大的作用,从而带来更深远的影响。
历史文章: 2024年1月大模型文章集锦
更多AI工具,参考Github-AiBard123,国内AiBard123