NameError: name 'PartialState' is not defined error while training hugging face wave2vec model
以下是导致错误的代码块
training_args = TrainingArguments(
output_dir="my_awesome_mind_model",
evaluation_strategy="epoch",
save_strategy="epoch",
learning_rate=3e-5,
per_device_train_batch_size=32,
gradient_accumulation_steps=4,
per_device_eval_batch_size=32,
num_train_epochs=10,
warmup_ratio=0.1,
logging_steps=10,
load_best_model_at_end=True,
metric_for_best_model="accuracy",
push_to_hub=True,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=dataset["train"],
# eval_dataset=encoded_minds["test"],
tokenizer=feature_extractor,
compute_metrics=compute_metrics,
)
trainer.train()
遇到以下错误
NameError Traceback (most recent call last) in <cell line: 1>() 1 training_args = TrainingArguments( 2 output_dir="my_awesome_mind_model", 3 evaluation_strategy="epoch", 4 save_strategy="epoch", 5 learning_rate=3e-5,
4 frames /usr/local/lib/python3.10/dist-packages/transformers/training_args.py in _setup_devices(self) 1629 self._n_gpu = 1 1630 else: 1631 self.distributed_state = PartialState(backend=self.ddp_backend) 1632 self._n_gpu = 1 1633 if not is_sagemaker_mp_enabled():
NameError: name 'PartialState' is not defined
我试图在另一个数据集上遵循拥抱脸部的音频分类指南(链接),但在运行训练args代码时,我得到了名称"PartialState"未定义的错误。
截止到2023年5月11日:
这个错误似乎是由huggingface/accelerate
库中的仍未解决的问题引起的。
你可以尝试以下的解决方案:
重新安装transformers & accelerate
pip uninstall -y transformers accelerate
pip install transformers accelerate
如果你使用colab/Jupyter,确保重新启动笔记本的Runtime
安装accelerate的开发版本。
pip install git+https://github.com/huggingface/accelerate
倒退到以前的transformers 版本(4.28.0)
# You might also need to uninstall transformers first: pip uninstall -y transformers
pip install transformers==4.28.0
pip install --upgrade accelerate并重新启动你的笔记本的runtime。