Go back

Développer des projets IA - Comprendre les RAG

65m 10s

Développer des projets IA - Comprendre les RAG

Dans cet épisode de Double Slash, les animateurs présentent le RAG (Retrieval Augmented Generation), une technologie qui combine recherche documentaire et génération de texte par LLM. Le RAG permet de fournir des réponses contextualisées à partir de données propriétaires, tout en limitant les hallucinations et en spécialisant un modèle sans entraînement coûteux. Le processus technique comprend plusieurs étapes : d'abord, les documents (PDF, pages web, etc.) sont découpés en morceaux (chunking), puis transformés en vecteurs via un modèle d'embedding, stockés dans une base de données vectorielle. Lors d'une requête, celle-ci est également convertie en vecteur pour une recherche sémantique, et les résultats pertinents sont fournis au LLM comme contexte pour générer une réponse. Les animateurs soulignent que la qualité du RAG dépend fortement du chunking, qui doit être adapté au contenu pour ne pas perdre le sens. Il n'existe pas de méthode universelle ; des techniques comme le découpage par paragraphe, l'overlap, ou l'utilisation de modèles pour optimiser le texte sont explorées. Le choix du modèle d'embedding est également crucial pour une bonne compréhension sémantique. En conclusion, le RAG représente un fort potentiel business pour les entreprises, permettant de créer des chatbots spécialisés (RH, technique, juridique) sans exposer de données sensibles, mais sa mise en œuvre technique reste exigeante.

Transcription

11602 Words, 63219 Characters

