Build with Gemini : Developers Summit
J’ai eu le plaisir d’être invité au Build with Gemini : Developers Summit au Grand REX proposé par Google Cloud avec Jean-Paul Da Cunha. Nous avons représenté Inetum.
Comme vous pouvez vous en douter, cet événement était très fortement orienté AI.
Nous avons pu suivre les conférences suivantes :
- Entraîner votre propre modèle de reconnaissance de cartes Pokémons (avec #VertexAI et #AlloyDB)
- Elastic & Google Cloud : L’IA générative au service du search, de l’observabilité et de la sécurité
- Discuter avec vos données : Créer un chatbot pour jeux de société (avec #AlloyDB, #Gemini et #LangChain)
- Techniques avancées pour le Retrieval Augmented Generation (#RAG)
- Passer des API gateways au AI gateways
Le RAG et ses techniques avancées
J’ai particulièrement été sensible à l’approche RAG et ses techniques avancées.
Le RAG permet de pallier à un certain nombre de problèmes auxquels les IA génératives peuvent être confrontées (limite des #LLMs) :
- cut-off-date : Les données connues des LLMs ont une date limite. Par exemple, si je demande à une IA de me donner le nom de premier ministre Français actuel, je ne suis pas certain d’avoir une réponse à jour ;-). Les techniques de RAG vont permettre de fournir une base de connaissance plus à jour.
- no knowledge about your data : La précision des résultats n’est pas toujours terrible surtout quand le LLM n’a pas accès à la base de connaissance d’une entreprise. Le RAG va permettre à l’IA d’accéder à la documentation d’une entreprise.
- can produce hallucinations : Les LLMs peuvent imaginer des réponses car ils ne savent pas toujours qu’ils n’ont pas l’information donc ils inventent. Les techniques de RAG vont améliorer la précision des résultats.
Comment créer un système de RAG
Sans entrer trop loin dans la technique, pour créer un système de RAG, il faut suivre les deux grandes étapes suivantes :
1. Indexation des documents
Il faut d’abord indexer les documents de l’entreprise. Cette opération consiste à extraire les éléments importants des documents en éliminant le bruit, les éléments liés au format des fichiers utilisés (comme les balises html, les éléments binaires, …). On ne garde seulement ce qui a du sens. Ces éléments sont ensuite transformés en vecteur. Un vecteur représente une dimension. En base vectorielle, une carte Pokemon est représentée par plusieurs centaines de dimensions (notre monde en a seulement trois : la hauteur, la largeur et la profondeur :-) )
2. La recherche (retrieval)
Vous allez d’abord faire une recherche sémantique sur la base documentaire indexée précédemment. Le principe consiste à faire une recherche sur le sens (à opposer à une recherche traditionnelle par mot clé ou full text). Au niveau technique, cela revient à comparer des vecteurs (recherche par cosinus).
Le résultat de cette recherche est ensuite proposé au LLM avec sa question. Le travail de l’IA est de proposer une réponse compréhensible pour nous humain en mixant les résultats de la recherche sémantique.
Les limites du RAG
Mais le RAG a aussi des limites !
Dans les techniques avancées et mis en relief par les speakers du summit, j’ai noté :
-
qu’il fallait vraiment adapter ses techniques d’indexation aux types de documents pour améliorer la pertinence des résultats (DocumentBySentence — chunks par phrase —, Hypothetical Questions — l’idée est d’imaginer les questions à partir d’un document pour l’indexer). Sur le principe, il faut tester plusieurs models LLM spécialisés dans l’indexation des documents et trouver le meilleur pour la base documentaire à indexer.
-
qu’il fallait également travailler sur la restitution (retrieval) en jouant sur la compression des requêtes, le découpage des requêtes en plus petites lorsque la requête initiale est trop compliquée pour le LLM…
Mon expérience personnelle
Les talks du summit m’ont particulièrement parlé car j’ai pu travailler sur des projets personnels où j’ai eu l’occasion de mettre en place un RAG. J’ai utilisé Node.js, ChromaDB et Mistral AI. Ma base de connaissance étant mes notes au format Markdown. C’est encore un travail en cours :-). Dans les dernières versions, je me suis heurté à des soucis de pertinence des réponses.
Grâce à ce projet de veille, j’ai d’autant plus apprécié les talks du summit.
Conclusion
Voilà, je repars heureux d’avoir participé à cet événement. Je reviens avec plein de choses à tester que je pourrais proposer et mettre en œuvre chez mes clients !