AI知识分享AI知识分享
✿导航
  • 人工智能
  • 神经网络
  • 机器学习
  • 深度学习
  • 强化学习
  • 自然语言处理
  • 计算机视觉
  • 大模型基础
  • 动手学深度学习
  • 理论理解
  • 工程实践
  • 应用开发
  • AI For Everyone
  • AIGC_2024大会
  • AIGC_2025大会
  • Transformer
  • Pytorch
  • HuggingFace
  • 蒸馏
  • RAG
  • 目标检测
  • MCP
  • 概念
  • 意图识别
  • 工具
✿导航
  • 人工智能
  • 神经网络
  • 机器学习
  • 深度学习
  • 强化学习
  • 自然语言处理
  • 计算机视觉
  • 大模型基础
  • 动手学深度学习
  • 理论理解
  • 工程实践
  • 应用开发
  • AI For Everyone
  • AIGC_2024大会
  • AIGC_2025大会
  • Transformer
  • Pytorch
  • HuggingFace
  • 蒸馏
  • RAG
  • 目标检测
  • MCP
  • 概念
  • 意图识别
  • 工具
  • Transformer

    • Transformer - 概述
    • Transformer - Encoding and Decoding Context with Attention
    • Transformer - Tokenizers
    • Transformer - 架构
    • Transformer - Block
    • Transformer - 自注意力
    • Transformer - MoE
    • Transformer - Transformer
  • Pytorch

    • Pytorch - Dataset
    • Pytorch - TensorBoard
    • Pytorch - transforms
    • Pytorch - DataLoader
    • Pytorch - nn
    • Pytorch - Model
    • Pytorch - train
    • Pytorch - Practice
    • Pytorch - pytorch
  • HuggingFace

    • HuggingFace - Transformers
    • HuggingFace - Pipeline
    • HuggingFace - Tokenizer
    • HuggingFace - Model
    • HuggingFace - Datasets
    • HuggingFace - Evaluate
    • HuggingFace - Trainer

HuggingFace - Tokenizer

数据预处理

  • Step1 分词:使用分词器对文本数据进行分词(字、字词);
  • Step2 构建词典:根据数据集分词的结果,构建词典映射(这一步并不绝对,如果采用预训练词向量,词典映射要根据词向量文件进行处理);
  • Step3 数据转换:根据构建好的词典,将分词处理后的数据做映射,将文本序列转换为数字序列:
  • Step4 数据填充与截断:在以batch输入到模型的方式中,需要对过短的数据进行填充,过长的数据进行截断, 保证数据长度符合模型能接受的范围,同时batch内的数据维度大小一致。

基本使用

  • 加载保存(from_pretrained/save_pretrained)
  • 句子分词(tokenize)
  • 查看词典(vocab)
  • 索引转换(convert_tokens_to_ids /convert ids_to_tokens)
  • 填充截断(padding/truncation)
  • 其他输入(attention_mask/token_type_ids)

Fast vs Slow Tokenizer

在 Hugging Face 的 transformers 库中,Tokenizer(分词器) 分为 Fast Tokenizer 和 Slow Tokenizer 两种实现。它们功能相同,但底层实现和性能有显著差异。

🚀 Fast vs Slow Tokenizer 对比

特性Fast TokenizerSlow Tokenizer
实现语言Rust (通过 tokenizers 库)Python
速度⚡️ 非常快(尤其在批量处理时)较慢
内存占用更低更高
功能完整性✅ 完整支持主流模型✅ 完整支持
额外功能✅ 支持 offset_mapping(字符级位置映射)
✅ 更好的对齐(如 NER 任务)
❌ 不支持或支持有限
是否推荐✅ 强烈推荐❌ 仅作兼容或调试用

执行示例

PS D:\code\klc\test\share4ai\docs\basic\huggingface> python.exe .\fast_tokenizer.py
Tokens: ['[CLS]', 'hello', ',', 'my', 'name', 'is', 'john', '.', '[SEP]']
Offsets: [(0, 0), (0, 5), (5, 6), (7, 9), (10, 14), (15, 17), (18, 22), (22, 23), (0, 0)]
最近更新: 2025/10/4 15:57
Contributors: klc407073648
Prev
HuggingFace - Pipeline
Next
HuggingFace - Model