技术指南

标记化和字节对编码

标记化将文本分割成语言模型实际读取的小单元,而字节对编码 (BPE) 是构建该词汇的流行方法。

概述

标记化将文本分割成语言模型实际读取的小单元,而字节对编码 (BPE) 是构建该词汇的流行方法。它平衡了拥有可管理的词汇表和处理模型可能遇到的任何单词。

标记化和字节对编码是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。

深入探讨

语言模型看不到原始字符或整个单词——它们看到的是标记、映射到文本片段的整数 ID。选择这些片段是一种权衡:单词级词汇量很大,并且会因看不见或拼写错误的单词而窒息,而字符级词汇量会使序列非常长。 Byte Pair Encoding strikes a middle ground. BPE 借鉴了 20 世纪 90 年代的数据压缩算法,从单个字符(或原始字节)开始,反复将最常见的相邻对合并成一个新的标记,从而将词汇量扩展到常见的子词。频繁出现的单词变成单个标记,而罕见的单词则分成可重复使用的片段。 GPT 模型使用的字节级 BPE 对原始字节进行操作,因此它可以表示任何 Unicode 文本(包括表情符号和任何语言),而不会出现词汇表之外的故障。

技术洞察

BPE training is greedy and frequency-driven.从基本字母表开始,它计算语料库中的相邻符号对,并合并最常见的符号对,将每次合并记录为规则。重复此操作数千次会产生一个有序的合并列表和一个固定的词汇表。在推理时,通过按顺序应用这些合并规则来对文本进行编码。这就是为什么标记计数很少与单词计数相匹配:空格、大写和罕见单词都会改变文本片段变成标记的方式,并且单个单词可以变成多个标记。

Mastering Tokenization and Byte Pair Encoding

标记化将文本分割成语言模型实际读取的小单元,而字节对编码 (BPE) 是构建该词汇的流行方法。它平衡了拥有可管理的词汇表和处理模型可能遇到的任何单词。标记化和字节对编码是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。为了建立深入的理解,请将标记化和字节对编码视为一种操作模型,而不是单个功能:定义所需的结果,澄清假设,并将系统可以可靠地执行的操作与仍需要专家判断的操作分开。

在实践中,使用令牌化和字节对编码的强大团队可以根据可靠性和成本来优化架构、数据和基础设施选择。他们记录明确的成功标准,根据实际数据和工作流程进行测试,并根据观察到的失败模式而不是一次性基准测试胜利进行迭代。这就是理论理解转变为跨产品、政策和运营的持久能力的地方。

多年来,架构决策决定着性能和运营成本。与此同时,优化一个基准测试可以隐藏更广泛的系统弱点。最具弹性的方法是将实验速度与治理规则结合起来:运行试点、捕获证据、发布决策日志,并随着模型行为、用户期望和监管要求的发展不断更新保障措施。

战略影响

多年来,架构决策决定着性能和运营成本。

多年来,架构决策决定着性能和运营成本。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

更好的工程选择可以减少生产中的可靠性事故。

更好的工程选择可以减少生产中的可靠性事故。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

标记化和字节对编码的未来

Tokenization is under active rethinking.像 ByT5 这样的字节和字符级模型,以及新兴的无令牌或“字节潜在”架构,旨在完全放弃固定词汇表,以便模型统一处理任何输入和任何语言。研究人员还在解决标记化的公平性问题——许多非英语和资源匮乏的语言目前每个句子的标记成本要高得多,从而提高了价格并缩小了有效上下文。预计分词器会针对代码、数学和多语言平衡进行调整,并继续进行实验,将边界推回到原始字节。

现实世界的实施

GPT 和 Llama 模型使用 BPE 风格的标记器将提示转换为网络处理的标记 ID。

API 定价和上下文窗口限制以令牌来衡量,因此令牌化直接影响成本和文本适合量。

通过将表情符号、代码和罕见单词拆分为可重用的子单词或字节片段来优雅地处理它们。

通过字节级编码,在一个模型中支持多种语言,而无需每种语言使用单独的字典。

实施模式

Tokenization and Byte Pair Encoding in practice

GPT 和 Llama 模型使用 BPE 风格的标记器将提示转换为网络处理的标记 ID。

GPT 和 Llama 模型使用 BPE 风格的标记器将提示转换为网络处理的标记 ID。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

Tokenization and Byte Pair Encoding in practice

API 定价和上下文窗口限制以令牌来衡量,因此令牌化直接影响成本和文本适合量。

API 定价和上下文窗口限制以令牌来衡量,因此令牌化直接影响成本以及文本适合的程度。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

Tokenization and Byte Pair Encoding in practice

通过将表情符号、代码和罕见单词拆分为可重用的子单词或字节片段来优雅地处理它们。

通过将表情符号、代码和稀有单词拆分为可重用的子字或字节片段来优雅地处理它们。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

Tokenization and Byte Pair Encoding in practice

通过字节级编码,在一个模型中支持多种语言,而无需每种语言使用单独的字典。

通过字节级编码,在一个模型中支持多种语言,而无需为每种语言提供单独的字典。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

风险与防护栏

!

优化一项基准测试可以隐藏更广泛的系统弱点。

!

基础设施和维护成本常常被低估。

!

随着系统变得更加复杂,安全性和可观察性差距可能会扩大。

实施路线图

1

在实施之前定义延迟、质量和成本目标。

在实施之前定义延迟、质量和成本目标。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

2

在实际负载和数据条件下进行基准测试。

在实际负载和数据条件下进行基准测试。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

3

仪器监控错误、漂移和用户影响。

仪器监控错误、漂移和用户影响。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

4

在扩展之前准备回滚和事件响应路径。

在扩展之前准备回滚和事件响应路径。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

不断探索