Optimum 文档
GaudiConfig
加入 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
参数将其传递给训练器。