French
Bonjour à tous, bienvenue sur ce nouvel épisode de Double Slash. Bonjour les Dev. Alors, pour cette fois, c'est pas un épisode de News. On va faire un épisode spécial dans la ligne A2. On avait déjà fait un épisode en janvier si je ne me trompe pas sur les lias. Et donc voilà, deuxième épisode de l'année sur l'IA. On va parler des rags et puis comme d'habitude, nous sommes avec Alex. Salut Alex. Salut Patrick. Salut tout le monde. Super enthousiasme à l'idée de parler de rags. Je pense qu'il y a. Alors, au-delà de la dimension technologique, je pense qu'il y a un vrai besoin métier et ça peut apporter beaucoup de balleurs au client final et donc au final. Et je pense qu'il y a un petit billet à se faire et donc c'est une techno qui me parece super intéressante à utiliser et à maîtriser pour. Potentiellement, en fait, faire du business avec ça. Oui, c'est clair. On est connu vu et c'est vrai que bon, même si il y a le rag existe depuis quelques temps quand même. Et encore les entreprises, ils ne sont pas vraiment dedans. Donc, il regarde de loin tout ça, mais à un moment donné, ça va se déclencher et c'est vrai qu'il faudrait être un petit peu prêt pour répondre à la demande. Même si actuellement, on parle du MCP qui est quand même un petit peu différent parce que c'est pas assez moins bordé que le rag. Mais le rag, c'est un business qui va sourire dans quelques temps avec toutes les sociétés qui vont voir un peu l'intérêt du truc et qui vont peut-être faire des demandes pour développer des rags. Parfait, donc on dit le mot rag depuis tout à l'heure, on dit que c'est super bien. Nous, on est complètement IP par ça, technologiquement parlant, mais businessment parlant aussi. On commence à rentrer dans le livre du sujet, clairement un rag, c'est un acronym. Mais qu'est-ce que ça veut dire? Alors, acte et retrieval augmentive generation, donc si j'avais entendu un canal d'y en aujourd'hui, c'était un gé, c'était. J'ai oublié comment il l'avait présenté, c'était pas mal. C'est juste une génération lLM mais avec du contexte, par rapport à un contexte qu'on a retrouvé dans une base de données documentaire et puis, donc on lui donne aux lLM, il va digérer tout ça et sortir une réponse qui concerne le contexte qu'on lui a redonné. Donc, voilà, les différentes phases. Et ce qu'on pourrait dire que c'est une augmentation de contexte et qu'en fait le lLM n'est juste là uniquement pour verbaliser, utiliser en fait son savoir-faire grammatical, on va dire de construire un texte, de construire, générer des phrases. Par contre, la véracité des informations, elles sont issus de notre base de données avec nos propres documents et donc potentiellement ça peut être fermé, ça peut aussi être quand je dis fermé, ça veut dire on peut éviter d'envoyer nos informations à ChatGPT, parce que. Potentiellement, on sait pas si on peut avoir des lits ou pas, mais potentiellement tout reste chez nous, donc tout notre savoir-faire, toutes nos documents, les documents en peut-être top secrets ou je sais pas quoi, on pourrait les mettre là-dedans et ça ne sort pas de chez nous, mais on utilise en fait le lLM juste pour verbaliser quoi. - Est-ce que c'est un peu pressable? - Ouais, c'est ça le lLM en fait là dans ce chez Mare, va servir uniquement à générer les réponses. On va juste lui donner des trucs et il va générer des réponses, c'est un générateur de réponse en fait. Donc en fait, on va ensuite passer aux avantages du rague, comme ça c'est fait. Premièrement, c'est le contrôle du contexte, parce que comme tu le dis, c'est des données qui nous appartiennent, donc on garde le contrôle dessus et on va juste donner ce qui est nécessaire pour générer le réponse. Il correspond à la requête de utilisateurs. Le deuxième super avantage en fait c'est le par rapport à l'utilisation classique d'un lLM en fait, l'utilisation du rague c'est que ça limite totalement les hallucinations. C'est à dire que vous savez, on vous connaissez tous les problèmes d'allucination, il va générer des réponses, qui n'ont rien à voir, juste pour pas dire qu'il ne sait pas ou. C'est le principe du lLM parce que voilà, il est là pour générer des réponses et assembler des mots. Ça limite complètement, parce qu'on l'it si tu ne trouves pas la réponse dans ce que je te donne en contexte. Tu l'es pas pour voir, je ne peux pas vous répondre. Et généralement ça marche bien, et donc il ne vende pas des réponses. - Voilà, parce que pour le coup, d'autant plus si on a des questions hyper spécifiques et comme on le sait, le lLM c'est large modèle language, ok. Donc c'est pas très très spécifique. Comme par exemple, si on avait des documents hyper technique, je sais pas sous dur, à l'argon, à sous l'eau, par exemple, c'est ultra spécifique. Évidemment que les lLM classiques ont été entraînés sur des jeux de données, on va dire générique et standard, ne va pas avoir de sa réponse là. Donc sur des documents qui sont ultra spécifiques, ultra technique, pour le coup, les possibilités d'allucinations sont faibles. Parce qu'on les a alimentés avec des bonnes. - C'est ça. - Et excellent transition, puisque le troisième point, troisième advantage, c'est qu'on spécialise un modèle, en fait, d'un secteur, donc tu dis, sous dur à l'argon, par exemple, ni perspécilise. Et bien, on le spécialise là-dedans sans avoir besoin d'entraîner, ou quoi que c'est soit. Donc on a lLM qui est capable de répondre à des questions de trait, très pointues, 3 points de tue sur un domaine précis, sans qu'on ait besoin de l'entraîner. - Et du coup, ça peut couter aussi beaucoup beaucoup beaucoup moins cher et qu'il doit. - Ah oui, d'entraîner son propre modèle de ce qui aura l'argon, quoi. - Oui, parce que c'est l'entraînement qui coûte le plus cher de toute façon, donc, jusque l'inférence, donc évidemment oui, ça coûte beaucoup beaucoup moins cher d'avoir. Donc c'est très utile et c'est pour ça qu'il y a déjà des choses qui existent dans tout ce qui est juridique, etc. Donc voilà, qui est très spécialisé dans certains domaines. Et c'est ça l'intéresse vraiment du rag, c'est de spécialiser dans un domaine spécifique. Donc c'est pour ça que les sociétés potentiellement seront intéressés, puisque voilà, des sociétés qui sont spécialisés dans certains domaines vont vouloir avoir. Mais après des fois, c'est même pour l'utilisation en interne de la société, voilà, d'avoir un chatbot qui capable de répondre à des questions techniques sur. Voilà, si on met tient, etc. - Je pense aussi aux RH ou par exemple les politiques de vacances par exemple, ou les politiques de journée congé des enfants malades ou des choses comme ça, on rentre toutes les données, en fait, dans cette base de données qu'on va décrire et potentiellement tous les utilisateurs pourraient avoir un espèce de chatbot pour en fait poser les questions. Voilà, j'ai un enfant malade, qu'est ce que je pourrais avoir, Pimba. Là on sort la politique spécifique de l'entreprise grâce à un rag. C'est des choses qui peuvent être facilement, pas si facile, mais en tout cas qui peuvent être mieux en place et qui peuvent amener en fait beaucoup de valeur pour les employés, clairement. - C'est ça. Et du coup, juste en apparté, le rag, on dit souvent chatbot, mais chatbot, ça plique pas uniquement un site web ou une interface web, ça peut être aussi dans un team, dans tous ces trucs de chat, qu'on a en interne, etc. On branche le système et après les gens posent à la question comme si c'était une personne de l'entreprise. - Toutes les outils de message réinterne. - Oui, carrément. - À la limite, ce qu'on peut faire, vu qu'on me demande à présenter un petit peu le rag, ce qu'on peut faire, c'est essayer de comprendre le mécanisme, qu'est ce qui se passe techniquement, quels sont les étapes, en fait, du requête, quand on va prendre l'exemple d'un chatbot, voilà, le chatbot il a besoin de répondre à des questions, qu'est ce qui se passe et à la limite, on a un petit schéma qui vient assez bien expliquer les choses, à limite ce que je te propose, on prend vraiment toutes les étapes une par une. Et comme ça, on comprend, en fait, étap et étape, enfin, étape par étape et surtout qu'elle est l'impact technologique pour nous, qu'est ce qu'on va être obligé de mettre en place? - Oui, c'est ça. - Après, on va détailler le long de l'épisode, pour résumer simplement, on a une base de documents, on a ça peut être des PDFs, ça peut être un site web, ça peut être des pages web, ça peut être différentes choses. C'est document, on va les passer, on va les chunker, on va les découper en morceaux, parce que évidemment les documents sont beaucoup trop gros et pour avoir plus de précision par rapport au vecteur, on va les réduire et on va passer avec tous ces morceaux de textes dans un modèle d'embeding, donc il y en a plein. Lui, il va s'occuper de transformer ce texte en vecteur, donc c'est des suites de numéro, voilà, c'est des trucs invisibles et ça, on va le mettre dans une base de données vectorielles. Voilà, tous ces morceaux et ensuite, ça nous permettra, en fait, de rechercher dans cette base de données vectorielles, est-ce qu'il y a des bases de données vectorielles, soit assez efficace pour retrouver des mots, etc., etc., etc., etc. Voilà, c'est tout la recherche, on appelle cementique, c'est-à-dire pédale de vélo, on va utiliser le mot braqué, le mot vélo, le mot celle de vélo, le mot guidon, tout ça, ça fait partie du champ cementique et donc potentiellement, quand je dis des chaussettes thermiques ou des bottillons ou des chaussures néoprennes, potentiellement, en fait, le mot en fait, être en capacité de faire le rapprochement entre tous ces mots-là. Alors que si on utilise un moteur de recherche classique sur des mots clés, si le mot clé n'apparaît pas, on ne va pas pouvoir le faire sortir, que avec justement cette recherche cémantique, on va pouvoir faire des aggregations donc c'est bien plus intelligent. On y reviendra, vu que je t'apprécie un peu plus le vecteur comment ça fonctionne, mais c'est ça. Et ensuite une fois, alors ça c'est tout ce qu'on fait, on a mon, on va préparer la base de c'est vraiment un travail qu'on fait au début. Et ensuite, on va brancher ça sur l'élève et donc une personne va poser une question dans un chat. Oui. Je cherche brude vélo. On va aller chercher dans la base vectorielle route, tout ce qui est un rapport avec la roue vélo. Par contre, attend, Patrick, cette. Non, non, non. Mais je veux juste être super clair là-dessus pour être sûr que j'ai bien compris, c'est la requête, en fait. Elle va passer, en fait, dans le modèle de NBDing, ça veut dire que la question que la personne a posée, elle va être transformée aussi en vector et après, ça va justement faire la recherche pour aller chercher, en fait, tous les éléments qui sont propres à cette requête là. Mais la requête est les transformer en NBDing, ce qui fait que toutes les requêtes, en fait, ne sont qu'une agglomération de vector, en fait. C'est ça. Ouais, c'est ça. Ok. Donc on fait ça, une fois qu'on a donc retrouvé les éléments qui correspondent le texte qui va donc emmener un envoyé de vector, du texte, on va tout simplement construire une requête au LLM. Donc n'importe lequel, ça peut être au pénays de la GPD n'importe quoi. J'ai pété 4 ou ou tout. On va construire le modèle en disant en lui posant donc on va faire un prompt avec différentes choses en lui disant, voici le contexte, répond par rapport à ce contexte à la question de l'utilisateur. Et voilà. Et donc en général, il prend tout ce qu'il a dans le prompt avec le contexte, etc. Il génère une réponse, il a renvoie. Mais généralement, c'est assez satisfaisant. Si vous avez bien fait votre travail, la réponse devrait plaire en adéquation avec la question. Ok. Mais quand tu dis, il faut bien faire le travail. Ouais. Clairement, là, ce qu'on fait, on vient juste de cabler différentes techniques. Donc en quoi, le cablage va changer quelque chose? Alors, moi, je pensais que c'était plutôt simple. Parce que finalement, c'est vrai que sur le papier, comme ça, tu dis bon, tu as une inquiétation, tu as expliqué quoi. En bedding modèle, je mets dans la vector, je vais chercher le truc. Ouais, c'est pas compliqué. C'est tout de qu'on fait, on va chercher dans une base de données, affiché des textes. Et maintenant, c'est beaucoup plus compliqué que ça. C'est assez technique, finalement. Et la première partie, on va parler d'une première partie tout ce que tu as, c'est quasiment la partie la plus importante, en fait, du rague. Le chunk, de cette partie-là, va dépendre les résultats de recherche dans la base vectorielle. Et ensuite, si le contenu de recherche correspond vraiment à la requête, c'est là où la réponse du LLM va être encore plus en la décoation. Donc, la partie du chunk, tout ce qui est de découpage d'occuement est vraiment primordial dans le rague, en fait. Vraiment, vraiment. Ok. Et, pour. Est-ce qu'on pourrait prendre, par exemple, l'exemple, on doit prendre un livre, on doit l'intégrer, en fait, dans notre base de données vectorielles. Est-ce qu'on va prendre des chapitres, est-ce qu'on va prendre des pages, est-ce qu'on va prendre des paragraves, est-ce qu'on va prendre petit-à-petit 2, petit-3, est-ce que à l'intérieur de ces paragraves, on va découper en petites phrases, tout ça, en fait, va avoir vachement d'importance, quoi. C'est ça? Oui, ça a beaucoup d'importance. Et il faut savoir qu'en fait, il n'y a pas de règle universelle. En fait, à chaque fois, il faut s'adapter au contenu. Ok. Le truc, c'est de ne pas perdre le sens des phrases, des textes, en fait. En fait, en fonction de comment tu vas le découper, tu perds le sens et donc le modèle d'embeding va faire l'embeding, mais il va perdre vraiment le sens de tes data. Donc, en fait, c'est vraiment une adaptation à chaque fois officier ou document, etc. Donc, il n'y a pas de règle universelle. En tout cas, pour l'instant, moi, j'en ai testé plein et à chaque fois, il faut s'adapter au contenu et on ne peut pas dire à chaque fois, je vais découper en 200 auquien, etc., et c'est réglé. En fait, à chaque fois, tu t'as changé. Ok. Énormément de technique, en fait. En tout cas, pour l'instant, on n'a pas trouvé la technique qui marche partout, tout le temps, dans tous les contextes, quoi. Non. En tout cas, après, je ne suis pas un expert, expert, expert, mais j'ai pas mal fait de recherche, etc. J'ai pas mal fait le de test, aussi, et c'est vrai que, non, pour l'instant, il n'y a pas de technique universelle. Moi, il y a une technique dernièrement, alors j'avance un peu, mais une technique que j'aime bien, c'est de découper un document en plusieurs morceaux, mais de garder le document parent. Donc, tu vas chercher dans la base vectorielle des éléments enfants. Et après, tu récupères par rapport à ces éléments enfants qui correspondent à la requête. Tu vas récupérer les éléments parent. Voilà. Et donc, je retrouve le document. Alors ça, ça marche bien. Par exemple, j'ai fait des tests sur des fiches de formation. Ça marche bien parce que les fiches de formation ne sont pas énormes au niveau du contenu. Donc, ça colle. Donc, je peux quand même mettre dans le contenu les fiches de formation qui ne sont pas, il n'y a pas énormément de textes, mais par contre, quand on fait la recherche dans la base vectorielle, ça marche plus facilement. Mais voilà, il y a énormément, énormément de techniques. Et si tu vas sur le web chercher les techniques de check, etc., tu vas tourrer des tests. Et là, c'est le puits, le rabit ou le alice au merveille. Alice au paix des merveilles, vous la tu tombe dans la taille, et c'est infinie. Ok. Et donc, ce système là, c'est ce que tu as appelé le chunkage, les chunkers. On vient découper le texte. Et pour ça, on a différents outils qui nous permettent de choisir la longueur. Le puits, en fait, c'est-à-dire, entre ton premier paragraphe et ton deuxième paragraphe, est-ce que tu vas faire une rupture net où tu vas avoir un espèce de trillage entre les paragraphe et là, ce qu'on voit à l'écran, c'est justement où tu viens rentrer tous ces paramètres là pour avoir plus ou moins de granules maîtris. C'est ça? Oui, alors, tel chunk, c'est basique où tu vas régler la longueur de caractère, où tu peux s'y pliter par paragraphe ou des choses comme ça, et comme tu dis, il y a l'overlap qui permet de garder un petit morceau du paragraphe précédent et un petit morceau du paragraphe suivant pour ne pas perdre le contexte des textes entre eux. Donc, ça, c'est vraiment le truc classique, chunk, basique, bête et méchant par paragraphe, ou par retour à la ligne où tu peux prendre un titre et un paragraphe. Vous avez vraiment tu me mixes ton truc comme tu veux, mais c'est vraiment le truc basique, là, il n'y a pas de réflexion particulière, c'est juste ton découp en morceau. Pour le coup. Ça, tu vois, tu vois, la texte piteur, c'est un truc pour tester différentes techniques, en fonction de la taille, etc. Tu as le cementique aussi, qui n'y a pas de détecter un peu plus de cementique. Et ensuite, il y a les techniques aussi où tu peux utiliser un modèle. Tu vas lui demander, tu vas lui envoyer le texte et tu lui dis, "Babe, découpe-moi en morceau en chunk, que logique ce texte, par exemple." Donc, en fait, tu vas en utiliser. Et ce que là, on n'est pas rentré dans le modèle, un peu exceptionne ou en fait, tu vas utiliser un modèle pour chunker des informations que tu vas envoyer à un autre modèle. C'est ça? Ouais, mais c'est ça, mais c'est hyper important en fait, que ce soit vraiment chunker d'une façon logique. Tu as où tu peux avoir aussi la technique. Il y a une technique aussi, tu vas lui faire, par exemple, c'est un contenu de… Alors, j'ai déjà eu du contenu de mauvaise qualité. Ça arrive sur des sites un peu anciens. Voilà. Tu lui fais réécrire le contenu. Tu lui dis, "Fais-moi un résumé texte ou cligne le mois." On comprend pas. On comprend pas. Ce que l'auteur voulait dire. Est-ce que tu peux expliquer en fait? Voilà, ou optimise-le pour la recherche. Donc voilà, tu peux utiliser des moelles. Il y a des modèles qui existent que tu peux faire tourner en local quand tu utilises du piton. Ils sont capables de se faire en local. Ou sinon, tu peux utiliser des modèles en… Voilà, les tokens, ça ne coûte pas une fortune non plus quand tu utilises des appels et aux pénais, tout ça, tu peux le faire. Donc, il y a vraiment énormément de techniques de chunk. Il y a aussi des services qui te permettent de chunker les PDF, par exemple, les PDF. C'est assez complexe parce que tu sais, il y a beaucoup d'éléments de décoration. Tu vois, les numéros de page, etc. Donc, ça c'est très compliqué à chunker. Donc, il y a aussi des services qui te permettent de découper des PDFs qui ne façon à assez propres, qui vont le nettoyer, etc. C'est très, très, très vaste. Mais c'est parti là, mais j'ai pris maudial. Et pour le coup, toi tu penses qu'il faut vraiment passer un peu de temps là-dessus parce que c'est ce qui va amener la plus grosse valeur ajoutée à tout le système. C'est vraiment la qualité de tes chunk. Ouais, la qualité du traitement du contenu, c'est ce qui va faire découler en fait la qualité de ton rague. Donc, si tu es une bonne qualité de contenu, un monde écoupage, etc., et une bonne insertion A D.B. Tora, des bons résultats au niveau de la D.B. bon contexte et le LLM quand tu défis du contexte qui est capable de formuler des bonnes réponses. Donc premier point clé, la qualité du chunk, est-ce qu'on pourrait dire que le deuxième point clé aussi, ça va être ton modèle d'embeding, c'est-à-dire le modèle qui va te permettre de prendre de la donnée et de le transformer en vector. Oui, ça c'est très important. C'est-à-dire le retour que le modèle d'embeding va comprendre le sens de la phrase, et il va le découper en fonction de ce qui comprend, etc. Donc le modèle d'embeding est super important. Alors, on n'a pas parlé des dimensions encore, il y a beaucoup de dimensions. Par l'autre, de suite, de ce que c'est l'evector, comme ça, on va mieux comprendre. Alors l'evector, en fait, c'est, c'est, il faut le voir comme une grille avec Xigac, en fait, vraiment horizontal vertical. Et pour chaque mot, en fait, il va mettre un point sur cette grille. Donc, par exemple, une chaussure, t'as un point. Et je ne sais pas un pied, imaginons un pied, il va mettre un point. Et forcément, le point pied, chaussure, sera peut-être pas trop éloigné, puisque ça a un lien entre les deux. Par contre, si tu mets un arosoir, la arosoir, le point, ce sera beaucoup plus long. Et en fait, les vecteurs, c'est ça, en fait. C'est des positions dans une grille. Et si ils sont plus ou moins loin, en fait, ça veut dire qu'ils sont liés, ou ils ne sont pas liés, etc. Voilà, en gros, ce que c'est le vecteur, donc c'est une repréditation comme ça, actuel, des éléments dans une grille. Et voilà, chaque. Donc, c'est important, parce que le modèle d'embeding, il va comprendre les mots, etc. C'est là où il va bien les placer ou mal les placer. Et ensuite, il y a un nombre de dimensions, donc il y a des modèles d'embeding qui font peu de dimensions, c'est 250 dimensions, je crois. Et ensuite, sur les modèles OpenAi, par exemple, le texte d'embeding 3, môles, par défaut, il fait 1536 dimensions, donc là, c'est déjà beaucoup plus. Donc plus de points évectoriales pour des mots, donc plus de précisions. Et est-ce que. Après le fait d'avoir plus de dimensions, est-ce que c'est plus précis ou pas spécialement? Normalement, c'est plus précis. Par contre, ça prend beaucoup plus de place dans la base de nez. Donc on en prend, on en prend la réprême, et ça consomme plus de ressources aussi pour faire un cher. Mais voilà, c'est. Donc, il y avait. Après, c'est un coup, mais par exemple, OpenAi, le moins de vecteur, c'est 1536. Et après, le "ombeding 3", large, je crois, c'est 2000, je sais plus combien il est en armée, c'est un beaucoup plus. On peut peut-être montrer en fait le leadboard, en fait, qu'on a sur "Hugging Face". Pour le coup, si on vous de savez pas ce que c'est "Hugging Face", on vous rappelle de aller voir, d'écouter l'épisode précédent où on parle d'IA, et justement, c'est un acteur majeur dans tous les causes systèmes de machine learning et d'IA, de modèle, de dataset et de tout ça. Pour le coup, ils ont une page dédiée, en fait, sur. Présente, en fait, tous les modèles d'embeding et avec plus ou moins une classification, même si je pense que c'est un peu difficile de se retrouver au milieu de tous ces paramètres-là, et de savoir quel est le meilleur pour moi. Alors, ouais, tu fais bien monter le tableau parce que j'ai oublié un truc dans les modèles d'embeding parce que nous, on parle français. En tout cas, le nôtre contenu est souvent français. Et évidemment, c'est très important de prendre un modèle d'embeding multilangual. C'est aussi bien, ça marche pas bien, oui. Oui, carrément. Et est-ce que celui de mistral est optimisé français ou pas du tout? Pas sûr, tu vois, parce que généralement, c'est marqué l'endon de Mithengol. Donc là, c'est pas marqué, donc je pense que non. Ok. Et texte multilangual. Il faut regarder dans les détails. Mais non, après ils sont plus ou moins bons, la plupart, après, ça, c'est des tests automatiques, tout ça. Mais voilà, après, c'est intéressant ce tableau parce que tu as l'utilisation de mémoire tout ça, nombre de paramètres. Et la dimension, surtout, qui est super important. Donc tu vois, mon taquette mille, huit mille, huit mille, enfin, c'est énorme, ça commence à faire des trucs assez énormes. Très, très gros, très, très gros. Et pour le coup, ça, c'est un petit peu la même chose, surtout les modèles. On va retrouver des modèles au Penet Source. On va retrouver des modèles privés, des modèles qui sont accessibles que via leur cloud, via leur propre instance, ou des modèles qu'on peut installer sur des machines chez les gros opérateurs ou chez notre bar métal ou notre GPU de ma boule. Ok. Après, on estement, les modèles OpenAi sont pas très coûteux. On estement, tu peux en bd pas mal de textes, de token, etc. C'est une coupe de cherche. Non, ça ne coûte pas cher. Et attention, parce qu'en local, ça peut être assez consommateur de ressources. Je suis dans ce que tu veux. Après, peut-être, j'ai déjà fait tant de mon bac, une fois. Grâce à la modèle dans le met, on m'a dit. Ouais, mettez une chareille. Oui, là. C'est de. Non, non, c'est la première fois. J'avais jamais eu ça, il avait. Il s'est complètement arrêté le truc. Après, c'est peut-être pas débile aussi si on a, pour le coup, si on a une bonne bécanne, de générer en fait, je pense par exemple à une base de données ou de produits d'articles commerces. On veut donner en fait une représentation vectorielle de tout notre catalogue. Potentiellement, on vient générer ses embédings en local. Puis après, on les stocke sur la DB, mais cette création, en fait, on l'a fait une seule fois. Donc voilà, ce par rapport au coup, par rapport à la rapidité d'exécution, ça peut peut-être amener une valeur d'offrir en local, sous couvert que le modèle puisse tourner en local. Ça, c'est un autre sujet, mais. Et à faire en un moment, c'est vraiment le coup, c'est vraiment minim, et des fois, ça va pas le coup de s'embêter. Ok. Ça marche. Ça marche. Je ne suis pas représentant au Penaï, mais. C'est payé par s'am. C'est payé par s'am. Voilà. Sami, il a voulu sponsoriser le podcast, c'est quoi, non, un truc comme ça, non? Ouais, il doit être un artusé. Je veux dire qu'à un moment donné, des fois, c'est. Non, vraiment, c'est pas un coup énorme, et parfois économisé. Alors, si t'inserveur, t'as un peu d'argent, tout ça, t'es une société, c'est différent, tu peux éventuellement acheter un serveur, tout ça. Votre cancelment, c'est peut-être difficile de trouver des GPUs, mais. Enfin, faire tourner sur son mac aussi, c'est quand même un coup parce que ton mac tu le fait, tu le fatigues un peu plus et tout ça, peut-être qu'il durera moins vite et enfin moins longtemps, en tout cas, donc est-ce que ça va pour le coup d'économiser. Qu'est-ce que tu as dit? Poignet de delin et c'est fait en 30 minutes, alors que sur sur tabac, t'en as pour 4h ou 5h ou 6h. Et la qualité est vraiment bonne, sur le modèle d'embeding. Après il y en a d'autres, il y a coïr, je sais pas comment il dit coer. Il y a plein de modèles qui sont super accès. Ok, donc maintenant qu'on a chunky le document, on les a envoyé en fait à notre modèle. Là, on a récupéré le vector, donc c'était espèce de fichier avec plein de chiffres à l'intérieur. Sauf que maintenant il va falloir qu'on stocke ces données-là dans une base de données qui a la capacité de stocker, en fait, ce type de fichier, comme on a les strings, les numbers, des gisons. Et là, en fait, on a du vector. Du vector, c'est ça. Et donc, il y a de. C'est ça. Capable de stocker du vector, en fait, c'est une base de données qui a pas de stocker du vector, de repensation vectorielle. Et surtout de faire de la recherche. Après, la stocker est surtout de faire de stocker et de faire des appels. C'est ça qui a assez coûté en ressources, en fait, c'est la recherche. Donc, c'est la recherche par similarité. Comparer les points et comparer ce qui sont les plus proches. Qui va te donner une sorte de distance entre chaque point. Et. Ok. Ok. Et donc, il y a plusieurs types de bases de données qui existent. Il y a des bases de données qui sont dédiées et qui ne font que du vectoriel. Mais il y a aussi des bases de données, en fait, qui ont évolué ou sur laquelle on peut mettre des extensions. Je pense par exemple à Postgre, qui y a son extension qui s'appelle PG Search ou non PG Vector. J'ai bon. Et donc, ce qui nous permet en fait de stocker et de faire des calculs sur la DB directement avec l'instance Postgre, peut-être que, par contre, on va peut-être avoir des limitations si on voulait les comparer à des bases de données qui elles sont totalement dédiées et ne font que ça. Oui. Oui. Maintenant, vous êtes à quasiment toutes les bases de données qui prennent en charge le vectoriel. Comme tu dis, Postgre, il y a Redis, le Dufitier Vector. Tu en as sur CloudSphere. Maintenant aussi, il y a le base de données vectorielles. Il y a vraiment des bases de données vectorielles. Il y en a des tonnes. Des meilleurs, des tonnes. C'est difficile de se correr. Si tellement, il y en a quoi. Il y en a beaucoup d'open sourds, donc ça c'est bien, mais des vrais open sourds que tu prends que tu self-host toi-même et puis voilà, ChromaDB, tout ça c'est du self-hostier, Q Durant, je crois. Pincon c'est pas de l'open sourds, c'est payant, voilà il y a vraiment rien, il y a un choix incroyable. Après il y a une différence, il y a. Alors après c'est assez technique pour la différence, tout ça c'est pour ça qu'il y ait des tableaux de comparaison. Mais après ça dépend de besoin, tout ça, mais déjà voilà pgvector, tout ça fait déjà le taf de base, déjà des résultats concluants, mi-surch aussi, on parlait encore dans le dernier épisode, qui peut être intéressant sur des recherches quant à peine grosse base de données de document, tout ça, ça peut être des résultats assez pertinents, autant que maintenant ils prennent en charge le recherche vectoriel, tout ça, et on peut régler le curseur, plus ou moins vite texte ou de l'élector, donc ça peut être. C'est mon petit, intéressant texte, hybrid, et rapidité, surtout elle est super rapide, donc ça peut être une solution intéressante, tout le cas, moi je l'ai déjà inclus dans des tests, et ça c'est assez concluant. Ok, et t'es en charge sur le recherche. Ok, top, top, tout ça, je pense que sur double/ on est pro, mais il cherche, là tu as. Ouais, c'est pour ça que vous nous offrez une base de données d'un pas longtemps. Et pour le coup, on a en parler, et là tu nous mets un article justement où la base de données spécifique, là en fait il y a beaucoup de documentations sur les rags, sur les rags, et justement comment utiliser toutes ces bases de données, comment optimiser tous ces process-là, mais derrière sur la base de données purement, on vient enregistrer, on vient faire une recherche, c'est assez basique, il y a pas une cementique à réapprendre, comme je pense au SQL quand on veut faire du SQL, il faut apprendre quand même à construire ta query, sauf que maintenant souvent il y a des ORM, en fait, est-ce que là sur ces bases de données, on va dire vectoriel, et est-ce qu'on va avoir en fait des SQL, c'est des appels restes où on va demander, on va lui donner un élément, un élément, pardon, une query ou un vector, on va lui donner un vector et il va te renvoyer tous les vectors qui sont similaires, comment ça se passe, c'est quoi? Il marche tout un peu différemment, mais après la plupart du temps, elles ont des libres aéries disponibles, que ça soit en Python, en GIS ou même parfois en PHP, t'as des libres aéries qui permettent de communiquer avec ta base de données, donc la plupart du temps, les tools et lescosystèmes sont là pour se brancher facilement, tu vas filer les directeurs ou une query, alors celle que tu as sous les oeuvres, la viviat, tu allais pas mal, c'est d'ailleurs des mecs du pay-ball qui font ça, elle est intéressante parce qu'elle est un intègre pas mal de choses, elle est capable de. En fait, il y a des choses qui sont. Elle va embêter automatiquement, c'est-à-dire que tu vas pas le faire toi-même, tu vas envoyer le texte, un peu comme mini sortes, pour le coup, on va faire exprès, en fait, tu vas lui envoyer les chunks et elle va elle-même embêter et stoper, en fait, tu n'as pas besoin de faire de passage par l'embeding avant, tu vas envoyer direct dans mon texte, c'est le capot de l'embeder, et pareil pour les requêtes, elle est capable de. tu mets juste une query en texte, elle va le transformer et faire la recherche, donc c'est déjà un truc du concours intégré. Ah ouais, donc en fait, ça vient faciliter le boulot de ma boule du Dave parce qu'il a uniquement à implémenter cette base de données et toute la logique en fait de chenquer les documents, de créer l'embeding, de le stocker, tout ça en fait, c'est fait automatiquement par la DB, donc en fait, c'est bien au-delà, en fait, d'une simple base de données, c'est quasiment un écosystème, un service cléomement, on pourrait dire. Ouais, ouais, c'est là, elle est pas mal, pas mal, et puis tu apparailles, tu as libre de cherche, donc tu vas. alors beaucoup, on recherche hybride où tu vas régler un total curseur entre un peu plus de texte ou un peu plus devector, donc là, il le propose de plus en plus, parce que des fois, des fois, c'est un peu. suivant les documents, c'est un peut-être des fois un peu plus pertinents sur le sujet un peu plus de texte, voilà ça dépend en fait, ce que tu recherches, et c'est. voilà, il n'y a pas de base de données mieux qu'une autre ou moins bien, c'est. voilà, chacune à ces avantages, c'est un convenient, et après, voilà, faut tester. Une fois de plus, une fois de plus trop de choix, et le choix est tout difficile à faire quoi, c'est. faut bien comprendre, mais comme toutes les techniques, comme tous les langages, comme tous les freines moeurs, que les libres aient, le choix de. mais là en plus, c'est hyper primaire, enfin, c'est un hyper important dans la mesure où c'est la base de données, donc c'est le coeur central du business, souvent, c'est ça, donc. faut pas se taper quoi, faut pas se taper. Doulin, terré, après, des tests en amont quoi. Ouais, la plupart du temps, ça c'est ça, tu fais un index, en fait, tu crée un index, donc il va correspondre à tes données, et puis tu vas, voilà, tu vas rentrer tes données dedans, juste un truc généralement quand tu crée un index avec une dimension, par exemple tu crée un index en 512 dimension, donc après tu utilises un modèle qui va te générer des 512 dimensions, pour stocker dedans, il faut que ça corresponde tu vois forcément, et là, du coup, tu peux plus, par exemple, changer de modèle d'embedign pour passer un 1500 ou tout ça, ça va pas correspondre, donc ça marche, ça va pas mâcher. Donc toi, il y a des petites trucs comme ça à savoir, mais à donc au début, tu chouettes ton modèle, en fait, il est crucial parce que tu vas tout baser là-dessus, et derrière, en fait, tu vas être obligé de dérouler toute la suite, ou sinon, t'es obligé de tout recommencer, de. Tout rien d'excer, de tout stocker différemment. Ça peut, voilà, si tu as beaucoup de données, ça peut coûter vite cher, si tu commence à changer tout le temps, en généralement, tu parves, moi, je te dis, généralement, je pars sur le modèle, voilà, le truc de Openaï, je ne me fais pas chier, quoi. Oui, mais je suis. Vite fait, pour les recherches pas similérétées, en fait, il y a deux principales, c'est Euclidean et CoSynus, alors on est dans les maths, c'est pas mon point fort, mais. Donc Euclidean, c'est la mesure physique entre deux points, vectorie, voilà, et la similérité CoSynus, donc c'est généralement celle qu'il a plus utilisé, on est souvent réglés en CoSynus, c'est l'angle entre deux vectors, vector, donc si l'angle est proche de 0, c'est similaire, si il est proche de 4m d'étogrés, c'est différent, voilà. Donc, généralement, souvent, les bases de données, tout ça sont réglées en CoSyn, voilà. C'est la plus. Voilà, parfait, c'est ultra. Alors là, pour le coup, est-ce que nous, en tant que simple d'èves et d'utilisateurs, est-ce qu'on a besoin de comprendre ça ou pas tellement? Bah si, il faut comprendre quand même quand ça fonctionne, même si on est toujours sur du CoSynus, mais après, il y a aussi des systèmes d'index différents, alors c'est ça aussi, les bases de données vectoruelles, il y a des systèmes d'indexation qui sont un petit peu différences avec des acronimes, tout ça, alors là, c'est hyper complexe, voilà, je ne suis pas encore qu'il y a l'air dessus, là, c'est des plus remètes quoi. Ouais, ouais, c'est des plus questions de performance aussi, parce que c'est quand même assez gourmand, quand tu commandes les bases de données, alors déjà, ça stocke beaucoup de vector, donc c'est beaucoup de poids, enfin beaucoup de gigas suivant ce que tu vas stocker, et suivant le nombre de dimensions, et puis derrière, quand tu recherches la base de données, recherches de course, c'est consommateur de ressources, donc. Ça mouline. Ouais, ça mouline, donc voilà, c'est important quand même de savoir sur quoi tu te règles tout ça pour avoir un hardware qui est correspondant tout ça. Dessuant. Ok, donc ça, c'était pour la base de données, est-ce que maintenant on a pas un espèce, alors on l'a déjà vu avec des services qui font base de données, mais qui font aussi tous les co-systèmes, néanmoins, si moi j'ai déjà implementé quelque chose, est-ce qu'il n'y a pas, en fait, des espèces de frameworks ou un processus, des libérairies qui essayent de faciliter, en fait, cette mise en place de tout cet écosystème, de tout ce qu'on a vu d'un rague, par rapport, si je fais du PHP, sur du GES, du Python, est-ce qu'il n'y a pas des frameworks qui existent pour justement cette mise en place de rague? Ouais, ouais, il y a des frameworks, et ça, c'est cool. Alors généralement, c'est beaucoup de Python, c'est énormément de Python, alors si je fais du Python, c'est le roi du monde pour tout ce qui rague, parce que là, c'est une tonne de libérairies disponibles de frameworks et tout ce que tu veux, mais nous, on est des développeurs web, on aime le GES, on aime le PS et on aime le PHP, donc il n'y a plus sur moi le PHP, mais on aime l'accord. Mais il est dit Joe, qu'il y a des frameworks, et il existe l'LLM FANT, qui est un framework qui dédié à l'IA en PHP. Ouais, c'est ça. Ouais, là, c'est un framework qui n'est plutôt. Il n'est pas complet, c'est pas un truc pour faire. Alors, on parle souvent de pipeline pour les ragues, c'est-à-dire, c'est-à-dire une chaîne de. une chaîne de. comment on a peu à peu ça? Une chaîne de séquence, ou si séquençée en étape, voilà, aller chercher d'un basonné, récupérer les trucs, faire le prompt, envoyer, récupérer la réponse, etc. le coup passe sur. donc après là on va parler de frais-moi donc celui en PHP il permet de faire pas mal de choses mais c'est pas aussi complet qui est un frais-moi vraiment on peut faire des pipelines ça mais on peut faire déjà des choses donc si vous êtes plutôt PHP c'est plutôt intéressant et là je vois je vois sur le repo qu'il y a un tutoriel de comment faire un rague avec Saint-Fault, Opénie-A, Opénie-Ai et c'est un tutoriel en français en plus donc pour les émetteurs de PHP qui veulent tester ça il y a peut-être moyen de faire un truc sympa. C'est cool parce que de façon c'est du script assez, enfin quand tu réfléchis c'est du script assez simple tu prends la requête, tu vas chercher la base de données tu récupères le résultat, tu fais ton prompt, tu envoies les lames, tu récupères le réponse et tu lui la renvoie. Voilà c'est juste un script assez basique donc tu peux le faire. Et autre pipeline ou ce concert ou en tout cas je ne sais pas comment on pourrait appeler ça alors pour le coup tout le monde connaît quasiment versel il sortit un AI toolkit qui lui pour le coup était en typescript par contre est ce qu'on va retrouver les mêmes outils qu'on a vu tout à l'heure ou là c'est plutôt vraiment plus séquencé ou est ce qu'on va pouvoir faire la même chose ou c'est justement beaucoup plus généraliste il va falloir creuser étape par étape. Non, alors l'outil il y a bien le SDK versel parce qu'il unifie en fait l'appel à différents modèles, différents providers, pour ça il est vraiment cool tout le kit parce que en fait c'est à peu près toujours la même chose. Juste t'as des fonctions et tu vas appeler des modèles, tu vas appeler anthropiques ou tu vas appeler au pénaysie ou n'importe quoi et puis en fait t'as juste à changer le nom du modèle ou voilà et en fait tu vas tu dis toujours les fonctions donc c'est vraiment très pratique à savoir que d'ailleurs en un par la juste après ma strat une partie du code de ma strat est basée sur le IISDK de. Donc c'est une hybrérie qui est bien foutue et qui qui donne accès vraiment facilement avec une code très très simple ou elle est la même tout ça donc pareil comme le système PHP justement ça te permet de faire du avec très peu de code bah tu peux faire un rag ou n'importe quoi ou un agent ou tout comme ça. Et pour le coup le SDK est facile à utiliser et on peut switcher d'un modèles à l'autre quoi facile. Et pour ceux qui sont qui sont un petit peu plus vénères on va dire et qui veulent tout faire à la main il existe un frein-work qui est dédié à ça pour justement créer toute ce pipeline là comme tu disais ça - C'est ça, il y a l'ang chain, et il y a deux versions, il y a la version Python et la version Java Script. - C'est ça, il y a l'ang chain, c'est un des de plus anciens avec la main index. Donc là, on est vraiment sur un des tout le kit qui permet de faire vraiment des chânes de événement, et c'est plutôt bien fait, la dock est super pourrie, mais. Et ça, vous mevez à me fol dire. Voilà, la dock est vraiment pas terrible, et il y a très peu de ressources sur le web, quand il cherche vraiment des infos, c'est pas évident à trouver. Donc moi, j'ai été jusqu'à aller dans les ripo-guitables pour trouver des exemples et tout. - Oui. - Et il y avait fait des. - Ouais, vraiment difficile à trouver, par contre, c'est assez puissant, parce que c'est capable de gérer pas mal de choses. Voilà. Et. C'est vraiment bien fait. Tu peux loguer, etc. Alors, rien de truc qui est super intéressant, c'est que. Ah, j'ai découvert ça, il n'y a pas très longtemps, mais. A force de faire des rags, tout ça. C'est à qu'à un moment donné, tu vas faire ton truc, tu vas faire ta recherche dans ta pas de naie, tu vas envoyer au lait d'ain, mais tu vas faire la réponse. Et après, la personne va reposer notre question, et tu vas. Et à un moment-là, tu as une sorte de détape dans ton process, où tu vas décider, est-ce que tu refais une requête ou pas, où est-ce que tu fais. Avec ce contexte que tu as déjà, est-ce que tu as capable de répondre à la question? Tu vois. Et voilà, ça te permet de faire des trucs comme ça où tu définis, en fait, est-ce que je refais un appel ou pas? Est-ce que. Et vraiment des. Et t'as un concept qui est pas mal, où j'ai vu une conflale, la tuise sur Rédis, justement, où il parlait de cémantique caching, où justement, en fait, il va mettre en cache, en fait, c'est cette réponse. Et avant, en fait, d'aller de faire un appel, en fait, au LLM, pour, ou en tout cas, au RAG ou de qu'un porte, en fait, il va déjà regarder si il y a une similitude avec ce que j'ai déjà mis en cache, et en fait, ils vont économiser beaucoup, beaucoup d'argent et beaucoup de ressources et beaucoup de rapidité aussi. Et donc, c'est un concept de cémantique caching. C'est ça, ce que j'ai découvert. Il n'y a pas très longtemps à force de creuser, de creuser. Et justement, l'ang chaine, tout ça, te permet de faire ça parce que t'ensis-t'in-sister un système de gestion de mémoire. Il va un moment donné, avoir stocké une petite différence de réponse pour garder un contexte de conversation, en fait. Et c'est là où tu vas, avec ces frères morts comme l'ang chaine ou mastra, tu vas pouvoir rajouter de la mémoire, donc ça va être soit mémoire du serveur, soit tu vas mettre une petite base de données SQL ou des post-grain-apportes quoi, et ça va stocker, ça va récupérer. Et c'est là où, en stockant cette conversation, un moment donné, tu vas gérer ce truc où tu vas dire, est-ce que je réponds ou je vous vois. Et ça, c'est important parce que je te donne juste un exemple. Par exemple, tu as quelqu'un qui dit, oui, je suis beaucoup sur les formations, c'est un étant. Mais imaginons, oui, je cherche une formation pour être peintre. Et donc le LLM, je vais faire la recherche, tout ça, je vais répondre. Je vais dire, voilà, il y a cette formation, cette formation, cette formation, trois formations, par exemple. Et là, tu vas lui dire, "Ah oui, la deuxième m'intéresse." Là, la deuxième m'intéresse, c'est pas une requête à la base de données, et c'est là où il faut te décider de répondre par rapport au contexte d'avant. Et donc le LLM, il va prendre le deuxième et répondre à la question, sans faire de requête à la base de données, etc. Et voilà, il faut prendre des décisions, donc c'est un arbre de décision, et c'est grâce à ces frameworks que t'arrives à le faire. - Donc là, excellent. - Excellent. Et pour le coup, on est obligé de parler de Maastra, en tout cas, de re-en parler, on va dire, pas si tu te le dis. - C'est pas le morran. - Ouais. Alors, moi, j'ai pas eu le temps de m'y mettre, mais il y a un truc qui est sûr, c'est que le site Internet, il est déboite. Il est trop joli. Il est super bien fait. Et tu valides le fait que la doc est aussi super bien faite. - Alors la doc est bien, il y a beaucoup d'exemples. Et pourtant, c'est récent. C'est hyper récent, Maastra. Ils ouvrent à peine en beta le Cloud, parce qu'ils ont un système de Cloud qui vont ouvrir, où on pourra stocker, déployer des agents. Donc, c'est cool. J'ai bien d'avoir un email il y a deux jours là pour avoir accès. C'est vraiment tout neuf, mais le site est bien. Le système est vraiment bien pensé. Ils ont un système où tu vas brancher des tools dessus, etc. Donc, c'est vraiment. Voilà, c'est des Workflow. C'est ça le moque cherché de BitTalor, Workflow. Et donc, ouais, il y a plein d'exemples et tout. Donc, pour l'instant, ils sont motivés, ils font des choses bien. Et je trouve que c'est cool. Et c'est BitTalbeScript. Donc, c'est du langage qu'on connaît, qu'on maitrise. Là, il y a vraiment un framework qui est complex, qui va permettre de faire des agents super avancés. - Nice. - Et c'est pas celui-là où on disait qu'on voyait pas le tarif. Et pour l'instant. - Non, il n'y a pas de tarif. - Bah, à toute façon, le framework, lui-même, il est open source. Donc, pour l'utiliser dans tous les cas. Et c'est le cloud qui va être payant, le déployement. Donc, c'est un peu le même modèle que. Alors, c'est les fondateurs de gaz-bis. C'est quelques fondateurs de gaz-bis. - Donc. - Ben, électrique scuelle qu'on a parlé dans la dernière news, c'est un des fondateurs de gaz-bis aussi. - OK. En fait, ils ont pris le pognon et ils repartent sur un autre projet. - Ouais, ils sont partis sur d'autres projets. Donc, il y a celui qui fait électrique scuelle et puis là, ma sera. Donc, ils ont un peu le même modèle. Ils vont faire du cloud payant et puis de framework autour. Alors, j'espère qu'ils vont continuer, pas comme. - Pas comme gaz-bis. - Ouais. - Non, le truc est cool. Et moi, je suis totalement fan. Et c'est mon. D'ailleurs, je vais remplacer certainement long chain par Master One. - OK, ça y est, c'est fait. - Ah oui, non, mais c'est clair. - Et pour le coup, quand on aura boucler et tu leur a utilisé sur de la prod avec les clients en tout, tu nous ferais un retour parce que ça est super intéressant. Cool. Trop bien. Trop, trop bien. - Et. - Ben, est-ce qu'on n'est pas obligé aussi de mettre en place des sortes d'évaluation de savoir si en fait on est dans le juste ou on est juste à côté de la plaque? - Ben, c'est ça. Il faut évaluer ton modèle, tout ça, tes réponses. Donc, il y a des outils d'évaluation maintenant qui existent. Donc, c'est un des points forts. Alors là, on est sur long chain. Ça s'appelle Lang Smith. Lang Smith, c'est un écosystème autour de long chain. Donc, c'est là où ils vont gagner de l'argent et ils vont faire payer. Pour l'instant, c'est gratuit. Donc, c'est en beta, ma chère. Donc, c'est cool. Donc, Lang chain est capable de. le système, quand tu utilises Lang chain en G.S., il est capable, tu vas se brancher à Lang Smith et il va loguer en fait toutes les réponses, etc. Donc, ensuite, un dashboard, tu vas dessus et tu as les conversations en fait qu'il a eu, etc. Et ensuite, tu as un système d'évaluation. Donc, tu vas lui. Voilà, il y a du code des freemoisres de tests. Enfin, il y a un système de tests dans le freemois qui te permet de lui lancer des évaluations. Ça va stocker des évaluations. Et après, tu vas regarder ce que l'on va penser correct, etc. Et tu vas ajuster. Donc, l'évaluation est super importante. T'as deux évaluations. T'as l'évaluations des. déjà de la recherche de ta base de née, déjà tu vas essayer de voir quand tu tapes des queries que ça corresponde à ce que ta, à ce que ta, à ce que ta, à la réponse correspond à la query et ensuite à la réponse qui est super importante voilà où tu vas regarder que l'élène répond correctement. Donc tout ça c'est hyper important parce que c'est la qualité de ton élène, ton rague qui, voilà. Donc il y a des outils pour ça il y en a plein. Donc générales sont plutôt bien faits. Donc donc donc long chain il y en a peut-être un autre non qui s'appelle Dipeval c'est la même chose c'est ce que ça correspond à la même utilité de venir en fait évaluer la performance en fait de tout ton écosystème rague. Ouais ouais c'est pareil c'est pareil tu vas, tu vas lancer des commandes et ça va évaluer en fait ça va faire des appels ou à l'élène. Il va prendre les réponses il va aller loguer et ensuite tu es évalu en fonction des réponses tout ça. Par contre est-ce que tu viens loguer les questions et les réponses en production ou était dans un contexte un petit peu à part parce que là tu vois je me pose la question de tout ce qui est pas RGPD mais tu vois si ils posent des questions là tu vois en fait les questions que les utilisateurs finaux ont posées ou tu vois pas ou c'est dans un modèle à part tu vois est-ce que tu es dans un contexte à part ou pas du tout. Alors l'évaluation qui est stocké en évaluation dans un contexte à part des conversations en production. Ok, après t'as un log aussi des conversations en production. D'accord. Donc oui tu accès aux conversations après c'est des stockés en sécurité tout ça mais. Ok mais après c'est aussi super intéressant pour faire de l'analytics justement de voir en fait qu'est ce qui est posé et pour potentiellement aussi faire du cache de la sementeque parce que entre des. Je sais pas si je pose 50 fois ou en tout cas 50 utilisateurs posent 50 fois la même question clairement je vais faire tourner ma machine pour pas grand chose quoi alors que si je l'ai déjà caché une fois les autres vont pouvoir en profiter quoi donc d'où l'intérêt de loguer pour faire de l'optimisation quoi. Ouais après entre les conversations que tu cache pas vraiment mais par contre le log de fait de vérifier tout ça les réponses ça c'est vachement important pour. Là il a complètement répondu à côté de la plaque il faut que j'ajuste un peu le truc ou le prompt peut-être que je revue un peu le prompt et tout comme ça et des fois même moi j'en gardais des logs de conversations je suis t'as il a réussi à répondre à ça je lui s'y n'en pète. Je sais pas comment il a fait mais moi je t'ai pour quoi en fait tu vois donc des fois il est capable de répondre avec question et c'est là où tu te rends compte là c'est pas moi les réponses sont bonnes et tout. Ouais. C'est important quand même. Ok et tout ça c'est des outils qui sont quand même assez à ses tech on voit aussi l'émergence en fait d'outils un peu nocades et est ce que il n'y a pas possibilité de brancher tous ces outils en fait pour créer des rags sans pour autant être vraiment pure d'oeuvres et pure tech. Alors ouais il y a des outils locaux de moi j'ai commencé par ça et ça me fait pas mal progresser donc il y a deux outils moi qui sont que je connais et que j'ai utilisé qui sont pas mal après il a certainement d'autres mais voilà il y a deux outils qui permettent de faire du LM alors maintenant je sais que si tu peux aussi faire des choses avec les outils d'automatisation tu peux réussir à faire des outils. Ouais en digitant tout ça là. En arrivant faire des trucs mais sinon il y a Flowwise et Diffie là qui sont deux outils locaux entre guillemets qui permettent de faire du rags ou des agents vraiment tu alors le mieux moi c'est Diffie de Diffie il est vraiment complet et tu peux le brancher à différents bases de données tu peux faire des agents tu peux faire des rags etc tu peux faire plein de choses le Flowwise tu quand moi sous les yeux là il est un peu plus complexe un peu plus technique donc c'est plus orienté de développeur mais les deux outils permettent vraiment de faire des choses concluants vraiment avec un petit graphique et voilà c'est pas mal franchement et ça permet de progresser moi j'ai appris finalement j'ai appris beaucoup de choses avec ça le fonctionnement etc. ça te permet de faire plein de tests rapidement sans le coder etc. Pour le coup mais en fait on n'a jamais fait un sujet typiquement sur le no code mais je reste un petit moins convaincu que les meilleurs no codeurs ça reste quand même les développeurs parce qu'en fait ils vont pouvoir haquer ou en tout cas ils vont ça va être hyper facile à mettre en place et potentiellement ça peut aller beaucoup beaucoup plus vite et toi tu vois l'intérêt même en terme pédagogiquement parlant c'est super intéressant. C'est hyper intéressant parce que c'est visuel donc tu comprends le process et c'est vraiment bien. Et puis comme tout le monde est dérégal à la fois donc des fois tu découves des choses que tu connais pas tu bois qu'il y a des réglages. Il y a vraiment plein de trucs et d'y filles pour le coup ils sont alors c'est chinois d'y filles tu peux l'auto hébergé c'est pas très compliqué en docker de l'auto hébergé et tu peux alors lui il est capable de tu vas rentrer les documents il va les vectoriser il va rester ok. Ensuite tu vas générer tu vas faire ton outil pour aller rechercher. Et enfin il fait un chatbot déjà tout près à l'emploi etc donc c'est vraiment vraiment vraiment intéressant pour tester à prendre tout et même l'utiliser. Moi je sais que je vais enfin j'ai en prod là pour faire un chatbot pas trop cher en tarif. Difficile. Oui à défi c'est vraiment pas mal. Par contre on est bien d'accord que défi c'est une solution clé en main c'est tous les cosystèmes quoi il y a c'est c'est l'outil qui va te permettre de faire un rague de A à Z sans pas autant en fait avoir tout ce pipeline voilà c'est un peu la solution clé en main quoi. Ouais ouais tu fais le pipeline mais dedans et tu peux tu peux faire plein de trucs tu peux même faire des agents que tu vas utiliser dans ta boîte ou toi même sur une base documentaire qu'on faire des recherches sur un domaine de pacifique etc donc vraiment super outil je vais en cours à vraiment tester parce que ça permet de déjà de mettre un pied dedans de voir comment ça fonctionne de comprendre le process d'un rague tout ça des bases de données et tout ça et puis après si on a envie et pourquoi pas passer sur du code pour aller deux trucs un peu plus spécifiques et customiser etc mais déjà avec ça on j'ai pas mal de choses. Excellent. Et après ouais flow wise et beaucoup plus alors défi et accessible en tant que df tout ça on s'y retrouve très facilement voilà plein de bases de données qu'on peut mettre tout ça le flow wise est plus complexe. On a déjà une mieux commencer par pour commencer. D'accord. Top. Parfait tout ça. Je crois qu'on a un peu fait le tour de ne pas dire pas de tous les costitèmes ragues parce que c'est très très très vaste mais en tout cas je pense qu'on a pourreussé toutes les aspects du rague et toi c'est des choses que t'as déjà vendu ou pas encore. Ouais j'ai deux trucs vendus déjà et ouais j'en ai deux vendus et peut-être d'autres derrière et surtout maintenant moi je me suis mis sur le code complètement au début je disais des outils locaux de la combien de voix. D'y fait pour commencer voilà c'est assez récent moi ça fait quelques mois et je me suis mis au code il y a pareil y a peut-être deux mois enfin début d'année et pour pareil pour expérimenter tout ça j'ai été avec l'enq chain et puis c'est pas simple mais avec quand on part sur du GST du TS avec notre background de développeur on arrive à s'en sortir. Donc c'est intéressant et puis voilà avec des là il y a plein de outils qui sortent comme mastra tout ça donc ça va être plus en plus facile je pense pour pour nous développeur web tout ça où on est pas forcément à les aques du piton donc il y a de plus en plus de outils puis ça va faire que continuer et puis là on puge ça avec les nouveaux serveurs MCP qui arrivent alors c'est un peu différent mais voilà il y a tout le monde siméo aussi donc voilà il y a plein de possibilités qui arrivent pour développer des outils. Et pour le coup les clients sont plutôt friantes ça sont en attente où il y a encore cette phase de pédagogie à apporter d'expliquer les choses et surtout d'expliquer de montrer le bénéfice de mettre ça en place. Alors les clients qui font du marketing ils adorent le vent ça ça les fait qu'ils fait ils adorent mettre il y a et vendent des chatbots et tout ça donc après les boîtes en elle-même sont plutôt frilos pour l'instant ils attendent de voir un peu surtout ils sont un peu frilos par rapport au coup en fait parce que d'ailleurs l'état avait sorti un j'avais téléchargé un document pdf sur développer son rack tout ça un truc officiel de l'état voilà combien ils annoncent les tarifs entre 50 et 100 000 euros pour développer son rack etc donc quand il y a une boîte ouais ouais parce que après voilà ça dépend de la base de documentaire tout ça mais voilà quand il y a une boîte ça reprend vite un coup voilà je connais une boîte aussi où une société venu les voir pour leur vendre un rack spécialisé dans le legal ou tout comme ça c'est pareil c'était un coup de 30 000 euros à peu près. Du coup on est vraiment sur des tarifs pour l'instant assez élevé donc pour les sociétés bah ils attendent un peu de voir avant de investir des sames comme ça parce que voilà ce que c'est ce que c'est ce que c'est un vraiment besoin nécessaire ce que ça va bien marcher etc. voilà ils sont pleins de questions donc il faut avoir un petit peu ce spécialisé pour répondre aux questions. Et moi je vois j'ai deux types de clients qui sont radicalement tous différents mais vraiment diamètrallement opposés c'est ceux qui sont hyper friant et ils sont en bas. attendent de m'émoire de l'IA partout, TLLM, la machin, moi, je veux l'implémenter dans ma boîte. Ils sont hyper demandeurs. Et à voir même parfois tout mâche, c'est-à-dire, tu veux un chatbot, tu pourrais faire ça? Non, non, non, mais tu veux de l'IA dans ma boîte, mais en fait, ils savent pas clairement où est-ce qu'ils peuvent mettre de l'IA. Mais ils sont plutôt en attente de solutions basées sur l'IA pour souvent optimiser les coups, pour augmenter la productivité, pour faciliter le boulot des opérateurs, du personnel de manière générale. Et à l'inverse, autre spectre de clients qui ne veulent pas du tout en entendre parler, souvent parce qu'un compréhension totale et ils ont peur de l'IA et donc qui veulent pas en entendre parler, ils font un peu la politique de l'autre ruche, en mode non, je ne veux pas utiliser ça, je ne veux pas manger de ce pain-là, mais c'est plus sous couvert, un peu idéologique. En tout cas, moi, la plupart du temps, c'est noir ou blanc? C'est assez radical sur le position. Moi, je pense que, alors, à titre perso, je pense qu'il y a vraiment de la pédagogie à faire. Et je pense que tu fais bien de monter en compétences sur des solutions que tu maîtrises et surtout venir avec des exemples. En fait, je pense que c'est la meilleure façon de convaincre un client, c'est de lui montrer déjà quelque chose de concret parce que déjà, la plupart d'un autre métier et l'informatique, c'est hyper abstrait, ils comprennent pas tout. Là, en plus, si on met le mot "Ia" à l'intérieur, c'est encore plus mystique. Donc venir avec une solution concrète qui répond à un problème concret, mais la solution utilise l'IA. Là, pour le coup, il y a peut-être plus, c'est peut-être sans doute beaucoup plus facile de le convaincre. Et qu'à la fin, il signe et il fait le cheque pour qu'on vienne développer ça. Donc, il y a plein de. Alors, tu vois, j'avais vu un mi-t-peur en vidéo sur le bon coin où ils utilisaient ça pour répondre aux questions de la distance. Ils avaient développé un truc qui répondait aux emails, en fait. Parce que ils se rendaient compte que la plupart des questions étaient dans les FAQs, donc, mais je suis sûr, le rag. Allez, châché n'est à les FAQ pour répondre aux questions. Mais bon, sur malgré tout, ils utilisent ce que pour eux, ils font, je crois qu'ils disaient 10% des réponses, c'est généré par le rag. Donc, c'est pas énorme, tu vois. Mais bon, ça fait gagner du temps. Après, moi, j'avais un autre projet là qui était, finalement, il ne va pas se faire. Mais il y avait l'exemple, par exemple, c'était des fiches, c'était des vendeurs, donc remplir sa fiche vendeur, etc. Et un moment donné, le texte, l'idée, c'était de quand ils remplissent le texte, ils étaient de mal de faire corriger par l'IA, tu vois, automatiquement, etc. Donc, ça peut être des idées pas mal, qui sont pas compliquées à mettre en place. Et puis, il y a un truc super important, c'est que si jamais on fait des chatbots dans des boîtes, j'avais tout coûté un podcast là-dessus, justement, pour les gens qui avaient fait un truc de documentation en interne dans notre prise qu'il avait mis sur le chat de Team, cela, tout ça. Ils avaient retardé le lancement, parce qu'en fait, ils voulaient plus de trucs, soit vraiment aboutiques et que les réponses soient bonnes, en fait. Parce qu'en fait, à part priori, quand tu lances un chatbote, un rag, si jamais, au début, les réponses sont un petit peu à côté de la plaque, tout ça, le risque, c'est que les gens arrêtent de l'utiliser assez rapidement et que mon truc, dans l'entreprise, t'as un investi pour rien. Ça fait un flop total, quoi. Là, pour le coup, t'as pas la deuxième possibilité de faire une première bonne impression, quoi. Il faut vraiment faire une bonne impression pour que les gens la adoptent et travaillent avec quoi. Si le truc est pourri dès le début, ils vont vite le laisser tomber et t'as un investi 30 000 bol pour rien. Nous, on a pris notre check, mais bon. Je déconne, c'est pas ça. Il faut pas dire ça, c'est une vision très très court-termiste. Après, ça va donner une mauvaise image. C'est pas bon du tout, quoi. Donc il faut que ça soit qu'à l'i. Top, Patrick, on en reste là pour cet épisode. Ça marche. Dites-nous dans les commentaires. Si vous êtes resté jusqu'au bout de l'épisode, déjà on vous remercie grandement. Et d'y vous dans les commentaires, si vous êtes plutôt IP par cette tendance là, si vous êtes prêt, il passe et du temps. Si vous voyez le potentiel technique, si ça vous intéresse, si vous voyez un potentiel commercial, on est hyper curieux de vous retour. Et en tout cas, nous, on est plutôt à fond là-dedans. Et ce qui est sûr, c'est que dès qu'on les mettra ça en place, on vous fera un retour évidemment. Un grand moment. Merci pour tous ceux qui sont restés jusqu'au bout de l'épisode. Un petit pouce, un petit commentaire. Ça fait toujours plaisir et on vous dit à bientôt. Ciao, ciao.

