Tutoriels de Pythonia

Guides, IA, tutos et newsletter pour devenir une bête en programmation

Télécharger Les-bases-de-ChatGPT-pour-tous

Rejoignez notre communauté de professionnels et de passionnés, pour rester à la pointe des dernières actualités.

Comment fine-tuner ChatGPT ?

Mis à jour le May 6, 2023, 8:28 a.m.

Niveau: Intermédiaire

Comme nous l'avons vu, ChatGPT est un chatbot d'intelligence artificielle développé par OpenAI. Il permet d'avoir une conversation sur n'importe quel sujet et répond de manière cohérente, comme un humain. Il est basé sur un grand modèle linguistique entraîné sur d'énormes quantités de données textuelles provenant d'Internet et de plusieurs autres sources.

Si l'article vous parait trop long et que vous voulez plonger directement dans le code, rendez vous sur le notebook suivant.


1- Introduction
2- Collecter et nettoyer les données
3- Installation
4- Mettre l'ensemble de données au bon format
5- Lancer le processus de fine-tuning
6- Évaluation des résultats de l'entrainement. Comment notre modèle performe?
7- Conclusion


1-Introduction

En plus de la fonctionnalité principale de répondre aux questions avec des réponses cohérentes, OpenAI offre la possibilité de personnaliser leur modèle pour adapter les réponses à un cas spécifique. Cette fonctionnalité, appelée "fine-tuning", permet à quiconque d'utiliser la technologie GPT-3 pour entraîner un modèle personnalisé. Cela donne un modèle qui répond aux questions qui correspondent à votre scénario, basé sur les exemples que vous avez fournis. Avec un modèle personnalisé, la qualité des réponses liées à votre sujet s'améliorera et la latence des requêtes diminuera.

Ce tuto vous guide pas à pas sur comment fine-tuner le modèle OpenAI GPT-3 et avoir un modèle entraîné pour s'adapter à vos scénarios spécifiques. Quelques exemples de scénarios où vous pouvez appliquer le processus de fine-tuning sont :

- Créer un chatbot personnalisé pour répondre automatiquement aux questions fréquemment posées (FAQ) de vos clients sur les services de votre entreprise
- Compilation de documents de base de connaissances de votre entreprise afin que tout employé puisse trouver facilement et rapidement des informations en utilisant le langage naturel
- Résumé de documents textuels, discussions, notes ou transcriptions de réunions en un résumé succinct avec les sujets importants
- Génération de code de programmation basé sur la base de code de votre entreprise etc.
- Génération de texte (article, marketing, copywriting) avec un style similaire (le votre) à ceux que vous avez déjà écris etc etc.

 

Pour fine-tuner votre modèle vous devez suivre ces différentes étapes:


2- Collecter et nettoyer vos données

Tout d'abord, vous devez rassembler un ensemble de données avec des centaines ou des milliers d'exemples qui représentent votre scénario. Vous pouvez utiliser des outils pour vous aider à formater ces données, et sauvegarder votre jeu de données dans lee format JSONL.
D'après la documentation d'OpenAI, Votre jeu de données ne doit avoir que deux variables: "prompt" et "completion". Vous pouvez voir un exemple au format CSV ci-dessous sur comment votre ensemble de données doit être structuré :

 

