Accelerate documentation
Suiveurs d'expérimentations
Suiveurs d'expérimentations
GeneralTracker
Une classe Tracker de base à utiliser pour toutes les implémentations d’intégration de journalisation.
Chaque fonction doit recevoir **kwargs, qui seront automatiquement transmis depuis un dictionnaire de base fourni à Accelerator.
Doit implémenter les propriétés name, requires_logging_directory et tracker de manière à ce que :
name (str) : Représentation en chaîne du nom de la classe de tracker, par exemple « TensorBoard ». requires_logging_directory (bool) : Indique si le logger nécessite un répertoire pour stocker ses journaux. tracker (object) : Doit retourner le mécanisme de suivi interne utilisé par une classe de tracker (comme run pour wandb).
Les implémentations peuvent également inclure un attribut main_process_only (bool) pour déterminer si les fonctions de journalisation, d’initialisation et autres pertinentes doivent s’exécuter sur le processus principal ou sur tous les processus (la valeur par défaut est True).
Doit exécuter les fonctions de finalisation au sein de l'API de suivi. Si l'API ne doit pas en avoir, il suffit de ne pas réécrire cette méthode.
log
< source >( values: dictstep: int | None = None**kwargs )
Enregistre les values dans l'exécution en cours. Les implémentations de base de log d'une API de suivi doivent être placées ici, ainsi que le comportement particulier du paramètre `step`.
Initialisation paresseuse du tracker dans Accelerator afin d'éviter d'initialiser PartialState avant InitProcessGroupKwargs.
store_init_configuration
< source >( values: dict )
Enregistre les values en tant qu'hyperparamètres pour l'exécution. Les implémentations doivent utiliser la fonctionnalité de configuration d'expérience d'une API de suivi.
register_tracker_class
accelerate.tracking.register_tracker_class
< source >( tracker_class: type )
Paramètres
- tracker_class (sous-classe de
GeneralTracker) — La classe de tracker à enregistrer. Elle doit être une sous-classe deGeneralTrackeret définir un attribut de classenamenon vide ainsi qu'un attribut de classerequires_logging_directory. La classe est instanciée avec leproject_nametransmis àAccelerator.init_trackers()en tant que premier argument positionnel. Lorsquerequires_logging_directoryestTrue, le répertoire de journalisation est transmis en tant que deuxième argument positionnel (conformément à la convention des trackers intégrés). Les arguments nommés spécifiques au tracker issus deinit_kwargssont transmis sous forme de**kwargs.
Enregistre un sous-classe personnalisé de GeneralTracker afin qu'il puisse être référencé par son name dans l'argument log_with de Accelerator, de la même manière que les traceurs intégrés.
Le tracker doit être enregistré avant d'instancier le Accelerator qui l'utilise.
Exemple :
from accelerate import Accelerator
from accelerate.tracking import GeneralTracker, register_tracker_class
class MyTracker(GeneralTracker):
name = "my_tracker"
requires_logging_directory = False
# ... implement the rest of the `GeneralTracker` interface
register_tracker_class(MyTracker)
accelerator = Accelerator(log_with="my_tracker")TensorBoardTracker
classe accelerate.tracking.TensorBoardTracker
< source >( run_name: strlogging_dir: str | os.PathLike**kwargs )
Paramètres
Une classe Tracker qui prend en charge tensorboard. Elle doit être initialisée au début de votre script.
WandBTracker
classe accelerate.tracking.WandBTracker
< source >( run_name: str**kwargs )
Une classe Tracker qui prend en charge wandb. Elle doit être initialisée au début de votre script.
Trackio
classe accelerate.tracking.TrackioTracker
< source >( run_name: str**kwargs )
Paramètres
- run_name (
str) — Le nom de l’exécution de l’expérience. Sera utilisé comme nom deprojectlors de l’instanciation de trackio. - **kwargs (arguments supplémentaires par mot-clé, facultatif) —
Arguments supplémentaires par mot-clé transmis à la méthode
trackio.init. Consultez cette init pour voir tous les arguments par mot-clé pris en charge.
Une classe Tracker qui prend en charge trackio. Elle doit être initialisée au début de votre script.
CometMLTracker
classe accelerate.tracking.CometMLTracker
< source >( run_name: str**kwargs )
Paramètres
- run_name (
str) — Le nom de l'exécution de l'expérience. - **kwargs (arguments de mots-clés supplémentaires, facultatif) —
Arguments de mots-clés supplémentaires transmis à la méthode
comet_ml.start: https://www.comet.com/docs/v2/api-and-sdk/python-sdk/reference/start/
Une classe Tracker qui prend en charge comet_ml. Elle doit être initialisée au début de votre script.
Les clés API doivent être stockées dans un fichier de configuration Comet.
Note :
Pour les versions de comet_ml antérieures à 3.41.0, des arguments de mot-clé supplémentaires sont transmis à comet_ml.Experiment à la place : https://www.comet.com/docs/v2/api-and-sdk/python-sdk/reference/Experiment/#comet_ml.Experiment.__init__
AimTracker
classe accelerate.tracking.AimTracker
< source >( run_name: strlogging_dir: str | os.PathLike | None = '.'**kwargs )
Une classe Tracker qui prend en charge aim. Elle doit être initialisée au début de votre script.
MLflowTracker
classe accelerate.tracking.MLflowTracker
< source >( experiment_name: str | None = Nonelogging_dir: str | os.PathLike | None = Nonerun_id: str | None = Nonetags: dict[str, typing.Any] | str | None = Nonenested_run: bool | None = Falserun_name: str | None = Nonedescription: str | None = None )
Paramètres
- experiment_name (
str, facultatif) — Nom de l’expérience. La variable d’environnement MLFLOW_EXPERIMENT_NAME a la priorité sur cet argument. - logging_dir (
strouos.PathLike, par défaut".") — Emplacement de stockage des journaux mlflow. - run_id (
str, facultatif) — Si spécifié, récupère l’exécution portant l’UUID indiqué et enregistre les paramètres et les métriques sous cette exécution. L’heure de fin de l’exécution est non définie et son statut est défini sur « en cours », mais les autres attributs de l’exécution (source_version, source_type, etc.) ne sont pas modifiés. La variable d’environnement MLFLOW_RUN_ID a la priorité sur cet argument. - tags (
Dict[str, str], facultatif) — Undictfacultatif de clés et de valeurs de typestr, ou un déchargementstrd’undict, à définir en tant que balises sur l’exécution. Si une exécution est reprise, ces balises sont définies sur l’exécution reprise. Si une nouvelle exécution est créée, ces balises sont définies sur la nouvelle exécution. La variable d’environnement MLFLOW_TAGS a la priorité sur cet argument. - nested_run (
bool, facultatif, par défautFalse) — Contrôle si l’exécution est imbriquée dans l’exécution parente. True crée une exécution imbriquée. La variable d’environnement MLFLOW_NESTED_RUN a la priorité sur cet argument. - run_name (
str, facultatif) — Nom de la nouvelle exécution (stocké en tant que tag mlflow.runName). Utilisé uniquement lorsquerun_idn’est pas spécifié. - description (
str, facultatif) — Chaîne de caractères facultative qui remplit la zone de description de l’exécution. Si une exécution est reprise, la description est définie sur l’exécution reprise. Si une nouvelle exécution est créée, la description est définie sur la nouvelle exécution.
Une classe Tracker qui prend en charge mlflow. Elle doit être initialisée au début de votre script.
__init__
< source >( experiment_name: str | None = Nonelogging_dir: str | os.PathLike | None = Nonerun_id: str | None = Nonetags: dict[str, typing.Any] | str | None = Nonenested_run: bool | None = Falserun_name: str | None = Nonedescription: str | None = None )
ClearMLTracker
classe accelerate.tracking.ClearMLTracker
< source >( run_name: str | None = None**kwargs )
Une classe Tracker qui prend en charge clearml. Elle doit être initialisée au début de votre script.
SwanLabTracker
classe accelerate.tracking.SwanLabTracker
< source >( run_name: str**kwargs )
Une classe Tracker qui prend en charge swanlab. Elle doit être initialisée au début de votre script.