Um Kundensupport-Bots, interne Knowledge Graphen oder F&A-Systeme zu erstellen, verwenden Kunden häufig RAG-Anwendungen (Retrieval Augmented Generation), die vortrainierte Modelle zusammen mit ihren proprietären Daten nutzen. Das Fehlen von Schutzmechanismen für die sichere Verwaltung von Anmeldeinformationen und zur Missbrauchsprävention hindert Kunden jedoch daran, den Zugang und die Entwicklung dieser Anwendungen zu demokratisieren. Wir haben kürzlich das MLflow AI Gateway angekündigt, ein hochskalierbares, unternehmenstaugliches API-Gateway, das es Unternehmen ermöglicht, ihre LLMs zu verwalten und sie für Experimente und die Produktion verfügbar zu machen. Wir freuen uns, heute bekannt zu geben, dass wir das KI Gateway erweitern, um RAG-Anwendungen besser zu unterstützen. Unternehmen können jetzt die Governance von privat gehosteten Modell-APIs (über Databricks Model Serving), proprietären APIs (OpenAI, Co:here, Anthropic) und jetzt auch offenen Modell-APIs über MosaicML zentralisieren, um RAG-Anwendungen zuverlässig zu entwickeln und bereitzustellen.
In diesem Blogpost erklären wir, wie Sie eine RAG-Anwendung auf der Databricks Lakehouse KI-Plattform erstellen und bereitstellen können. Dabei verwenden wir das Llama2-70B-Chat-Modell zur Textgenerierung und das Instructor-XL -Modell für Texteinbettungen, die über die Starter Tier Inference APIs von MosaicML gehostet und optimiert werden. Die Verwendung von gehosteten Modellen ermöglicht es uns, schnell loszulegen und kostengünstig mit geringem Durchsatz zu experimentieren.
Die RAG-Anwendung, die wir in diesem Blog erstellen, beantwortet Fragen zur Gartenarbeit und gibt Empfehlungen zur Pflanzenpflege.
Wenn Sie bereits mit RAG vertraut sind und nur ein Beispiel sehen möchten, wie alles zusammenkommt, sehen Sie sich unsere Demo (mit Beispiel-Notebooks) an, die Ihnen zeigt, wie Sie Llama2, MosaicML-Inferenz und Vektorsuche verwenden, um Ihre RAG-Anwendung auf Databricks zu erstellen.
Was ist RAG?
RAG ist eine beliebte Architektur, die es Kunden ermöglicht, die Modell-Performance durch die Nutzung ihrer eigenen Daten zu verbessern. Dazu werden relevante Daten/Dokumente abgerufen und dem LLM als Kontext zur Verfügung gestellt. RAG hat sich bei der Unterstützung von Chatbots und Q&A-Systemen, die aktuelle Informationen bereithalten oder auf fachspezifisches Wissen zugreifen müssen, als erfolgreich erwiesen.
Verwenden Sie das KI Gateway, um Leitplanken für den Aufruf von Modell-APIs einzurichten.
Das kürzlich angekündigte MLflow AI Gateway ermöglicht es Organisationen, Governance, Anmeldeinformationsverwaltung und Ratenbegrenzungen für ihre Modell-APIs, einschließlich SaaS-LLMs, über ein Objekt namens Route zu zentralisieren. Die Verteilung von Routen ermöglicht es Organisationen, den Zugriff auf LLMs zu demokratisieren und gleichzeitig sicherzustellen, dass das Benutzerverhalten das System nicht missbraucht oder zum Absturz bringt. Das KI Gateway bietet außerdem eine Standard-Schnittstelle zur Abfrage von LLMs, um die Aktualisierung von Modellen hinter Routen zu vereinfachen, sobald neue hochmoderne Modelle veröffentlicht werden.
Typischerweise erstellen Organisationen eine Route pro Anwendungsfall, und viele Routen können auf denselben Modell-API-Endpunkt verweisen, um sicherzustellen, dass dieser vollständig ausgelastet wird.
Für diese RAG-Anwendung möchten wir zwei KI-Gateway-Routen erstellen: eine für unser Embedding-Modell und eine weitere für unser Textgenerierungsmodell. Wir verwenden für beides offene Modelle, da wir in Zukunft eine unterstützte Möglichkeit für das Fine-Tuning oder das private Hosting haben möchten, um eine Herstellerabhängigkeit zu vermeiden. Dazu verwenden wir die Inference API von MosaicML. Diese APIs bieten einen schnellen und einfachen Zugriff auf hochmoderne Open Source-Modelle für schnelles Experimentieren und tokenbasierte Preise. MosaicML unterstützt die Modelle MPT und Llama2 für die Textvervollständigung und die Instructor -Modelle für Text-Embeddings. In diesem Beispiel verwenden wir Llama2-70b-Chat, das mit 2 Billionen Token trainiert und von Meta für Dialog, Sicherheit und Hilfsbereitschaft feinabgestimmt wurde, sowie Instructor-XL, ein von HKUNLP auf Anweisungen feinabgestimmtes Embedding-Modell mit 1,2 Milliarden Parametern.
Mit der neuen Unterstützung für MosaicML Inference APIs auf dem KI Gateway ist es einfach, eine Route für Llama2-70B-Chat zu erstellen:
Ähnlich wie bei der oben konfigurierten Route für die Textvervollständigung können wir eine weitere Route für Instructor-XL erstellen, die über die MosaicML Inference API verfügbar ist
Um einen API-Schlüssel für von MosaicML gehostete Modelle zu erhalten, registrieren Sie sich hier.
Verwenden Sie LangChain, um Retriever und Textgenerierung zusammenzufügen.
Jetzt müssen wir unseren Vektorindex aus unseren Dokumenteneinbettungen erstellen, damit wir Dokumentenähnlichkeitssuchen in Echtzeit durchführen können. Wir können LangChain verwenden und es auf unsere KI Gateway Route für unser Einbettungsmodell verweisen:
Anschließend müssen wir unsere Prompt-Template und unser Textgenerierungsmodell zusammensetzen:
Die RetrievalQA-Chain verkettet die beiden Komponenten miteinander, sodass die abgerufenen Dokumente aus der Vektordatenbank den Kontext für das Modell zur Textzusammenfassung bereitstellen:
Sie können die Chain jetzt mit dem MLflow LangChain Flavor loggen und auf einem Databricks CPU Model Serving-Endpunkt bereitstellen. Die Verwendung von MLflow bietet automatisch eine Modellversionierung, um Ihren Produktionsprozess rigoroser zu gestalten.
Nach Abschluss des Proof of Concept (PoC) experimentieren, um die Qualität zu verbessern
Je nach Ihren Anforderungen können Sie zahlreiche Experimente durchführen, um die richtigen Optimierungen zu finden, um Ihre Anwendung in die Produktion zu überführen. Mithilfe der MLflow-Tracking- und -Evaluierungs-APIs können Sie jeden Parameter, jedes Basismodell, jede Performance-Metrik und jede Modellausgabe zum Vergleich loggen. Die neue Evaluierungs-Benutzeroberfläche in MLflow erleichtert den direkten Vergleich von Modellausgaben, und alle MLflow-Tracking- und -Evaluierungsdaten werden zur weiteren Analyse in abfragbaren Formaten gespeichert. Einige typische Experimente:
Beginnen Sie noch heute mit der Entwicklung von RAG-Anwendungen auf Lakehouse KI mit MosaicML.
Die Databricks Lakehouse AI-Plattform ermöglicht es Entwicklern, generative KI-Anwendungen schnell und zuverlässig zu erstellen und bereitzustellen.
Um die obige Chat-Anwendung in Ihrer Organisation zu replizieren, installieren Sie unsere vollständige RAG-Chatbot-Demo direkt in Ihrem workspace. Diese nutzt Llama2, MosaicML-Inferenz und Vector Search auf dem Lakehouse.
Erkunden Sie die LLM-RAG-Chatbot-Demo.
Ihre RAG-Anwendungen weiter erkunden und verbessern:
Data Science e ML
October 31, 2023/9 min de leitura

