> ## 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.

> Effectuez le fine-tuning de modèles OpenAI avec W&B pour journaliser les métriques d’entraînement, surveiller vos jobs et comparer les performances des modèles au fil du temps.

# Fine-tuning OpenAI

export const ColabLink = ({url}) => <a href={url} target="_blank" rel="noopener noreferrer" className="colab-link">
    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
      <path d="M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01.21.03zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z" />
    </svg>
    Try in Colab
  </a>;

<ColabLink url="https://wandb.me/openai-colab" />

Cette page vous explique comment journaliser dans W\&B les métriques et la configuration de fine-tuning de votre modèle OpenAI GPT-3.5 ou GPT-4. En intégrant W\&B à l'API de fine-tuning d'OpenAI, vous pouvez suivre vos expériences de fine-tuning, vos modèles et vos datasets au même endroit, et partager les résultats avec vos collègues. Utilisez cette intégration lorsque vous effectuez le fine-tuning de modèles OpenAI et que vous souhaitez centraliser le suivi des expériences et gérer les versions des données d'entraînement et des modèles obtenus.

<Note>
  Consultez la [documentation OpenAI](https://platform.openai.com/docs/guides/fine-tuning/which-models-can-be-fine-tuned) pour obtenir la liste des modèles qui prennent en charge le fine-tuning.
</Note>

Consultez la section [W\&B Integration](https://developers.openai.com/cookbook/examples/third_party/gpt_finetuning_with_wandb) de la documentation OpenAI pour en savoir plus sur l'intégration de W\&B à OpenAI pour le fine-tuning.

<h2 id="install-or-update-openai-python-api">
  Installer ou mettre à jour l’API Python OpenAI
</h2>

Avant de synchroniser les résultats de fine-tuning, vérifiez qu’une version compatible du client Python OpenAI est installée. L’intégration W\&B pour le fine-tuning OpenAI fonctionne avec la version 1.0 ou ultérieure d’OpenAI. Voir la documentation PyPI pour connaître la dernière version de la bibliothèque [API Python OpenAI](https://pypi.org/project/openai/).

Pour installer l’API Python OpenAI, exécutez :

```bash theme={"system"}
pip install openai
```

Si l’API Python OpenAI est déjà installée, mettez-la à jour avec la commande suivante :

```bash theme={"system"}
pip install -U openai
```

<h2 id="sync-your-openai-fine-tuning-results">
  Synchroniser les résultats de votre fine-tuning OpenAI
</h2>

Cette section explique comment envoyer vers W\&B les métriques et la configuration d’un job de fine-tuning OpenAI, afin de les comparer à vos autres expériences. Pour ce faire, utilisez la classe `WandbLogger` du module `wandb.integration.openai.fine_tuning`.

```python theme={"system"}
from wandb.integration.openai.fine_tuning import WandbLogger

# Logique de fine-tuning

WandbLogger.sync(fine_tune_job_id=FINETUNE_JOB_ID)
```

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/open_ai_auto_scan.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=9d681535cdda2798ca81208609ede18b" alt="Fonctionnalité d’analyse automatique OpenAI" width="1557" height="735" data-path="products/wandb/_media/open_ai_auto_scan.png" />
</Frame>

<h3 id="sync-your-fine-tunes">
  Synchroniser vos opérations consistant à effectuer le fine-tuning
</h3>

Synchronisez vos résultats depuis votre script. L’exemple suivant présente à la fois l’appel minimal en une seule ligne et l’ensemble complet des paramètres facultatifs que vous pouvez transmettre pour contrôler le comportement de la synchronisation.

```python theme={"system"}
from wandb.integration.openai.fine_tuning import WandbLogger

# commande sur une seule ligne
WandbLogger.sync()

# avec des paramètres facultatifs
WandbLogger.sync(
    fine_tune_job_id=None,
    num_fine_tunes=None,
    project="OpenAI-Fine-Tune",
    entity=None,
    overwrite=False,
    model_artifact_name="model-metadata",
    model_artifact_type="model",
    **kwargs_wandb_init
)
```

<h3 id="reference">
  Référence
</h3>

Le tableau suivant décrit chaque argument accepté par `WandbLogger.sync`.

| Argument | Description |
| - | - |
| `fine_tune_job_id` | L’ID OpenAI de l’opération consistant à effectuer le fine-tuning que vous obtenez lorsque vous créez votre job pour effectuer le fine-tuning avec `client.fine_tuning.jobs.create`. Si cet argument vaut `None` (valeur par défaut), W\&B synchronise tous les jobs OpenAI pour effectuer le fine-tuning qui n’ont pas encore été synchronisés. |
| `openai_client` | Client OpenAI initialisé à transmettre à `sync`. Si vous ne fournissez pas de client, le logger en initialise un. La valeur par défaut est `None`. |
| `num_fine_tunes` | Si vous ne fournissez pas d’ID, W\&B journalise toutes les opérations consistant à effectuer le fine-tuning non synchronisées. Cet argument vous permet de choisir le nombre d’opérations récentes consistant à effectuer le fine-tuning à synchroniser. Si `num_fine_tunes` vaut 5, W\&B sélectionne les 5 opérations consistant à effectuer le fine-tuning les plus récentes. |
| `project` | Nom du projet W\&B dans lequel W\&B journalise vos métriques obtenues en effectuant le fine-tuning, vos modèles, vos données, etc. Par défaut, le nom du projet est `"OpenAI-Fine-Tune"`. |
| `entity` | Nom d’utilisateur ou nom d’équipe W\&B auquel vous envoyez les runs. Par défaut, W\&B utilise votre entity par défaut, qui correspond généralement à votre nom d’utilisateur. |
| `overwrite` | Force la journalisation et écrase le run `wandb` existant associé au même job pour effectuer le fine-tuning. La valeur par défaut est `False`. |
| `wait_for_job_success` | Un job de fine-tuning OpenAI met un certain temps à s’exécuter une fois lancé. Pour que W\&B journalise vos métriques dès la fin du job pour effectuer le fine-tuning, ce paramètre vérifie toutes les 60 secondes si le statut du job est passé à `succeeded`. Une fois le job pour effectuer le fine-tuning réussi, W\&B synchronise automatiquement les métriques. La valeur par défaut est `True`. |
| `model_artifact_name` | Nom de l’artifact de modèle journalisé. Valeur par défaut : `"model-metadata"`. |
| `model_artifact_type` | Type de l’artifact de modèle journalisé. Valeur par défaut : `"model"`. |
| `**kwargs_wandb_init` | Tout argument supplémentaire transmis directement à [`wandb.init()`](/fr/products/wandb/ref/python/functions/init). |

<h2 id="dataset-versioning-and-visualization">
  Gestion des versions et visualisation des datasets
</h2>

Lorsque vous synchronisez un job de fine-tuning, W\&B capture également les données d’entraînement et de validation afin que vous puissiez en gérer les versions et les explorer de manière interactive. Les sous-sections suivantes décrivent les éléments que W\&B suit et comment les consulter.

<h3 id="versioning">
  Gestion des versions
</h3>

Les données d’entraînement et de validation que vous téléversez sur OpenAI pour le fine-tuning sont automatiquement journalisées en tant que W\&B Artifacts, ce qui facilite la gestion des versions. L’image suivante montre le fichier d’entraînement dans Artifacts. Vous pouvez y voir le run W\&B qui a journalisé ce fichier, la date de journalisation, la version du dataset, les métadonnées, ainsi que la traçabilité DAG, des données d’entraînement jusqu’au modèle entraîné.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/openai_data_artifacts.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=fdffde1b7ccdc84eaacb60ef7df7f9cc" alt="W&B Artifacts avec des jeux de données d’entraînement" width="3342" height="1166" data-path="products/wandb/_media/openai_data_artifacts.png" />
</Frame>

<h3 id="visualization">
  Visualisation
</h3>

W\&B présente les datasets sous forme de tableaux W\&B, ce qui vous permet d’explorer le dataset, d’y effectuer des recherches et d’interagir avec lui. L’image suivante montre des échantillons d’entraînement visualisés dans des tableaux W\&B.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/openai_data_visualization.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=8afc52341cfc0247f4ca0ec2d5fdb07c" alt="Données OpenAI" width="2758" height="1294" data-path="products/wandb/_media/openai_data_visualization.png" />
</Frame>

<h2 id="the-fine-tuned-model-and-model-versioning">
  Le modèle affiné et la gestion des versions du modèle
</h2>

OpenAI n’expose pas les poids sous-jacents d’un modèle affiné. W\&B suit donc le modèle en capturant ses métadonnées. OpenAI vous fournit l’ID du modèle affiné. Comme vous n’avez pas accès aux poids du modèle, le `WandbLogger` crée un fichier `model_metadata.json` qui regroupe tous les détails du modèle (hyperparamètres, ID des fichiers de données, etc.) ainsi que l’ID `fine_tuned_model`, puis le journalise en tant qu’artifact W\&B.

Vous pouvez lier cet artifact de modèle (métadonnées) à un modèle du [registre](/fr/products/registry).

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/openai_model_metadata.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=590d049063991a49392df0c508ce99fa" alt="Métadonnées du modèle OpenAI" width="3342" height="1512" data-path="products/wandb/_media/openai_model_metadata.png" />
</Frame>

<h2 id="frequently-asked-questions">
  Questions fréquentes
</h2>

Les sections suivantes répondent aux questions fréquentes sur le partage, l’organisation et la récupération des runs de fine-tuning synchronisés depuis OpenAI.

<h3 id="share-fine-tune-results-with-your-team">
  Partager les résultats obtenus en effectuant le fine-tuning avec votre équipe
</h3>

Pour journaliser vos jobs pour effectuer le fine-tuning dans le compte de votre équipe, utilisez :

```python theme={"system"}
WandbLogger.sync(entity="<your-team-name>")
```

<h3 id="organize-your-runs">
  Organiser vos runs
</h3>

W\&B organise automatiquement vos runs. Vous pouvez les filtrer et les trier selon n’importe quel paramètre de configuration, comme le type de job, le modèle de base, le taux d’apprentissage, le nom du fichier d’entraînement ou tout autre hyperparamètre.

Vous pouvez également renommer vos runs, y ajouter des notes ou créer des tags pour les regrouper.

Une fois le résultat satisfaisant, enregistrez votre workspace et utilisez-le pour créer un rapport en y important les données de vos runs et de vos artifacts enregistrés (fichiers d’entraînement et de validation).

<h3 id="access-your-fine-tuned-model">
  Accéder à votre modèle sur lequel le fine-tuning a été effectué
</h3>

W\&B journalise l’ID du modèle sur lequel le fine-tuning a été effectué sous forme d’artifacts (`model_metadata.json`) et dans la configuration.

```python theme={"system"}
import wandb
    
with wandb.init(project="OpenAI-Fine-Tune", entity="<your-team-name>") as run:
    ft_artifact = run.use_artifact("<entity>/<project>/model_metadata:<version>")
    artifact_dir = ft_artifact.download()
```

L’espace réservé `<version>` correspond à l’une des valeurs suivantes :

* Un numéro de version, par exemple `v2`.
* L’ID de l’opération consistant à effectuer le fine-tuning, par exemple `ft-xxxxxxxxx`.
* Un alias ajouté automatiquement, comme `latest`, ou manuellement.

Vous pouvez ensuite obtenir l’ID `fine_tuned_model` en lisant le fichier `model_metadata.json` téléchargé.

<h3 id="recover-a-fine-tune-that-didnt-sync">
  Récupérer une opération consistant à effectuer le fine-tuning qui n'a pas été synchronisée
</h3>

Si une opération consistant à effectuer le fine-tuning n'a pas été correctement journalisée dans W\&B, utilisez `overwrite=True` et transmettez l'ID du job pour effectuer le fine-tuning :

```python theme={"system"}
WandbLogger.sync(
    fine_tune_job_id="<fine-tune-job-id>",
    overwrite=True,
)
```

<h3 id="track-datasets-and-models-with-wb">
  Suivre les datasets et les modèles avec W\&B
</h3>

W\&B journalise automatiquement les données d’entraînement et de validation sous forme d’artifacts. W\&B journalise également les métadonnées, notamment l’ID du modèle affiné, sous forme d’artifacts.

Vous pouvez également piloter le pipeline à l’aide des API `wandb` de bas niveau, comme `wandb.Artifact`, `wandb.Run.log`, etc. Vous bénéficiez ainsi d’une traçabilité complète de vos données et de vos modèles.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/open_ai_faq_can_track.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=a6ea1cf3afb0100d8bf76103f9c46be8" alt="FAQ sur le suivi OpenAI" width="1088" height="260" data-path="products/wandb/_media/open_ai_faq_can_track.png" />
</Frame>

<h2 id="resources">
  Ressources
</h2>

Pour approfondir le sujet et découvrir des exemples de bout en bout, consultez les ressources suivantes.

* [Documentation OpenAI sur le fine-tuning](https://platform.openai.com/docs/guides/fine-tuning/), pour des conseils et astuces détaillés.
* [Colab de démonstration](https://wandb.me/openai-colab).
* Rapport [How to Fine-Tune Your OpenAI GPT-3.5 and GPT-4 Models with W\&B](https://wandb.me/openai-report).