{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
...


Lorsque vous avez les données ensemble, nettoyées et dans l'un des formats pris en charge, alors vous êtes prêt à commencer le processus de fine-tuning.

3- Installation

Vous devez installer la bibliothèque Python OpenAI en utilisant pip. Si ce n'est pas fait, rendez-vous sur le tutoriel précédent.

4- Mettre l'ensemble de données au bon format:

Le processus de fine-tuning d'OpenAI n'accepte que les fichiers au format JSONL, mais ne vous inquiétez pas, il fournit un outil pour transformer n'importe quel format mentionné ci-dessus en JSONL. Il suffit d'exécuter la commande suivante pour formater l'ensemble de données en JSONL :

openai tools fine_tunes.prepare_data -f dataset.csv


Si la commande échoue parce qu'il manque une dépendance, exécutez la commande suivante pour la corriger et réessayez Commande pour installer la dépendance requise pour exécuter le package openai :

pip install OpenAI[dependency]


La commande analysera votre ensemble de données et vous montrera une liste de phrases avec des informations importantes sur votre ensemble de données et quelques options pour le fine tuning. Lisez-le attentivement ! Ensuite, en fonction de l'analyse, il suggérera d'effectuer certaines actions comme, supprimer les doublons, ajouter un séparateur de suffixe, ajouter un caractère d'espace blanc etc.. Je suggérerais d'appliquer toutes les actions recommandées s'il n'y a pas de raison de ne pas le faire.

Une action importante à faire est de diviser les données en ensembles d'entraînement (training set) et de validation (val set) qui générera deux fichiers avec un ensemble d'entraînement à utiliser pour le fine tuning (environ ~95% des exemples) et un ensemble de validation à utiliser pour évaluer les performances du modèle entraîné (environ ~5% des exemples). Cette action permet à OpenAI de générer des résultats détaillés sur les performances du modèle.

Enfin, vous aurez les deux fichiers avec l'ensemble de données dans le bon format pour être utilisé dans le fine tuning. Notez que lorsque la commande se termine, elle vous donnera quelques conseils et recommandations pour exécuter le fine tuning.


5- Lancer le Fine-tuning

Maintenant que vous avez les données correctement formatées en format JSONL, vous êtes prêt à exécuter le processus de fine tuning pour votre personnaliser votre modèle. Notez que c'est une fonctionnalité payante et que le prix varie en fonction de la taille de votre ensemble de données et du modèle de base que vous utilisez pour l'entraînement. Pour savoir combien l'entrainement vous coutera, vous devez utiliser la librairie tiktoken. Voici le lien du notebook github, allez à "Estimer les coûts".

Vous pouvez exécuter la commande suggérée à partir de la sortie de la commande précédente ou vous pouvez construire la commande vous-même avec les options que vous souhaitez définir. La commande a plusieurs options que vous pouvez définir ou modifier en fonction de vos besoins (consultez les détails de la commande de fine-tuning ici). Par exemple, l'option "-m" que vous pouvez définir comme "ada", "babbage", "curie" ou "davinci", étant l'un des modèles de base qu'OpenAI fournit ayant différents avantages comme la performance, la précision, le prix, etc.

Notez que la commande peut changer en fonction des valeurs de votre ensemble de données. Par exemple, pour les problèmes de classification où chaque entrée dans l'invite doit être classée dans l'une des classes prédéfinies, vous devez définir l'option " — compute_classification_metrics". S'il n'y a que deux classes, vous devez définir ' — classification_positive_class “class1” '. S'il y a plus de classes, vous devez définir " — classification_n_classes 5". Voir ces exemples ci-dessous.

 

- Commande de fine tuning pour la classification binaire :

openai api fine_tunes.create -t "dataset_train.jsonl" 
    -v "dataset_valid.jsonl" \ 
    -m "ada" 
    --compute_classification_metrics --classification_positive_class " true"



- Commande de fine tuning pour la classification multiclasse (ici 10 classes) :

openai api fine_tunes.create -t "dataset_train.jsonl"
     -v "dataset_valid.jsonl" \ 
     -m "ada" --compute_classification_metrics 
     --classification_n_classes 10




Lorsque vous exécutez la commande, elle télécharge le(s) fichier(s) de l'ensemble de données sur les serveurs OpenAI et la commande vous indique un identifiant de fine-tuning comme "ft-LMpfh156351EzfkufjdfdOabcF", sauvegardez cet identifiant. À ce stade, la demande est reçue par les serveurs OpenAI et le fine tuning est mis en file d'attente pour être exécuté. L'exécution du fine tuning peut prendre quelques minutes ou plusieurs heures en fonction de la taille de votre ensemble de données et du modèle que vous avez choisi. Vous n'avez pas besoin d'attendre que la commande se termine, vous pouvez tuer le processus (ctrl-c) sans hésitation et revenir plus tard pour vérifier l'avancement du travail. Vous pouvez vérifier l'état de votre processus en exécutant la commande suivante avec l'identifiant que vous avez reçu précédemment :

openai api fine_tunes.get -i ft-LMpfh156351EzfkufjdfdOabcF 

 

Bien sûr, l'identifiantft-LMpfh156351EzfkufjdfdOabcF est à remplacer par votre propre identifiant.

 

A la fin du fine-tuning, vous verrez le mot "processed" qui signifie que l'entraînement de votre modèle personnalisé est terminé et surtout qu'il est prêt à être utilisé.

Pour utiliser votre modèle entraîné lors de l'envoi d'invites à OpenAI, il suffit de définir l'option "-m" avec l'identifiant de votre modèle comme le montre ci-dessous :

openai api completions.create -m <Nom_de_votre_modele> -p "Ecrivez votre prompt"

Vous pouvez également utiliser le modèle créé dans l'adresse du lien de votre compte playground. Maintenant, n'hésitez pas à jouer, à vérifier, à tester et à évaluer votre modèle pour vous assurer qu'il répond avec la réponse attendue pour votre scénario !

Évaluation des résultats de l'entrainement. Comment notre modèle performe?

Rappelez-vous que nous avons généré deux fichiers pour l'ensemble de données, un pour l'entraînement et l'autre pour la validation, OpenAI a utilisé le premier pour entraîner le modèle et le second pour exécuter certaines procédures d'évaluation pour mesurer certaines statistiques comme, par exemple, la précision et la perte.

 

Importez pandas et installez le s'il n'est pas présent.

import pandas as pd
results = pd.read_csv('result.csv')
results[results['classification/accuracy'].notnull()].tail(1)

 

 

Les données de sortie sont dans un fichier CSV (ici results.csv) par défaut et peuvent être sauvegardées dans un fichier pour une meilleure visualisation. La structure du fichier est basée sur les étapes effectuées dans le processus d'entraînement qui est représenté par chaque ligne du fichier csv. Chaque ligne montre des informations précieuses sur l'étape comme : combien d'exemples il a traités, combien de tokens, la perte d'entraînement, la précision de l'entraînement, la perte de validation, et bien plus encore.

Conclusion

OpenAI apporte l'un des modèles d'IA les plus révolutionnaires de ces derniers temps avec la création de GPT-3 et ChatGPT. Le fine tuning était encore un processus complexe il y a quelque temps mais ce n'est plus le cas. En tous les cas pas pour ce genre de modèle.

Avec le fine tuning, n'importe qui peut créer des modèles GPT-3 personnalisés spécifiques pour son propre besoin. Par exemple, créer un chatbot pour interagir avec les clients de manière conventionnelle pour répondre à des questions spécifiques sur votre entreprise, votre sujets principal, vos services et vos produits. Un autre exemple est d'aider les employés à trouver rapidement et facilement des informations précieuses dans une grande base de connaissances avec plusieurs articles textuels où il est difficile et long de trouver ce dont vous avez besoin. Les scénarios impliquant un grand volume de texte qu'il peut aider sont innombrables.

Cependant, il y a des limites, certaines entreprises ne sont pas en mesures de partager leurs données personnelles, notamment pour les articles textuels pour les employés. Mais heureusement il existe une solution. Nous allons maintenant voir comment installer PrivateGPT.

# Python est la meilleure chose qui peut t'arriver. Quelque soit ton métier, apprends à le maîtriser #

 




ChatGPT le guide ultime


Comment faire les meilleurs prompt avec chatgpt?


Comment utiliser l'API de ChatGPT avec Python?


Comment fine-tuner ChatGPT ?

Vous êtes sur ce tutoriel

Comment installer PrivateGPT sur Windows 10 | Communiquer avec ses propres documents


Création d'un GPT Personnalisé avec ChatGPT | Un Guide Complet


OpenAI Lance le GPT Store | Publier son GPT sur le store


Comment installer open interpreter ?


Utiliser GPT-4o OpenAI API et python (texte | audio)


Utiliser GPT-4o OpenAI API et python (analyse video)


Commentaires

Aucun commentaire pour cet article.

Télécharger Les-bases-de-ChatGPT-pour-tous

Rejoignez notre communauté de professionnels et de passionnés, pour rester à la pointe des dernières actualités.

Laissez un commentaire