为什么上下文越长,AI效率越低?揭秘LLM的二次计算成本:随着输入文本的增长,基于LLM大型语言模型的人工智能将出现效率下降的问题,这是由于目前的LLM是基于Transformer架构的,这种架构则完全依赖“自注意力机制”来并行处理整个输入的令牌序列,这会导致计算成本呈二次方增长,使得AI效率降低并需要更多计算资源。 令牌在大语言模型中是最小的表示语言单位的方式,用于让计算机更好地处理文本。英文和中文的令牌处理方式稍有不同,因为中文是一种字符密集型语言,而英文为词汇密集型语言,或者说,英文是表音语音,而中文是表意语言。英文令牌可以是一个单词、一个字母、一段标点符号,甚至是单词的一部分。例如:单词 “apple” 可以被分解为几个令牌,比如“ap”、“ple”。句子 “I love AI!” 可能被分解成4个令牌:“I”、“love”、“AI”、“!”。中文中,一个令牌通常是一个单独的汉字或者是多个汉字组成的词语,根据分词算法决定。比如,句子“我爱你”可能被分成3个令牌:“我”、“爱”、“你”。“今天去上班”可能被分成4个令牌:“今天”、“去”、“上”、“班”。和英文相比,中文令牌粒度更小,分词依赖上下文。英文单词可能分解为多个令牌,但中文中的汉字本身已经是最小的语义单位之一,所以很多情况下,一个汉字直接就是一个令牌。由于中文中没有空格,模型在生成令牌时,通常会参考上下文信息。 上面说过,基于transformer的LLM使用自注意力机制,这种机制会在生成新令牌时"思考"所有之前的令牌。你可以把Transformer 想象成一个团队在讨论一件事:每个人都有自己的想法(输入向量)。每个人互相倾听并评估谁的观点更重要(注意力机制)。每个人综合大家的意见,再表达自己的最终看法(输出向量)。 这种方式比传统的一人传一人(RNN 的顺序处理)高效得多。 但是,随着上下文大小的增长,这种机制操作的计算成本指数级增加,计算成本随着上下文大小(即输入序列长度)的增加呈二次增长(O(n²))。具体来说就是,输入序列长度为n,每个令牌被映射为一个向量(嵌入向量)。每个令牌生成查询(Query)、键(Key)和值(Value)向量。对每个查询,计算与所有键的点积,以获得注意力权重。根据权重,对值进行加权求和。由于需要为每个查询计算与所有键的点积,这部分计算的复杂度即为O(n²)。由于计算成本随上下文长度呈平方增长,当上下文长度从n=5增加到n=10,计算成本增加到原来的4倍。当上下文长度从n=10 增加到n=1000,则计算成本增加到原来的1万倍。 尽管transformer推动了LLM规模的快速增长,但技术力量认为,单纯基于transformer的方法已经无法处理真正大量的文本。也就是说,如果要处理长篇文章,基于transformer的LLM将消耗大量算力,时间也会变慢。为此,研究人员正在探索提高“自注意力机制”效率的方法,比如,最小化GPU图形处理器上的内存操作,以及在多个GPU上进行分布式注意力计算。另外就是将transformer层与循环神经网络(RNN)层相结合,如Mamba架构。其它的改进方法包括稀疏注意力,也就是只计算部分重要的令牌关系,减少不必要的计算。仅关注临近令牌,而不是全局序列的分块注意力。将复杂度从 O(n 2) 降低到 O(n),通过数学近似减少计算的线性注意力。
为什么上下文越长,AI效率越低?揭秘LLM的二次计算成本:随着输入文本的增长,基
翰池看科技
2024-12-24 12:24:00
0
阅读:3