Accelerate documentation

FP8

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v1.15.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

FP8

A continuación se muestran las funciones y clases relativas a la implementación subyacente de FP8

TERecipeKwargs

clase accelerate.utils.TERecipeKwargs

< >

( use_autocast_during_eval: bool | None = Nonemargin: int | None = Noneinterval: int | None = Nonefp8_format: typing.Literal['HYBRID', 'E4M3', 'E5M2'] = Noneamax_history_len: int | None = Noneamax_compute_algo: typing.Literal['max', 'most_recent'] = Noneoverride_linear_precision: tuple = Noneuse_mxfp8_block_scaling: bool | None = None )

Parámetros

  • use_autocast_during_eval (bool, opcional, valor predeterminado False) — Si se usa FP8 autocast durante el modo de evaluación. Generalmente se obtienen mejores métricas cuando este valor es False.
  • margin (int, opcional, valor predeterminado 0) — El margen a utilizar para la escalado del gradiente.
  • interval (int, opcional, valor predeterminado 1) — El intervalo a utilizar para la frecuencia con la que se recalcula el factor de escalado.
  • fp8_format (str, opcional, valor predeterminado “HYBRID”) — El formato a utilizar para la receta FP8. Debe ser uno de HYBRID, E4M3 o E5M2. (Generalmente HYBRID para entrenamiento, E4M3 o E5M2 para evaluación)
  • amax_history_len (int, opcional, valor predeterminado 1024) — La longitud del historial que se utilizará para el cálculo del factor de escalado
  • amax_compute_algo (str, opcional, valor predeterminado “most_recent”) — El algoritmo que se utilizará para el cálculo del factor de escalado. Debe ser max o most_recent.
  • override_linear_precision (tuple de tres bool, opcional, valor predeterminado (False, False, False)) — Indica si se deben ejecutar los GEMM de fprop, dgrad y wgrad en mayor precisión.

Use este objeto en su Accelerator para personalizar la inicialización de la receta para el entrenamiento con precisión mixta FP8 con transformer-engine.

Para obtener más información sobre los args, consulte la documentación de la API.

from accelerate import Accelerator
from accelerate.utils import TERecipeKwargs

kwargs = TERecipeKwargs(fp8_format="HYBRID")
accelerator = Accelerator(mixed_precision="fp8", kwargs_handlers=[kwargs])

AORecipeKwargs

clase accelerate.utils.AORecipeKwargs

< >

( config: ForwardRef('Float8LinearConfig') | None = Nonemodule_filter_func: typing.Callable | None = Nonepad_inner_dim: bool | None = Noneenable_fsdp_float8_all_gather: bool | None = None )

Parámetros

  • config (torchao.float8.Float8LinearConfig, opcional, por defecto None) — La configuración para el entrenamiento en FP8. Si es None, se creará una configuración predeterminada con valores razonables para la mayoría de los casos de uso:
    • pad_inner_dim=True: Rellena las dimensiones de la matriz para que sean divisibles entre 16, requisito para las operaciones de torch._scaled_mm y evitar errores en tiempo de ejecución.
    • enable_fsdp_float8_all_gather=True: Habilita el all-gather en FP8 para FSDP2. Esto proporciona ahorros en el ancho de banda de memoria al convertir los parámetros antes de la operación de all-gather, ahorrando un 50% de ancho de banda en comparación con BF16.

    Puede anular estos valores predeterminados proporcionando su propia instancia de Float8LinearConfig.

  • module_filter_func (Callable, opcional, valor predeterminado None) — Función opcional que debe recibir un módulo y el nombre de la capa, y devuelve un valor booleano que indica si el módulo debe convertirse a FP8. El valor predeterminado es accelerate.utils.ao.filter_linear_layers. Consulte esta función para ver un ejemplo.

Use este objeto en su Accelerator para personalizar la inicialización de la receta para el entrenamiento con precisión mixta FP8 con FP8 de torchao.

convert_model

accelerate.utils.convert_model

< >

( modelto_transformer_engine = True_convert_linear = True_convert_ln = True )

Convierte recursivamente las capas lineales y de normalización de capas de un modelo a su equivalente de transformers_engine.

has_transformer_engine_layers

accelerate.utils.has_transformer_engine_layers

< >

( model )

Indica si un modelo dado tiene alguna capa de transformer_engine o no.

contextual_fp8_autocast

accelerate.utils.contextual_fp8_autocast

< >

( model_forwardfp8_recipeuse_during_eval = False )

Envoltorio para el método forward de un modelo para aplicar FP8 autocast. Es consciente del contexto, lo que significa que, de forma predeterminada, desactivará el FP8 autocast durante el modo de evaluación, lo cual suele ser mejor para obtener métricas más precisas.

apply_fp8_autowrap

accelerate.utils.apply_fp8_autowrap

< >

( modelfp8_recipe_handler )

Aplica el gestor de contexto FP8 al método forward del modelo

Update on GitHub