
理解大模型的第一步Transformers Tokenizer分词器系统完全指南【免费下载链接】transformers Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.项目地址: https://gitcode.com/GitHub_Trending/tra/transformersTransformers Tokenizer 分词器是 Hugging Face Transformers 库中将文本、图像、音频等输入转换为模型可计算张量的核心组件。本文将带你快速理解分词器的工作原理、主流分词算法BPE、Unigram、WordPiece、SentencePiece以及多模态 Processor 的使用方式是新手入门大模型必读的完整指南。为什么需要分词器大模型无法直接理解人类语言或原始图像它只能处理数字。分词器Tokenizer就是模型与外界之间的翻译官文本→ 切分为子词单元 → 映射为整数编号input_ids→ 送入模型图像→ 缩放、裁剪、归一化 → 像素值张量音频→ 重采样 → 波形/梅尔谱张量以 Transformers 为例AutoTokenizer会把一句话变成两组关键数据输出字段含义input_ids每个 token 对应的词表编号模型的真正输入attention_mask标记哪些位置是真实 token1哪些是填充0官方文档 docs/source/en/fast_tokenizers.md 对这一流程有权威说明分词器将文本转换为张量即模型的输入。它负责规范化与切分文本、应用分词算法、添加特殊 token并把输出 id 解码回文本。一次典型分词过程以句子Sphinx of black quartz, judge my vow.为例经过 Gemma 分词器处理后文本 → [Sphinx] [of] [black] [quartz] ... → [2, 235277, 82913, 576, 2656, ...]模型实际看到的就是这串数字。理解这一点你就理解了分词器 大模型的入口。三大主流分词算法BPE、Unigram、WordPiece Transformers 支持多种子词subword分词算法它们把文本切成介于单词和字符之间的单元兼顾词表大小与语义完整性。详细讲解见官方文档 docs/source/en/tokenizer_summary.md。1. BPE字节对编码——最流行Llama、Gemma、Qwen 等热门模型都使用 BPE先按空格预切分统计词频从字符级基础词表出发反复合并出现频率最高的相邻对直到词表达到目标大小比如hug、pug、hugs中u和g高频相邻就会被合并为ug。GPT-2 进一步使用字节级 BPE基础词表直接取 256 个字节值保证任何字符都不会变成unk未知token。2. Unigram——概率驱动T5、Pegasus 等模型采用。它从大候选词表出发每次剔除对整体损失影响最小的 token保留信息量最高的子词。与 BPE 的确定性合并不同Unigram 按概率选择切分方式同一个词可能有多种合法切法。3. WordPiece——BERT 家族的选择BERT、DistilBERT、Electra 使用 WordPiece。与 BPE 的区别在于合并标准BPE 合并出现次数最多的相邻对WordPiece 则合并最能提升训练数据似然的对——即共现远超随机预期的组合优先合并。4. SentencePiece——解决无空格语言中文、日文没有天然空格分隔标准 BPE/Unigram 会失效。SentencePiece 直接对原始字符流做 BPE 或 Unigram 训练并把空格表示为特殊符号▁放入词表。解码时把所有 token 拼起来、把▁换回空格即可。为什么不用整词或单字切分切分方式优点缺点按整词语义完整词表巨大新词全部变成unk按单字词表小无未知词序列过长单字语义弱效果差子词subword词表紧凑生词可拆解高频词可能被切碎序列略长例如annoyingly可能切成[annoying, ly]或[annoy, ing, ly]——模型能用已知子词拼出没见过的词这正是子词分词的价值。快速上手加载与使用分词器 方式一AutoTokenizer推荐AutoTokenizer.from_pretrained会读取模型配置自动解析出正确的分词器类无需预先知道具体类型。大多数分词器最终解析为基于 Rust 的 [TokenizersBackend]即 tokenizers 库提供的高性能实现速度远快于纯 Python 的 slow 版本。from transformers import AutoTokenizer tokenizer AutoTokenizer.from_pretrained(google/gemma-2-2b) outputs tokenizer(Sphinx of black quartz, judge my vow., return_tensorspt)方式二模型专属分词器类例如GemmaTokenizer是一个预配置好的分词器类使用模型训练时的确切分词规则normalizer、pre-tokenizer、特殊 token 约定等。它适合从零初始化一个空分词器用于训练或需要传入vocab、merges等自定义参数时。自定义方法可参考 docs/source/en/custom_tokenizers.md。常用功能一览功能说明encode/decode文本与 token id 互转batch_encode_plus批量编码自动处理 padding 与截断特殊 tokenpad、bos、eos、unk等标记词表访问get_vocab()、convert_tokens_to_ids()分词器的核心实现位于 src/transformers/tokenization_utils_base.pyPreTrainedTokenizerBase基类与 src/transformers/tokenization_tokenizers.pyFast 分词器后端。多模态进阶Processor 把文本、图像、音频统一处理 ️现代大模型大多是多模态的——既要处理文本又要处理图像或音频。此时单靠分词器不够需要Processor处理器多模态模型需要一个能处理多种模态输入的预处理器把文本转为张量、把图像转为像素值、把音频转为正确采样率的张量。 —— docs/source/en/processors.md以视觉-语言模型 PaliGemma 为例它内部组合了SigLIP 图像处理器 Llama 分词器由AutoProcessor统一封装。你只需调用一次from transformers import AutoProcessor processor AutoProcessor.from_pretrained(google/paligemma-3b-pt-224) inputs processor(textWhere is the cat standing?, imagesimage, return_tensorspt)返回的inputs中同时包含input_ids文本与pixel_values图像直接喂给模型即可。下面的测试样本正是仓库中用于图像任务验证的素材——图像会被图像处理器缩放、裁剪、归一化后成为模型的输入新手常见疑问 FAQ Q1什么是 special token特殊 token它们是带特定含义的保留编号如bos序列开始、eos结束、pad填充、unk未知。每个模型的特殊 token 约定可能不同这也是模型专属分词器类存在的原因。Q2Fast 和 Slow 分词器有什么区别AutoTokenizer默认优先加载 Rust 实现的 Fast 版本带Fast后缀的类性能大幅提升纯 Python 的 Slow 版本保留用于兼容旧代码。Q3分词器会影响模型效果吗会。分词粒度决定了序列长度与 token 语义的对应关系不同模型如 GPT 的 5 万 词表 vs BERT 的 3 万词表在相同文本上切出的 token 数量和含义都不同。因此换模型通常要换配套分词器。Q4如何训练自己的分词器可用 tests/fixtures/tests_samples/vocab.txt、tests/fixtures/tests_samples/merges.txt 这类词表文件理解其结构官方教程 docs/source/en/tokenizer_summary.md 结尾还推荐了从零训练 BPE/Unigram/WordPiece 的课程章节。总结与下一步 ✅概念一句话记忆Tokenizer把输入变成数字的翻译官大模型的第一步BPE反复合并最高频相邻对Llama/GPT 系标配Unigram按概率剪枝词表T5 系标配WordPiece合并信息量最大的对BERT 系标配SentencePiece面向中文/日文等无空格语言的统一方案Processor多模态输入文本图像音频的统一入口建议的下一步阅读官方文档docs/source/en/processors.md、docs/source/en/custom_tokenizers.md查看分词器源码目录src/transformers/ 下的tokenization_*.py系列文件动手实验用AutoTokenizer加载一个你熟悉的模型观察它如何切分中文与英文掌握分词器你就拿到了理解大模型的第一把钥匙 ——从文本进、数字出的这一刻起模型的一切能力都建立在这个基础之上。【免费下载链接】transformers Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.项目地址: https://gitcode.com/GitHub_Trending/tra/transformers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考