我们正目睹一个新的全球经济的崛起——即大型语言模型经济(LLM经济)!
大多数人还没有意识到我们现在正处于一个新的工业革命时期,这场革命专注于智能生产的领域,正如Nvidia的CEO黄仁勋在解释中所述。
这是系列文章的第二篇,紧随我们对大型语言模型(LLM)新兴领域的宏观概述,及其社会和金融影响。
在这篇自成一体的文章中,我们将深入探讨LLM行业的微观层面运作,特别是代币及其生成过程——即代币化。
由于LLM正在像互联网一样彻底改变世界,我们相信只有真正理解其内部运作机制,才能把握推动这一快速扩张的全球经济的引擎。让我们从基础开始探讨。
虽然字符和单词是人类语言的基本单位,但对于机器来说,它们之间有一个中间概念,称为词元。词元是文本中的“片段”,代表训练数据中的常见字符序列。一个词元可以是一个字符、子词或一个完整的单词。平均而言,一个词元大致相当于四分之三的单词。那么,为什么词元会是单词的一部分呢?我们可以用这些单词的片段做什么呢?
通常,更重要的词通常被保留为一个词元,而不太重要的词会被拆分成多个词元。那么,什么样的词会被认为更重要呢?简单来说,就是靠统计。频繁出现的词被认为更重要。这种做法很常见,许多大型语言模型,比如GPT(OpenAI)、Llama(Meta)和Mistral都在使用。然而,谷歌的Gemini则采用了不同的策略,我们后面会详细讲。
为什么用token而不是词?
或者说,机器是如何“理解”文字的
简短的答案:效率。
更详细的解释需要理解机器是如何“处理”文本的。
机器并不是直接阅读文本——它们处理数字。实际上,文本被机器(LLM)内部表示为称为嵌入的数字数组,这些数组根据训练数据集中单词的上下文编码其语义。
嵌入首次出现在2013年Google提出的word2vec模型中,这标志着现代自然语言处理(NLP)的开始。四年之后,谷歌通过其Transformers架构再次革新了NLP——这是现代所有LLM的基础——随后推出了使用762个维度的嵌入的BERT。如今的LLM使用大约3,000个维度的嵌入。
这里的关键点是:嵌入维度越大,单词的表示就越丰富(智能)。
以英语为例,大约有35万个独特的英文单词(取决于你参考的是哪本词典)。为了存储这个词汇量,一个大型语言模型(LLM)需要大约10亿个数值(35万乘以3000),或者说10亿个参数。这意味着,背后支撑LLM的神经网络有10亿个参数,或者说10亿个神经元。
目前表现良好的大型语言模型的参数量至少为70亿。也就是说,LLM需要将其大约15%的参数用来存储词汇表。
但是我们该如何应对语言中的这些无穷无尽的变化——比如单数和复数形式、时态变化、大小写规则,以及不同的语言(例如意大利语大约有50万个单词,芬兰语则有大约80万个单词)?
此外,如果15%的神经元仅用来存储词汇表,那么只剩下85%的神经元用于机器的智能部分,即捕捉语言模式的复杂性和世界信息,LLM的魔力便来源于此。那么如何克服这一限制呢?这又成了一个难题。这时,token及其分词过程便开始发挥作用,以克服这一限制。
分词为了构建一个适中的词汇表规模,事实证明,基于词元的词汇表对机器来说比基于单词的表示更有效。分词是将文本分解成可管理的片段以供LLM处理的过程。与其存储每一个单词,分词器会识别重复的模式或片段并将单词分解成这些模式或片段——词元。请参见下面的图1中的例子,以便更好地理解分词过程。
图1. 子词(tokens)
不是分别将这三个词存储在词汇表中,而在抓取整个互联网和各种人类语言数据后,LLM的分词器发现这些词可能共有一个‘发明’(Invent)词元,并且有着三种不同的后缀模式在数据集里反复出现。这使得词汇表更加精简和高效。
为了更好地理解分词的实际效果,并更好地理解它在整个NLP流程中的位置,我建议你试试OpenAI的工具,就像我做演示一样。
图2. NLP处理流程中的分词处理,以OpenAI的分词器为例
句子 ‘What is LLM? ’ 被输入到分词器,分词器返回一个由五个标记组成的序列,每个标记都有一个词汇表中的编号。例如,单词 ‘What ’ 是分词器词汇表中的第 3923 个标记。这些标记随后被输入到 LLM,LLM 会预测一系列标记,这些标记最终会被转换成通常的语言。
这里有三点有趣的地方需要注意:
首先,即使是单独的字符,例如问号(‘?’),也被视为词汇表中的一个条目,在这里它是词汇表中的第30个条目。
其次,这里代表单词的数字是它们在词汇表中的ID。不要与我们上面提到的词嵌入(由成千上万个数字组成的序列)混淆,后者表示单词的语义含义。
最后,“LLM”被拆分为两个标记:“L”和“LM”。我们将在下面进一步讨论这一关键现象。
例如,OpenAI的GPT-4拥有大约10万个词元,相比之下,Google的Gemini则有25万个词元——比GPT-4大2.5倍,而GPT-4本身已经是最初现代模型BERT的3倍大。
为什么词汇量这么有趣?有请鼓掌~ 🥁
词汇量的大小显著影响LLM的性能,影响成本、延迟和质量之间的平衡性——这是我们之前帖子中提到的LLM的三个关键指标。让我们逐个来看看。
费用
我们提出以下关系:
公式1:成本与词汇量之间的联系
换句话说,LLM的词汇量越大,用户所付的成本就越低!更明确地说,增加词汇量会减少生成的Token,进而降低用户的成本——这是一项巨大的竞争优势,对用户来说非常有利。
正如我们上面看到的,Gemini 生成的 token 数量将远少于 GPT。例如,Gemini 可能只会输出一个 token 来表示单词 ‘LLM’ (例如),而 ‘LLM’ 并不在 GPT-4 的词汇表中(即 非词汇表词 — OOV),因此它会输出两个不同的 token (‘L’ 和 ‘LM’),并在稍后将它们合并,如图 Figure-2 所示。
看来生成更多令牌是OpenAI的战略。最近的模型 Strawberry o1 ,嵌入了Chain-of-Thought,虽然在推理方面很强,但也伴随了大量的令牌生成,这些多余的令牌你也看不到,因此运行速度更慢,成本也更高,显得更贵。
延迟时间
延迟的影响是好坏参半的。一方面,生成更多令牌会增加所需时间,但另一方面,从较小的词汇表中生成单个令牌可能更快,因此总的来说,生成的令牌越多,这些时间上的差异可能会相互抵消。
品质
这一部分可能是帖子中最吸引人注意的部分,让我们在这里停一下,深入探讨。虽然增加词汇量可以减少生成的令牌数量,从而使模型更经济,但这也会降低LLM的总体性能。但为什么会这样呢?我们从三个方面来解释。
首先,如前所述,更大的词汇量确实需要更多的神经元来存储每个词元的嵌入。虽然嵌入可以智能地捕捉语义,然而分配更多的神经元来存储词汇就意味着有较少的神经元可以用来处理更广泛的语言模式和一般的世界知识。这种权衡可能导致LLM整体上而言变得更不智能。
接下来考虑由乔治·金斯利·齐夫提出的齐夫最小努力原则,他是现代统计自然语言处理之父。1949年,齐夫提出了该理论,认为语言中的词汇分布遵循一个原理,即说话者和听者都力求以最小的努力实现高效沟通。在齐夫的_说话者-听者模型_中,双方在每次互动中交替扮演角色,减少对方的沟通负担(请注意,他们在每次互动中会互换角色)。说话者力求以最小的努力被理解,因此使用了一个小词汇量的常用词,而听者则通过拥有一个_大词汇量的稀有词_来减少她所听到内容的歧义。
这种竞争目标之间的平衡可以通过齐夫定律来捕捉(参见书中的第25页这本经典书籍),定律表明,一个单词的频率与其在单词分布中的排名成反比。
式2. 齐夫法则。
根据齐夫定律,英语中最常见的单词(“the”)出现的频率是第二常见的单词(“of”)的两倍,是第三常见的单词(“and”)的三倍,等等。在大型语言模型的行为就像人类一样,扮演说话者和倾听者的角色交替时,最小努力法则也适用于计算资源的使用,从而影响成本和延迟时间。齐夫的理论为理解计算资源与大型语言模型质量之间的取舍提供了一个有用的视角。
最后,从信息论的角度来看,我们考虑熵,它衡量给定变量中的不确定性和信息量的多少。在语言模型中,熵量化了序列中下一个词的不可预测性,这一度量称为困惑度。模型对预测越有信心,其困惑度就越低,熵也随之减小。
图3.困惑度:当阅读新文本时,模型对新文本的意外程度有多大? 图片来源:这里
当一个模型的词汇量较大时,下一个词的选择会更加均匀分布,这增加了不确定性(熵),因为有更多的选择。相反,较小的词汇量会减少熵,从而导致更低的困惑度,预测的置信度更高。然而,这可能以牺牲捕捉语言细微差别为代价。幸运的是,由于大型语言模型可以利用的大量训练数据集,它们可以收集足够的上下文来有效地处理较为罕见的词汇及其语言细微差别。
例如,如果模型的词汇量足够大,可以包含“Manchester”,它就能自然地理解这是指一个特定的城市,带有其所有的历史和文化背景,当然还有足球文化(而非美国意义上的足球),而不是错误地将其解释为两个独立的词“man”和“chester”。如果没有这个词汇条目,模型可能会错误地将其解读为一个名叫Chester的人,完全误解了其深层含义。
因此,挑战在于平衡词汇表的大小,以达到最佳模型性能,同时管理计算复杂性和数据稀疏。然而,作为一种经验法则,训练数据集和大型语言模型越大,增加词汇表的大小更为推荐。
LLM的设计师可能会利用上述方面找到词汇量的平衡点。
示例运行因此我们注意到选择词汇表的大小是大规模语言模型设计中的一个关键决策。让我们来看两个例子,两家公司分别做出了非常不同的决策,如下表。建议将“LLM”统一翻译为“大规模语言模型”。
- Mistral的Mistral-7B 的词汇表大小为32K,嵌入尺寸为4K。这意味着大约有1.8%的空间是用来存储词汇表的。
- Google的Gemma-7B (Google的Gemini及其开源版本Gemma使用的是同一个分词器) 的词汇表大小为256K,嵌入尺寸为3K,这也就意味着,大约有11.2%的空间是用来存储词汇表的!!!
表1 — Google 和 Mistral 选择的不同词汇量
从概念上看,我们可能会认为Gemma-7B比Mistral-7B更经济实惠,可能更快,但可能不太聪明。但这真的这样吗?
谈到成本,谷歌的这类大型语言模型确实通常比像GPT这样的模型更经济实惠。然而,评估它们的质量需要深入评估,并且需要注意,很多因素会影响大型语言模型的质量、速度和价格的平衡。
不过,我们认为分词的选择确实会对LLM所能达到的智能水平产生影响,正如前面所详述的。
分词器 — 语言模型的X射线深入了解模型的分词器,如Chris Hay的视频中所述(视频链接),可以更清楚地理解大型语言模型背后的设计决策。
正如之前提到的,谷歌的方法与GPT-4和Mistral等模型有着显著的不同,尤其在设计一个词汇量比其他模型大2.5倍的分词器。但这不是唯一的区别。另一个关键的区别在于确定哪些令牌最重要。
像GPT-4和Mistral这样的大模型遵循齐夫定律,将最频繁出现的词视为最重要的。相比之下,谷歌采取了不同的方式:除了频率之外,在优先考虑词汇时,还会加入世界知识。比如在视频中展示的那样,谷歌的分词器将城市的全名、名人的名字等世界知识视为单一的词元。例如,“New England”在谷歌的分词器中被视为一个整体,而其他分词器则将它拆分成“New”和“England”。同样,“George Clooney”在谷歌的分词器中被视为一个整体,而其他分词器则会将其拆为“George”(英语中常见的名字)、“Clo”和“oney”(常见的子词)。
将世界知识整合到谷歌的分词器中,表明他们可能正在利用其长期存在的语义网技术,最近更新为更适合大语言模型的版本——DataCommons。这有助于提升谷歌大语言模型的质量、速度和成本。
相比之下,OpenAI似乎将优化重点放在了其他方面,如编程上,他们在编程相关的词汇上花费了更多的精力,这或许可以解释GPT-4在代码密集的任务中的优越表现。
总之,LLM的标记化器犹如X射线,揭示了为什么不同的模型在特定领域中表现出色的设计选择,从而帮助我们理解这些选择。
摘要随着 LLM 经济的迅速发展,令牌已成为推动这一新经济的动力。最近的一个例子是,Google 的 Gemini API 已将定价方式从字符计费改为令牌计费,以与其他市场参与者保持一致。
本文将探讨令牌的内部运作及其生成过程,旨在提供多角度的深入分析,从而让我们更好地理解推动这一新兴经济发展的技术力量。
如果你看到这里,希望你觉得这篇文章有帮助和启发。你的点赞、留言、评论和分享都让我非常感谢。
谢谢啦,
Gilad
共同学习,写下你的评论
评论加载中...
作者其他优质文章