Transformers 安装教程

为您正在使用的深度学习库安装🤗 Transformers,设置缓存,并选择性地配置🤗 Transformers 以离线运行。

🤗 Transformers 已在 Python 3.6+、PyTorch 1.1.0+、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 版本。主版本 “有助于跟上最新发展。例如,在上一个正式版本修复了一个错误,但新版本尚未推出的情况下。不过,这意味着 “主 “版本不一定总是稳定的。我们会努力保持 “主 “版本的正常运行,大多数问题通常会在几小时或一天内得到解决。如果您遇到问题,请提交 Issues ,这样我们就能更快地解决问题!

运行以下命令检查🤗 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 频道 “huggingface “安装:

conda install -c huggingface transformers

缓存设置

预训练模型下载并本地缓存在~/.cache/huggingface/hub。这是 shell 环境变量 TRANSFORMERS_CACHE 指定的默认目录。在 Windows 中,默认目录为 C:\Users\username\.cache\huggingface\hub。你可以按优先顺序更改下面显示的 shell 环境变量,以指定不同的缓存目录:

1.shell 环境变量(默认):HUGGINGFACE_HUB_CACHETRANSFORMERS_CACHE。 2.shell 环境变量:HF_HOME。 3.shell 环境变量:XDG_CACHE_HOME+/huggingface`。

🤗 Transformers 将使用 shell 环境变量 PYTORCH_TRANSFORMERS_CACHEPYTORCH_PRETRAINED_BERT_CACHE (如果您来自该库的早期迭代并已设置了这些环境变量),除非您指定 shell 环境变量 TRANSFORMERS_CACHE

脱机模式

🤗 Transformers 可以在防火墙或脱机环境中运行,只使用本地文件。设置环境变量 TRANSFORMERS_OFFLINE=1 可启用此行为。

通过设置环境变量 HF_DATASETS_OFFLINE=1,将 🤗数据集 添加到离线训练工作流中。

例如,您通常会使用以下命令在防火墙对外部实例的普通网络上运行程序:

python examples/pytorch/translation/run_translation.py --model_name_or_path t5-small --datasaset_name wmt16 --dataset_config ro-en ...

在脱机实例中运行相同的程序:

hf_datasets_offline=1 transformers_offline=1 \
python examples/pytorch/translation/run_translation.py --model_name_or_path t5-small --datasaset_name wmt16 --dataset_config ro-en ...

现在,脚本运行时应该不会挂起或等待超时,因为它知道自己应该只查找本地文件。

获取模型和标记符号以离线使用

另一种离线使用🤗 Transformers 的方法是提前下载文件,然后在需要离线使用时指向文件的本地路径。有三种方法可以做到这一点:

  • 点击 ↓ 图标,通过 Model Hub 网站下载文件。

    download-icon

  • 使用 PreTrainedModel.from_pretrained()PreTrainedModel.save_pretrained() 工作流:

  1. 使用 PreTrainedModel.from_pretrained() 提前下载文件:
>>> from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

>>> tokenizer = AutoTokenizer.from_pretrained("bigscience/T0_3B")
>>> model = AutoModelForSeq2SeqLM.from_pretrained("bigscience/T0_3B")
  1. 使用 PreTrainedModel.save_pretrained(),将文件保存到指定目录:
>>> tokenizer.save_pretrained("./your/path/bigscience_t0")
>>> model.save_pretrained("./your/path/bigscience_t0")
  1. 现在离线后,从指定目录用 PreTrainedModel.from_pretrained()重新加载文件:
>>> tokenizer = AutoTokenizer.from_pretrained("./your/path/bigscience_t0")
>>> model = AutoModel.from_pretrained("./your/path/bigscience_t0")

1.在虚拟环境中安装 huggingface_hub 库:

python -m pip install huggingface_hub
  1. 使用 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下载存储文件的详细信息。