Optimum 文档

GaudiConfig

您正在查看 main 版本,该版本需要从源代码安装。如果您想要常规 pip 安装,请查看最新的稳定版本(v1.24.0)。
Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

GaudiConfig

要为特定工作负载定义配置,您可以使用 GaudiConfig 类。

以下是每个配置参数的描述

  • use_fused_adam 控制是否使用 Intel® Gaudi® AI 加速器提供的 ADAM 优化器的自定义融合实现
  • use_fused_clip_norm 控制是否使用 Intel® Gaudi® AI 加速器提供的梯度范数裁剪的自定义融合实现
  • use_torch_autocast 控制是否启用 PyTorch autocast;用于定义良好的预定义配置;用户应倾向于使用 --bf16 训练参数
  • use_dynamic_shapes 控制在处理输入数据集时是否启用动态形状支持
  • autocast_bf16_ops 应在 autocast 上下文中使用 bf16 精度运行的操作列表;使用环境变量 LOWER_LIST 是覆盖运算符 autocast 列表的首选方法
  • autocast_fp32_ops 应在 autocast 上下文中使用 fp32 精度运行的操作列表;使用环境变量 FP32_LIST 是覆盖运算符 autocast 列表的首选方法

此类的参数值可以从外部 JSON 文件设置。

您可以在 Hugging Face Hub 上的 Intel Gaudi 模型仓库中找到 Gaudi 配置的示例。例如,对于 BERT Large,我们有

{
  "use_fused_adam": true,
  "use_fused_clip_norm": true,
  "use_torch_autocast": true
}

更高级的配置文件 适用于 Stable Diffusion 2

{
  "use_torch_autocast": true,
  "use_fused_adam": true,
  "use_fused_clip_norm": true,
  "autocast_bf16_ops": [
    "_convolution.deprecated",
    "_convolution",
    "conv1d",
    "conv2d",
    "conv3d",
    "conv_tbc",
    "conv_transpose1d",
    "conv_transpose2d.input",
    "conv_transpose3d.input",
    "convolution",
    "prelu",
    "addmm",
    "addmv",
    "addr",
    "matmul",
    "einsum",
    "mm",
    "mv",
    "silu",
    "linear",
    "addbmm",
    "baddbmm",
    "bmm",
    "chain_matmul",
    "linalg_multi_dot",
    "layer_norm",
    "group_norm"
  ],
  "autocast_fp32_ops": [
    "acos",
    "asin",
    "cosh",
    "erfinv",
    "exp",
    "expm1",
    "log",
    "log10",
    "log2",
    "log1p",
    "reciprocal",
    "rsqrt",
    "sinh",
    "tan",
    "pow.Tensor_Scalar",
    "pow.Tensor_Tensor",
    "pow.Scalar",
    "softplus",
    "frobenius_norm",
    "frobenius_norm.dim",
    "nuclear_norm",
    "nuclear_norm.dim",
    "cosine_similarity",
    "poisson_nll_loss",
    "cosine_embedding_loss",
    "nll_loss",
    "nll_loss2d",
    "hinge_embedding_loss",
    "kl_div",
    "l1_loss",
    "smooth_l1_loss",
    "huber_loss",
    "mse_loss",
    "margin_ranking_loss",
    "multilabel_margin_loss",
    "soft_margin_loss",
    "triplet_margin_loss",
    "multi_margin_loss",
    "binary_cross_entropy_with_logits",
    "dist",
    "pdist",
    "cdist",
    "renorm",
    "logsumexp"
  ]
}

要在您的脚本中实例化您自己的 Gaudi 配置,您可以执行以下操作

from optimum.habana import GaudiConfig

gaudi_config = GaudiConfig.from_pretrained(
    gaudi_config_name,
    cache_dir=model_args.cache_dir,
    revision=model_args.model_revision,
    token=model_args.token,
)

并使用 gaudi_config 参数将其传递给训练器。

GaudiConfig

class optimum.habana.GaudiConfig

< >

( **kwargs )

< > 在 GitHub 上更新