本地加载 Hugging Face 的 AutoTokenizer
Hugging Face 的 Transformers 库为 NLP 任务提供了一系列预训练模型和工具。其中,AutoTokenizer 是一个强大的工具,可以轻松加载预训练的 tokenizer。但是,有时候我们可能需要将 tokenizer 从 Hugging Face 的云端模型库加载到本地,以提高速度或减少对网络的依赖。
为什么要本地加载 AutoTokenizer?
- 速度提升: 从本地加载 tokenizer 比从云端下载要快得多,尤其是在需要频繁使用 tokenizer 的情况下。
- 离线使用: 本地加载可以让您在没有网络连接的情况下使用 tokenizer。
- 安全性: 在某些情况下,您可能希望将敏感数据存储在本地,而不是将其上传到云端。
如何本地加载 AutoTokenizer?
您需要使用 from_pretrained
方法,并指定本地路径而不是模型名称。
步骤:
-
下载模型: 从 Hugging Face 网站或使用
transformers.AutoModelForSequenceClassification.from_pretrained
方法下载模型。 -
设置本地路径: 确定模型存储的本地路径。
-
加载 tokenizer: 使用以下代码加载本地 AutoTokenizer:
from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("./path/to/model", local_files_only=True)
解释:
from_pretrained
方法是用于加载 tokenizer 的主要方法。local_files_only=True
参数告诉函数只从本地路径加载文件,而不是从云端下载。"./path/to/model"
替换为模型存储的实际本地路径。
示例:
假设您已经将一个名为 "bert-base-uncased" 的 BERT 模型下载到了本地文件夹 "models" 中。以下是加载本地 AutoTokenizer 的代码:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("./models/bert-base-uncased", local_files_only=True)
常见问题:
- FileNotFoundError: 如果您收到 FileNotFoundError 错误,请检查本地路径是否正确,并确保模型文件已正确存储在该路径下。
- Hugging Face 云端模型库: 如果您没有下载模型到本地,则需要从 Hugging Face 云端模型库下载模型。
结论
本地加载 AutoTokenizer 可以显著提高模型的加载速度和效率。如果您需要频繁使用 tokenizer 或需要在没有网络连接的情况下使用 tokenizer,本地加载是一个很好的选择。
关键点
- 使用
from_pretrained
方法加载 AutoTokenizer。 - 使用
local_files_only=True
参数指示从本地路径加载。 - 确保本地路径正确,并确保模型文件已正确存储在该路径下。
- 下载模型到本地后,您可以使用本地路径加载 tokenizer。