Revenir au contenu principal

Créer des applications d'IA générative avec la MLflow AI Gateway et Llama 2

Obtenez une précision accrue grâce à la génération augmentée par récupération (RAG) avec vos propres données

Data Intelligence Platforms

Pour créer des bots de support client, des graphes de connaissances internes ou des systèmes de questions-réponses, les clients utilisent souvent des applications de génération augmentée par récupération (RAG) qui s'appuient sur des modèles pré-entraînés ainsi que sur leurs données propriétaires. Cependant, l'absence de garde-fous pour la gestion sécurisée des informations d'identification et la prévention des abus empêche les clients de démocratiser l'accès à ces applications et leur développement. Nous avons récemment annoncé la passerelle d'IA MLflow, une passerelle d'API hautement évolutive et de qualité professionnelle qui permet aux organisations de gérer leurs LLM et de les rendre disponibles pour l'expérimentation et la production. Aujourd'hui, nous sommes ravis d'annoncer l'extension de la passerelle d'IA pour mieux prendre en charge les applications RAG. Les organisations peuvent désormais centraliser la gouvernance des API de modèles hébergés en privé (via Databricks Model Serving), des API propriétaires (OpenAI, Co:here, Anthropic), et maintenant des API de modèles ouverts via MosaicML pour développer et déployer des applications RAG en toute confiance. 

Dans ce billet de blog, nous allons vous expliquer comment créer et déployer une application RAG sur la plateforme Databricks lakehouse AI en utilisant le modèle Llama2-70B-Chat pour la génération de texte et le modèle Instructor-XL pour les embeddings de texte, qui sont hébergés et optimisés via les APIs d'inférence Starter Tier de MosaicML. L'utilisation de modèles hébergés nous permet de démarrer rapidement et de disposer d'un moyen économique d'expérimenter avec un faible throughput. 

L'application RAG que nous développons dans cet article de blog répond aux questions sur le jardinage et donne des recommandations sur l'entretien des plantes. 

