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

> Effectuez le fine-tuning de modèles OpenAI avec W&B pour journaliser les métriques d'entraînement, surveiller les jobs et comparer les performances du modèle 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>
    Essayer sur Colab
  </a>;

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

Enregistrez dans W\&B les métriques et la configuration de fine-tuning de votre modèle OpenAI GPT-3.5 ou GPT-4. Exploitez l'écosystème W\&B pour suivre vos expériences, modèles et jeux de données de fine-tuning, et partager vos résultats avec vos collègues.

<Note>
  Voir la [documentation OpenAI](https://platform.openai.com/docs/guides/fine-tuning/which-models-can-be-fine-tuned) pour obtenir la liste des modèles que vous pouvez soumettre à un fine-tuning.
</Note>

Voir la section [Intégration W\&B](https://developers.openai.com/cookbook/examples/third_party/gpt_finetuning_with_wandb) dans la documentation OpenAI pour plus d'informations sur l'intégration de W\&B avec OpenAI pour le fine-tuning.

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

L’intégration W\&B OpenAI Fine-tuning fonctionne avec OpenAI à partir de la version 1.0. Voir la documentation PyPI pour accéder à la dernière version de la bibliothèque [OpenAI Python API](https://pypi.org/project/openai/).

Pour installer OpenAI Python API, exécutez :

```python theme={null}
pip install openai
```

Si l’API Python d’OpenAI est déjà installée, vous pouvez la mettre à jour avec :

```python theme={null}
pip install -U openai
```

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

Intégrez W\&B à l'API de fine-tuning d'OpenAI pour enregistrer dans W\&B les métriques et la configuration de votre fine-tuning. Pour ce faire, utilisez la classe `WandbLogger` du module `wandb.integration.openai.fine_tuning`.

```python theme={null}
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/wb-21fd5541/mVjDwbx0mC8gYx-b/images/integrations/open_ai_auto_scan.png?fit=max&auto=format&n=mVjDwbx0mC8gYx-b&q=85&s=6d152aaf27c90463e32ed3e85602f4a8" alt="Fonctionnalité d’analyse automatique d’OpenAI" width="1600" height="779" data-path="images/integrations/open_ai_auto_scan.png" />
</Frame>

<div id="sync-your-fine-tunes">
  ### Synchronisez vos fine-tunings
</div>

Synchronisez vos résultats depuis votre script

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

# commande en une ligne
WandbLogger.sync()

# passage de 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
)
```

<div id="reference">
  ### Référence
</div>

| Argument                | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| fine\_tune\_job\_id     | Il s’agit de l’ID OpenAI Fine-Tune que vous obtenez lorsque vous créez votre job de fine-tuning avec `client.fine_tuning.jobs.create`. Si cet argument vaut None (valeur par défaut), tous les jobs OpenAI de fine-tuning qui n’ont pas encore été synchronisés le seront avec W\&B.                                                                                                                                                                        |
| openai\_client          | Passez un client OpenAI initialisé à `sync`. Si aucun client n’est fourni, il est initialisé par le logger lui-même. Par défaut, sa valeur est None.                                                                                                                                                                                                                                                                                                        |
| num\_fine\_tunes        | Si aucun ID n’est fourni, tous les fine-tunings non synchronisés seront enregistrés dans W\&B. Cet argument vous permet de sélectionner le nombre de fine-tunings récents à synchroniser. Si num\_fine\_tunes vaut 5, les 5 fine-tunings les plus récents sont sélectionnés.                                                                                                                                                                                |
| project                 | nom du projet W\&B dans lequel seront enregistrés vos métriques, modèles, données, etc. de fine-tuning. Par défaut, le nom du projet est "OpenAI-Fine-Tune."                                                                                                                                                                                                                                                                                                |
| entity                  | Nom d’utilisateur W\&B ou nom d’équipe vers lequel vous envoyez les runs. Par défaut, votre entité par défaut est utilisée, généralement votre nom d’utilisateur.                                                                                                                                                                                                                                                                                           |
| overwrite               | Force la journalisation et écrase le run wandb existant du même job de fine-tuning. Par défaut, cette valeur est False.                                                                                                                                                                                                                                                                                                                                     |
| wait\_for\_job\_success | Une fois qu’un job OpenAI de fine-tuning est lancé, il prend généralement un certain temps. Pour garantir que vos métriques soient enregistrées dans W\&B dès que le job de fine-tuning est terminé, ce paramètre vérifie toutes les 60 secondes si le statut du job de fine-tuning passe à `succeeded`. Dès que le job de fine-tuning est détecté comme réussi, les métriques sont automatiquement synchronisées avec W\&B. La valeur par défaut est True. |
| model\_artifact\_name   | Le nom de l'artifact de modèle enregistré. La valeur par défaut est `"model-metadata"`.                                                                                                                                                                                                                                                                                                                                                                     |
| model\_artifact\_type   | Le type de l'artifact de modèle enregistré. La valeur par défaut est `"model"`.                                                                                                                                                                                                                                                                                                                                                                             |
| \*\*kwargs\_wandb\_init | Tout argument supplémentaire transmis directement à [`wandb.init()`](/fr/models/ref/python/functions/init)                                                                                                                                                                                                                                                                                                                                                  |

<div id="dataset-versioning-and-visualization">
  ## Gestion des versions et visualisation des jeux de données
</div>

<div id="versioning">
  ### Gestion des versions
</div>

Les données d'entraînement et de validation que vous téléversez dans OpenAI pour le Fine-tuning sont automatiquement enregistrées dans W\&B Artifacts afin de faciliter la gestion des versions. Ci-dessous, vous voyez une vue du fichier d'entraînement dans Artifacts. Vous pouvez y voir le run W\&B qui a enregistré ce fichier, la date à laquelle il a été enregistré, la version du jeu de données correspondante, les métadonnées et la traçabilité du DAG, des données d'entraînement jusqu'au modèle entraîné.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541/mVjDwbx0mC8gYx-b/images/integrations/openai_data_artifacts.png?fit=max&auto=format&n=mVjDwbx0mC8gYx-b&q=85&s=dac293cde2af9b21a77c049a41fd18c7" alt="W&B Artifacts avec des jeux de données d'entraînement" width="3450" height="1166" data-path="images/integrations/openai_data_artifacts.png" />
</Frame>

<div id="visualization">
  ### Visualisation
</div>

Les jeux de données s’affichent dans W\&B Tables, ce qui vous permet de les explorer, d’y effectuer des recherches et d’interagir avec eux. Consultez ci-dessous les exemples d’entraînement visualisés avec W\&B Tables.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541/mVjDwbx0mC8gYx-b/images/integrations/openai_data_visualization.png?fit=max&auto=format&n=mVjDwbx0mC8gYx-b&q=85&s=545f9a3355dfe483b87aa2dcb5e0b3f4" alt="Données OpenAI" width="2758" height="1294" data-path="images/integrations/openai_data_visualization.png" />
</Frame>

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

OpenAI vous fournit un ID du modèle affiné. Comme nous n'avons pas accès aux poids du modèle, `WandbLogger` crée un fichier `model_metadata.json` contenant tous les détails du modèle (hyperparamètres, ID des fichiers de données, etc.), ainsi que l'ID \`fine\_tuned\_model\`\`, puis l'enregistre en tant qu'Artifact W\&B.

Cet Artifact de modèle (métadonnées) peut ensuite être lié à un modèle dans le [W\&B Registry](/fr/models/registry/).

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541/mVjDwbx0mC8gYx-b/images/integrations/openai_model_metadata.png?fit=max&auto=format&n=mVjDwbx0mC8gYx-b&q=85&s=e39d37d961780edd14ce663b1b5c3d9e" alt="Métadonnées du modèle OpenAI" width="3450" height="1512" data-path="images/integrations/openai_model_metadata.png" />
</Frame>

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

<div id="how-do-i-share-my-fine-tune-results-with-my-team-in-wb">
  ### Comment puis-je partager les résultats de mon fine-tuning avec mon équipe dans W\&B ?
</div>

Enregistrez vos jobs de fine-tuning sur votre compte Teams avec :

```python theme={null}
WandbLogger.sync(entity="YOUR_TEAM_NAME")
```

<div id="how-can-i-organize-my-runs">
  ### Comment puis-je organiser mes runs ?
</div>

Vos runs W\&B sont automatiquement organisés et peuvent être filtrés/triés en fonction de 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 et tout autre hyperparamètre.

De plus, vous pouvez renommer vos runs, ajouter des notes ou créer des tags pour les regrouper.

Une fois que tout vous convient, vous pouvez enregistrer votre Workspace et l'utiliser pour créer un report, en important des données depuis vos runs et vos Artifacts enregistrés (fichiers d'entraînement et de validation).

<div id="how-can-i-access-my-fine-tuned-model">
  ### Comment puis-je accéder à mon modèle affiné ?
</div>

L’ID du modèle affiné est enregistré dans W\&B, dans les Artifacts (`model_metadata.json`), ainsi que dans la configuration.

```python theme={null}
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()
```

où `VERSION` correspond à l’un des éléments suivants :

* un numéro de version comme `v2`
* l’ID du fine-tuning, par exemple `ft-xxxxxxxxx`
* un alias ajouté automatiquement, comme `latest`, ou ajouté manuellement

Vous pouvez ensuite accéder à l’ID de `fine_tuned_model` en lisant le fichier téléchargé `model_metadata.json`.

<div id="what-if-a-fine-tune-was-not-synced-successfully">
  ### Que faire si un fine-tuning ne s’est pas synchronisé correctement ?
</div>

Si un fine-tuning n’a pas été enregistré correctement dans W\&B, vous pouvez utiliser `overwrite=True` et passer l’ID du job de fine-tuning :

```python theme={null}
WandbLogger.sync(
    fine_tune_job_id="FINE_TUNE_JOB_ID",
    overwrite=True,
)
```

<div id="can-i-track-my-datasets-and-models-with-wb">
  ### Puis-je suivre mes jeux de données et mes modèles avec W\&B ?
</div>

Les données d’entraînement et de validation sont automatiquement enregistrées dans W\&B sous forme d’Artifacts. Les métadonnées, y compris l’ID du modèle affiné, sont également enregistrées sous forme d’Artifacts.

Vous pouvez toujours piloter le pipeline à l’aide d’API wandb de bas niveau comme `wandb.Artifact`, `wandb.Run.log`, etc. Cela vous permet d’assurer une traçabilité complète de vos données et de vos modèles.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541/mVjDwbx0mC8gYx-b/images/integrations/open_ai_faq_can_track.png?fit=max&auto=format&n=mVjDwbx0mC8gYx-b&q=85&s=df528635783bca105c81c18389b11781" alt="FAQ OpenAI sur le suivi" width="1088" height="260" data-path="images/integrations/open_ai_faq_can_track.png" />
</Frame>

<div id="resources">
  ## Ressources
</div>

* La [documentation OpenAI sur le Fine-tuning](https://platform.openai.com/docs/guides/fine-tuning/) est très complète et contient de nombreux conseils utiles
* [Colab de démonstration](https://wandb.me/openai-colab)
* [How to Fine-Tune Your OpenAI GPT-3.5 and GPT-4 Models with W\&B](https://wandb.me/openai-report) Report
