当前位置: 首页 > ai >正文

python transformers库笔记(BertTokenizerFast类)

BertTokenizerFast类

1、特点

        速度快:底层使用Rust实现,比纯python的BertTokenizer快得多(尤其是批量处理的时候),且支持多线程使用。

        功能一致:与BertTokenizer的API完全兼容,可以直接替换使用。支持所有的BERT变体。

        额外功能:提供更丰富的后处理选项(如截断、填充的精细控制)。支持直接返回token_type_ids、attention_mask等张量。

2、基本用法

from transformers import BertTokenizerFast# 初始化分词器,以chinese-bert-wwm模型为例
tokenizer = BertTokenizerFast.from_pretrained('chinese-bert-wwm')# 单条文本分词
text = ‘你好,明天!’
encoded_input = tokenizer(text, return_tensors='pt')  # 返回pytorch张量
"""
输出结果:
{'input_ids': tensor([[101, 3209, 1921, 8024, 872, 1962, 8013, 102]]),'token_type_ids': tensor([[0, 0, 0, 0, 0, 0, 0, 0]]),'attention_mask': tensor([[1, 1, 1, 1, 1, 1, 1, 1]])
}
"""
# 批量文本分词
texts = ['明天,你好!', '你好,明天!']
batch_encoded = tokenizer(texts, padding=True, truncation=True, return_tensors='pt')
"""
输出结果:
{'input_ids': tensor([[101, 3209, 1921, 8024, 872, 1962, 8013, 102], [101, 872, 1962, 8024, 3209, 1921, 8013, 102]]),'token_type_ids': tensor([[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]]),'attention_mask': tensor([[1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1]])
}
"""

3、关键参数

参数名作用
padding=True自动填充到批次中最长序列长度
trunction=True自动截断到模型最大长度(512)
return_tensors='pt'返回pytorch张量(可选"tf"为TensorFlow或"np"为numpy)
max_length=128显式指定最大长度
add_special_tokens是否添加[cls]和[sep],默认为True
return_offsets_mapping返回每个token在原始文本中的字符集起始和结束位置
skip_special_tokens在解码(将Token ID转回文本)时跳过特殊token(如[CLS]、[SEP]、[PAD]等),默认值为False,设为True后输出更干净的文本

 4、自定义tokens

tokenizer.add_tokens(['亚马逊', '速卖通'])  # 添加新的token
model.resize_token_embeddings(len(tokenizer))  # 调整模型嵌入层

5、偏移量映射(用于命名实体识别任务)

encoded_input = tokenizer(text, return_offsets_mapping=True)
print(encoded_input["offset_mapping"])  # 输出每个token在原文中的位置

6、快速解码

decoded_text = tokenizer.decode(encoded_input["input_ids"][0], skip_special_tokens=True)
http://www.xdnf.cn/news/13920.html

相关文章:

  • 高频面试之12 HBase
  • javascript中浏览器自带的实用方法
  • 液氮罐里的重要样本老是担心安全受到损坏如何操作可以在线记录开门时间呢?
  • 使用GpuGeek训练图像分类器:从入门到精通
  • ubuntu24.04.2安装docker自动化脚本
  • React Native 性能优化实践
  • 【Linux网络编程】基于udp套接字实现的网络通信
  • 2024年06月青少年软件编程(图形化)等级考试试卷(四级)
  • 一名高级运维工程师,一台新服务器,安装windows系统后,在网络攻防(护网行动)形式下,应该怎么做安全加固?
  • Arduino入门教程:​​​​​​​2、代码基础
  • 在 cuda 基础环境中安装完整的cupy
  • Spring AI Chat Memory 指南
  • Prompt从入门到抄作业
  • 联邦算法分析:技术深度探索与实践应用
  • Linux系统权限提升篇Vulnhub辅助项目SUID权限SUDO指令版本漏洞
  • React ajax中的跨域以及代理服务器
  • python 爬虫,爬取某乎某个用户的全部内容 + 写个阅读 app,慢慢读。
  • OpenCV CUDA模块图像变形------对图像进行GPU加速的仿射变换函数warpAffine()
  • Spring Cloud Gateway + JWT 单点登录实现方案(无独立的认证服务器)
  • doris manager 安装部署 、管理已有doris集群、使用studio进行SQL查询
  • croc-文件传输工具
  • Rust 学习笔记:Stream
  • 机器学习算法_聚类KMeans算法
  • 中小企业服务器低成本的防勒索工具:RDM防勒索
  • Python实现下载监控工具:自动检测并移动下载文件
  • 金融领域LLM开源测试集
  • C. Cherry Bomb
  • SpringBoot 服务器监控 监控系统开销 获取服务器系统的信息用户信息 运行信息 保持稳定
  • Rethinking Coarse-to-Fine Approach in Single Image Deblurring论文阅读
  • 产品哲学:用户收益>操作成本,字节跳动成功的底层逻辑