Si vous connaissez déjà RAG et que vous souhaitez simplement voir un exemple concret, consultez notre démo (avec des Notebooks d'exemple) qui vous montre comment utiliser Llama2, l'inférence MosaicML et la recherche vectorielle pour créer votre application RAG sur Databricks.

Qu'est-ce que la RAG ?

La RAG est une architecture populaire qui permet aux clients d'améliorer les performances des modèles en exploitant leurs propres données. Pour ce faire, il faut récupérer des données/documents pertinents et les fournir comme contexte au LLM. La RAG a donné la preuve de son efficacité avec les chatbots d'assistance et les systèmes de Q&R qui doivent s'appuyer sur des informations à jour ou accéder à des connaissances propres à un domaine particulier.

Utilisez l'AI Gateway pour mettre en place des garde-fous sur les appels aux APIs de modèles.

La passerelle MLflow AI Gateway, récemment annoncée, permet aux entreprises de centraliser la gouvernance, la gestion des informations d'identification et les limites de débit pour leurs API de modèle, y compris les LLM SaaS, via un objet appelé Route. La distribution de Routes permet aux entreprises de démocratiser l'accès aux LLM tout en veillant à ce que le comportement des utilisateurs n'entraîne pas d'abus ou de pannes du système. La passerelle AI Gateway fournit également une interface standard pour interroger les LLM afin de faciliter la mise à niveau des modèles derrière les Routes au fur et à mesure que de nouveaux modèles de pointe sont publiés. 

En général, les entreprises créent une Route par cas d'utilisation et de nombreuses Routes peuvent pointer vers le même endpoint d'API de modèle pour s'assurer qu'il est pleinement utilisé. 

Pour cette application RAG, nous voulons créer deux Routes AI Gateway : une pour notre modèle d'embedding et une autre pour notre modèle de génération de texte. Nous utilisons des modèles ouverts pour les deux, car nous voulons disposer d'une voie prise en charge pour l'affinement ou l'hébergement privé à l'avenir afin d'éviter la dépendance vis-à-vis d'un fournisseur. Pour ce faire, nous utiliserons l'API d'inférence de MosaicML. Ces APIs fournissent un accès rapide et facile à des modèles open source de pointe pour une expérimentation rapide et des tarifs basés sur les jetons (tokens). MosaicML prend en charge les modèles MPT et Llama2 pour la complétion de texte, et les modèles Instructor pour les embeddings de texte. Dans cet exemple, nous utiliserons Llama2-70b-Chat, qui a été entraîné sur 2 000 milliards de jetons (tokens) et ajusté (fine-tuned) pour le dialogue, la sécurité et l'utilité par Meta, et Instructor-XL, un modèle d'embedding de 1,2 milliard de paramètres ajusté par instructions (instruction fine-tuned) par HKUNLP.

Il est facile de créer une Route pour Llama2-70B-Chat en utilisant la nouvelle prise en charge des API d'inférence MosaicML sur l'AI Gateway :

De la même manière que pour la route de complétion de texte configurée ci-dessus, nous pouvons créer une autre route pour Instructor-XL disponible via l'API d'inférence MosaicML.

Pour obtenir une clé API pour les modèles hébergés par MosaicML, inscrivez-vous ici.

Utilisez LangChain pour assembler le retriever et la génération de texte.

Nous devons maintenant construire notre index vectoriel à partir de nos embeddings de documents afin de pouvoir effectuer des recherches de similarité entre documents en temps réel. Nous pouvons utiliser LangChain et le diriger vers notre route de passerelle IA pour notre modèle d'embedding :

 

Nous devons ensuite assembler notre template d'invite et notre template de génération de texte :

La chaîne RetrievalQA relie les deux composants afin que les documents récupérés de la base de données vectorielle alimentent le contexte du modèle de résumé de texte :

Vous pouvez maintenant journaliser la chaîne à l'aide de la version MLflow LangChain et la déployer sur un Databricks CPU Model Serving endpoint. L'utilisation de MLflow fournit automatiquement le versionnage des modèles pour ajouter plus de rigueur à votre processus de production.

Une fois la preuve de concept terminée, faites de l'Experimentation pour améliorer la qualité

En fonction de vos besoins, il existe de nombreuses expérimentations que vous pouvez exécuter pour trouver les bonnes optimisations afin de mettre votre application en production. En utilisant les API de suivi et d'évaluation de MLflow, vous pouvez consigner chaque paramètre, modèle de base, métrique de performance et sortie de modèle à des fins de comparaison. La nouvelle interface utilisateur d'évaluation dans MLflow facilite la comparaison côte à côte des sorties de modèle et toutes les données de suivi et d'évaluation de MLflow sont stockées dans des formats interrogeables pour une analyse plus approfondie. Voici quelques expérimentations que nous voyons couramment :

  1. Latence - Essayez des modèles plus petits pour réduire la latence et les coûts
  2. Qualité - Essayez d'affiner un modèle open source avec vos propres données. Cela peut aider à acquérir des connaissances spécifiques au domaine et à respecter un format de réponse souhaité.
  3. Confidentialité – Essayez d'héberger le modèle en privé sur le Model Serving GPU optimisé pour les LLM de Databricks et d'utiliser la passerelle d'IA pour utiliser pleinement l'endpoint dans tous les cas d'utilisation

Commencez à développer des applications RAG dès aujourd'hui sur Lakehouse AI avec MosaicML.

La plateforme IA Databricks Lakehouse permet aux développeurs de créer et de déployer rapidement des applications d'IA générative en toute confiance.

Pour reproduire l'application de chat ci-dessus dans votre organisation, installez notre démo complète de chatbot RAG directement dans votre workspace en utilisant Llama2, l'inférence MosaicML et Vector Search sur le Lakehouse.

Explorez la démo du chatbot LLM RAG

 

Explorez et améliorez davantage vos applications RAG :

Ne manquez jamais un article Databricks

Abonnez-vous à notre blog et recevez les derniers articles dans votre boîte mail.

Et ensuite ?

image

Data Science e ML

October 31, 2023/9 min de leitura

Anunciando as métricas de LLM-como-juiz do MLflow 2.8 e as Melhores Práticas para Avaliação de LLM de Aplicações RAG, Parte 2

Creating High Quality RAG Applications with Databricks

Anúncios

December 6, 2023/7 min de leitura

Criando aplicativos RAG de alta qualidade com a Databricks