You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何缩短Hugging Face AutoTokenizer的加载耗时?

AutoTokenizer加载缓慢的原因及优化方案

原因分析

  • 远程资源拉取延迟:首次调用AutoTokenizer.from_pretrained('bert-base-uncased')时,会默认从Hugging Face Hub远程下载tokenizer的配置文件、词汇表等资源,网络带宽和服务器响应速度直接决定了加载耗时,这是你遇到8秒延迟的核心原因。
  • 自动类型推断的额外开销:AutoTokenizer需要先根据模型名称远程查询并推断对应的具体tokenizer类型(比如BertTokenizer),这个过程包含配置校验、资源匹配等步骤,比直接实例化特定的BertTokenizer多了一层逻辑,会增加少量耗时。

优化方案

1. 本地路径加载(推荐)

AutoTokenizer完全支持从本地路径加载资源,操作步骤如下:

  • 先执行一次下载并保存到本地(仅需运行一次):
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
tokenizer.save_pretrained('./local_bert_tokenizer')
  • 后续直接从本地路径加载,速度与BertTokenizer本地加载一致,同时保留word_id()功能:
from transformers import AutoTokenizer
import time

start = time()
tokenizer = AutoTokenizer.from_pretrained('./local_bert_tokenizer')
end = time() - start
print(f"Loading Time : {round(end, 2)}s")
# 预期耗时约50ms

2. 利用本地缓存

首次加载后,Hugging Face会自动将资源缓存到本地默认路径(~/.cache/huggingface/hub),后续再次调用AutoTokenizer.from_pretrained('bert-base-uncased')会直接读取缓存,无需远程下载,耗时会大幅降低至本地加载水平。

3. 强制本地加载(跳过远程校验)

如果确认本地缓存资源完整,可添加local_files_only=True参数,强制从缓存加载,跳过远程资源校验步骤,进一步缩短耗时:

from transformers import AutoTokenizer
import time

start = time()
tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased', local_files_only=True)
end = time() - start
print(f"Loading Time : {round(end, 2)}s")

内容的提问来源于stack exchange,提问作者황보동준

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 13:55:20