OpenAI propose une offre exceptionnelle de fine-tuning gratuit pour GPT-4o mini jusqu’au 23 septembre 2024. Ce modèle est parfait pour gérer plusieurs tâches en même temps et analyser de grandes quantités de données, tout en restant économique. Je vais vous expliquer comment personnaliser GPT-4o mini pour répondre à vos besoins spécifiques grâce à ce guide simple et pratique.
Le fine-tuning permet de préconfigurer le modèle pour qu’il réponde exactement à vos besoins. Par exemple, vous pouvez ajuster GPT-4o mini pour qu’il adopte votre style d’écriture, suive un format de réponse particulier, ou comprenne des termes spécifiques à votre domaine. Imaginez un chatbot de support client capable de répondre précisément et rapidement aux questions fréquentes de vos clients, ou une analyse de texte capable de reconnaître et traiter des informations propres à votre secteur d’activité. En plus, le fine-tuning réduit la quantité d’instructions nécessaires dans les prompts, rendant les interactions plus rapides et efficaces.
Dans ce guide, je vais vous montrer comment :
- Préparer vos données d’entraînement
- Créer et entraîner votre modèle fine-tuné
- Utiliser et évaluer votre modèle
Suivez ces étapes pour tirer le meilleur parti de l’offre gratuite de fine-tuning et améliorer vos applications d’IA.
Préparer vos données d’entraînement
La première étape pour fine-tuner GPT-4o mini consiste à préparer vos données d’entraînement. Cela implique de sélectionner et d’organiser des exemples pertinents et représentatifs des tâches que vous souhaitez que le modèle accomplisse. Voici comment procéder :
Choisir les bons exemples
Sélectionnez une variété d’exemples qui reflètent les interactions que vous attendez du modèle en production. Par exemple, si vous créez un chatbot, incluez des conversations typiques que vos utilisateurs pourraient avoir avec le chatbot
Format des données
Vos données doivent être structurées au format requis par OpenAI. Pour GPT-4o mini, cela signifie des conversations sous forme de liste de messages, où chaque message a un rôle (système, utilisateur, assistant), un contenu, et éventuellement un nom. Voici un exemple pour entrainer un chatbot :
{"messages": [{"role": "system", "content": "Léo est un chatbot factuel avec un sens de l'humour."}, {"role": "user", "content": "Qui a écrit 'Les Misérables' ?"}, {"role": "assistant", "content": "Victor Hugo, un gars qui savait écrire des pavés bien avant les tutos YouTube."}]}
{"messages": [{"role": "system", "content": "Léo est un chatbot factuel avec un sens de l'humour."}, {"role": "user", "content": "Combien de planètes y a-t-il dans le système solaire ?"}, {"role": "assistant", "content": "Huit, mais Pluton est toujours invité aux réunions de famille."}]}
{"messages": [{"role": "system", "content": "Léo est un chatbot factuel avec un sens de l'humour."}, {"role": "user", "content": "Quelle est la date de la prise de la Bastille ?"}, {"role": "assistant", "content": "Le 14 juillet 1789, la journée où les Parisiens ont décidé que c'était l'heure de la fête nationale."}]}
{"messages": [{"role": "system", "content": "Léo est un chatbot factuel avec un sens de l'humour."}, {"role": "user", "content": "Quelle est la vitesse de la lumière ?"}, {"role": "assistant", "content": "Environ 299 792 kilomètres par seconde. Plus rapide qu'une rumeur au lycée."}]}
{"messages": [{"role": "system", "content": "Léo est un chatbot factuel avec un sens de l'humour."}, {"role": "user", "content": "Quel est le plus grand océan sur Terre ?"}, {"role": "assistant", "content": "L'océan Pacifique, la piscine géante de la planète."}]}
{"messages": [{"role": "system", "content": "Léo est un chatbot factuel avec un sens de l'humour."}, {"role": "user", "content": "Qui a inventé l'ampoule électrique ?"}, {"role": "assistant", "content": "Thomas Edison, le gars qui a illuminé notre monde."}]}
{"messages": [{"role": "system", "content": "Léo est un chatbot factuel avec un sens de l'humour."}, {"role": "user", "content": "Combien de continents y a-t-il ?"}, {"role": "assistant", "content": "Il y a sept continents, une bonne excuse pour sept voyages de rêve."}]}
{"messages": [{"role": "system", "content": "Léo est un chatbot factuel avec un sens de l'humour."}, {"role": "user", "content": "Quel est le plus haut sommet du monde ?"}, {"role": "assistant", "content": "Le mont Everest, l'endroit idéal pour voir le monde de haut."}]}
{"messages": [{"role": "system", "content": "Léo est un chatbot factuel avec un sens de l'humour."}, {"role": "user", "content": "Quel est le plus grand désert du monde ?"}, {"role": "assistant", "content": "Le désert du Sahara, où il faut beaucoup d'eau et de crème solaire."}]}
{"messages": [{"role": "system", "content": "Léo est un chatbot factuel avec un sens de l'humour."}, {"role": "user", "content": "Qui a peint la Joconde ?"}, {"role": "assistant", "content": "Leonardo da Vinci, le maître du sourire mystérieux."}]}
Nombre d’exemples recommandés
Pour fine-tuner un modèle, vous devez fournir au moins 10 exemples. Cependant, je recommande de commencer avec 50 exemples. En général, plus vous fournissez d’exemples, mieux le modèle apprendra. Si après le fine-tuning initial, vous constatez que le modèle s’améliore, continuez à ajouter des exemples pour affiner encore plus ses performances.
Diviser les données en ensembles d’entraînement et de test
Une fois votre ensemble de données collecté, divisez-le en deux parties : l’entraînement et le test. L’ensemble d’entraînement sera utilisé pour former le modèle, tandis que l’ensemble de test servira à évaluer ses performances. Cette approche vous permet de mesurer l’amélioration du modèle tout au long du processus de fine-tuning.
Limites de tokens
Les limites de tokens varient selon le modèle choisi. Par exemple, GPT-4o mini peut gérer jusqu’à 128 000 tokens en contexte d’inférence et 65 536 tokens en contexte d’entraînement. Assurez-vous que vos exemples respectent ces limites pour éviter toute troncation qui pourrait affecter la qualité de l’entraînement.
Estimation des coûts
Jusqu’au 23 septembre 2024, le fine-tuning de GPT-4o mini est gratuit pour 2 millions de tokens par période de 24 heures. Au-delà, des frais de 3 $ par million de tokens s’appliquent. Pour estimer les coûts après cette période, utilisez la formule suivante :
(coût par 1M tokens ÷ 1M) × nombre de token dans le fichier d'entrainement × nombre d'entrainement
Par exemple pour un fichier d’entrainement contenant 100 000 tokens entrainé 3 fois avec le modèle GPT4o-Mini, le coût serait :
Coût total = (3/ 1000000) x 1000000 x 3 = 0,90$
Vérifier le format des données
Avant de lancer un job de fine-tuning, assurez-vous que vos données sont correctement formatées. Utilisez des scripts de validation pour détecter les erreurs potentielles et estimer les comptes de tokens.
Pour ma part j’utilise JSONLint pour vérifier le format de mes fichiers : https://jsonlint.com/
Copiez une des lignes de votre fichier « .jsonl » et vérifier le format :
OpenAI a mis aussi un outil en place pour vérifier votre fichier d’entrée et estimer les coûts :
https://cookbook.openai.com/examples/chat_finetuning_data_prep
Créer et entraîner votre modèle fine-tuné
Bonne nouvelle, vos données d’entraînement sont maintenant prêtes, vous avez fait le plus dur ! Il est temps de passer à la création et à l’entraînement de votre modèle fine-tuné. Suivez ces étapes simples pour tirer le meilleur parti de GPT-4o mini.
Accéder au tableau de bord
- Connectez-vous à votre compte OpenAI :
Ouvrez votre navigateur et rendez-vous sur la plateforme OpenAI. Connectez-vous avec vos identifiants : https://platform.openai.com/playground - Accédez à la section de fine-tuning :
Une fois connecté, naviguez vers le tableau de bord dédié au fine-tuning. Vous y trouverez toutes les options nécessaires pour commencer : https://platform.openai.com/finetune
Télécharger les données
- Préparez votre fichier :
Assurez-vous que votre fichier de données d’entraînement est prêt et au format JSON, comme expliqué dans la première partie. - Chargez vos données sur la plateforme :
Dans la section de fine-tuning du tableau de bord, sélectionnez l’option pour télécharger un fichier. Choisissez votre fichier de données d’entraînement et suivez les instructions pour le charger sur la plateforme.
Lancer le fine-tuning
- Créer un nouveau job de fine-tuning : Une fois vos données téléchargées, créez un nouveau job de fine-tuning. Sélectionnez GPT-4o mini comme modèle de base.
- Ajuster les paramètres si nécessaire : Vous pouvez personnaliser divers paramètres du fine-tuning, comme le nombre d’époques (le nombre de fois que le modèle va passer sur l’ensemble complet de données), le taux d’apprentissage, et la taille des lots. Pour la plupart des utilisateurs, les paramètres par défaut sont un bon point de départ.
- Lancer le processus de fine-tuning : Suivez les instructions à l’écran pour lancer le fine-tuning. Le processus peut prendre de quelques minutes à plusieurs heures, selon la taille de votre jeu de données et les paramètres choisis. Vous recevrez une notification par e-mail une fois le fine-tuning terminé.
Félicitations ! Vous avez maintenant lancé le processus de fine-tuning de votre modèle GPT-4o mini. Dans la prochaine section, nous verrons comment utiliser modèle fine-tuné pour s’assurer qu’il répond parfaitement à vos besoins.
Utiliser et évaluer votre modèle
Après l’entraînement, il est crucial de tester votre modèle fine-tuné pour vous assurer qu’il répond bien à vos attentes. Pour cela, utilisez des exemples similaires à ceux que vous rencontrerez en production
Accédez à l’interface de test
Utilisez le tableau de bord d’OpenAI ou des outils comme l’API de complétion pour soumettre des requêtes de test à votre modèle.
Comparez les réponses du modèle fine-tuné avec les résultats attendus. Assurez-vous que le modèle suit le style et le format que vous avez définis lors de l’entraînement.
Si les résultats ne sont pas satisfaisants, ne vous inquiétez pas. Voici quelques étapes pour affiner votre modèle :
- Retournez à l’étape de préparation des données : Analysez où le modèle a échoué. Ajoutez de nouveaux exemples d’entraînement qui couvrent ces cas particuliers. Assurez-vous que les exemples sont clairs et représentatifs de ce que vous attendez.
- Ajustez les paramètres de fine-tuning : Parfois, ajuster des paramètres tels que le nombre d’époques ou le taux d’apprentissage peut améliorer les performances. Essayez différentes configurations pour voir ce qui fonctionne le mieux.
Une fois que vous êtes satisfait des résultats, il est temps d’intégrer le modèle fine-tuné dans votre application ou workflow.
Exemple d’utilisation de votre modèle fine-tuné
Une fois que votre modèle GPT-4o mini est fine-tuné, vous pouvez l’intégrer dans divers outils pour en tirer le meilleur parti. Voici comment utiliser votre modèle fine-tuné directement dans Google Sheets via Apps Script.
Étape 1 : Créer le script dans Google Sheets
- Ouvrez votre feuille Google Sheets :
Accédez à Google Sheets et ouvrez la feuille de calcul où vous souhaitez utiliser le modèle. - Accédez à l’éditeur de script :
Cliquez surExtensions
dans le menu, puis sélectionnezApps Script
. - Créez un nouveau script :
Copiez et collez le script suivant dans l’éditeur :
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('OpenAI API')
.addItem('Get Response', 'getResponse')
.addToUi();
}
function logMessage(message) {
const logSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Logs');
if (!logSheet) {
const newSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet('Logs');
newSheet.appendRow(['Timestamp', 'Message']);
}
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Logs').appendRow([new Date(), message]);
}
function getResponse() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const range = sheet.getActiveRange(); // Utilise uniquement la plage active
const startRow = range.getRow();
const numRows = range.getNumRows();
const numCols = range.getNumColumns();
logMessage('Processing range: ' + range.getA1Notation() + ' starting from row: ' + startRow);
for (let i = 0; i < numRows; i++) {
for (let j = 0; j < numCols; j++) {
const cell = range.getCell(i + 1, j + 1);
var promptText = cell.getValue();
logMessage('Processing cell: (' + (startRow + i) + ',' + (range.getColumn() + j) + ') with value: ' + promptText);
if (promptText) {
const apiKey = 'votre_clé_api_openai';
const apiURL = 'https://api.openai.com/v1/chat/completions';
const payload = JSON.stringify({
"model": "ft:gpt-4o-mini:votre_organisation:votre_suffixe",
"frequency_penalty": 0,
"presence_penalty": 0,
"messages": [
{"role": "system", "content": "Léo est un chatbot factuel avec un sens de l'humour."},
{"role": "user", "content": `${promptText}`}
]
});
const options = {
"method": "post",
"contentType": "application/json",
"payload": payload,
"headers": {
"Authorization": "Bearer " + apiKey
},
"muteHttpExceptions": false
};
try {
const response = UrlFetchApp.fetch(apiURL, options);
const json = JSON.parse(response.getContentText());
const resultText = json.choices[0].message.content;
logMessage('Response for cell (' + (startRow + i) + ',' + (range.getColumn() + j) + '): ' + resultText);
// Update the next cell in the row with the response
cell.offset(0, 1).setValue(resultText);
} catch (e) {
logMessage('Error: ' + e.toString());
}
} else {
logMessage('Please select a cell with content.');
}
}
}
logMessage('Processing complete.');
}
Étape 2 : Exécuter le script
Utiliser le script :
Sélectionnez une plage de cellules contenant les prompts auxquels vous souhaitez obtenir des réponses, puis cliquez sur OpenAI API
> Get Response
. Le script enverra chaque prompt à votre modèle fine-tuné GPT-4o mini et placera les réponses dans les cellules adjacentes.
Enregistrez le script :
Cliquez sur Fichier
> Enregistrer
dans l’éditeur de script.
Accédez à Google Sheets :
Retournez à votre feuille de calcul. Vous devriez voir un nouveau menu OpenAI API
ajouté.
Étape 3 : Vérification des résultats
- Vérifiez les réponses :
Les réponses du modèle fine-tuné seront affichées dans les cellules adjacentes à celles contenant les prompts. Vérifiez que les réponses sont correctes et conformes à vos attentes. - Ajustements si nécessaire :
Si les réponses ne sont pas satisfaisantes, retournez à l’étape de fine-tuning pour ajouter ou modifier les exemples d’entraînement.
En utilisant ce script, vous pouvez facilement intégrer les réponses de votre modèle fine-tuné directement dans Google Sheets, facilitant ainsi l’analyse et l’automatisation des tâches. Cette méthode vous permet d’exploiter pleinement la puissance de GPT-4o mini, adapté à vos besoins spécifiques, que ce soit pour des réponses client, des analyses de données, ou toute autre application nécessitant une IA personnalisée.
N’oubliez pas de profiter de l’offre exceptionnelle de fine-tuning gratuit d’OpenAI jusqu’au 23 septembre 2024. Après cette date, le fine-tuning deviendra payant, donc c’est l’occasion idéale de tester et d’améliorer vos applications d’IA sans frais supplémentaires.
Pour toute question et pour ne manquer aucune actualité, suivez-moi sur Twitter @wipe2197.