Tokenizer 与 Embedding 核心笔记

Tokenizer 与 Embedding 核心笔记

核心逻辑:文本 → Tokenizer(文字转ID)→ Embedding(ID转语义向量),二者是模型处理文本的"必经两步",缺一不可

一、Tokenizer(分词器/文本编码器)

1. 定义

自然语言处理(NLP)中,用于将原始文本(字符串)转换为模型可识别的"基础数字单元"的工具,是文本预处理的核心组件。

2. 核心作用(4大核心,缺一不可)

  • 分词切分:将完整句子切分为模型可处理的最小单元(中文按单字切分,英文按子词/词切分,标点、数字单独切分)。

  • 标记添加:自动添加模型所需的特殊标记(如 CLS 句子开头标记、SEP 句子结束标记)。

  • 编码映射:查询内置词表,将每个切分单元(字/子词)转换为唯一的整数 ID(核心功能,实现"文字→数字")。

  • 格式标准化:通过 Padding(短句子补 PAD,ID=0)和 Truncation(长句子截断),统一所有文本长度,适配模型批量计算。

3. 关键特性

  • 无学习能力:规则固定,仅做"查表映射",不参与模型训练,输出为整数 ID 序列。

  • 无语义:输出的 ID 仅为编号,不包含任何语义、语法信息。

  • 位置:属于数据预处理阶段,在模型外部执行。

二、Embedding(词嵌入/嵌入层)

1. 定义

深度学习模型(如 BERT、RoBERTa)的第一层神经网络组件,用于将 Tokenizer 输出的整数 ID,转换为具有语义含义的高维浮点数向量(语义向量)。

2. 核心作用

  • ID 转向量:接收 Tokenizer 输出的整数 ID,从自身的可学习参数矩阵中,取出对应行的高维向量(常用 768 维)。

  • 赋予语义:向量包含文本的语义、语法、上下文关联信息(如"我"和"俺"的向量距离近,"好"和"坏"的向量距离远)。

  • 适配模型:将离散的整数 ID,转换为模型可进行计算的连续浮点数向量,为后续模型层(如 Transformer)提供输入。

3. 关键特性

  • 可学习性:自身是可训练的参数矩阵,训练过程中会不断优化,适配具体任务。

  • 有语义:输出的向量是文本的"语义表示",模型通过向量理解文本含义。

  • 位置:属于模型内部第一层,在 Tokenizer 处理之后执行。

三、Tokenizer 与 Embedding 核心区别(重点对比)

对比维度 Tokenizer(分词器) Embedding(嵌入层)
中文名称 分词器、文本编码器 词嵌入、嵌入层
核心定义 将原始文本转为整数 ID 的预处理工具 将整数 ID 转为语义向量的模型组件
输入内容 原始字符串文本(如"我要投诉客服") Tokenizer 输出的整数 ID 序列
输出内容 整数 ID 序列(如 101, 2769, 3429, ... 高维浮点数语义向量(如 0.123, -0.456, ...
是否可学习 ❌ 固定规则,不可学习 ✅ 可训练参数,随任务优化
是否有语义 ❌ 仅为编号,无语义 ✅ 包含语义、语法、上下文信息
所处阶段 模型外部,数据预处理阶段 模型内部,第一层神经网络
核心功能 文字 → 数字(格式转换) 数字 → 语义向量(赋予含义)

四、总结(极简好记)

  • 必经流程:文本 → Tokenizer → Embedding → 模型,缺一步模型无法运行。

  • Tokenizer:"翻译官",把人类文字翻译成模型能"看见"的数字 ID。

  • Embedding:"解读者",把数字 ID 翻译成模型能"理解"的语义向量。

  • 核心区别:一个是"无语义的格式转换",一个是"有语义的向量映射"。

(注:文档部分内容可能由 AI 生成)

相关推荐
RainCity2 天前
Java Swing 自定义组件库分享(十二)
java·笔记·后端
LinXunFeng9 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
闪闪发亮的小星星13 天前
高斯光以及高斯光公式解释
笔记
cqbzcsq13 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
阿米亚波13 天前
【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统 + 离线软件源
linux·windows·经验分享·笔记·架构·arm
自传.13 天前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding
.千余14 天前
【C++】模板进阶全解:非类型参数|全特化|偏特化|分离编译完全指南
开发语言·c++·笔记·学习·其他
自传.14 天前
尚硅谷 Vibe Coding|第二章 AI编程工具生态 学习笔记
笔记·学习·ai编程·尚硅谷·vibe coding
秋波。未央14 天前
Java Agent 开发 · Day 1 学习笔记(含作业完整标准答案)
java·笔记·学习
中屹指纹浏览器14 天前
2026指纹浏览器字体指纹、字体渲染偏差检测与全维度虚拟字体池搭建方案
经验分享·笔记