Comment créer un modèle de fondation ?

Comment créer un modèle de fondation ? Le point sur la méthodologie et les bonnes pratiques à suivre dans l'optique de créer un large language model ou encore un modèle de génération d'image ou de vidéo.

Créer un modèle de fondation peut s'avérer très utile dans le cas d'une entreprise disposant de son propre vocabulaire métier. Ou encore dans le cas d'un langage de développement ne disposant pas encore de son modèle de fondation. Basiquement, un tel modèle génère de la connaissance (du texte, des graphiques, des images ou de la vidéo) en se basant sur la relation statistique des mots entre eux.

Les modèles de fondation partent la plupart du temps d'une architecture dite de Transfomer. Taillée pour le traitement automatique des langues (TAL) ou natural language processing (NLP), elle renvoie à un réseau de neurones profonds conçu pour ingérer des données d'apprentissage séquentielles en utilisant des mécanismes d'attention. Le Transformer permet à la machine d'apprendre des séquences informatiques de manière automatique, sans avoir été programmées spécifiquement à cet effet. Cette technologie a été publiée en open source par Google en 2017. Comme ceux générant du texte, les modèles de fondation taillés pour générer des images ou des vidéos s'appuieront également le plus souvent sur la même technologie.

Définir l'état des poids du modèle

Pour développer un modèle de fondation, il est nécessaire dans un premier temps de définir l'état initial de ses paramètres. "Nous allons typiquement initialiser ses poids de manière aléatoire", commente Guillaume Gerard, head of GenAI south & central europe chez Capgemini.

Dans un deuxième temps, on définit le corpus de données d'apprentissage. Puis, on entraine le modèle sur ce dernier en vue de le faire converger vers les valeurs recherchées. "Par itérations successives, l'objectif est d'apprendre au modèle à dénicher les termes les plus probables dans un contexte donné en ajustement les milliards de poids dont il dispose dans sa matrice", décrypte Guillaume Gerard. "On va entrainer le modèle au fur et à mesure jusqu'à ce qu'il ne se trompe plus quant à la réponse attendue. C'est ce qu'on appelle la forward propagation."

"Quand on entraine un modèle de fondation, on définit une fonction de coût, c'est-à-dire à quel point ce modèle est éloigné du résultat recherché"

En aval, le learning rate permet de définir la valeur accordée aux poids à chaque itération de la phase d'apprentissage. "Etant loin du résultat à atteindre au départ, on aura tendance à définir initialement un learning rate élevé. Ce qui permettra à l'IA de réaliser des modifications radicales de ses poids ", détaille Guillaume Gerard. Au fil de l'entrainement, le processus va tendre vers un learning rate plus limité pour favoriser la convergence du modèle et son affinage vers les bonnes réponses.

"Le learning rate revient à définir une fonction de coût, c'est-à-dire à quel point le modèle est éloigné du résultat recherché. L'objectif étant de trouver la valeur du poids qui permettra de tendre vers le coût minimal. Si le learning rate est trop élevé, il jouera au ping-pong sur la courbe représentant la valeur du résultat sans trouver la position optimale", explique Guillaume Gerard (voir le graphique de gauche ci-dessous). "De même, il faudra prendre garde aux courbes en W qui peuvent amener à se tromper sur les résultats en optant pour la valeur la moins optimisée entre les deux V." Des mécanismes existent pour éviter ce type de situation. On pourra par exemple déplacer le modèle de manière aléatoire sur la courbe pour être sûr de ne pas manquer le point le plus bas (voir le graphique de droite).

© Capgemini

Il sera possible aussi de partir d'un modèle de fondation existant et se l'approprier. "Par exemple, on peut considérer que le modèle Llama est mauvais en français, et vouloir le réentrainer en reprenant tous ses poids initiaux sur un corpus en langue française", illustre Guillaume Gerard. "Ici, on ne part pas de rien puisque le modèle sait déjà parler dans une langue et aligner des mots. Ce qui va nous permettre de gagner en temps d'entrainement. C'est extrêmement rare de se retrouver face à un projet visant à créer un modèle de fondation en partant de rien." Sachant que dans ce dernier cas le nombre d'itérations pour ajuster les poids peut se révéler colossal. Partir d'un modèle existant est toujours plus efficace en termes de capacité machine, quitte à partir sur un learning rate important.

