摘要:如今,GPT-3、GPT-4或谷歌的BERT等大型语言模型(LLM)已经成为人工智能理解和处理人类语言的重要组成部分。但在这些模型展现出令人印象深刻的能力背后,却隐藏着一个很容易被忽视的过程:标记化。本文将解释标记化的定义,标记化如此重要的原因,以及在实际应用
译者:李睿
如今,GPT-3、GPT-4或谷歌的BERT等大型语言模型(LLM)已经成为人工智能理解和处理人类语言的重要组成部分。但在这些模型展现出令人印象深刻的能力背后,却隐藏着一个很容易被忽视的过程:标记化。本文将解释标记化的定义,标记化如此重要的原因,以及在实际应用中是否能够规避这一步骤。
想象一下,你正在阅读一本书,但书中的文本不是由单词和句子组成,而是由一长串没有空格或标点符号的字母组成,这将很难理解。对于计算机来说,处理原始文本也是如此。为了使语言对机器来说可以理解,文本需要被拆分成更小、更易于消化的部分——这些部分被称为标记(tokens)。
什么是标记化?
标记化是将文本分割成更小的块的过程,这些块使模型更容易理解。这些块可以是:
单词:最自然的语言单位(例如,”I”、”am”、”happy”)。
子词:当模型不知道整个单词时,更小的单位可以提供帮助(例如,”running”中的”run”、”ning”)。
字符:在某些情况下,是单个字母或符号(例如,“a”、”b”、”c”)。
为什么需要标记?
以一个例句为例:”The quick brown fox jumps over the lazy dog.”(敏捷的棕色狐狸跳过懒惰的狗。)
计算机把这个句子看作是一长串字母:Thequickbrownfoxjumpsoverthelazydog.
除非把它拆分成更小的部分或标记,否则计算机无法理解。以下是这个句子的标记化版本:
(1) 单词级标记化:
["The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog"]
(2) 子词级标记化:
["The", "qu", "ick", "bro", "wn", "fox", "jump", "s", "over", "the", "lazy",
"dog"]
(3) 字符级标记化:
["T", "h", "e", "q", "u", "i", "c", "k", "b", "r", "o", "w", "n", "f", "o",
"x", "j", "u", "m", "p", "s", "o", "v", "e", "r", "t", "h", "e", "l", "a", "z",
"y", "d", "o", "g"]
然后,大型语言模型(LLM)从这些标记中学习,理解模式和关系。如果没有标记,LLM可能不知道一个单词从哪里开始,另一个单词在哪里结束,或者单词的哪一部分很重要。
大型语言模型并不能像人类那样”理解”语言。与其相反,LLM分析文本数据中的模式。对此,标记化是至关重要的,因为它有助于将文本拆分为易于模型处理的形式。
大多数LLM使用特定的标记化方法:
(1) 字节对编码(BPE)
这种方法将字符或子词组合成常用的词组。例如,”running”可以分为”run”和”ning”。BPE对于捕获子词级的模式很有用。
(2) WordPiece
BERT和其他LLM使用这种标记化方法。它的工作原理与BPE类似,但基于它们在语景中的频率和含义来构建标记。
(3) SentencePiece
这是一种更通用的标记化方法,可以处理没有明确单词边界的语言,例如中文或日语。
标记化在LLM中的重要性
文本拆分的方式会显著影响LLM的性能。以下深入探讨标记化至关重要的几个关键原因:
(1) 高效处理
LLM需要处理大量的文本。标记化将文本减少为可管理的部分,使LLM更容易处理大型数据集,而不会耗尽内存或变得不堪重负。
(2) 处理未知单词
有时,LLM会遇到以前从未见过的单词。如果模型只理解整个单词,遇到一些不寻常的单词,例如“supercalifragilisticexpialidocious”,它可能不知道如何处理。子词标记化有助于将单词拆分成更小的部分(例如”super”、”cali”和”frag”),使LLM仍然能够理解。
(3) 多语言和复杂文本
不同的语言以独特的方式构造单词。标记化有助于拆分不同字母的语言中的单词,例如阿拉伯语或中文,甚至可以处理社交媒体上的标签等复杂的事情(#ThrowbackThursday)。
标记化如何提供帮助的示例
以下看看标记化如何帮助模型处理包含复杂单词的句子。
假设有这样一个语言模型:“Artificial intelligence is transforming industries at an
unprecedented rate. ”(人工智能正在以前所未有的速度改变各行业。)
如果没有采用标记化,LLM可能难以理解整个句子。然而,当采用标记化时,它看起来像这样:
标记化版本(子词):
[“Artificial”, “intelligence”, “is”, “transform”, “ing”, “industr”, “ies”,
“at”, “an”, “unprecedented”, “rate”]
现在,尽管“transforming”和“industries”可能是棘手的单词,但该模型将它们拆分为更简单的部分(“transform”、“ing”、“industrir”、“ies”)。这使得LLM更容易从中学习。
标记化的挑战
虽然标记化至关重要,但它并不完美,并且面临一些挑战:
(1) 没有空格的语言
有些语言(例如汉语或泰语)单词之间没有空格。这使得标记化变得困难,因为模型必须决定一个单词在哪里结束,另一个单词从哪里开始。
(2) 模棱两可的单词
当一个单词有多重含义时,标记化可能会遇到困难。例如,“lead”这个单词可以表示“铅”或“领导”。标记化过程不能总是仅根据标记确定正确的含义。
(3) 罕见单词
LLM经常会遇到罕见单词或新创单词,尤其是在互联网上。如果一个单词不在模型的词汇表中,那么标记化过程可能会将其拆分为笨拙或无用的标记。
能否避免标记化?
考虑到它的重要性,下一个问题是:是否可以避免标记化?
从理论上来说,通过直接在字符级别工作(即将每个字符视为标记),可以构建不依赖于标记化的模型。但这种方法也有以下一些缺点:
(1) 更高的计算成本
处理字符需要更多的计算量。LLM不再只需处理句子的几个标记,而是要处理数百个字符,这显著增加了模型的内存占用和处理时间。
(2) 意义缺失
字符本身并不总是具有实际意义,例如,“apple”中的字母“a”和“cat”中的字母“a”是相同的,但是这两个单词的含义却截然不同。如果没有标记来引导模型,LLM则难以把握语境。
尽管如此,仍有一些实验性模型正尝试摆脱标记化。但就目前而言,标记化仍然是LLM处理语言的最高效和最有效的方法。
结论
标记化似乎是一项简单的任务,但它是LLM理解和处理人类语言的基础。如果没有它,LLM将很难理解文本、处理不同的语言或处理罕见单词。虽然一些研究正在寻找标记化的替代方案,但就目前而言,它是LLM工作的重要组成部分。
而人们在使用LLM时,无论是回答问题、翻译文本还是写诗,都要记住的是:这一切都是通过标记化实现的,它将单词拆分成多个部分,这样人工智能就能更好地理解和回应。
来源:科技小熊猫