LlamaIndex ist Ihr benutzerfreundlicher Daten-Sidekick zum Erstellen von LLM-basierten Apps. Sie können sowohl private als auch domänenspezifische Daten mithilfe natürlicher Sprache problemlos aufnehmen, verwalten und abrufen.
LlamaIndex ist ein Datenframework für auf Large Language Models (LLMs) basierende Anwendungen. LLMs wie GPT-4 sind auf riesigen öffentlichen Datensätzen vortrainiert und ermöglichen sofort einsatzbereite, unglaubliche Fähigkeiten zur Verarbeitung natürlicher Sprache. Ohne Zugriff auf Ihre eigenen privaten Daten ist ihr Nutzen jedoch begrenzt.
Mit LlamaIndex können Sie Daten aus APIs, Datenbanken, PDFs und mehr über flexible Datenkonnektoren aufnehmen. Diese Daten werden in für LLMs optimierte Zwischendarstellungen indexiert. LlamaIndex ermöglicht dann Abfragen in natürlicher Sprache und Konversationen mit Ihren Daten über Abfrage-Engines, Chat-Schnittstellen und LLM-gestützte Datenagenten. Es ermöglicht Ihren LLMs, private Daten in großem Maßstab abzurufen und zu interpretieren, ohne das Modell anhand neuerer Daten neu trainieren zu müssen.
Egal, ob Sie Anfänger sind und nach einer einfachen Möglichkeit suchen, Ihre Daten in natürlicher Sprache abzufragen, oder ob Sie ein fortgeschrittener Benutzer sind, der umfassende Anpassungen benötigt, LlamaIndex bietet die Tools. Die High-Level-API ermöglicht den Einstieg in nur fünf Codezeilen, während APIs auf niedrigerer Ebene die vollständige Kontrolle über die Datenaufnahme, Indizierung, Abfrage und mehr ermöglichen.
Wie funktioniert LlamaIndex?
LlamaIndex verwendet Retrieval Augmented Generation (RAG)-Systeme , die große Sprachmodelle mit einer privaten Wissensdatenbank kombinieren. Es besteht im Allgemeinen aus zwei Phasen: der Indizierungsphase und der Abfragephase.
Indizierungsphase
LlamaIndex indexiert private Daten während der Indexierungsphase effizient in einen Vektorindex. Dieser Schritt hilft dabei, eine durchsuchbare Wissensdatenbank speziell für Ihre Domäne zu erstellen. Sie können Textdokumente, Datenbankeinträge, Wissensgraphen und andere Datentypen eingeben.
Im Wesentlichen werden die Daten bei der Indizierung in numerische Vektoren oder Einbettungen umgewandelt, die ihre semantische Bedeutung erfassen. Dies ermöglicht eine schnelle Ähnlichkeitssuche im gesamten Inhalt.
Abfragephase
Während der Abfragephase sucht die RAG-Pipeline basierend auf der Benutzerabfrage nach den relevantesten Informationen. Diese Informationen werden dann zusammen mit der Abfrage an das LLM weitergegeben, um eine genaue Antwort zu erstellen.
Durch diesen Prozess erhält der LLM Zugriff auf aktuelle und aktualisierte Informationen, die möglicherweise nicht in seiner Erstausbildung enthalten waren.
Die größte Herausforderung in dieser Phase besteht im Abrufen, Organisieren und Schlussfolgern über möglicherweise mehrere Wissensbasen.
Erfahren Sie mehr über RAG in unserem Code-Along zur Retrieval Augmented Generation mit PineCone.
Einrichten von LlamaIndex
Bevor wir in unser LlamaIndex-Tutorial und -Projekt eintauchen, müssen wir das Python-Paket installieren und die API einrichten.
Wir können LlamaIndex einfach mit pip installieren.
Standardmäßig verwendet LlamaIndex das OpenAI GPT-3-Modell text-davinci-003. Um dieses Modell verwenden zu können, müssen Sie ein Setup haben . Sie können ein kostenloses Konto erstellen und einen API-Schlüssel erhalten, indem Sie sich beim neuen API-Token von OpenAIOPENAI_API_KEY anmelden .
Stellen Sie außerdem sicher, dass Sie das openaiPaket installiert haben.
Hinzufügen persönlicher Daten zu LLMs mit LlamaIndex
In diesem Abschnitt lernen wir, mit LlamaIndex einen Lebenslauf-Reader zu erstellen. Sie können Ihren Lebenslauf herunterladen, indem Sie auf die Linkedin -Profilseite gehen, auf Mehr und dann auf Als PDF speichern klicken.
Bitte beachten Sie, dass wir DataLab zum Ausführen des Python-Codes verwenden. Sie können auf den gesamten relevanten Code und die Ausgabe im Arbeitsbuch „LlamaIndex: Hinzufügen persönlicher Daten zu LLMs“ zugreifen . Sie können ganz einfach Ihre eigene Kopie erstellen, um den gesamten Code auszuführen, ohne etwas auf Ihrem Computer installieren zu müssen!
Bevor wir irgendetwas ausführen können, müssen wir llama-index, openai, und installieren pypdf. Wir führen die Installation durch pypdf, damit wir PDF-Dateien lesen und konvertieren können.
Laden von Daten und Erstellen des Indexes
Wir haben ein Verzeichnis namens „Private-Data“, das nur eine PDF-Datei enthält. Wir werden SimpleDirectoryReaderes mit dem lesen und es dann mit dem in einen Index konvertieren TreeIndex.
Ausführen einer Abfrage
Sobald die Daten indexiert wurden, können Sie mit dem Stellen von Fragen beginnen as_query_engine(). Mit dieser Funktion können Sie Fragen zu bestimmten Informationen im Dokument stellen und mithilfe des OpenAI- GPT-3 text-davinci-003Modells eine entsprechende Antwort erhalten.
Hinweis: Sie können die OpenAI-API in DataLab einrichten, indem Sie die Anweisungen unter „ Verwenden von GPT-3.5 und GPT-4 über das OpenAI-API in Python“ befolgen .
Wie wir sehen, hat das LLM-Modell genau auf die Abfrage geantwortet. Es hat den Index durchsucht und die relevanten Informationen gefunden.
Wir können uns weiter über die Zertifizierung informieren. Es scheint, dass LlamaIndex ein umfassendes Verständnis des Kandidaten gewonnen hat, was für Unternehmen, die bestimmte Personen suchen, von Vorteil sein kann.
Speichern und Laden des Kontextes
Das Erstellen eines Indexes ist ein zeitaufwändiger Prozess. Wir können das erneute Erstellen von Indizes vermeiden, indem wir den Kontext speichern. Standardmäßig speichert der folgende Befehl den Indexspeicher im ./storageVerzeichnis.
Sobald dies erledigt ist, können wir den Speicherkontext schnell laden und einen Index erstellen.
Um zu überprüfen, ob es richtig funktioniert, stellen wir der Abfrage-Engine die Frage aus dem Lebenslauf. Es scheint, dass wir den Kontext erfolgreich geladen haben.
Chatbot
Anstelle von Q&A können wir auch LlamaIndex verwenden, um einen persönlichen Chatbot zu erstellen. Wir müssen lediglich den Index mit der as_chat_engine()Funktion initialisieren.
Wir werden eine einfache Frage stellen.
Und ohne zusätzlichen Kontext anzugeben, werden wir Folgefragen stellen.
Es ist offensichtlich, dass die Chat-Engine einwandfrei funktioniert.
Nachdem Sie Ihre Sprachanwendung erstellt haben, besteht der nächste Schritt auf Ihrer Zeitleiste darin, sich über die Vor- und Nachteile der Verwendung von Large Language Models (LLMs) in der Cloud im Vergleich zur lokalen Ausführung zu informieren . So können Sie feststellen, welcher Ansatz für Ihre Anforderungen am besten geeignet ist.
Erstellen von Wiki-Text-to-Speech mit LlamaIndex
Unser nächstes Projekt umfasst die Entwicklung einer Anwendung, die auf Fragen aus Wikipedia antworten und diese in Sprache umwandeln kann.
Die Codequelle und weitere Informationen sind in dieser DataLab-Arbeitsmappe verfügbar .
Web Scraping Wikipedia-Seite
Zuerst werden wir die Daten von der Wikipedia-Webseite „Italien“italy_text.txt extrahieren und als Datei im Ordner speichern data.
Laden der Daten und Erstellen des Indexes
Als nächstes müssen wir die notwendigen Pakete installieren. Das elevenlabsPaket ermöglicht uns die einfache Umwandlung von Text in Sprache mithilfe einer API.
Mithilfe von SimpleDirectoryReaderladen wir die Daten und konvertieren die TXT-Datei mithilfe von in einen Vektorspeicher VectorStoreIndex.
Abfrage
Unser Plan ist es, eine allgemeine Frage zum Land zu stellen und eine Antwort vom LLM zu erhalten query_engine.
Text zu Sprache
Danach verwenden wir das llama_index.ttsModul, um auf die ElevenLabsTTS-API zuzugreifen. Sie müssen den API-Schlüssel von ElevenLabs angeben, um die Audiogenerierungsfunktion zu starten. Sie können einen API-Schlüssel kostenlos auf der ElevenLabs -Website erhalten.
Wir fügen die Antwort der generate_audioFunktion hinzu, um eine natürliche Stimme zu erzeugen. Um den Ton anzuhören, verwenden wir IPython.displaydie AudioFunktion .
Dies ist ein einfaches Beispiel. Sie können mehrere Module verwenden, um Ihren Assistenten wie Siri zu erstellen, der auf Ihre Fragen antwortet, indem er Ihre privaten Daten interpretiert. Weitere Informationen finden Sie in der LlamaIndex- Dokumentation kurtosis.
Zusätzlich zu LlamaIndex können Sie mit LangChain auch LLM-basierte Anwendungen erstellen . Darüber hinaus können Sie die Einführung in LangChain für Datentechnik und Datenanwendungen lesen , um einen Überblick darüber zu erhalten, was Sie mit LangChain tun können, einschließlich der Probleme, die LangChain löst, und Beispiele für Datenanwendungsfälle.
LlamaIndex-Anwendungsfälle
LlamaIndex bietet ein komplettes Toolkit zum Erstellen sprachbasierter Anwendungen. Darüber hinaus können Sie verschiedene Datenlader und Agententools von Llama Hub verwenden , um komplexe Anwendungen mit mehreren Funktionen zu entwickeln.
Sie können benutzerdefinierte Datenquellen mit einem oder mehreren Data Loader-Plugins mit Ihrem LLM verbinden.
Sie können Agent-Tools auch verwenden, um Tools und APIs von Drittanbietern zu integrieren.
Kurz gesagt können Sie mit LlamaIndex Folgendes erstellen:
- Fragen und Antworten zu Dokumenten
- Chatbots
- Agenten
- Strukturierte Daten
- Full-Stack-Webanwendung
- Privates Setup
Um mehr über diese Anwendungsfälle zu erfahren, lesen Sie die LlamaIndex- Dokumentation .
Fazit
LlamaIndex bietet ein leistungsstarkes Toolkit zum Erstellen von durch Abfragen erweiterten Generierungssystemen, die die Stärken großer Sprachmodelle mit benutzerdefinierten Wissensbasen kombinieren. Es ermöglicht das Erstellen eines indizierten Speichers domänenspezifischer Daten und dessen Nutzung während der Inferenz, um dem LLM relevanten Kontext bereitzustellen und qualitativ hochwertige Antworten zu generieren.
In diesem Tutorial haben wir etwas über LlamaIndex und seine Funktionsweise gelernt. Außerdem haben wir mit nur wenigen Zeilen Python-Code ein Lebenslauf-Reader- und Text-to-Speech-Projekt erstellt. Das Erstellen einer LLM-Anwendung mit LlamaIndex ist einfach und bietet eine umfangreiche Bibliothek mit Plugins, Datenladern und Agenten.
Um ein erfahrener LLM-Entwickler zu werden, ist der nächste logische Schritt die Anmeldung zum Kurs „Master Large Language Models Concepts“ . Dieser Kurs vermittelt Ihnen ein umfassendes Verständnis von LLMs, einschließlich ihrer Anwendungen, Trainingsmethoden, ethischen Überlegungen und der neuesten Forschung.