跳到主要内容

令牌

现代大型语言模型 (LLM) 通常基于转换器架构,该架构处理称为令牌的单元序列。令牌是模型用来分解输入和生成输出的基本元素。在本节中,我们将讨论什么是令牌以及语言模型如何使用它们。

什么是令牌?

令牌是语言模型读取、处理和生成的基本单元。这些单元可能会因模型提供商的定义方式而异,但通常,它们可以表示

  • 整个单词(例如,“apple”),
  • 单词的一部分(例如,“app”),
  • 或其他语言成分,例如标点符号或空格。

模型标记输入的方式取决于其标记器算法,该算法将输入转换为令牌。类似地,模型的输出以令牌流的形式出现,然后将其解码回人类可读的文本。

令牌在语言模型中的工作原理

语言模型使用 token 的原因与它们理解和预测语言的方式有关。语言模型并非直接处理字符或整个句子,而是专注于token,它代表有意义的语言单位。以下是该过程的工作方式:

  1. 输入标记化:当你向模型提供提示时(例如,“LangChain 真酷!”),标记器算法会将文本拆分成 token。例如,该句子可能会被标记化为类似 ["Lang", "Chain", " is", " cool", "!"] 的部分。请注意,token 的边界并不总是与单词的边界对齐。

  2. 处理:这些模型背后的 Transformer 架构按顺序处理 token,以预测句子中的下一个 token。它通过分析 token 之间的关系来实现这一点,从而捕获来自输入的上下文和含义。

  3. 输出生成:模型逐个生成新的 token。然后将这些输出 token 解码回人类可读的文本。

使用 token 而不是原始字符,可以让模型专注于有意义的语言单位,这有助于它更有效地捕捉语法、结构和上下文。

Token 不必是文本

尽管 token 最常用于表示文本,但它们不必局限于文本数据。Token 还可以作为多模态数据的抽象表示,例如:

  • 图像,
  • 音频,
  • 视频,
  • 以及其他类型的数据。

在撰写本文时,实际上没有模型支持多模态输出,只有少数模型可以处理多模态输入(例如,文本与图像或音频的组合)。但是,随着人工智能的不断进步,我们预计多模态将变得更加普遍。这将使模型能够处理和生成更广泛的媒体,从而显着扩展 token 可以表示的内容以及模型如何与各种类型的数据交互的范围。

注意

原则上,任何可以表示为 token 序列的事物都可以用类似的方式建模。例如,DNA 序列(由一系列核苷酸(A、T、C、G)组成)可以进行标记化和建模,以捕获模式、进行预测或生成序列。这种灵活性使基于 Transformer 的模型能够处理各种类型的顺序数据,从而进一步扩展了它们在生物信息学、信号处理和其他涉及结构化或非结构化序列的各个领域的潜在应用。

有关多模态输入和输出的更多信息,请参阅多模态部分。

为什么不使用字符?

使用 token 而不是单独的字符,可以使模型更高效,并且更好地理解上下文和语法。Token 代表有意义的单元,如整个单词或单词的一部分,使模型能够比处理原始字符更有效地捕捉语言结构。Token 级别的处理还减少了模型必须处理的单元数量,从而加快了计算速度。

相比之下,字符级别的处理需要处理更大的输入序列,这使得模型更难学习关系和上下文。Token 使模型能够专注于语言意义,从而使其在生成响应时更加准确和高效。

Token 如何对应文本

有关如何计算 token 以及它们如何对应文本的更多详细信息,请参阅OpenAI的这篇文章。

根据 OpenAI 的文章,英语文本的近似 token 计数如下:

  • 1 个 token ~= 英语中 4 个字符
  • 1 个 token ~= ¾ 个单词
  • 100 个 token ~= 75 个单词

此页面是否有帮助?