Accelerate documentation
FP8
FP8
A continuación se muestran las funciones y clases relativas a la implementación subyacente de FP8
TERecipeKwargs
clase accelerate.utils.TERecipeKwargs
< source >( 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 predeterminadoFalse) — Si se usa FP8 autocast durante el modo de evaluación. Generalmente se obtienen mejores métricas cuando este valor esFalse. - 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 deHYBRID,E4M3oE5M2. (GeneralmenteHYBRIDpara entrenamiento,E4M3oE5M2para 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 sermaxomost_recent. - override_linear_precision (
tuplede tresbool, opcional, valor predeterminado(False, False, False)) — Indica si se deben ejecutar los GEMM defprop,dgradywgraden 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.
AORecipeKwargs
clase accelerate.utils.AORecipeKwargs
< source >( 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 defectoNone) — La configuración para el entrenamiento en FP8. Si esNone, 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 detorch._scaled_mmy 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 predeterminadoNone) — 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 esaccelerate.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
< source >( 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
Indica si un modelo dado tiene alguna capa de transformer_engine o no.
contextual_fp8_autocast
accelerate.utils.contextual_fp8_autocast
< source >( 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
Aplica el gestor de contexto FP8 al método forward del modelo