【AI大模型】Transformers大模型库(四):AutoTokenizer

简介: 【AI大模型】Transformers大模型库(四):AutoTokenizer

一、引言

这里的Transformers指的是huggingface开发的大模型库,为huggingface上数以万计的预训练大模型提供预测、训练等服务。

🤗 Transformers 提供了数以千计的预训练模型,支持 100 多种语言的文本分类、信息抽取、问答、摘要、翻译、文本生成。它的宗旨是让最先进的 NLP 技术人人易用。

🤗 Transformers 提供了便于快速下载和使用的API,让你可以把预训练模型用在给定文本、在你的数据集上微调然后通过 model hub 与社区共享。同时,每个定义的 Python 模块均完全独立,方便修改和快速研究实验。

🤗 Transformers 支持三个最热门的深度学习库: Jax, PyTorch 以及 TensorFlow — 并与之无缝整合。你可以直接使用一个框架训练你的模型然后用另一个加载和推理。

本文重点介绍自动分词器(AutoTokenizer)。

二、自动分词器(AutoTokenizer)

2.1 概述

AutoTokenizer是Hugging Face transformers库中的一个非常实用的类,它属于自动工厂模式的一部分。这个设计允许开发者通过一个统一的接口来加载任何预训练模型对应的分词器(tokenizer),而无需直接指定分词器的精确类型。这意味着,当你知道模型的名称时,你可以使用AutoTokenizer自动获取与该模型匹配的分词器,而不需要了解分词器的具体实现细节。

2.2 主要特点

  • 模型兼容性:通过模型名称自动匹配合适的分词器,支持BERT、RoBERTa、Albert、DistilBERT、T5等众多模型。
  • 便捷性:简化了代码,无需根据模型类型手动选择分词器类。
  • 灵活性:对于新发布的模型,只要其分词器在Hugging Face模型库中可用,AutoTokenizer.from_pretrained就能加载。

2.3 代码示例

使用这些特殊标记的例子,比如在BERT模型中准备输入:

import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"#使用国内hf镜像
os.environ["CUDA_VISIBLE_DEVICES"] = "2"
os.environ["TF_ENABLE_ONEDNN_OPTS"] = "0"
 
from transformers import AutoTokenizer
 
# 加载BERT的分词器
tokenizer = AutoTokenizer.from_pretrained('bert-base-chinese')
 
# 使用分词器处理文本
text = "你好,我在北京的互联网公司工作"
tokenized_text = tokenizer.tokenize(text)
print(tokenized_text)
"""
['你', '好', ',', '我', '在', '北', '京', '的', '互', '联', '网', '公', '司', '工', '作']
"""
 
# 或者直接编码为模型输入的格式
encoded_text = tokenizer.encode(text)
print(encoded_text)
"""
[101, 872, 1962, 8024, 2769, 1762, 1266, 776, 4638, 757, 5468, 5381, 1062, 1385, 2339, 868, 102]
"""
 
# 对于更复杂的输入准备,可以使用encode_plus
encoded_plus = tokenizer.encode_plus(text, add_special_tokens=True)
print(encoded_plus)
"""
{
    'input_ids': [101, 872, 1962, 8024, 2769, 1762, 1266, 776, 4638, 757, 5468, 5381, 1062, 1385, 2339, 868, 102], 
    'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
    'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
}
"""

参数说明

  • from_pretrained: 这不是一个方法,而是用来创建AutoTokenizer实例的类方法。它根据提供的模型名称或路径加载对应的分词器。
  • tokenize: 将文本字符串转换为词元(tokens)的列表。
  • encode: 将文本转换为模型输入的数字序列(token IDs)。
  • encode_plus: 除了生成token IDs,还提供额外的数据结构,如attention_mask、token_type_ids等,适合复杂输入准备。以及提供句子编码拼接功能。
  • batch_encode_plus: 对一批文本进行编码,可以自动处理填充和截断,以确保所有输入具有相同的长度。
  • decode: 将token IDs转换回文本字符串。
  • save_pretrained: 保存分词器到本地目录,以便之后使用。
  • 特定于模型的方法: 不同的分词器可能有特定的方法,如处理特定的编码规则、特殊标记等,但这些不是所有分词器都通用的。

这些方法的具体行为和可用参数可能会根据加载的分词器类型(如BertTokenizer、RobertaTokenizer等)有所不同

三、总结

本文对使用transformers的AutoTokenizer进行介绍,他最大的特点是允许开发者通过一个统一的接口来加载任何预训练模型对应的分词器(tokenizer),而无需直接指定分词器的精确类型。这意味着,当知道模型的名称时,可以使用AutoTokenizer自动获取与该模型匹配的分词器。

目录
相关文章
|
3月前
|
机器学习/深度学习 人工智能 人机交互
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
402 121
|
3月前
|
数据采集 人工智能 搜索推荐
智能新纪元:多模态大模型如何重塑人机交互
智能新纪元:多模态大模型如何重塑人机交互
263 113
|
3月前
|
人工智能 人机交互 知识图谱
当AI学会“融会贯通”:多模态大模型如何重塑未来
当AI学会“融会贯通”:多模态大模型如何重塑未来
315 114
|
3月前
|
人工智能 搜索推荐 程序员
当AI学会“跨界思考”:多模态模型如何重塑人工智能
当AI学会“跨界思考”:多模态模型如何重塑人工智能
334 120
|
3月前
|
人工智能 安全 搜索推荐
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
299 117
|
3月前
|
人工智能 API 开发工具
构建AI智能体:一、初识AI大模型与API调用
本文介绍大模型基础知识及API调用方法,涵盖阿里云百炼平台密钥申请、DashScope SDK使用、Python调用示例(如文本情感分析、图像文字识别),助力开发者快速上手大模型应用开发。
1428 16
构建AI智能体:一、初识AI大模型与API调用
|
3月前
|
消息中间件 人工智能 安全
云原生进化论:加速构建 AI 应用
本文将和大家分享过去一年在支持企业构建 AI 应用过程的一些实践和思考。
676 43
|
4月前
|
人工智能 安全 中间件
阿里云 AI 中间件重磅发布,打通 AI 应用落地“最后一公里”
9 月 26 日,2025 云栖大会 AI 中间件:AI 时代的中间件技术演进与创新实践论坛上,阿里云智能集团资深技术专家林清山发表主题演讲《未来已来:下一代 AI 中间件重磅发布,解锁 AI 应用架构新范式》,重磅发布阿里云 AI 中间件,提供面向分布式多 Agent 架构的基座,包括:AgentScope-Java(兼容 Spring AI Alibaba 生态),AI MQ(基于Apache RocketMQ 的 AI 能力升级),AI 网关 Higress,AI 注册与配置中心 Nacos,以及覆盖模型与算力的 AI 可观测体系。
1019 52
|
3月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
492 30

热门文章

最新文章