Podcast Summary

Key Points:

  1. Le RAG (Retrieval Augmented Generation) permet de générer des réponses à partir d'un contexte documentaire spécifique, en utilisant un LLM uniquement pour la verbalisation.
  2. Il offre un contrôle total sur les données, limite les hallucinations et spécialise un modèle sans nécessiter d'entraînement coûteux.
  3. La qualité du RAG repose principalement sur le chunking (découpage des documents) et le choix du modèle d'embedding, qui sont des étapes techniques cruciales.
  4. Le processus technique comprend
  5. Le chunking n'a pas de règle universelle ; il faut s'adapter au contenu, avec des techniques comme le découpage par paragraphe, l'overlap, ou l'utilisation de modèles pour optimiser le sens.

Summary:

Dans cet épisode de Double Slash, les animateurs présentent le RAG (Retrieval Augmented Generation), une technologie qui combine recherche documentaire et génération de texte par LLM. Le RAG permet de fournir des réponses contextualisées à partir de données propriétaires, tout en limitant les hallucinations et en spécialisant un modèle sans entraînement coûteux. ) sont découpés en morceaux (chunking), puis transformés en vecteurs via un modèle d'embedding, stockés dans une base de données vectorielle.

Lors d'une requête, celle-ci est également convertie en vecteur pour une recherche sémantique, et les résultats pertinents sont fournis au LLM comme contexte pour générer une réponse. Les animateurs soulignent que la qualité du RAG dépend fortement du chunking, qui doit être adapté au contenu pour ne pas perdre le sens. Il n'existe pas de méthode universelle ; des techniques comme le découpage par paragraphe, l'overlap, ou l'utilisation de modèles pour optimiser le texte sont explorées.

