安装
安装 🤗 Transformers,无论你使用哪个深度学习库,设置你的缓存,并可选地配置 🤗 Transformers 以离线运行。
🤗 Transformers 在 Python 3.6+、PyTorch 1.1.0+、TensorFlow 2.0+ 和 Flax 上进行了测试。请根据您使用的深度学习库遵循以下安装说明:
- PyTorch 安装说明。
- TensorFlow 2.0 安装说明。
- Flax 安装说明。
使用 pip 安装
你应该在虚拟环境中安装🤗 Transformers。如果你不熟悉Python虚拟环境,可以查看这个指南。虚拟环境使得管理不同项目更加容易,并避免依赖之间的兼容性问题。
首先在您的项目目录中创建一个虚拟环境:
python -m venv .env
激活虚拟环境。在Linux和MacOs上:
source .env/bin/activate
在Windows上激活虚拟环境
.env/Scripts/activate
现在您已准备好使用以下命令安装 🤗 Transformers:
pip install transformers
仅支持CPU的情况下,您可以方便地在一行中安装🤗 Transformers和一个深度学习库。例如,安装🤗 Transformers和PyTorch的命令如下:
pip install 'transformers[torch]'
🤗 Transformers 和 TensorFlow 2.0:
pip install 'transformers[tf-cpu]'
M1 / ARM 用户
在安装 TensorFlow 2.0 之前,您需要安装以下内容
brew install cmake brew install pkg-config
🤗 Transformers 和 Flax:
pip install 'transformers[flax]'
最后,通过运行以下命令检查🤗 Transformers是否已正确安装。它将下载一个预训练模型:
python -c "from transformers import pipeline; print(pipeline('sentiment-analysis')('we love you'))"
然后打印出标签和分数:
[{'label': 'POSITIVE', 'score': 0.9998704791069031}]
从源代码安装
使用以下命令从源代码安装 🤗 Transformers:
pip install git+https://github.com/huggingface/transformers
此命令安装的是最新的main
版本,而不是最新的stable
版本。main
版本有助于跟上最新的开发进展。例如,如果自上次正式发布以来已经修复了一个错误,但尚未推出新版本。然而,这意味着main
版本可能并不总是稳定的。我们努力保持main
版本的运行,大多数问题通常会在几小时或一天内解决。如果您遇到问题,请打开一个Issue,以便我们更快地修复它!
通过运行以下命令检查🤗 Transformers是否已正确安装:
python -c "from transformers import pipeline; print(pipeline('sentiment-analysis')('I love you'))"
可编辑安装
如果您希望执行以下操作,您将需要一个可编辑的安装:
- 使用源代码的
main
版本。 - 为🤗 Transformers做出贡献并需要测试代码中的更改。
克隆仓库并使用以下命令安装 🤗 Transformers:
git clone https://github.com/huggingface/transformers.git
cd transformers
pip install -e .
这些命令将把你克隆的仓库文件夹与你的Python库路径链接起来。Python现在除了正常的库路径外,还会在你克隆的文件夹中查找。例如,如果你的Python包通常安装在~/anaconda3/envs/main/lib/python3.7/site-packages/
,Python也会搜索你克隆的文件夹:~/transformers/
。
如果你想继续使用该库,必须保留transformers
文件夹。
现在你可以通过以下命令轻松将你的克隆更新到最新版本的🤗 Transformers:
cd ~/transformers/
git pull
您的Python环境将在下次运行时找到🤗 Transformers的main
版本。
使用 conda 安装
从 conda 频道 conda-forge
安装:
conda install conda-forge::transformers
缓存设置
预训练模型会被下载并缓存在本地:~/.cache/huggingface/hub
。这是由 shell 环境变量 TRANSFORMERS_CACHE
给出的默认目录。在 Windows 上,默认目录由 C:\Users\username\.cache\huggingface\hub
给出。您可以更改以下显示的 shell 环境变量(按优先级顺序)以指定不同的缓存目录:
- Shell环境变量(默认):
HF_HUB_CACHE
或TRANSFORMERS_CACHE
。 - Shell环境变量:
HF_HOME
. - Shell环境变量:
XDG_CACHE_HOME
+/huggingface
。
🤗 Transformers 将使用 shell 环境变量 PYTORCH_TRANSFORMERS_CACHE
或 PYTORCH_PRETRAINED_BERT_CACHE
,如果您来自此库的早期版本并已设置这些环境变量,除非您指定 shell 环境变量 TRANSFORMERS_CACHE
。
离线模式
在防火墙或离线环境中运行🤗 Transformers,通过设置环境变量HF_HUB_OFFLINE=1
使用本地缓存文件。
将🤗 Datasets添加到您的离线训练工作流程中,使用环境变量HF_DATASETS_OFFLINE=1
。
HF_DATASETS_OFFLINE=1 HF_HUB_OFFLINE=1 \ python examples/pytorch/translation/run_translation.py --model_name_or_path google-t5/t5-small --dataset_name wmt16 --dataset_config ro-en ...
此脚本应能正常运行而不会挂起或等待超时,因为它不会尝试从Hub下载模型。
你也可以通过使用local_files_only
参数来绕过每次从Hub加载模型的from_pretrained()调用。当设置为True
时,只会加载本地文件:
from transformers import T5Model
model = T5Model.from_pretrained("./path/to/local/directory", local_files_only=True)
获取模型和分词器以离线使用
使用 🤗 Transformers 离线的另一种选择是提前下载文件,然后在需要离线使用时指向它们的本地路径。有三种方法可以做到这一点:
通过点击↓图标,在模型中心的用户界面下载文件。
使用 PreTrainedModel.from_pretrained() 和 PreTrainedModel.save_pretrained() 工作流程:
提前下载您的文件使用 PreTrainedModel.from_pretrained():
>>> from transformers import AutoTokenizer, AutoModelForSeq2SeqLM >>> tokenizer = AutoTokenizer.from_pretrained("bigscience/T0_3B") >>> model = AutoModelForSeq2SeqLM.from_pretrained("bigscience/T0_3B")
将您的文件保存到指定目录,使用PreTrainedModel.save_pretrained():
>>> tokenizer.save_pretrained("./your/path/bigscience_t0") >>> model.save_pretrained("./your/path/bigscience_t0")
现在当你离线时,从指定目录重新加载你的文件使用 PreTrainedModel.from_pretrained():
>>> tokenizer = AutoTokenizer.from_pretrained("./your/path/bigscience_t0") >>> model = AutoModel.from_pretrained("./your/path/bigscience_t0")
使用huggingface_hub库以编程方式下载文件:
在你的虚拟环境中安装
huggingface_hub
库:python -m pip install huggingface_hub
使用
hf_hub_download
函数将文件下载到特定路径。例如,以下命令将config.json
文件从 T0 模型下载到您所需的路径:>>> from huggingface_hub import hf_hub_download >>> hf_hub_download(repo_id="bigscience/T0_3B", filename="config.json", cache_dir="./your/path/bigscience_t0")
一旦您的文件被下载并本地缓存,指定其本地路径以加载并使用它:
>>> from transformers import AutoConfig
>>> config = AutoConfig.from_pretrained("./your/path/bigscience_t0/config.json")
请参阅如何从Hub下载文件部分,了解更多关于下载存储在Hub上的文件的详细信息。