跳到内容

GPU

如果可用,Ludwig 将自动检测并运行在 GPU 硬件上。要在多个 GPU 或 GPU 集群上运行,请参阅 分布式训练

使用默认的 ECD 架构进行训练时,GPU 将显著提高训练速度。某些特征类型,特别是文本和图像,实际上需要 GPU 才能在合理的时间内完成训练。话虽如此,如果您仅使用表格特征(二进制、类别、数值)和默认的 concat 组合器,或者正在训练 GBM 模型,则可能不会注意到没有 GPU 的差异,因此其效用因用例而异。

在 Apple Metal 上运行

Ludwig 通过 Metal Performance Shaders (MPS) 库实验性地支持 Apple Metal GPU。要尝试此功能,请在训练时设置环境变量 LUDWIG_ENABLE_MPS

LUDWIG_ENABLE_MPS=1 PYTORCH_ENABLE_MPS_FALLBACK=1 ludwig train ...

同样建议设置 PYTORCH_ENABLE_MPS_FALLBACK=1,因为 Ludwig 使用并非所有操作都受 MPS 支持。

根据经验,我们发现在大型文本和图像模型上进行训练时,使用 MPS 获得了显著的速度提升。然而,我们也在小型表格模型上观察到性能下降,这就是我们默认不启用此功能的原因。我们建议尝试使用和不使用 MPS,以查看哪种方式在您的用例中提供最佳性能。

技巧

避免 CUDA OOM 错误

在大型模型上训练时,GPU 很容易耗尽内存。为避免此类错误,我们建议按顺序尝试以下方法:

禁用 GPU

您可以通过在环境变量中设置 CUDA_VISIBLE_DEVICES="" 来在训练期间禁用 GPU 加速。这对于调试特定于您的 GPU 硬件的运行时故障非常有用。