> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> Suivez ce tutoriel de premiers pas sur W&B Launch, qui présente les jobs, les files d'attente, les agents et l’exécution de charges de travail ML.

# Tutoriel : notions de base de W&B Launch

<div id="what-is-launch">
  ## Qu’est-ce que Launch
</div>

<Card title="Essayer dans Colab" href="https://colab.research.google.com/drive/1wX0OSVxZJDHRsZaOaOEDx-lLUrO1hHgP" icon="python" />

Ce tutoriel présente W\&B Launch aux praticiens du ML et aux équipes plateforme, et vous guide dans la création d’un job Launch, la configuration d’une file d'attente, la connexion d’un agent et la soumission de jobs à exécuter. À la fin, vous aurez exécuté une charge de travail ML conteneurisée avec W\&B Launch et disposerez d’une file d'attente et d’un agent opérationnels que votre équipe pourra réutiliser.

Faites passer à l’échelle les [runs](/fr/models/runs/) d’entraînement depuis votre ordinateur vers une ressource de calcul comme Amazon SageMaker, Kubernetes, et bien plus encore avec W\&B Launch. Une fois Launch configuré, vous pouvez exécuter des scripts d’entraînement, des suites d’évaluation de modèles, préparer des modèles pour l’inférence en production, et bien plus encore en quelques clics et commandes.

<div id="how-it-works">
  ## Fonctionnement
</div>

Launch repose sur trois composants fondamentaux : les **jobs Launch**, les **files d’attente** et les **agents**.

