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 生成)

相关推荐
夕除4 小时前
Redis 过期策略
redis·笔记·面试
Nuanyt5 小时前
Agent 学习笔记(下篇三):上线工程、进阶选择与操作界面(Stage 7 / 7.5 / 8 + 延伸路线)
笔记·python·学习·memory·aiagent·harness
叼烟扛炮6 小时前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
叼烟扛炮7 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
songyuc7 小时前
【Manskill3】TableSceneBuilder学习笔记
pytorch·笔记·学习
゛凌乱的记忆づ9 小时前
好用的md文件编辑器——TyporaS与Typora
笔记·git·typora·markdown
zroooo10 小时前
计算机学习-知识庞大而繁杂
笔记·学习
坤坤子吖10 小时前
算法学习——单调队列
开发语言·c++·笔记·学习·算法
Zhao-Jichao11 小时前
AI Prompting for Everyone 课程笔记 - 05 使用深度搜索 Using Deep Research
人工智能·笔记
云析赢指标公式网413 小时前
指标开发笔记|主图搭配双副图成套指标逻辑拆解
人工智能·笔记