分词

分词是将文本拆分为较小单元(即“词元”)的过程,这些词元是系统实际处理的对象。 对于语言模型而言,词元通常是子词片段,模型将其作为数字而非完整单词来读取。 在传统搜索中,分词则是将文本拆分为用于构建索引和查询索引的词项。 无论哪种情况,分词都是将原始文本转化为系统可处理单元的关键步骤。

简而言之,分词就是将文本拆分为词元——即大型语言模型 (LLM) 所处理的子词片段,或是搜索索引进行匹配的词项。

分词运行机制

对于语言模型,常见的方法是使用子词分词:

  1. 选择分词器:模型采用特定的分词方案。 常见的方法包括字节对编码 (BPE)、WordPiece 以及 SentencePiece 的变体,这些方法均基于子词单元构建固定的词表。
  2. 拆分文本:输入文本被拆分为该词表中的词元,常见词可作为单个词元,而生僻词、代码和表情符号则被拆分为多个词元。
  3. 映射为 ID:每个词元被转换为一个数字 ID,因为模型处理的是数字,无法直接识别字母。
  4. 计数:词元的数量决定了文本占用的上下文窗口大小,并且在大多数 API 中,它也决定了请求的费用。

在搜索索引中,分词过程则更为简单且有所不同:文本通常根据空格和标点符号被切分为词项,以便实现文档与查询之间的匹配。 搜索分析器随后可能会执行规范化步骤(例如转换为小写、词干提取或词形还原),这些步骤与基于边界的文本拆分有着本质的不同。

关键点在于,分词是特定于模型和方法的:同一段文本,根据所使用的模型、提供商以及处理方式(是由大型语言模型还是由搜索索引处理)的不同,可能会产生不同的词元数量。 切勿假设词元数量可以在不同系统间直接通用。

分词对比分块和嵌入

  • 分词是将文本拆分为模型或索引所使用的最小单位;而分块是将文档拆分为较大的段落以便检索。 “词元”是微小的片段;“块”是指完整的段落。
  • 分词会生成离散的词元 ID;嵌入则是将词元或语块转换为能够捕捉语义的连续向量。 前者是查找操作,后者则是经学习得到的表征。
  • 子词分词(针对大语言模型)针对固定的模型词表进行优化;搜索分词(针对索引构建)则针对查询与文档之间的词项匹配进行优化。

分词对开发者而言的重要应用场景

  • 成本与限制:API 请求通常按词元计费,且受上下文窗口的限制,因此词元数量直接决定了价格以及可处理的内容量。
  • 延迟与预算编制:词元数量越多,需要处理的内容就越多,这两者都会增加延迟,因此精简提示词和检索到的上下文是优化响应速度的一种方法。
  • 关键词搜索:构建或查询词汇索引依赖于对文档和查询进行一致的分词处理,这也是混合搜索中关键词匹配的基础。
  • 在大型语言模型管道中使用搜索 API:由搜索 API 返回用于上下文接地的内容,一旦进入模型上下文就会消耗词元,因此,词元效率高且预先提取的结果有助于控制答案管道的预算,并降低运行成本。

分词往往不引人注目,但它却在后台默默决定了模型能读取什么、搜索索引能匹配什么,以及每次请求的成本。

相关术语

词元、上下文窗口分块嵌入大型语言模型 (LLM)、字节对编码 (BPE)、关键词搜索、混合搜索延迟搜索 API

Brave logo

即将完成...

请在 Google Play 应用中继续 .

请在 Google Play 应用中继续 .

您距离体验线上最佳隐私仅 60 秒之遥了

  1. 下载 Brave
  2. 运行安装程序
  3. 导入设置
  1. 步骤 1
    下载 Brave

    从 Chrome 浏览器的下载中打开安装程序(安装程序应位于此窗口的右上角)。

  2. 步骤 2
    运行安装程序

    如果出现提示,请在用户访问控制对话框中点击 “是”。

  3. 步骤 3
    导入设置

    等待安装完成,然后从 Chrome 浏览器导入浏览器设置。

如果没有自动开始下载,请点击 .

需要帮助?