Un [*job Launch*](./launch-terminology#launch-job) est un plan servant à configurer et exécuter des tâches dans votre flux de travail ML. Une fois que vous avez un job Launch, vous pouvez l’ajouter à une [*file d’attente Launch*](./launch-terminology#launch-queue). Une file d’attente Launch est une file d’attente premier entré, premier sorti (FIFO) dans laquelle vous pouvez configurer et soumettre vos jobs à une ressource de calcul cible spécifique, comme Amazon SageMaker ou un cluster Kubernetes.

À mesure que des jobs sont ajoutés à la file d’attente, les [*agents Launch*](./launch-terminology#launch-agent) interrogent cette file d’attente et exécutent le job sur le système ciblé par celle-ci.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541/w-lBKSCruauC3-2f/images/launch/launch_overview.png?fit=max&auto=format&n=w-lBKSCruauC3-2f&q=85&s=5a90099b9cc58e2d1dc1e5972fb18943" alt="Schéma d’aperçu de W&B Launch" width="1314" height="642" data-path="images/launch/launch_overview.png" />
</Frame>

Selon votre cas d’usage, vous (ou un membre de votre équipe) configurez la file d’attente Launch en fonction de la [ressource de calcul cible](./launch-terminology#target-resources) choisie (par exemple, Amazon SageMaker) et déployez un agent Launch sur votre propre infrastructure.

Voir la page [Termes et concepts](./launch-terminology) pour en savoir plus sur Launch.

<div id="get-started">
  ## Pour commencer
</div>

Selon votre cas d’usage, consultez les ressources suivantes pour bien démarrer avec W\&B Launch :

* Si vous utilisez W\&B Launch pour la première fois, commencez par le [guide pas à pas de Launch](#walkthrough).
* Découvrez comment configurer [W\&B Launch](/fr/platform/launch/set-up-launch/).
* Créez un [job Launch](/fr/platform/launch/launch-terminology/#launch-job).
* Consultez le [dépôt GitHub public de jobs](https://github.com/wandb/launch-jobs) de W\&B Launch pour trouver des modèles de tâches courantes, comme le [déploiement sur Triton](https://github.com/wandb/launch-jobs/tree/main/jobs/deploy_to_nvidia_triton), [l’évaluation d’un LLM](https://github.com/wandb/launch-jobs/tree/main/jobs/openai_evals), entre autres.
  * Consultez les jobs Launch créés à partir de ce dépôt dans ce projet W\&B public [`wandb/jobs`](https://wandb.ai/wandb/jobs/jobs).

<div id="walkthrough">
  ## Guide pas à pas
</div>

Cette page présente les notions de base du flux de travail de W\&B Launch.

<Note>
  W\&B Launch exécute des charges de travail de machine learning dans des conteneurs. Il n'est pas nécessaire de connaître les conteneurs, mais cela peut être utile pour ce guide pas à pas. Voir la [documentation Docker](https://docs.docker.com/guides/docker-concepts/the-basics/what-is-a-container/) pour une introduction aux conteneurs.
</Note>

<div id="prerequisites">
  ## Prérequis
</div>

Avant de commencer, assurez-vous de remplir les prérequis suivants. Ils couvrent le compte, les outils et l’authentification dont vous aurez besoin pour exécuter les commandes plus loin dans ce guide pas à pas.

1. Inscrivez-vous sur [https://wandb.ai/site](https://wandb.ai/site), puis connectez-vous à votre compte W\&B.
2. Ce guide pas à pas nécessite un accès à un terminal sur une machine disposant d’une CLI Docker et d’un moteur Docker fonctionnels. Voir le [guide d’installation de Docker](https://docs.docker.com/engine/install/) pour plus d’informations.
3. Installez le SDK Python W\&B en version `0.17.1` ou ultérieure :
   ```bash theme={null}
   pip install wandb>=0.17.1
   ```
4. Dans votre terminal, exécutez `wandb login` ou définissez la variable d’environnement `WANDB_API_KEY` pour vous authentifier auprès de W\&B.

<Tabs>
  <Tab title="Se connecter à W&B">
    Dans votre terminal, exécutez :

    ```bash theme={null}
    wandb login
    ```
  </Tab>

  <Tab title="Variable d’environnement">
    ```bash theme={null}
        WANDB_API_KEY=[API-KEY]
    ```

    Remplacez `[API-KEY]` par votre clé API W\&B.
  </Tab>
</Tabs>

<div id="create-a-launch-job">
  ## Créer un job Launch
</div>

Un job Launch est le modèle de la charge de travail que vous souhaitez faire exécuter par Launch. Vous devez donc en créer un avant de pouvoir soumettre du travail à une file d'attente. Créez un [job Launch](./launch-terminology#launch-job) de l’une des trois manières suivantes : avec une image Docker, à partir d’un dépôt Git ou à partir de code source local :

<Tabs>
  <Tab title="Avec une image Docker">
    Pour exécuter un conteneur prêt à l’emploi qui journalise un message dans W\&B, ouvrez un terminal et exécutez la commande suivante :

    ```bash theme={null}
    wandb launch --docker-image wandb/job_hello_world:main --project launch-quickstart
    ```

    La commande précédente télécharge et exécute l’image de conteneur `wandb/job_hello_world:main`.

    Launch configure le conteneur pour envoyer au projet `launch-quickstart` tout ce qui est enregistré avec `wandb`. Le conteneur journalise un message dans W\&B et affiche un lien vers l’exécution dans W\&B. Cliquez sur le lien pour afficher l’exécution dans l’interface W\&B.
  </Tab>

  <Tab title="À partir d’un dépôt git">
    Pour lancer le même job hello-world à partir de son [code source dans le dépôt des jobs W\&B Launch](https://github.com/wandb/launch-jobs), exécutez la commande suivante :

    ```bash theme={null}
    wandb launch --uri https://github.com/wandb/launch-jobs.git \\
    --job-name hello-world-git --project launch-quickstart \\ 
    --build-context jobs/hello_world --dockerfile Dockerfile.wandb \\ 
    --entry-point "python job.py"
    ```

    La commande effectue les opérations suivantes :

    1. Clone le [dépôt des jobs W\&B Launch](https://github.com/wandb/launch-jobs) dans un répertoire temporaire.
    2. Crée un job nommé **hello-world-git** dans le projet **hello**. Ce job suit exactement le code source et la configuration utilisés pour exécuter le code.
    3. Construit une image de conteneur à partir du répertoire `jobs/hello_world` et du fichier `Dockerfile.wandb`.
    4. Démarre le conteneur et exécute le script Python `job.py`.

    La sortie de la console affiche la création de l’image et l’exécution. La sortie du conteneur devrait être presque identique à celle de l’exemple précédent.
  </Tab>

  <Tab title="À partir de code source local">
    Vous pouvez lancer du code qui n’est pas versionné dans un dépôt git en spécifiant un chemin de répertoire local pour l’argument `--uri`.

    Créez un répertoire vide et ajoutez un script Python nommé `train.py` avec le contenu suivant :

    ```python theme={null}
    import wandb

    with wandb.init() as run:
        run.log({"hello": "world"})
    ```

    Ajoutez un fichier `requirements.txt` avec le contenu suivant :

    ```text theme={null}
    wandb>=0.17.1
    ```

    Depuis ce répertoire, exécutez la commande suivante :

    ```bash theme={null}
    wandb launch --uri . --job-name hello-world-code --project launch-quickstart --entry-point "python train.py"
    ```

    La commande effectue les opérations suivantes :

    1. Journalise le contenu du répertoire actuel dans W\&B en tant que Code Artifact.
    2. Crée un job nommé **hello-world-code** dans le projet **launch-quickstart**.
    3. Construit une image de conteneur en copiant `train.py` et `requirements.txt` dans une image de base, puis en exécutant `pip install` pour installer les dépendances.
    4. Démarre le conteneur et exécute `python train.py`.
  </Tab>
</Tabs>

<div id="create-a-queue">
  ## Créer une file d’attente
</div>

Une fois le job Launch en place, l’étape suivante consiste à créer une file d’attente qui définit où et comment les jobs s’exécutent. Launch est conçu pour aider les équipes à mettre en place des flux de travail autour de ressources de calcul partagées. Dans les exemples précédents, la commande `wandb launch` a exécuté un conteneur de manière synchrone sur la machine locale. Les files d’attente Launch et les agents permettent l’exécution asynchrone de jobs sur des ressources partagées, ainsi que des fonctionnalités avancées comme la priorisation et l’optimisation des hyperparamètres. Pour créer une file d’attente de base, suivez ces étapes :

1. Accédez à [wandb.ai/launch](https://wandb.ai/launch) et cliquez sur le bouton **Create a file d’attente**.
2. Sélectionnez une **Entity** à associer à la file d’attente.
3. Saisissez un **file d’attente name**.
4. Sélectionnez **Docker** comme **Resource**.
5. Laissez **Configuration** vide.
6. Cliquez sur **Create file d’attente**.

Après avoir cliqué sur le bouton, le navigateur vous redirige vers l’onglet **Agents** de la vue de la file d’attente. La file d’attente reste à l’état **Not active** jusqu’à ce qu’un agent commence à l’interroger.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541/w-lBKSCruauC3-2f/images/launch/create_docker_queue.gif?s=a571dc56f0caf94adf89ac18b512e7f9" alt="Création d’une file d’attente Docker" width="2482" height="1670" data-path="images/launch/create_docker_queue.gif" />
</Frame>

Pour les options avancées de configuration de la file d’attente, voir la [page de configuration avancée de la file d’attente](/fr/platform/launch/setup-queue-advanced/).

<div id="connect-an-agent-to-the-queue">
  ## Connecter un agent à la file d'attente
</div>

Une file d'attente reste inactive jusqu'à ce qu'un agent l'interroge. Vous devez donc connecter un agent avant que des jobs puissent s'exécuter. La vue de la file d'attente affiche un bouton **Add an agent** dans une bannière rouge en haut de l'écran si la file d'attente n'est interrogée par aucun agent. Cliquez sur le bouton pour afficher et copier la commande permettant de lancer un agent. La commande doit ressembler à ce qui suit :

```bash theme={null}
wandb launch-agent --queue [QUEUE-NAME] --entity [ENTITY-NAME]
```

Remplacez `[QUEUE-NAME]` par le nom de votre file d'attente et `[ENTITY-NAME]` par votre entité W\&B. Exécutez la commande dans un terminal pour démarrer l’agent. L’agent interroge régulièrement la file d'attente spécifiée pour récupérer les jobs à exécuter. Après avoir reçu un job, l’agent télécharge ou génère, puis exécute une image de conteneur pour ce job, comme si vous aviez exécuté la commande `wandb launch` localement.

Revenez sur [la page Launch](https://wandb.ai/launch) et vérifiez que la file d'attente apparaît désormais comme **Active**.

<div id="submit-a-job-to-the-queue">
  ## Soumettre un job dans la file d'attente
</div>

Avec une file d'attente et un agent d'interrogation en place, vous pouvez maintenant soumettre l'un des jobs Launch que vous avez créés précédemment et le voir s'exécuter sur les ressources de calcul partagées. Accédez à votre projet **launch-quickstart** dans votre compte W\&B et ouvrez l'onglet **Jobs** depuis le menu de navigation situé à gauche de l'écran.

La page **Jobs** affiche une liste de jobs créés à partir de runs précédents. Cliquez sur votre job Launch pour voir le code source, les dépendances et tous les runs créés à partir de ce job. Une fois ce guide pas à pas terminé, la liste contient trois jobs.

Choisissez l'un des jobs et suivez ces instructions pour le soumettre à la file d'attente :

1. Cliquez sur le bouton **Launch** pour soumettre le job à une file d'attente. Le volet latéral **Launch** s'affiche.
2. Sélectionnez la **file d'attente** que vous avez créée précédemment, puis cliquez sur **Launch**.

Cela soumet le job à la file d'attente. L'agent qui interroge cette file d'attente récupère et exécute le job. Vous pouvez suivre la progression du job depuis l'interface utilisateur W\&B ou en consultant la sortie de l'agent dans le terminal.

La commande `wandb launch` peut envoyer directement des jobs vers la file d'attente en spécifiant l'argument `--queue`. Par exemple, pour soumettre le job de conteneur hello-world à la file d'attente, exécutez la commande suivante :

```bash theme={null}
   wandb launch --docker-image wandb/job_hello_world:main --project launch-quickstart --queue [QUEUE-NAME]
```

Remplacez `[QUEUE-NAME]` par le nom de votre file d'attente.

Vous disposez maintenant d'un flux de travail W\&B Launch complet : un job Launch, une file d'attente, un agent qui interroge la file d'attente et un job exécuté de manière asynchrone sur des ressources de calcul partagées. Vous pouvez réutiliser ce modèle pour vos propres charges de travail d'entraînement, d'évaluation et d'inférence.