Le choix du modèle d'embedding est également crucial pour une bonne compréhension sémantique. En conclusion, le RAG représente un fort potentiel business pour les entreprises, permettant de créer des chatbots spécialisés (RH, technique, juridique) sans exposer de données sensibles, mais sa mise en œuvre technique reste exigeante.

FAQs

Le RAG, ou Retrieval Augmented Generation, est une technique qui combine un LLM avec une base de données documentaire. Le LLM génère des réponses en utilisant le contexte récupéré de cette base, ce qui limite les hallucinations.

Les avantages incluent le contrôle du contexte avec des données propriétaires, la limitation des hallucinations, et la spécialisation dans un domaine spécifique sans avoir besoin d'entraîner un nouveau modèle.

Les documents sont découpés en morceaux (chunks), transformés en vecteurs via un modèle d'embedding, puis stockés dans une base vectorielle. Une requête utilisateur est aussi transformée en vecteur pour chercher les morceaux pertinents, qui sont ensuite fournis au LLM pour générer une réponse.

Le chunking détermine la qualité des résultats de recherche. Un découpage mal adapté peut perdre le sens du texte, ce qui impacte directement la pertinence des réponses du LLM.

Non, il n'y a pas de règle universelle. Le chunking doit être adapté au contenu spécifique, par exemple en utilisant des techniques comme le découpage sémantique ou le parent-child chunking.

Le modèle d'embedding transforme le texte en vecteurs numériques qui capturent le sens sémantique. Sa qualité est cruciale pour une recherche efficace dans la base vectorielle.

Chat with AI

Loading...

Pro features

Go deeper with this episode

Unlock creator-grade tools that turn any transcript into show notes and subtitle files.