Un retour d'expérience sur le fine tuning de modèles pour améliorer les performances sur un cas d'usage d'extraction de données structurées.
Les modèles fine tuné offrent de meilleures performances que GPT-4o !
Ici le processus de fine tuning a permis au modèle d'augmenter les poids lui permettant de "comprendre" ou étaient les données à extraire.
C'est intéressant mais compliqué à mettre en place entre la constitution du jeu de données et l'évaluation des modèles fine tuné.
Les résultats sont quand même très encourageant, je pense qu'il va falloir de plus en plus considérer le fine tuning pour certains cas d'usages.
Les poursuites judiciaires engagées contre GitHub pour violation de copyright par Copilot ont été abandonnées par les juges.
GitHub modifie légèrement les exemples de code par rapport aux sources originelles et c'est entre autre cette raison qui a convaincu les juges.
Un article de recherche assez impressionnant d’Anthropic, ils ont cartographié l’activation des “neurones” du LLM.
Cela me fait beaucoup penser à l’IRM qui permet de repérer quels sont les zones du cerveau qui s’activent pour une tâche ou à l’évocation d’un concept.
De la même manière, ils ont observé l’activation des “neurones” du LLM lors de la génération afin de repérer quelles zones encodaient les concepts.
C’est une grande avancée dans le domaine de l'explicabilité qui est cruciale pour comprendre le fonctionnement interne des réseaux de neurones informatiques.
OpenAI est arrivé à un tel niveau de qualité dans les réponses faites par ses modèles qu’il est maintenant difficile pour les évaluateurs humains de choisir une meilleur réponse dans leurs processus de Reinforcement Learning (RLHF).
Ils ont donc fine-tuné un modèle (aussi par RLHF) pour aider les évaluateurs à discerner des erreurs ou améliorations.
Le modèle se trompe souvent mais cela améliore quand même de 60% la qualité de l’évaluation.
C’est un très bon exemple de “copilot” IA ou la collaboration entre IA et humain donne de meilleurs résultats la ou l’utilisation de l’IA seule n’aurait pas été possible car trop d’erreurs.
Un clone de Perplexity à vocation pédagogique pour comprendre et apprendre les différents concepts du moteur de recherche augmenté par IA.
Techno: Next.js, Vercel AI SDK, Mistral, Langchain.js, Serper et Brave API (search), OpenAI Embeddings
OpenAI propose une API de RAG sur étagère (c’est en bêta encore)
Concrètement ça permet d’ingérer des documents dans une base de données vectorielle et de faire un RAG en très peu de code.
Il n’y a pas beaucoup de contrôle sur les différentes étapes, par exemple le chunking c’est uniquement chunking simple avec overlap, mais c’est très pratique pour faire un POC rapide par exemple.
Supermaven propose un assistant code comme Copilot.
Supermaven possède so propre modèle (Babble) et se démarque sur plusieurs points:
- Fenêtre de 1 millions de token
- Latence de 250 ms au lieu de 800ms pour Copilot
- Prédiction à chaque frappe du clavier
Ils ont testé le modèle sur des benchmark de type “needle in a haystack” et il est capable de retrouver correctement les informations même dans 1 millions de tokens !
Je l’utilise depuis quelques semaines et c’est un sérieux concurrent à Copilot.
Certaines choses sont néanmoins moins bien, par exemple Supermaven raisonne beaucoup moins bien que Copilot (GPT-3.5 ou GPT-4).
LiveBench est un agrégateur des différents benchmark à destination des LLMs.
Il propose un score qui correspond à la moyenne sur les différents benchmark qui existent.
Afin d’éviter la “contamination” (=triche), c’est à dire que les modèles soient entrainer avec les réponses des benchmark, ils utilisent de nouvelles questions chaque mois.
C’est aujourd’hui Claude 3.5 Sonnet qui tiens la première place avec 61% vs 55% pour GPT-4o.
Le premier modèle Open Source est Mistral Large à la 12e place du classement avec 39%.
Github permet maintenant de coder des extensions à Github Copilot.
Concrètement, il est possible d'utiliser les modèles utilisés par Copilot et de créer des assistants spécialisés que l'on peut ensuite solliciter dans le chat.
Il y a deux API:
- Chat API: permet de s'intégrer dans le chat de Copilot
- Language API: permet de faire des requêtes aux modèles basés sur GPT-3.5 et GPT-4 (le contexte maximum est de 4000 tokens)
Par exemple, l'assistant @stripe est capable d'aider un développeur à développer et debuguer une intégration Slack.
J'imagine que derrière, il y a un RAG avec la documentation à jour de Stripe.
C'est la porte ouverte à la création d'un écosystème, très bonne initiative de la part de Github à un moment ou la concurrence sur les assistant de code est rude (Supermaven par exemple)
Scaleway propose une offre d'inférence managé avec les modèles de Mistral (aussi LlaMa 3 et quelques autres).
Le prix dépend du GPU, c'est 0.93€/h sur des L4 (670€/mois) et 3.40€/h sur des H100 (2482€/mois)
Les plus gros modèles (LlaMa 3 et Mistral 8x7b) nécessitent des H100.
A noter qu'ils développent aussi une Generative API pour proposer de l'inférence à la demande comme sur l'API d'OpenAI (c'est encore en beta)
Inflection 2.5 est un modèle aux performances comparables à GPT-4.
Pour le CEO de la branche IA de Microsoft, tous le contenu sur internet est libre de droits et ils peuvent donc l'utiliser pour entrainer leurs modèles.
Malgré le lobbyisme de Microsoft pour nous faire croire qu'ils sont du bon côté, on continue d'entrevoir leur vrai visage à des moments.
Un papier scientifique qui explique une méthode pour faire tourner un LLM sans la multiplication des matrices.
En gros ça signifie qu'on aurait pas besoin de l'acceleration GPU pour faire tourner des LLMs mais qu'on pourrait faire ça sur des CPU standard que tout le monde a déjà.
Florence 2 est un modèle de reconnaissance d'image développé par Microsoft et disponible en open source.
Il est disponible en plusieurs versions et reste assez petit avec moins d'un milliard de paramètres.
Il performe mieux que les modèles actuels comme Flamingo bien qu'il soit 400x plus petit que celui-ci !
A priori c'est la qualité de la donnée d'entraînement qui permet ces performances avec 126 millions d'images et 5.4 milliards d'annotations utilisées.
Même le papier de recherche est Open Source, c'est bizarre de voir Microsoft faire ce qu'est sensé faire OpenAI 🙄
Les détails d'une méthode qui allie un RAG à des comportements d'Agent.
Leur benchmark est une optimisation de flux financiers et logistique à réaliser en interrogeant de la donnée dans une base relationnelle.
Concrètement, un plan des données nécessaires et de leurs relations est établie en amont puis les différentes requêtes sont exécutées.
Si des données sont manquantes, un nouveau plan peut être établie.
Ils affichent des résultats jusqu'à 2 fois meilleurs (60%) qu'un RAG simple sur le benchmark qu'ils ont créé.
Donner la représentation interne de la base de connaissance au modèle pour lui permettre de créer ses propres requêtes est une piste intéressante que j'avais déjà envisagé (mais repoussé faute de structuration correcte dans notre base de connaissances à l'époque)
Une étude sur les capacités des modèles ayant de grandes fenêtres de contexte à réaliser des tâches de type RAG.
Il apparaît que les modèles sont autant capable qu'un RAG lorsque l'on met tous les documents dans leur fenêtre de contexte.
A première vue, on pourrait se dire que les RAG sont obsolètes mais:
- le nombre de tokens consommé est de 10 à 100x plus élevé
- même 2 millions de tokens peuvent s'avérer insuffisant pour une grande base de connaissances
En général, les modèles se débrouillent aussi mieux lorsque l'on limite le nombre d'informations présentes dans leur prompt et sur des cas d'usages de raisonnement comme en SQL, cela peut améliorer les performances.
Un travail impressionnant de reverse engineering sur le fonctionnement de l'extension Github Copilot.
Dans la partie sur le prompt engineering, on apprend notamment qu'un "token budget" est alloué à chaque prompt et que des chunks de documents potentiellement pertinents pour la génération sont ajoutés au prompt en fonction de différents scores.
La partie appel au modèle contient toutes les règles pour déclencher le modèle au meilleur moment. (par exemple juste après avoir écrit un caractère espace).
Surtout, il y a un contextual filter score qui est calculé à partir d'un simple modèle de régression local afin de déterminer si cela vaut la peine d'appeler le modèle distant.
Finalement pour la télémétrie, le point principal est un check fait par l'extension à différents intervalles (jusqu'à plusieurs minutes) pour vérifier si le code suggéré est toujours dans le code.
Bref, un très gros travail a été fait et est disponible sur le repo copilot-explorer.
Depuis cela a certainement évolué (par exemple l'utilisation de GPT-4 au lieu de Codex) car ce travail a plus d'un an maintenant.
Supermaven est un concurrent de Copilot pour la génération de code dans l'IDE des développeurs.
C'est le créateur de Tabnine, qui propose ce genre de solutions depuis 2018 (!), qui a développé Supermaven.
Leur parti pris c'est d'entrainer des modèles plus petits et plus spécialisés que GPT-4 pour pouvoir les utiliser virtuellement à chaque lettre écrite.
Ils ont donc développé leur propre solution en utilisant un modèle entrainé par leur soins:
- fenêtre de contexte de 300 000 tokens
- utilisation de la majorité du code d'un repo pour la suggestion
- latence faible (250ms annoncées vs ~800 pour Copilot)
Pour moi, des insights donné le plus intéressant est leur utilisation des séquences d'éditions plutôt que des fichiers. C'est à dire qu'ils considèrent l'enchainement des éditions faites par l'utilisateur (renommer des variables, écrire 2 lignes, supprimer 1 ligne, etc)
Je l'ai essayé et même en version gratuite c'est bluffant car les complétions sont instantanés et d'une qualité comparable à Copilot.
Koyeb est un cloud serverless assez moderne avec un scalling automatique en fonction de pleins de paramètres (RPS, active connections, latence, etc)
Ils proposent maintenant des GPU avec une facturation à la seconde !
C'est super pour l'inférence avec des modèles Open Source. Que ce soit des petits modèles sur un GPU à 0.5$/h ou un LlaMa 3 sur un H100 à 3.30$/h.
La dernière version de Claude serait le premier modèle à battre un modèle d'OpenAI.
Sur un benchmark de raisonnement par exemple, Claude 3.5 Sonnet fait 59% vs 53% pour GPT-4o.
Le million de token est à 3$ vs 5$ pour GPT-4o et ma fenêtre de contexte est de 200K tokens vs 128 pour GPT-4o.
Le modèle possède également des capacités d'analyse image.
Bref, un sérieux concurrent pour OpenAI !