我如何解决 ImportError: 使用 Huggingface 的 TrainArguments 时,将 `Trainer` 与 `PyTorch` 一起使用需要 `accelerate>=0.20.1`?

Stu*_*oat 18 python nlp importerror huggingface-transformers huggingface

我正在 Google colab 中使用该transformers库,当我使用 Transformers 库中的 TrainingArguments 时,我收到以下代码的导入错误:

from transformers import TrainingArguments

training_args = TrainingArguments(
    output_dir = "/content/our-model",
    learning_rate=2e-5,
    per_device_train_batch_size= 64,
    per_device_eval_batch_size = 16,
    num_train_epochs = 2,
    weight_decay = 0.01,
    evaluation_strategy = "epoch",
    save_strategy = "epoch",
    load_best_model_at_end = True,
    push_to_hub = False
)
Run Code Online (Sandbox Code Playgroud)

这是我收到的错误:

<ipython-input-28-0518ea5ff407> in <cell line: 2>()
      1 from transformers import TrainingArguments
----> 2 training_args = TrainingArguments(
      3     output_dir = "/content/our-model",
      4     learning_rate=2e-5,
      5     per_device_train_batch_size= 64,

4 frames
/usr/local/lib/python3.10/dist-packages/transformers/training_args.py in _setup_devices(self)
   1670         if not is_sagemaker_mp_enabled():
   1671             if not is_accelerate_available(min_version="0.20.1"):
-> 1672                 raise ImportError(
   1673                     "Using the `Trainer` with `PyTorch` requires `accelerate>=0.20.1`: Please run `pip install transformers[torch]` or `pip install accelerate -U`"
   1674                 )

ImportError: Using the `Trainer` with `PyTorch` requires `accelerate>=0.20.1`: Please run `pip install transformers[torch]` or `pip install accelerate -U 
Run Code Online (Sandbox Code Playgroud)

我已经尝试过 pip install for 0.20.1 版本的 Accelerator 和 pip install Transformers[torch],但两者都不起作用。

alv*_*vas 23

如果您不介意要绑定哪个变压器和加速版本,请执行以下操作以使用 Google Colab 中的最新版本:

! pip install -U accelerate
! pip install -U transformers
Run Code Online (Sandbox Code Playgroud)

然后您遇到的加速问题应该会自动解决。

笔记:

  • 未指定pip install -U transformers而不是pip install transformers[pytorch]可能更容易,因为这是大多数用户所做的,并且库的开发人员将确保基本 pip 与常见函数和类一起使用,例如TrainingArguments

  • 如果您没有特别需要修复版本,则不必指定加速pip install accelerate>=0.20.1,自动升级到最新版本可能会让您在使用库时更加稳定,尤其是。具有(几乎)每天都在不断变化的“热门”/“趋势”库。


如果需要进一步调试,即如果上述方法不起作用。要检查您的变压器和加速版本,请执行以下操作:

import accelerate

accelerate.__version__
Run Code Online (Sandbox Code Playgroud)

ImportError如果安装时尚未安装加速,则很可能在第一行有一个transformers

然后,如果第一行有效并且第二行没有输出 version >=0.20.1,那么这就是问题的原因。

迄今为止(2023 年 7 月)的当前版本是:

import accelerate
import transformers

transformers.__version__, accelerate.__version__
Run Code Online (Sandbox Code Playgroud)

[出去]:

('4.30.1', '0.21.0')
Run Code Online (Sandbox Code Playgroud)

这是一个示例笔记本,其中包含您希望根据问题中的评论使用的模型,https://colab.research.google.com/drive/1D79AjHMeE6HAZC-g2S83baTgsHtDUu5i ?usp=sharing


如果在 后错误仍然存​​在pip install ...,请尝试重新启动运行时。

如果您找不到用于重新启动的按钮,请在Google Colab 中的“重新启动内核”单元格中尝试此操作,然后重新运行单元格import ...

import os
os._exit(00)
Run Code Online (Sandbox Code Playgroud)