Introduction Google a annoncé la recherche de fichiers Gemini, et les experts affirment que c'est le chiffre de mort pour homebrew RAG (Génération augmentée de récupération). La raison est que maintenant le développeur d'applications n'a plus besoin de se soucier de chunking, d'emballage, de stockage de fichiers, de base de données vectorielle, de métadonnées, d'optimisation de récupération, de gestion de contexte et plus. Dans cet article, nous allons essayer la recherche de fichiers Gemini et la comparer à un système RAG homebrew en termes de capacités, de performance, de coût, de flexibilité et de transparence. . Exemple d'application sur GitHub Exemple d'application sur GitHub Voici l’original : Google announcement Google annonce Créez votre propre agence RAG RAG traditionnel - Un rafraîchisseur L’architecture d’un RAG traditionnel ressemble à celle-ci, qui se compose de quelques étapes séquentielles. Les documents sont d'abord coupés, intégrés et insérés dans une base de données vectorielle. Souvent, les métadonnées connexes sont incluses dans les entrées de la base de données. La requête utilisateur a été intégrée et convertie en recherche vectorielle DB pour récupérer les morceaux pertinents. Et enfin, la requête utilisateur originale et les morceaux récupérés (en tant que contexte) sont alimentés dans les modèles d’IA pour générer la réponse pour l’utilisateur. Agence RAG L'architecture d'un système Agentic RAG a ajouté une boucle de réflexion et de réaction, où l'agent vérifiera si les résultats sont pertinents et complets, puis réécrit la requête pour satisfaire la qualité de recherche. Un exemple de cas d'utilisation - Manuel de l'appareil photo Q&A Il y a beaucoup de nouveaux photographes qui s'intéressent à l'utilisation de vieilles caméras de film. L'un des principaux défis pour eux est que de nombreuses vieilles caméras ont des façons uniques et parfois bizarres de fonctionner, même les choses de base, telles que charger le film et réinitialiser le compteur de cadre du film. Pire, vous pouvez même endommager la caméra si vous faites certaines choses dans l'ordre "mauvais". Une archive manuelle de caméra héberge 9 000 manuels de caméra anciens, principalement des PDF numérisés. Dans un monde idéal, vous en téléchargeriez juste quelques-uns pour votre caméra, les étudierez, vous familiariserez avec cela et vous en serez fait. Mais nous sommes tous des êtres humains modernes qui ne sont ni patients ni pré-planifiés. Et je suppose qu’il sera universellement applicable à de nombreux passe-temps (instruments de musique, équipement Hi-Fi, voitures vintage) qui nécessitent de trouver des informations à partir de manuels d’utilisateurs anciens. Homebrew RAG pour PDF Q&A Notre système RAG a été mis en œuvre plus tôt cette année sur la base de la Avec une grande customisation : LLaMAIndex RAG flux de travail LLaMAIndex RAG flux de travail Utilisez la base de données vectorielle Qrrant: bon rapport prix-performance, support de métadonnées. Utilisez l'API Mistral OCR pour ingérer le PDF : bonne performance dans la compréhension de fichiers PDF complexes avec des illustrations et des tables. Conservez des images de chaque page PDF afin que les utilisateurs puissent accéder directement à une illustration graphique des opérations complexes de l'appareil photo, en plus des instructions texte. Ajoutez une boucle d’agent de réflexion et de réaction basée sur l’exemple Google/Langchain pour la recherche d’agent. Google/Langchain exemple de recherche d'agent Qu’en est-il des LLM multi-modales ? Depuis 2024, les LLM multi-modaux sont déjà devenus très bons. Une approche alternative évidente était d'alimenter la requête de l'utilisateur et l'intégralité du PDF au LLM et d'obtenir une réponse. Notre principale préoccupation était le coût, donc nous avons fait un calcul et une comparaison des coûts. Et la réponse courte est que RAG est plus rapide, plus efficace et beaucoup moins coûteux lorsque le nombre de requêtes utilisateur par jour est supérieur à 10. À ce moment-là, il a confirmé notre croyance que homebrew RAG est toujours critique jusqu'à ce que Google abandonne la recherche de fichiers Gemini. La recherche du fichier Gemini - Un exemple J'ai construit une application d'exemple pour le cas d'utilisation du manuel de l'appareil photo Q&A, basé sur l'exemple Google AI Studio. Voici une capture d'écran de l'interface utilisateur et du thread de chat. , open source on GitHub Source ouverte sur GitHub Exemple de Q&A avec les PDF en utilisant la recherche de fichiers Gemini: https://github.com/zbruceli/pdf_qa https://github.com/zbruceli/pdf_qa Les principales étapes impliquées dans le code source : Créez un magasin de recherche de fichiers et persévérez-le sur différentes sessions. Téléchargez plusieurs fichiers en même temps, et le backend Google traitera tout le chunking et l'emballage. Il crée même des questions d'échantillon pour les utilisateurs. En outre, vous pouvez modifier la stratégie de chunking et télécharger des métadonnées personnalisées. Exécuter une requête de génération standard (RAG): derrière les scènes, il est agent et peut effectivement évaluer la qualité des résultats avant de générer la réponse finale. Plus d'informations sur les développeurs Gemini File Search API doc https://ai.google.dev/gemini-api/docs/file-search https://ai.google.dev/gemini-api/docs/file-search Réalisé par Phil Schmidt https://www.philschmid.de/gemini-file-search-javascript https://www.philschmid.de/gemini-file-search-javascript Résultats de recherche pour Gemini File Search Les développeurs sont facturés pour les embeddings au moment de l'indexation en fonction du prix des embeddings existants ($ 0,15 par 1M de jetons). Le stockage est gratuit. Les temps d’intégration de Query sont gratuits. Les jetons de document récupérés sont facturés en tant que jetons de contexte réguliers. Les prix d’emballage Contexte des tokens Alors, lequel est meilleur ? Étant donné que la recherche de fichiers Gemini est encore relativement nouvelle, mon évaluation est purement basée sur le test initial d'environ une semaine. Comparaison des capacités Gemini File Search a toutes les caractéristiques de base d'un système RAG homebrew Chunking (peut configurer la taille et la superposition) Intégration Vector DB qui prend en charge l'entrée de métadonnées personnalisées Retriever Production générative Et des caractéristiques plus avancées sous le capot: Capacité à évaluer la qualité de la récupération Si je dois nitpick, la sortie d'image est actuellement manquante. Jusqu'à présent, la sortie de la recherche de fichiers Google est limitée au texte seulement, tandis qu'un RAG personnalisé peut retourner des images du PDF scanné. Comparaison des performances Exactitude : il n’y a pas d’amélioration tangible de la récupération ou de la qualité de la génération. Gemini File Search pourrait être un peu plus rapide, car le vecteur DB et LLM sont tous deux « assis » à l’intérieur de l’infrastructure Google Cloud. Coût comparatif Enfin, Gemini File Search est un système entièrement hébergé qui pourrait coûter plus qu’un système homebrew. less L'emballage de documents a été exécuté une seule fois, et il coûte 0,15 $ par million de jetons. Ceci est un coût fixe qui est commun à tous les systèmes RAG, et peut être amorti sur la durée de vie de l'application de document Q&A. Dans mon cas d'utilisation des manuels de caméra, ce coût fixe est une très petite partie du coût total. Étant donné que Gemini File Search offre un stockage de fichiers et une base de données «gratuit», c’est une économie sur le système RAG homebrew. Le coût d'inference est à peu près le même, car la quantité de jetons d'entrée (question plus résultats de recherche vectoriel en tant que contexte) et de jetons de sortie sont comparables entre la recherche de fichiers Gemini et le système homebrew. Flexibilité et transparence pour le réglage et le débogage Bien sûr, la recherche de fichiers de Gemini vous épouse avec des modèles d'IA de Gemini pour l'intégration et la déduction. En ce qui concerne la finition de votre système RAG, Gemini File Search fournit un certain niveau de personnalisation. Par exemple, vous pouvez définir un chunkingConfig lors du téléchargement pour spécifier des paramètres tels que maxTokensPerChunk et maxOverlapTokens, et customMetadata pour joindre des paires de valeurs clés au document. Cependant, il semble impossible d'avoir une trace interne du système de recherche de fichiers Gemini pour le débogage et l'ajustement des performances. Les conclusions La recherche de fichiers Gemini de Google est suffisamment bonne pour la plupart des applications et pour la plupart des gens à un prix très attractif. Il est super facile à utiliser et a une surcharge opérationnelle minimale. Il est non seulement bon pour le prototypage rapide et les modèles, mais aussi assez bon pour un système de production avec des milliers d'utilisateurs. Cependant, il y a quelques scénarios que vous pourriez toujours considérer un système RAG homebrew: Vous ne faites pas confiance à Google pour héberger vos documents propriétaires. Vous devez retourner des images à l'utilisateur à partir des documents originaux. Vous voulez une flexibilité et une transparence complètes en ce qui concerne le LLM à utiliser pour l'incorporation et l'inférence, comment faire le chunking, comment contrôler le flux d'agent du RAG et comment débloquer les problèmes de qualité potentiels de récupération. Alors, donnez à la recherche de fichiers Gemini un essai et décidez vous-même. comme un terrain de jeu, ou vous pouvez utiliser S'il vous plaît commenter ci-dessous sur vos résultats pour vos cas d'utilisation. Google et Studio Exemple de code sur GitHub Google et Studio Exemple de code sur GitHub