AIHero
    02 / 05LLM 基础

    什么是 Token?

    了解 Token 如何驱动 LLM 并影响成本与效率,以及编码、解码和词表大小如何帮助优化文本处理。

    Matt Pocock
    Matt Pocock
    下一课
    本页目录

    Token 是大型语言模型(LLM)处理文本的基本构件。理解 Token 至关重要,尤其因为模型费用通常按 Token 使用量计算。

    什么是 Token?

    Token 本质上是一组数字,代表 LLM 如何“看待”你提供的文本。把文本转换为 Token 的过程称为 encoding.

    分词过程分为两步:

    1. 分词器把文本拆成它能识别的 Token
    2. 这些 Token 再被转换成数字

    Encoding

    解码是相反的过程:

    1. 数字被转换回文本 Token
    2. 这些 Token 被连接起来形成输出

    Decoding

    LLM 处理流程

    完整的 LLM 处理流程如下:

    1. 分词器把输入文本编码为 Token
    2. LLM 处理这些 Token
    3. LLM 生成 输出 Token
    4. 输出 Token 被解码为可读文本

    LLM Process Flow

    具体来说, 输入 Token 包括:

    • 你与 LLM 的对话历史
    • 系统提示词
    • 工具定义

    输出 Token 就是 LLM 作为响应返回的内容。

    输入 Token 和输出 Token 都会计费,而且费率通常不同。节省费用的一种方法,是设计提示词以减少输出 Token。

    Token 如何创建

    分词过程从大型文本语料库开始,与训练 LLM 所使用的语料相似。假设有一个极小的语料库,只包含一句话:“the cat sat on the mat.”

    Tokenization

    首先提取所有单独字符:

    T H E space C A T space S A T space O N space T H E space M A T

    每个字符都会成为词表中的一个独立 Token。

    接着识别常见的字符组合:

    • “TH”在“the”中出现了两次
    • “HE”在“the”中出现了两次
    • “AT”出现在“cat”“sat”和“mat”中

    每个组合也会被分配一个独立 Token。

    然后继续识别组合的组合,例如“TH”加“HE”形成“THE”(单词“the”),并为它分配独立 Token。

    词表大小很重要

    目标是建立一个大型 Token 词表,因为词表越大,一个单词通常就能用越少的 Token 表示,处理效率也越高。

    Vocabulary Size

    例如,1,000 个 Token 的词表可能把“understanding”拆成 5 个 Token;50,000 个 Token 的词表可能拆成 3 个;200,000 个 Token 的词表则可能只拆成 2 个。

    更大的词表意味着可以用更少的 Token 表示单词,从而提高处理效率。

    处理不常见的词

    分词器不擅长处理不常见的词。例如,Lewis Carroll 诗中的“O Frabjous Day”会被拆成许多 Token,因为“Frabjous”是一个生造词,在训练语料中很少出现。

    Unusual Words

    可以看到,这句话被转换成 7 个 Token,比 15 个字符通常对应的数量更多。

    最后的思考

    希望这些说明能让 Token 不再那么神秘。我发现 tiktokenizer 实验场 非常适合理解这些概念。

    如果有任何问题,或者希望我接下来讲解其他内容,请告诉我。

    Matt

    登录以保存进度。