You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何无法设置HuggingFace中TrainingArguments的device属性?

问题解决:无法设置TrainingArguments的device属性

错误原因

TrainingArguments的device属性是只读属性,不能直接通过赋值修改,所以执行training_args.device = torch.device('cpu')会触发AttributeError。

正确的设备设置方式

有两种常用的正确方式来指定使用CPU:

方式1:初始化TrainingArguments时指定device参数

在创建TrainingArguments对象时,直接传入device参数指定设备:

from transformers import TrainingArguments
from transformers import Trainer
import torch

training_args = TrainingArguments(
    output_dir="./some_local_dir",
    overwrite_output_dir=True,

    per_device_train_batch_size=4,
    dataloader_num_workers=2,

    max_steps=500,
    logging_steps=1,

    evaluation_strategy="steps",
    eval_steps=5,
    device=torch.device('cpu')  # 初始化时直接指定设备
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=test_dataset,
    compute_metrics=compute_metrics,
)

方式2:设置no_cuda=True强制使用CPU

如果只是想强制使用CPU(不管系统是否有GPU),可以设置no_cuda=True:

training_args = TrainingArguments(
    output_dir="./some_local_dir",
    overwrite_output_dir=True,

    per_device_train_batch_size=4,
    dataloader_num_workers=2,

    max_steps=500,
    logging_steps=1,

    evaluation_strategy="steps",
    eval_steps=5,
    no_cuda=True  # 强制禁用CUDA,使用CPU
)

补充说明

  • 若通过命令行运行脚本,也可添加--device cpu或--no_cuda参数指定设备。
  • 确保transformers版本支持上述参数,旧版本建议升级至最新稳定版。

内容的提问来源于stack exchange,提问作者AlanSTACK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 17:07:03