Tokenization的演进:从NLP基石到多模态AI的“通用翻译器”

我在近日读论文的过程中不断地注意到tokens这个概念,同时我总是在网络上,各种源码里见到tokenizer这个东西,我觉得挺混淆的。又因为我自己所持的一个学术态度是永远要消除疑惑 ,所以正好自己有足够的精力支持自己从正在做的事情脱出,在gemini那里问了几嘴,以下为ai辅助的整合的内容:


"Tokenization"(标记化)是AI领域的一个核心术语,其含义已经历了深刻的演进。它从一个NLP(自然语言处理)的特定预处理步骤,扩展成了当前多模态AI研究中一个**"通用模态翻译器"**的宏大范式。

这个范式解决了AI(特别是Transformer架构)面临的一个根本问题:如何让一个模型"阅读"和"写入"所有类型的信息? 答案就是将所有信息------无论是文本、图像、声音还是物理动作------都"翻译"成一种统一的语言:一个离散的、序列化的"Token"序列


第一阶段:经典定义与工程实现

这是Tokenization的起源,专注于处理"文本"。

1. 📚 学术定义:NLP中的Tokenization (分词)

在经典的NLP中,Tokenization(也常被称为"分词")是将连续、非结构化的文本流,切分成一系列离散的、有意义的基本单元(Tokens)的过程。

  • 目的: 将自然语言转换为模型可以理解和处理的最小单元。
  • 主流方法(子词 Subword): 现代大模型(如GPT、BERT)主要使用子词(Subword)Tokenization(如 BPE、WordPiece 算法)。
  • 优势: 介于"词"和"字符"之间。例如,"tokenization" 可能会被分为 ["token", "ization"]。这极大地缓解了**OOV(Out-of-Vocabulary,未登录词)**问题,使模型既能理解常见词(如 token),也能通过组合词缀(如 ization)来泛化到新词(如 modernization)。
2. 🔧 工程实现:Hugging Face tokenizers (工具)

tokenizers 是一个将上述"学术概念"变为"高性能生产工具"的典型代表。

  • 它是什么? 一个由Hugging Face公司开发的开源库(主要用Rust编写,以提供极高效率)。
  • 它做什么? 它专门用来高效实现执行各种子词Tokenization算法(BPE, WordPiece等)。
  • 它的角色: 它是一个工程实现 。它的任务是快速地将原始文本字符串(Raw Text),转换成模型所需的 input_ids(即Token的数字ID序列)。

第二阶段:广义演进------多模态AI的"通用翻译器"

在多模态和AIGC的浪潮下,"Tokenize"的含义已经扩展为:将任意模态的数据,编码为离散的"Token"序列

以下是这一范式在三个前沿研究领域的具体佐证:

1. 🖼️ 扩散模型 (Diffusion Models):将"图像潜空间"Token化

在潜扩散模型(Latent Diffusion Models, LDM)中,Tokenization是实现计算效率和SOTA性能的基石。

  • 核心思想: 不在原始的、高维的像素空间(如 512x512x3)上操作,而是在一个压缩后的潜空间中进行。
  • 如何Tokenize:
    1. 使用一个强大的自编码器(如 VAE 或 VQGAN)作为"图像Tokenizer"。
    2. 这个Encoder将一张高分辨率图像压缩成一个低维的特征图(Feature Map),例如 64x64x4。
    3. 这个 64x64 的特征网格(Grid) ,就可以被视作一个由 4096 个"视觉Token" 组成的序列。
  • 佐证: Stable Diffusion等模型的核心扩散过程,学习的是这些"潜空间Token"之间的关系,而不是像素之间的关系。最后,解码器(Decoder)将生成的Token序列"反Tokenize"回一张完整的图像。

代表论文:

2. 🤖 机器人学 (Robotics):将"物理动作"Token化

在机器人学中,最大的挑战之一是统一"看"(视觉)、"想"(语言)和"做"(动作)。RT-2(Robotics Transformer 2)通过将"动作"本身Tokenize,实现了这一目标。

  • 核心思想: 万物皆可Token。将视觉、语言和机器人的物理控制指令,全部转换成一个统一的序列。
  • 如何Tokenize:
    1. 视觉/语言: 按常规方式(如 ViT Patches 和 BPE分词)进行Tokenize。
    2. 动作(Action)- 核心创新: 机器人的动作(如手臂的[dx, dy, dz, ...])是连续的浮点数 。RT-2将这些连续值离散化(Discretize)
    3. 例如,将-1到1的连续动作范围,切分成256个"桶"(Bins)。一个动作 [-0.05, 0.1, ...] 就被映射成一个离散的整数Token序列 ,如 [Token_102, Token_150, ...]
  • 佐证: RT-2模型就像一个语言模型,它自回归地"生成"下一个"动作Token",就像生成下一个单词一样。这个"动作Token"随后被"反Tokenize",转换回马达的物理指令。

代表论文:

3. 🌊 流匹配 (Flow Matching):在"Token化"的潜空间中引导"流"

流匹配(Flow Matching)是与扩散模型竞争的新一代生成模型框架。为了在图像等高维数据上应用它,它同样依赖于Tokenization范式。

  • 核心思想: Flow Matching 学习一个向量场(Vector Field)来将噪声连续地"引导"回数据。直接在像素上操作是低效的。
  • 如何Tokenize: 实践中,高效的流匹配模型并在原始像素空间中计算"流"。
  • 步骤(借鉴 LDM 和 DiT 范式):
    1. 数据Tokenize: 图像首先通过一个 VAE Encoder 被"Tokenize"成潜空间中的"Latent Patches"(潜在图块)。
    2. Transformer骨干网: 一个强大的Transformer架构被用来建模这个"流"场。
    3. 输入序列: Transformer的输入正是一个Token序列 ,它包含了 [潜空间图像Token_1, ..., 潜空间图像Token_N, time_step_token, ...]
  • 佐证: 尽管"流"(Flow)在理论上是连续的,但在SOTA实现中,用于建模这个流 的神经网络(特别是Transformer),其操作的输入(Input)是一个被Token化(Patched 和 Embedded)的序列

代表论文:

相关推荐
冬奇Lab几秒前
每日一个开源项目(第150篇):caveman - 为什么用很多 token,少 token 也行——给 AI Agent 装上穴居人嘴巴
人工智能·开源·资讯
贵慜_Derek7 分钟前
MAI-04|干净数据在工程上意味着什么:MAI 预训练数据治理
人工智能·算法·llm
feelmylife5911 分钟前
Agent 记忆设计架构 — 分层记忆:什么时候该记住,什么时候该忘记
人工智能
阿黎梨梨31 分钟前
揭秘大语言模型的底层逻辑:从文本分词到高维向量的计算之旅
javascript·人工智能
moMo32 分钟前
AI工程化 03:给模型喂上下文
人工智能
火山引擎开发者社区10 小时前
没有长期记忆,Agent 谈何持续进化?一图看懂火山 Mem0:解锁 Agent 持续学习与进化之路
人工智能
冬奇Lab13 小时前
Workflow 系列(06):安全——跨步骤注入传播与四层防御
人工智能·工作流引擎
冬奇Lab13 小时前
每日一个开源项目(第149篇):RAG-Anything - 把图片、表格、公式当成一等公民的多模态 RAG 框架
人工智能·开源
米小虾13 小时前
AI Agent 安全实战指南:当智能体开始"不听话",开发者该如何应对?
人工智能·安全·agent