Définir le nombre de paramètres

Comment définir le nombre de paramètres du modèle ? "C'est un compromis à trouver en tenant compte de la taille du corpus documentaire, de la puissance machine et de la capacité de stockage disponibles, et de la durée d'apprentissage. "Le volume de paramètres correspond à la profondeur d'intelligence du modèle. Plus on aura de paramètres plus le data set pourra être important, mais plus on aura d'équations mathématiques à résoudre et donc de ressources machine à solliciter", résume Guillaume Gerard. "Par ailleurs, le volume de paramètres fait aussi grimper la capacité de calcul nécessaire pour l'inférence. Si demain sort un modèle de 100 000 milliards de paramètres, il sera certes très puissant, mais il sera impossible à exécuter sur le terrain car trop coûteux en termes de puissance machine."

Pour Stéphane Roder, la tendance en matière de modèles de fondation va évoluer en faveur des SLM (pour small language model). "En juillet 2023, Microsoft à démontrer à travers Phi-2 qu'il était possible d'entraîner un modèle de fondation spécialisé dans le codage en 14 jours sur 96 GPU A100 (ce qui revient à un coût d'environ 32 000 euros en puissance machine, ndlr)", souligne le CEO et cofondateur du cabinet de conseil français AI Builders. "Ce modèle se limitant à 2,7 milliards de paramètres, il demeure de facto beaucoup moins onéreux à déployer."

Pour le CEO d'AI Builders, développer un modèle de fondation massif et généraliste n'a aucun sens compte-tenu du prix nécessaire pour le faire tourner. "C'est comme si on prenait un camion de 38 tonnes pour déplacer un vélo", compare l'intéressé. D'où l'idée de développer des modèles de fondation de petite taille répondant à des objectifs précis. "Au lieu de partir sur 175 milliards de paramètres, ils pourraient se limiter à quelques milliards chacun, soit une configuration beaucoup moins gourmande en ressources à l'inférence. Ce qui, au final, permettra d'équilibrer les coûts lors de l'exécution", complète Stéphane Roder. Dans la logique de l'App Store dans le domaine des applications mobiles, l'idée serait de proposer une marketplace de SML que les utilisateurs pourraient télécharger sur leur machine pour répondre à tels ou tels besoins : synthèse, génération de contenu juridique, gestion de factures...

En revanche, l'entrainement d'un SLM implique un gros travail de préparation en amont autour du data set d'apprentissage. "Il nécessite de générer des data d'entrainement didactiques et pédagogiques", précise Stéphane Roder. "Pour preuve : pour développer Phi-2, Microsoft n'a pas hésité à utiliser GPT-4 pour constituer une partie du data set d'entrainement sous forme de données synthétiques.

Prendre en compte un nouveau langage

Créer un modèle de fondation (que ce soit un LLM ou un SLM) peut être pertinent quand on s'attend à des résultats formulés de manière très spécifiques, dans un jargon professionnel particulier par exemple ou un style de langage donné. "Typiquement, il pourra s'agir de générer la réponse dans un format informatique, par exemple le Json, pour pouvoir réinjecter le résultat dans un système tiers", commente Guillaume Gerard. "Partant de là, on va réentrainer un modèle pour lui ajouter ce comportement. Ce qui se révélera plus performant que de gérer cette ontologie sous forme de prompts en y injectant systématiquement le vocabulaire et le dictionnaire à traiter."

En revanche pour ajouter de la connaissance à un modèle existant, on pourra partir sur une architecture de type Rag (pour retrieval-augmented generation). Une technique qui permet d'aligner la puissance des assistants intelligents et des moteurs de LLM ou de SLM sous-jacents sur les besoins de contextualisation des utilisateurs. Sans avoir à réaliser de réentrainement.