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

# VERL

> Tracez les rollouts VERL dans Weave pour inspecter les conversations sur plusieurs tours, les appels d’outil et le scoring des récompenses pendant le fine-tuning par RL.

[VERL](https://github.com/volcengine/verl) (Volcano Engine Reinforcement Learning) est un framework open source de post-entraînement par RL pour les LLM. VERL intègre un backend de traçage Weave qui vous permet de tracer la génération des LLM et les appels d’outil, en complément des métriques d’entraînement déjà enregistrées par W\&B.

Utilisez Weave avec VERL pour :

* Inspecter chaque trajectoire de rollout étape par étape, y compris les prompts, les réponses du modèle et les invocations d’outils.
* Filtrer les trajectoires par étape, index d’échantillon, numéro de rollout et nom d’expérience.
* Comparer plusieurs trajectoires côte à côte afin de déboguer le comportement de l’agent au fil des étapes d’entraînement.

<h2 id="prerequisites">
  Prérequis
</h2>

* Un compte CoreWeave Forge et une [clé API](/fr/products/wandb/platform/app/settings-page/user-settings#api-keys).
* Une installation de VERL prenant en charge le traçage des rollouts. Cette fonctionnalité a été introduite dans [verl#2345](https://github.com/volcengine/verl/pull/2345).
* Une configuration de rollout asynchrone. Le traçage ne s’applique qu’aux rollouts asynchrones ; les rollouts synchrones ne sont pas tracés.

<h2 id="enable-weave-tracing">
  Activer le traçage Weave
</h2>

Définissez votre clé API dans l’environnement pour que VERL puisse s’authentifier auprès de votre compte CoreWeave Forge :

```bash theme={"system"}
export WANDB_API_KEY=[YOUR-WANDB-API-KEY]
```

Ajoutez ensuite les options suivantes à votre commande d’entraînement VERL :

* `actor_rollout_ref.rollout.trace.backend=weave` : sélectionne Weave comme backend de traçage.
* `actor_rollout_ref.rollout.mode=async` : active le rollout asynchrone pour vLLM ou SGLang. Le traçage est sans effet sur les rollouts synchrones.
* `trainer.project_name` : définit le projet dans lequel journaliser les traces et les métriques.
* `trainer.experiment_name` : définit le nom de votre expérience.
* `trainer.logger=['console','wandb']` : active le logger wandb en plus de Weave afin que les métriques et les traces s’affichent dans le même projet.

La commande obtenue se présente ainsi :

```bash theme={"system"}
python -m verl.trainer.main_ppo \
  actor_rollout_ref.rollout.trace.backend=weave \
  actor_rollout_ref.rollout.mode=async \
  trainer.project_name=[YOUR-PROJECT-NAME] \
  trainer.experiment_name=[YOUR-EXPERIMENT-NAME] \
  trainer.logger=['console','wandb'] \
  # ... vos autres options d’entraînement
```

Weave est initialisé automatiquement à partir de votre projet Weights & Biases et du nom de votre expérience. Il n’est pas nécessaire d’appeler `weave.init()`.

<h2 id="tune-trace-volume">
  Ajuster le volume de traces
</h2>

Par défaut, VERL trace chaque échantillon de chaque rollout, ce qui peut générer un volume considérable de données de trace. Vous pouvez limiter ce volume en définissant les champs suivants dans votre fichier de configuration `ppo_trainer.yaml` :

* `max_samples_per_step_per_worker` : nombre d’échantillons uniques tracés par chaque worker à chaque étape d’entraînement.  La valeur par défaut est `null`, ce qui trace tous les échantillons.
* `token2text` : définissez ce champ sur `True` pour ajouter les champs décodés `prompt_text` et `response_text` à la sortie de `ToolAgentLoop.run`. La valeur par défaut est `False`, pour des raisons de performances. Activez-le si vous souhaitez lire les prompts et les complétions directement dans l’interface de Weights & Biases.

Dans le fichier, les champs obtenus se présentent ainsi :

```yaml theme={"system"}
actor_rollout_ref:
  rollout:
    trace:
      backend: weave
      token2text: False
      max_samples_per_step_per_worker: 5
```

<h2 id="view-traces">
  Afficher les traces
</h2>

Pour afficher les traces émises pendant l’entraînement, ouvrez la page de votre projet Weights & Biases et sélectionnez **Traces**. Chaque trace correspond à une trajectoire de rollout.

Vous pouvez sélectionner plusieurs traces et utiliser la vue de comparaison de Weave pour examiner les différences entre les trajectoires. Vous pourrez ainsi déboguer plus facilement les évolutions du comportement de l’agent d’une étape d’entraînement ou d’une expérience à l’autre.

<h2 id="trace-additional-functions">
  Tracer des fonctions supplémentaires
</h2>

VERL fournit deux utilitaires pour étendre la couverture de traçage par défaut :

* `rollout_trace_op` : un décorateur qui correspond à `weave.op` et marque une méthode d’une instance de classe pour le traçage. Par défaut, seul un petit nombre de méthodes sont décorées. Vous pouvez ajouter ce décorateur aux méthodes de votre boucle d’agent personnalisée ou de vos implémentations d’outils afin de capturer davantage de détails.
* `rollout_trace_attr` : un gestionnaire de contexte qui marque le point d’entrée d’une trajectoire et y joint ses métadonnées (index d’échantillon, étape, numéro de rollout, nom de l’expérience). Si vous ajoutez un nouveau type d’agent, encapsulez le point d’entrée de sa trajectoire avec `rollout_trace_attr` afin que la trace soit associée au run.

Pour plus d’informations sur la configuration, consultez la [documentation de VERL sur le traçage des rollouts](https://verl.readthedocs.io/en/latest/advance/rollout_trace.html).


## Related topics

- [Run veRL on SUNK](/products/sunk/tutorials/verl-on-sunk.md)
