llamafactory升级以后,macbook M系列芯片,不支持bf16精度的解决方法

142 阅读1分钟

这个错误是因为 LLaMA-Factory 升级后,在检测到非 NVIDIA GPU 时禁用了 bf16 支持,即使你的 M3 芯片硬件支持 bf16。

解决方法:找到LLaMA-Factory/src/llamafactory/hparams/training_args.py文件,在 post_init 方法中添加对 Apple Silicon 的检测:

def __post_init__(self):

# 检查是否为 Apple Silicon 设备 (MPS)

is_apple_silicon = (

hasattr(torch, "backends") and

hasattr(torch.backends, "mps") and

torch.backends.mps.is_available()

)

# 如果是 Apple Silicon 设备,跳过 bf16 检查

if is_apple_silicon:

# 保存原始 bf16 设置

original_bf16 = self.bf16

# 临时禁用 bf16 检查

self.bf16 = False

# 调用父类的 __post_init__ 方法

Seq2SeqTrainingArguments.__post_init__(self)

# 恢复原始 bf16 设置

self.bf16 = original_bf16

else:

# 非 Apple Silicon 设备,正常执行检查

Seq2SeqTrainingArguments.__post_init__(self)

RayArguments.__post_init__(self)