了解令牌
词元是单词、字符集或单词和标点的组合,供大型语言模型 (LLM) 用来分解文本。 词元化是训练的第一步。 LLM 会分析词元之间的语义关系,例如它们一起使用的频率,或者它们是否用于类似的场景中。 经过训练后,LLM 会使用这些模式和关系,根据输入序列生成输出词元的序列。
将文本转换为词元
用来训练 LLM 的唯一词元集称为其词表。
例如,考虑以下句子:
I heard a dog bark loudly at a cat(我听到有一条狗在对一只喵狂叫)
此文本可以词元为:
- I
- 听到
- a
- 狗
- bark
- 大声
- at
- a
- cat
拥有足够大的训练文本集,词元化可以编译包含成千上万个词元的词表。
通用的词元化方法
特定的词元化方法因 LLM 而异。 通用的词元化方法包括:
- 单词词元化(根据分隔符将文本拆分为单个单词)
- 字符词元化(将文本拆分为单个字符)
- 子单词词元化(将文本拆分为部分单词或字符集)
例如,由 OpenAI 开发的 GPT 模型使用称为“字节对编码”(BPE) 的子单词词元化类型。 OpenAI 提供了一个工具,用于直观显示文本的词元方式。
每个词元化方法都有优点和缺点:
词元大小 | 优点 | 缺点 |
---|---|---|
较小的词元(字符或子单词词元化) | - 使模型能够处理范围更广的输入,例如未知字词、错误的拼写或复杂语法。 - 可能允许减少词表大小,这样所需的内存资源就较少。 |
- 将给定文本分解为较多词元,处理时需要使用其他计算资源 - 在词元上限固定的情况下,模型输入和输出的大小上限较小 |
较大的词元(单词词元化) | - 将给定文本分解为较少的词元,处理时需要使用的计算资源较少。 - 在词元上限固定的情况下,模型输入和输出的大小上限较大。 |
- 可能会导致词表大小增加,这样需要的内存资源就更多。 - 可以限制模型处理未知字词、拼写错误或复杂语法的能力。 |
LLM 如何使用词元
LLM 完成词元化后,它会为每个唯一词元分配 ID。
请考虑我们的示例句子:
I heard a dog bark loudly at a cat(我听到有一条狗在对一只喵狂叫)
模型使用单词词元化方法后,可以按如下所示分配词元 ID:
- I (1)
- heard (2)
- a (3)
- dog (4)
- bark (5)
- loudly (6)
- at (7)
- a(已为“a”词元分配 ID“3”)
- cat (8)
通过分配 ID,文本可以表示为词元 ID 的序列。 例如,示例句子可表示为 [1, 2, 3, 4, 5, 6, 7, 3, 8]。 句子“我听到猫叫”可表示为 [1, 2, 3, 8]。
随着训练的继续,模型会将训练文本中的任何新词元添加到其词表中,并为其分配 ID。 例如:
- meow (9)
- 运行 (10)
可以使用这些词元 ID 序列来分析词元之间的语义关系。 多值数值矢量(称为 [嵌入])用于表示这些关系。 根据嵌入内容与其他词元一起使用的频率,或与其他词元用于类似的场景,将嵌入分配给每个词元。
训练后,模型可以计算包含多个词元的文本的嵌入。 模型会将文本词元化,然后根据所学的单个词元的嵌入计算总体嵌入值。 该技术可用于语义文档搜索或向 AI 添加矢量存储。
在生成输出期间,模型会预测序列中下一个词元的矢量值。 然后,模型根据此矢量值从其词表中选择下一个词元。 实际上,模型会使用上一词元嵌入的各种元素计算多个矢量。 然后,模型会评估这些矢量中的所有潜在词元,并选择最可能的词元以继续序列。
输出生成是一种迭代操作。 模型会将预测的词元添加到已有序列中,并使用该词元作为下一次迭代的输入,一次生成最终输出的一个词元。
词元限制
LLM 对可用作输入或生成为输出的词元有最大数量限制。 此限制通常会导致输入和输出词元合并到最大的上下文窗口中。
例如,GPT-4 最多支持 8192 个上下文词元。 输入和输出词元的组合大小不能超过 8192。
总之,模型的词元限制和词元化方法决定了可用作输入或生成为输出的文本的最大长度。
例如,假设模型的最大上下文窗口为 100 个词元。 该模型将示例句子用作输入文本:
I heard a dog bark loudly at a cat(我听到有一条狗在对一只喵狂叫)
使用基于单词的词元化方法,输入为 9 个词元。 这样输出最多可使用 91 个单词词元。
使用基于字符的词元化方法,输入为 34 个词元(包括空格)。 这样输出最多仅可使用 66 个字符词元。
基于词元的定价和速率限制
生成式 AI 服务通常使用基于词元的定价。 每个请求的成本取决于输入和输出词元的数量。 输入和输出之间的定价可能有所不同。 例如,请参阅 Azure OpenAI 服务定价。
对于每分钟的最大词元数 (TPM),生成式 AI 服务可能也会受到限制。 这些速率限制可能因服务区域和 LLM 而有所不同。 有关特定区域的详细信息,请参阅 Azure OpenAI 服务配额和限制。