Un guide très complet sur le fine tuning de modèles.
La méthode décrite dans ce guide se nomme PEFT (Parameter Efficient Fine-Tuning) et permet de fine tuné uniquement un certain nombres de paramètres d'un modèle.
Cela permet de conserver les performances d'origines sur la majorité des cas (e.g. la compréhension de la langue et les connaissances d'entrainement) tout en améliorant les performances sur une tâche précise.
C'est ce genre de méthode qui est très populaire dans les modèles d'image pour contrôler la génération et avoir des images du même style.
Langfuse est un outil Open Source très utile pour l'observabilité des applications GenAI avec un système de trace très réussi qui permet d'analyser le comportement des applications en production. ((On en parlait déjà il y a quelque temps](https://links.aschen.tech/shaare/k-yB-Q))
Ils ont sorti Langfuse v2 avec notamment une fonctionnalité très attendu: l'évaluation automatique
Il est maintenant possible de définir des "evaluator" qui utilisent un LLM pour évaluer la qualité d'une réponse ayant été générée.
Par exemple, on peut utilise un evaluator pour noter automatiquement de manière négative les interactions ou un RAG n'a pas réussi à répondre à la question de l'utilisateur.
Nous utilisons Langfuse pour tous nos usages de GenAI et je dois dire que c'est un franc succès car cela permet aux équipes de Prompt Engineer de superviser ce qu'ils déploient en production et l'évaluation automatique va nous permettre de passer à la vitesse supérieur.
Ce modèle est une version fine tuné de LlaMa 3 pour le domaine médical.
Il surpasse GPT-4 sur les benchmark portant sur des dataset du domaine médical.
Encore une fois un signe que le fine tuning a de l'avenir pour créer des LLMs spécialisés.
Un cours de Stanford sur les transformers.
Un article que j'ai écrit à propos des tokens pour comprendre la manière dont ils découpent le texte avant d'être envoyé au LLM.
Microsoft sort Phi-3 et tente de changer de paradigme avec un "Small Language Model" (SLM) vs les traditionnels LLMs.
SLM car une des version de Phi-3 ne possède "que" 4 milliards de paramètres, c'est 2 fois moins que LlaMa-3 8B ou Mistral 7B (le "B" signifie "billions").
Cette version Phi-3-mini surpasserait les modèles LlaMa-3 8B et Mistral 7B.
Un petit modèle c'est un modèle moins gourmand en ressources et donc plus rapide sur une grosse carte graphique de datacenter mais aussi possible sur du matériel de particulier.
Deux autres versions sont aussi disponibles: Phi-3-small (7B) et Phi-3-medium (14B).
Tous les modèles ont une fenêtre de contexte de 128K tokens.
Un moteur d'inférence LLM qui fonctionne avec CPU et GPU.
C'est utilisable depuis du code python mais aussi en API HTTP.
Ça supporte la plupart des modèles Open Source:
- Mistral 7B et 8x7B
- LlaMa 2 et 3
- Phi 2 et 3
Pour de la production je conseille d'utiliser le moteur d'inférence de Hugging Face car c'est scalable et surtout maintenu mais c'est une alternative plus portable à garder sous le coude.
Une IA qui appel et répond au téléphone.
C'est assez incroyable, on peut mettre son numéro de téléphone et l'IA nous appelle.
Je lui ait demandé ce qu'elle pensait de mon entreprise par exemple et on a eu une conversation sur le futur de e-learning.
L'État français a fine tuné des modèles Open Source (LlaMa 2 et Mistral 7b) avec les données des procédures administratives afin de répondre correctement aux questions des utilisateurs.
C'est un choix curieux de fine tune les modèles plutôt que de faire un RAG car du coup la mise à jour de la connaissances est très difficile (impossible sans ré-entrainer)
Je me demande combien ça a coûté pour le fine tuning.
Une solution clé en main complète autour des LLMs:
- Assistant IA en NoCode
- Génération de documents
- Traduction
- Ingestion de sources externes (fichier, web, Notion)
- RAG intégré
Il y a aussi une version Open Source.
Ça fait un peu usine à gaz mais ça à le mérite d'être complet et rapide à mettre en place.
2 modèles de re-ranking open source ont été release par Jina.
Pour rappel, le re-ranking est une méthode supplémentaire utilisée pour noter la pertinence de documents retrouvés dans la partie retrieval d'un RAG.
Ce sont de plus petits modèles de langue qui coûtent beaucoup moins cher à faire fonctionner et qui donne une note de similarité supplémentaire en plus de la simple recherche vectorielle.
Ça me rappelle le temps des modèles comme BERT par exemple.
Une collection de datasets pour évaluer un RAG est disponible chez LlaMa Hub.
Par exemple, ce dataset contient 44 questions et réponses basées sur les articles de Paul Graham. (Pas forcément le meilleur car il y a de fortes chances que ces articles soient dans les données d'entraînement de votre LLM)
Les évaluations se font entre autre avec le module LabelledRagDataset de LlaMaIndex.
On peut aussi créer ses propres datasets bien sûr.
Un papier de recherche sur une méthode pour avoir une fenêtre de contexte virtuellement infinie.
Le mécanisme d'attention de Transformers présente une complexité quadratique (sous la forme O(na)) la fois en termes d'empreinte mémoire et de temps de calcul.
Leur méthode propose de réduire cette complexité en utilisant une une "mémoire compressée".
Dans les benchmarks, leur modèle utilise seulement 1.6Mo de mémoire vs 50 à 180Mo que des modèle Transformer classique ayant le même nombre de paramètre (et les perfs sont meilleures)
Cela questionne l'utilisation des RAG sans toutefois les remettre en question entièrement.
-
un contexte infini ne fait pas tout car on a remarqué que même avec 128K de contexte dans GPT-4, les résultats sont quand même meilleurs lorsque les prompts sont moins longs.
-
le coût de poser 128K tokens dans un prompt n'est pas le même que de sélectionner attentivement et de poser seulement les 4K tokens intéressants
PS: j'aime beaucoup ce format HTML des papiers de recherche, j'avoue ne jamais avoir apprécié le format LaTeX standard
Une méta-étude sur l'avancement de la recherche sur une architecture alternative à celle des Transformers.
State Space Model (SSM) est une architecture qui se veut plus économe en terme de puissance de calcul nécessaire pour l'entrainement et la génération.
Pour l'instant on en est toujours au début et rien de concrètement utilisable au vu des faibles performances mais c'est bien de garder un oeil la dessus pour le futur.
Une méta-étude sur les RAG.
Au programme les techniques pour chaque étape:
- pre-retrieval: query extension, data modification
- retrieval
- post-retrieval: re-ranking, filtering
- generation
- evaluation
RAGAS est un framework pour évaluer les RAG.
Il propose d'évaluer les deux aspects importants du RAG, à savoir:
- le retrieval: le RAG est-il capable de retrouver les documents pertinents?
- la génération: le RAG est-il capable de générer une réponse à la question?
Il y a plusieurs évaluateurs de disponible pour évaluer ces deux critères.
Pour tout ce qui est évaluation de la réponse à la question, RAGAS propose d'utiliser GPT4.
A noter aussi, le framework ARES
OpenAI a ajouté l'inpainting dans ChatGPT Plus.
On peut maintenant sélectionner une zone et indiquer à ChatGPT de quelle manière on souhaiterait la modifier
OpenAI a sorti une mise à jour de son API pour créer des Assistants.
On peut notamment utiliser jusqu'à 10000 fichiers dans leur RAG intégré et streamer les réponses.
Les Assistants permettent de développer très rapidement des POC d'Agents spécialisés en entreprise mais le côté boîte noir finit par se payer comme pour tout produit complètement fermé.
FineWeb est un dataset crawlé depuis internet et épuré au maximum des contenus générés par d'autres IA.
Il contient 15 000 milliards de tokens et peut être utilisé pour entraîner des LLM depuis zéro.
Note: à priori vous ne voulez pas faire ça vous même mais plutôt fine tuner un modèle existant
Je ne partage pas souvent des podcast mais dans celui-ci on en apprend un peu plus sur l'IA Act (à partir de 23 min)
Notamment, le texte originel n'était pas pensé pour la GenAI et il sera surement amendé dans les prochains mois.