Prochain webinaire : La sécurité d'entreprise pour Claude Code | 21 avril · 11 h PST. Inscrivez-vous ici →

Réglage fin : modèles OpenAI et vos données Confluence

Par TrueFoundry

Mis à jour : March 16, 2023

Résumez avec

Si ChatGPT est l'iPhone, alors l'AppStore n'a pas encore été créé et il s'agira d'une suite d'applications verticales construites dessus. Chaque secteur, chaque entreprise et chaque individu développeront ces applications à petite et grande échelle. Qu'il s'agisse de créer un ChatGPT spécifique à la santé ou à la fabrication, de rédiger des e-mails spécifiques à un domaine à des fins de marketing, de répondre à des questions spécifiques à l'entreprise à partir de la base de connaissances interne, ou même de créer des moteurs de recherche personnels pour répondre à des questions telles que : quelle est l'adresse de John ou quelle est la date de naissance de ma belle-mère ? Nous avons écrit un tas d'exemples ici dans notre précédent article de blog.

Pourquoi ChatGPT ne suffit-il pas à lui-même pour ces applications verticales ?

Pour comprendre cela, il est important de comprendre le Web clair par rapport au Web profond :

  • Effacer le Web : pages Web accessibles au public et indexées par les moteurs de recherche, par exemple Wikipedia, des livres, des publications sur les réseaux sociaux, etc.
  • Web profond : partie d'Internet qui se trouve derrière un système d'authentification, par exemple votre courrier électronique ou des plateformes SaaS. Cela représente 96 % du Web.

Les modèles tels que ChatGPT sont entraînés à partir d'un énorme ensemble de données, mais tout cela est disponible sur le Web transparent. Vous ne pouvez donc pas lui poser une question dont la réponse dépend de tout ce qui se trouve sur le Web profond, comme votre courrier électronique ou vos documents privés. Cependant, au cours du processus d'apprentissage à partir d'un énorme ensemble de données Web clair, des modèles tels que ChatGPT génèrent tellement d'informations sur le langage et la sémantique qu'il est beaucoup plus facile pour l'entreprise d'apprendre de nouvelles informations à partir de petites quantités de données pour une tâche spécifique.

Venez peaufiner

Le réglage fin est une technique puissante qui nous permet de tirer parti des connaissances et de l'apprentissage d'un modèle pré-entraîné tel que ChatGPT pour améliorer les performances du modèle sur une nouvelle tâche en l'entraînant sur un ensemble de données plus petit et spécifique à une tâche. Supposons, par exemple, que vous souhaitiez créer un système de réponse aux questions pour les documents internes de votre entreprise stockés dans Confluence. Vous pouvez transmettre tout le contenu textuel de votre confluence et affiner un modèle GPT avec celui-ci.

Ça a l'air simple. Pourquoi est-ce que tout le monde ne le fait pas ?

Bien qu'OpenAI ait réduit de nombreuses difficultés grâce à ses API de réglage, cela nécessite encore un peu de réflexion, de planification et d'efforts sur différents axes :

Préparation des données

Les données dont vous avez besoin pour affiner les modèles doivent être présentées dans un format de paire spécifique à saisie rapide.

{« prompt » :<prompt-text>, « achèvement » :<ideal generated text>}

Voici quelques conseils à prendre en compte :

  1. Il n'est pas facile de prendre des documents arbitraires tels que les documents de confluence de l'entreprise et de les convertir en exemples de haute qualité dans le format ci-dessus.
  2. Vous avez besoin de quelques centaines d'instructions au minimum, ce qui nécessite un effort humain et une expertise en la matière.
  3. Des séparateurs soigneux marquent le début et la fin de l'invite et les terminaisons qui n'apparaissent pas dans le texte. Vous devez également vous assurer que les instructions de saisie utilisent ultérieurement les mêmes délimiteurs.
  4. L'augmentation du nombre d'exemples améliore les performances du modèle.
  5. Quelque chose d'aussi simple que d'ajouter un espace avant le début de l'achèvement peut améliorer les performances.

Sélection du modèle

OpenAI dispose de plusieurs modèles qui peuvent être affinés et chacun d'entre eux comporte des compromis à prendre en compte :

  1. Ada: Les modèles plus petits et plus rapides sont faciles à ajuster et fonctionnent bien pour un certain nombre de tâches telles que la classification, la génération de langues et les réponses aux questions. Comme il comporte moins de paramètres, il est également moins performant que les autres et peut compromettre la précision.
  2. Curie: Plus grand et plus puissant qu'Ada et est également polyvalent. Il devient de plus en plus difficile d'affiner les petits ensembles de données en raison du grand nombre de paramètres.
  3. Babbage: Conçu pour les tâches de PNL qui nécessitent des connaissances spécialisées, comme le droit ou la médecine, et peuvent être très bien ajustées. Il n'a pas un objectif aussi général et ne convient pas pour affiner des ensembles de données plus volumineux ou des tâches plus complexes.
  4. Davinci: Le modèle à usage général le plus grand et le plus puissant. Très difficile à entraîner sur du matériel moins puissant et devrait être utilisé pour des tâches NLP complexes.

