安装
无论您使用哪个深度学习库,都可以安装 🤗 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 环境变量(默认):
HUGGINGFACE_HUB_CACHE
或TRANSFORMERS_CACHE
。 - Shell 环境变量:
HF_HOME
。 - Shell 环境变量:
XDG_CACHE_HOME
+/huggingface
。
如果您来自该库的早期版本并已设置这些环境变量,则 🤗 Transformers 将使用 shell 环境变量 PYTORCH_TRANSFORMERS_CACHE
或 PYTORCH_PRETRAINED_BERT_CACHE
,除非您指定 shell 环境变量 TRANSFORMERS_CACHE
。
离线模式
通过设置环境变量 HF_HUB_OFFLINE=1
,在防火墙或离线环境中使用本地缓存的文件运行 🤗 Transformers。
使用环境变量 HF_DATASETS_OFFLINE=1
将 🤗 Datasets 添加到您的离线训练工作流中。
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
参数绕过从每个 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
函数将文件下载到特定路径。例如,以下命令将 T0 模型的config.json
文件下载到您所需的路径。>>> 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 下载文件部分。