生成式人工智能模型处理文本的方式与人类不同。了解它们基于"标记"的内部环境可能有助于解释它们的一些奇怪行为和顽固的局限性。从 Gemma 这样的小型设备上模型到 OpenAI 业界领先的 GPT-4o 模型,大多数模型都建立在一种称为转换器的架构上。由于转换器在文本和其他类型数据之间建立关联的方式,它们无法接收或输出原始文本--至少在没有大量计算的情况下是如此。
因此,出于实用性和技术性的考虑,今天的转换器模型使用的文本已经被分解成更小、更小的片段,这些片段被称为标记--这一过程被称为标记化。
词元可以是单词,如"fantastic"。也可以是音节,如"fan"、"tas"和"tic"。根据标记化器(标记化模型)的不同,它们甚至可以是单词中的单个字符(例如,"f"、"a"、"n"、"t"、"a"、"s"、"t"、"i"、"c")。
使用这种方法,转换器可以在达到称为上下文窗口的上限之前接收更多信息(语义意义上的)。但标记化也会带来偏差。
有些标记符有奇特的间距,这会使转换器出错。例如,词元转换器可能会将"once upon a time"编码为"once"、"on"、"a"、"time",而将"once upon a"(有尾部空白)编码为"once"、"on"、"a"、"."。根据对模型的提示方式--"once upon a"还是"once upon a ,"--结果可能完全不同,因为模型并不能理解(就像人一样)意思是一样的。
标记符号化器处理大小写的方式也不同。对模型来说,"Hello"并不一定等同于"HELLO";"hello"通常是一个标记(取决于标记化器),而"HELLO"可能有三个标记("HE"、"El"和"O")。这就是许多转换器无法通过大写字母测试的原因。
东北大学研究大型语言模型可解释性的博士生 Sheridan Feucht 对此表示:"对于语言模型来说,'词'到底应该是什么,这个问题有点难以解决,即使我们让人类专家就完美的标记词汇达成一致,模型可能仍然会认为进一步'分块'是有用的。"我的猜测是,由于这种模糊性,不存在完美的标记符号生成器。"
这种"模糊性"给英语以外的语言带来了更多问题。许多标记化方法都认为句子中的空格表示一个新词。这是因为它们是针对英语设计的。但并非所有语言都使用空格来分隔单词。汉语和日语不使用空格,韩语、泰语和高棉语也不使用。
2023 年牛津大学的一项研究发现,由于非英语语言的标记化方式不同,转换器完成一项非英语语言任务所需的时间可能是英语任务的两倍。同一项研究和另一项研究发现,"标记效率"较低的语言的用户很可能会看到更差的模型性能,但却要支付更高的使用费用,因为许多人工智能供应商是按标记收费的。
标记化器通常将逻各斯书写系统中的每个字符(在这种系统中,印刷符号代表单词,而与发音无关,如中文)视为一个独立的标记,从而导致标记数较高。同样,标记化器在处理凝集语(单词由称为词素的有意义的小词元组成,如土耳其语)时,往往会将每个词素变成一个标记,从而增加总体标记数。(在泰语中,"hello"的对应词สวัสดี有六个标记)。
2023 年,Google DeepMind 人工智能研究员 Yennie Jun进行了一项分析,比较了不同语言的标记化及其下游效果。通过使用一个翻译成 52 种语言的平行文本数据集,Jun 发现有些语言需要多达 10 倍的标记才能表达英语中的相同含义。
除了语言上的不平等,标记化也可以解释为什么今天的模型数学不好。
数字标记化很少能保持一致。因为它们并不真正了解数字是什么,标记符号化器可能会将"380"视为一个标记符号,而将"381"表示为一对("38"和"1")--这实际上破坏了数字之间的关系以及方程和公式中的结果。结果就是转换器混乱;最近的一篇论文表明,模型很难理解重复的数字模式和上下文,尤其是时间数据。(参见:GPT-4认为7735 大于 7926)。
这也是模型不擅长解决变位问题或颠倒单词的原因。标记化显然给生成式人工智能带来了挑战。它们能被解决吗?也许吧。
Feucht 指出,像MambaByte 这样的"字节级"状态空间模型,通过完全取消标记化,可以摄取比转换器多得多的数据,而不会影响性能。MambaByte 可直接处理代表文本和其他数据的原始字节,在语言分析任务方面可与某些转换器模型媲美,同时还能更好地处理"噪音",如带有交换字符、间距和大写字母的单词。
不过,像 MambaByte 这样的模式还处于早期研究阶段。
"最好的办法可能是让模型直接查看字符,而不强加标记化,但现在这对变换器来说在计算上是不可行的,"Feucht 说。"特别是对于变换器模型来说,计算量与序列长度成二次方关系,因此我们真的希望使用简短的文本表示"。
如果不能在词元化方面取得突破,新的模型架构似乎将成为关键。