Remarque : Vous pouvez également affiner de manière incrémentielle un modèle précédemment affiné. Le délai est limité en raison de la modification des API. Les modèles doivent avoir été affinés après le 21 avril 2022.

Sélection d'hyperparamètres

Nous avons essayé d'utiliser les API d'OpenAI avec des paramètres par défaut et elles ont très bien fonctionné sur certaines tâches, mais nous avons pu obtenir des améliorations allant jusqu'à 40 % en modifiant les hyperparamètres.

  1. Multiplicateur du taux d'apprentissage : La valeur par défaut est 0,05, 0,1 ou 0,2 selon la taille finale du batch_size. Le taux d'apprentissage d'affinement est le taux d'apprentissage initial utilisé pour le préentraînement multiplié par ce multiplicateur. Le taux d'apprentissage détermine la rapidité avec laquelle le modèle ajuste ses poids pendant l'entraînement. Un taux d'apprentissage trop élevé peut entraîner la convergence du modèle vers une solution sous-optimale, tandis qu'un taux d'apprentissage trop faible peut entraîner une convergence trop lente du modèle ou le bloquer dans un minimum local. OpenAI recommande d'utiliser des taux d'apprentissage plus élevés pour des lots de plus grande taille, mais de fonctionner généralement entre 0,02 et 0,2.
  2. Taille du lot : la valeur par défaut est d'environ 0,2 % du nombre d'exemples de l'ensemble d'apprentissage, plafonné à 256. La taille du lot détermine le nombre d'exemples traités lors de chaque itération d'apprentissage. Une taille de lot plus importante peut accélérer les temps d'entraînement, mais elle peut également entraîner un surajustement du modèle ou une utilisation plus importante de la mémoire. Il est généralement recommandé d'utiliser une taille de lot aussi grande que possible sans trop utiliser la mémoire.
  3. Nombre d'époques : la valeur par défaut est 4. Le nombre d'époques détermine le nombre de fois que le modèle sera entraîné sur l'ensemble de données. Trop peu d'époques peuvent entraîner un sous-ajustement, tandis qu'un trop grand nombre d'époques peut entraîner un surajustement. Il est généralement recommandé de surveiller les performances du modèle sur un ensemble de validation et d'arrêter l'entraînement lorsque les performances cessent de s'améliorer.
  4. Perte de poids rapide : La valeur par défaut est 0,01. Le poids à utiliser pour perdre sur les jetons prompt. Cela permet de contrôler dans quelle mesure le modèle essaie d'apprendre pour générer l'invite (par rapport à l'achèvement qui a toujours un poids de 1,0), et peut ajouter un effet stabilisateur à l'entraînement lorsque les résultats sont courts. Pour les invites courtes, OpenAI recommande d'augmenter ce nombre et pour les invites longues, un petit poids est ce qui convient le mieux.
  5. Modèle : par défaut, c'est curie. Le tableau de sélection des modèles décrit ci-dessus est également un hyperparamètre, mais nous avons estimé qu'il méritait une mention spéciale étant donné son importance comme point de départ dans ce processus.

Prise en compte des coûts

Les coûts de réglage varient beaucoup en fonction des paramètres que vous décidez de choisir. Il est donc très important d'avoir une bonne compréhension.

📌

Pour 1 million de jetons :
- Annonce : 0,4$
- Babbage : 0,6$
- Curie : 3 dollars
- Davinci : 30 dollars.

  1. 1 jeton correspond à environ 4 caractères ou 0,75 mot.
  2. Davinci coûte presque 100 fois plus cher qu'Ada.
  3. Curie est 10 fois plus cher que Ada et c'est le modèle par défaut.
  4. Pour mettre les choses en perspective, Wikipedia possède environ 5 milliards de jetons, donc peaufiner un curie coûterait 15 000$. Il ne s'agit que d'une déclaration académique car ces modèles sont déjà pré-entraînés sur Wikipedia. Veuillez économiser vos $$.
  5. Le nombre de jetons d'entraînement dépend également de vos époques d'entraînement. En gros, le total des jetons d'entraînement = les jetons de votre fichier * le nombre d'époques.

📌

L'utilisation de modèles affinés est nettement plus coûteuse (environ 5 fois) que les modèles préentraînés.

Pour 1 million de jetons,
- Ada : 1,6$ contre 0,4$
- Babbage : 2,4$ contre 0,5$
- Curie 12$ contre 2$
- DaVinci 120$ contre 20$

Lorsque vous utilisez le modèle, des paramètres tels que bestof et n ont également une incidence sur vos coûts car vous finissez par générer plusieurs complétions pour une seule invite. Envisagez d'utiliser max_response_length pour réduire les coûts ou réduire l'utilisation des paramètres best_of et n.

Étude de cas. Réglage précis avec Confluence Docs

La création d'un modèle affiné pour notre propre ensemble de données de confluence n'était pas une mince affaire. Cela impliquait le processus en 4 étapes suivant.

Récupération de données

Il m'a fallu un peu d'effort pour comprendre comment lire toutes les données de Confluence via ses API, car Confluence possède des données riches avec des tableaux, des en-têtes et des sous-titres et j'ai dû les convertir en texte simple pour en faciliter l'utilisation. De plus, la gestion des autorisations et du bon niveau d'accès n'était pas une mince affaire. Enfin, nous avons pu créer un formulaire très simple dans lequel vous soumettez l'URL, le nom d'utilisateur et la clé API et nous pouvons récupérer les données.

Prétraitement des données

C'était la partie la plus difficile. Ici, nous avons essayé plusieurs approches-

  1. Division aléatoire des phrases : en fonction du nombre de mots contenus dans les instructions et les réponses
  2. Regex : Séparer les phrases en fonction de mots tels que- et, mais, cependant, etc.
  3. Chat GPT : Donner du contexte à ChatGPT et lui demander de générer des questions.

Nous avons finalement sélectionné la plupart des paires de #3, mais nous avons également ajouté un échantillon aléatoire de #1 et #2 ci-dessus. Pour notre ensemble de données, nous avons généré plus de 50 000 paires d'instructions et de réponses d'une longueur moyenne de 17 mots pour l'invite et de 133 mots pour la réponse, soit un total de 150 mots par paire. Idéalement, cette étape nécessiterait beaucoup plus d'expérimentation.

Ajustement du modèle

Nous avons expérimenté différents modèles et hyperparamètres et nous avons réalisé que Curie avait tendance à être plus performant qu'Ada ou Babbage, mais nous avons estimé qu'Ada allait bien compte tenu du compromis en termes de coûts. Nous n'avons pas essayé Davinci. Nous avons dû ajuster le taux d'apprentissage et nous l'avons fixé à 0,05 alors que nous utilisions le modèle pendant 6 époques. Le coût de la formation d'une série de Curie était d'environ 30 dollars et Ada d'environ 4 dollars. Dans l'ensemble, après de nombreuses expérimentations, cela aurait pu nous coûter 400 dollars en crédits OpenAI pour les peaufiner. Nous avons également eu quelques erreurs.

Tests

Nous avons remarqué que le modèle affiné fonctionnait strictement mieux que le modèle original pour les questions liées à notre ensemble de données interne. Notre équipe a essayé environ 100 invites étranges et les a évaluées manuellement. Ce n'est pas scientifique mais cela a fonctionné pour ce cas d'utilisation simple. Fait intéressant, nous avons remarqué que dans certains cas, le modèle affiné était moins performant que le modèle original pour les requêtes générales. Nous devons encore déboguer ce qui se passe ici.

C'était un exercice amusant et nous allons essayer de peaufiner d'autres ensembles de données.

📌

Si vous souhaitez des ensembles de données spécifiques, ou si vous souhaitez que j'ouvre cette application pour votre propre Confluence, contactez-moi à l'adresse nikunj@truefoundry.com

True Foundry est un PaaS de déploiement de machine learning sur Kubernetes destiné à accélérer les flux de travail des développeurs tout en leur offrant une flexibilité totale dans les tests et le déploiement de modèles, tout en garantissant une sécurité et un contrôle complets à l'équipe Infra. Grâce à notre plateforme, nous permettons aux équipes de machine learning de déployer et surveiller des modèles en 15 minutes avec une fiabilité à 100 %, une évolutivité et la possibilité de revenir en arrière en quelques secondes, ce qui leur permet de réduire les coûts et de mettre les modèles en production plus rapidement, ce qui permet de réaliser une véritable valeur commerciale.

Le moyen le plus rapide de créer, de gérer et de faire évoluer votre IA

INSCRIVEZ-VOUS
Table des matières

Gouvernez, déployez et suivez l'IA dans votre propre infrastructure

Réservez un séjour de 30 minutes avec notre Expert en IA

Réservez une démo

Le moyen le plus rapide de créer, de gérer et de faire évoluer votre IA

Démo du livre

Découvrez-en plus

July 20, 2023
|
5 min de lecture

LLMoPS CoE : la prochaine frontière dans le paysage MLOps

April 16, 2024
|
5 min de lecture

Cognita : Création d'applications RAG modulaires et open source pour la production

May 25, 2023
|
5 min de lecture

LLMs open source : Embrace or Perish

August 27, 2025
|
5 min de lecture

Cartographie du marché de l'IA sur site : des puces aux plans de contrôle

 Best AI Gateways in 2026
April 22, 2026
|
5 min de lecture

5 meilleures passerelles IA en 2026

comparaison
April 22, 2026
|
5 min de lecture

Intégration de Cline avec TrueFoundry AI Gateway

Outils LLM
Detailed Guide to What is an AI Gateway?
April 22, 2026
|
5 min de lecture

Qu'est-ce qu'AI Gateway ? Concepts de base et guide

Aucun article n'a été trouvé.
April 22, 2026
|
5 min de lecture

LLM Embeddings 101 : un guide complet 2024

Terminologie LLM
Aucun article n'a été trouvé.

Blogs récents

Faites un rapide tour d'horizon des produits
Commencer la visite guidée du produit
Visite guidée du produit