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版本。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 环境变量(按优先级顺序)以指定不同的缓存目录:

  1. Shell环境变量(默认):HF_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,通过设置环境变量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() 工作流程:

    1. 提前下载您的文件使用 PreTrainedModel.from_pretrained():

      >>> from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
      
      >>> tokenizer = AutoTokenizer.from_pretrained("bigscience/T0_3B")
      >>> model = AutoModelForSeq2SeqLM.from_pretrained("bigscience/T0_3B")
    2. 将您的文件保存到指定目录,使用PreTrainedModel.save_pretrained():

      >>> tokenizer.save_pretrained("./your/path/bigscience_t0")
      >>> model.save_pretrained("./your/path/bigscience_t0")
    3. 现在当你离线时,从指定目录重新加载你的文件使用 PreTrainedModel.from_pretrained()

      >>> tokenizer = AutoTokenizer.from_pretrained("./your/path/bigscience_t0")
      >>> model = AutoModel.from_pretrained("./your/path/bigscience_t0")
  • 使用huggingface_hub库以编程方式下载文件:

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

      python -m pip install huggingface_hub
    2. 使用 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上的文件的详细信息。

< > Update on GitHub