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

相关推荐
不会代码的小猴6 小时前
21. 泛型编程上
开发语言·c++·笔记·算法
摇滚侠8 小时前
《SpringBoot 3:入门与应用实战》第 2 章 IOC 思想与实现 阅读笔记 1
spring boot·笔记·后端
蒸蒸yyyyzwd8 小时前
秋招不熟悉力扣学习笔记1
笔记·学习·leetcode
LuminousCPP9 小时前
数据结构-双向循环链表
c语言·数据结构·笔记·链表
302wanger11 小时前
【阅读笔记】当AI拿走一切之后
笔记
疯狂打码的少年13 小时前
【数据结构】串(字符串):基本概念与存储
数据结构·笔记
Hotchip_MEMS15 小时前
TWS耳机微米级较量:超薄LGA封装如何助力MEMS麦克风小型化?
人工智能·笔记·物联网·电脑
Ztt66666666615 小时前
金泉方壶四面端正,月白釉却把棱角放柔了
经验分享·笔记·其他·百度·微信公众平台
学习和思考15 小时前
非自动化专业如何自学PLC?我的6个月学习路线图
笔记·学习·自动化·学习方法
疯狂打码的少年16 小时前
【数据结构】栈的应用:表达式求值(后缀表达式)
java·数据结构·笔记·算法