当你使用 Hugging Face Transformers 库中的 AutoTokenizer
加载预训练的分词器时,如果遇到加载时间过长的问题,可以参考本教程进行解决。
问题描述
在使用 transformers
库加载预训练的分词器时,AutoTokenizer.from_pretrained()
方法可能会花费很长时间,即使使用 PreTrainedTokenizerFast
也无济于事。
from transformers import AutoTokenizer
test_tokenizer = AutoTokenizer.from_pretrained('raptorkwok/cantonese-tokenizer-test')
# 这行代码可能需要很长时间才能执行完毕
问题原因
这个问题通常是由于 transformers
库版本过高导致的。新版本的库可能包含一些尚未优化或与特定模型不兼容的代码,从而导致加载速度变慢。
解决方法
将 transformers
库的版本降低到 4.28.1
或更早版本可以解决此问题。
步骤:
- 卸载当前版本的
transformers
:
pip uninstall transformers
- 安装指定版本的
transformers
:
pip install transformers==4.28.1
完成以上步骤后,再次运行加载分词器的代码,你会发现加载速度明显加快。
from transformers import AutoTokenizer
test_tokenizer = AutoTokenizer.from_pretrained('raptorkwok/cantonese-tokenizer-test')
# 现在这行代码应该很快就能执行完毕
术语解释
AutoTokenizer: AutoTokenizer
类是 Transformers 库提供的一个便捷工具,可以根据模型名称自动加载对应的分词器。
from_pretrained(): from_pretrained()
方法用于从 Hugging Face 模型仓库或本地路径加载预训练的模型或分词器。
PreTrainedTokenizerFast: PreTrainedTokenizerFast
是一些分词器的快速实现版本,通常比标准版本更快。
总结
通过降低 transformers
库的版本,可以有效解决 AutoTokenizer
加载缓慢的问题。建议在遇到类似问题时,先尝试降低库版本,如果问题仍然存在,再考虑其他解决方法。