Accelerate documentation
FP8
FP8
Ci-dessous se trouvent les fonctions et les classes relatives à l'implémentation FP8 sous-jacente
TERecipeKwargs
classe 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 )
Paramètres
- use_autocast_during_eval (
bool, facultatif, par défautFalse) — Indique s'il faut utiliser l'autocast FP8 en mode d'évaluation. Des métriques généralement meilleures sont obtenues lorsque cette valeur estFalse. - margin (
int, facultatif, par défaut 0) — La marge à utiliser pour le mise à l'échelle du gradient. - interval (
int, facultatif, par défaut 1) — L'intervalle à utiliser pour la fréquence de recalcul du facteur d'échelle. - fp8_format (
str, facultatif, par défaut “HYBRID”) — Le format à utiliser pour la recette FP8. Doit être l’un des formatsHYBRID,E4M3ouE5M2. (GénéralementHYBRIDpour l’entraînement,E4M3ouE5M2pour l’évaluation) - amax_history_len (
int, facultatif, par défaut 1024) — La longueur de l’historique à utiliser pour le calcul du facteur d’échelle - amax_compute_algo (
str, facultatif, par défaut “most_recent”) — L'algorithme à utiliser pour le calcul du facteur d'échelle. Doit êtremaxoumost_recent. - override_linear_precision (
tuplede troisbool, facultatif, par défaut(False, False, False)) — Indique s'il faut exécuter les GEMM defprop,dgradetwgraden plus haute précision.
Utilisez cet objet dans votre Accelerator pour personnaliser l’initialisation de la recette d’entraînement en précision mixte FP8 avec transformer-engine.
Pour plus d'informations sur les args, veuillez consulter la documentation de l'API.
AORecipeKwargs
classe 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 )
Paramètres
- config (
torchao.float8.Float8LinearConfig, facultatif, par défautNone) — La configuration pour l'entraînement FP8. SiNone, une configuration par défaut sera créée avec des valeurs raisonnables pour la plupart des cas d'usage :pad_inner_dim=True: Remplit les dimensions de la matrice pour qu’elles soient divisibles par 16, ce qui est requis pour les opérationstorch._scaled_mmafin d’éviter les erreurs d’exécution.enable_fsdp_float8_all_gather=True: Active l’opération all-gather en FP8 pour FSDP2. Cela permet d’économiser la bande passante mémoire en convertissant les paramètres avant l’opération all-gather, ce qui réduit la bande passante de 50 % par rapport à BF16.
Vous pouvez remplacer ces valeurs par défaut en fournissant votre propre instance de
Float8LinearConfig. - module_filter_func (
Callable, facultatif, par défautNone) — Fonction facultative qui doit prendre en entrée un module et un nom de couche, et renvoyer un booléen indiquant si le module doit être converti en FP8. Par défaut,accelerate.utils.ao.filter_linear_layers. Consultez-la pour un exemple.
Utilisez cet objet dans votre Accelerator pour personnaliser l’initialisation de la recette d’entraînement en précision mixte FP8 avec torchao FP8.
convert_model
accelerate.utils.convert_model
< source >( modelto_transformer_engine = True_convert_linear = True_convert_ln = True )
Convertit récursivement les couches linéaires et layernorm d'un modèle en leur équivalent transformers_engine.
has_transformer_engine_layers
Indique si un modèle donné possède une couche transformer_engine ou non.
contextual_fp8_autocast
accelerate.utils.contextual_fp8_autocast
< source >( model_forwardfp8_recipeuse_during_eval = False )
Wrapper pour la méthode forward d’un modèle afin d’appliquer l’autocast FP8. Il est conscient du contexte, ce qui signifie qu’il désactive par défaut l’autocast FP8 en mode eval, ce qui est généralement préférable pour des métriques plus précises.
apply_fp8_autowrap
Applique le gestionnaire de contexte FP8 à la méthode forward du modèle