paint-brush
Was ist LlamaIndex? Eine umfassende Untersuchung der LLM-Orchestrierungs-Frameworksvon@datastax
1,439 Lesungen
1,439 Lesungen

Was ist LlamaIndex? Eine umfassende Untersuchung der LLM-Orchestrierungs-Frameworks

von DataStax7m2023/11/08
Read on Terminal Reader

Zu lang; Lesen

In diesem Beitrag erklären wir, wie LlamaIndex als Framework für Datenintegration, Datenorganisation und Datenabruf für alle Ihre privaten datengenerativen KI-Anforderungen verwendet werden kann.
featured image - Was ist LlamaIndex? Eine umfassende Untersuchung der LLM-Orchestrierungs-Frameworks
DataStax HackerNoon profile picture

Mit der schnellen Integration generativer KI in den Anwendungsentwicklungsprozess sehen wir einen zunehmenden Bedarf, unsere privaten Daten mit öffentlichen Daten integrieren zu können, die zum Trainieren verwendet werden große Sprachmodelle (LLMs). Die Herausforderung besteht darin, dass die meisten privaten Daten unstrukturiert, isoliert und nicht in einem Format vorliegen, auf das LLMs problemlos zugreifen können.


In einem aktuellen Webinar zum Thema Große Sprachmodelle für das Unternehmen haben wir untersucht, wie LLMs für Anwendungen über ChatGPT hinaus verwendet werden können und wie private Daten verwendet werden müssen, um die öffentlichen Daten zu erweitern, auf denen allgemein verfügbare LLMs trainiert werden. Hier kommen Lösungen wie LlamaIndex ins Spiel, da sie ein Orchestrierungs-Framework für die Erstellung von LLM-Apps mithilfe integrierter Tools zum Erfassen und Abfragen privater Daten bereitstellen.


In diesem Beitrag erklären wir, wie LlamaIndex als Framework für Datenintegration, Datenorganisation und Datenabruf für alle Ihre privaten datengenerativen KI-Anforderungen verwendet werden kann.


Was ist LlamaIndex?

Wie bereits erwähnt, ist LlamaIndex ein Orchestrierungs-Framework oder „Daten-Framework“, das die Erstellung von LLM-Anwendungen vereinfacht. Es bietet die Möglichkeit, private Daten zu erweitern und so in LLMs zur Wissensgenerierung und Argumentation einzubinden. Das Herzstück aller generativen KI-Funktionen sind Daten. Unternehmensanwendungen müssen in der Lage sein, auf mehr als nur die öffentlichen Daten zuzugreifen, auf denen LLMs geschult werden, und müssen strukturierte, unstrukturierte und halbstrukturierte Daten aus all ihren internen und externen Datenquellen für die Erstellung von Anwendungen integrieren.


Es ist diese Datenintegration, die der LlamaIndex bietet. Einbringen von Daten aus mehreren einzigartigen Quellen. Einbetten diese Daten als Vektoren. Speichern dieser neu vektorisierten Daten in einer Vektordatenbank. Letztendlich können diese Daten von Anwendungen verwendet werden, um komplexe Vorgänge mit Reaktionszeiten mit geringer Latenz wie der Vektorsuche auszuführen.


Vorteile

  • Vereinfachte Datenerfassung, die vorhandene Datenquellen wie APIs, PDFs, SQL, NoSQL, Dokumente usw. zur Verwendung mit LLM-Anwendungen verbindet.
  • Speichern und indizieren Sie private Daten nativ für die Verwendung in verschiedenen Anwendungsfällen, mit nativer Integration in nachgelagerte Vektorspeicher/Vektordatenbanken.
  • Integrierte Abfrageschnittstelle, die die Möglichkeit bietet, durch Eingabeaufforderungen zu Ihren Daten wissenserweiterte Antworten zurückzugeben.


Anwendungsfälle

  • Erstellen Sie Chatbots in natürlicher Sprache, die eine Echtzeitinteraktion mit Ihrer Produktdokumentation für eine natürliche Kundenbindung ermöglichen.
  • Aufbau kognitiv bewusster Wissensagenten, die auf der Grundlage einer ständig wachsenden Wissensbasis auf sich ändernde Entscheidungsbäume reagieren können.
  • Interagieren Sie mit großen Mengen strukturierter Daten mithilfe natürlicher Sprache und menschlicher Interaktion.
  • Erweitern Sie öffentliche Daten mit privatem Wissensbestand, der anwendungsspezifisches Engagement ermöglicht.


Wie funktioniert LlamaIndex?

LlamaIndex, früher bekannt als GPT Index, ist ein Framework, das die Tools bereitstellt, die zur Verwaltung des End-to-End-Lebenszyklus für die Erstellung von LLM-basierten Anwendungen erforderlich sind. Die Herausforderung beim Erstellen von LLM-basierten Anwendungen besteht darin, dass sie Daten benötigen, typischerweise aus mehreren unterschiedlichen Quellen, und sofern keine strenge Einhaltung einer gemeinsamen Datendarstellung erfolgt, liegen die erforderlichen Daten in vielen verschiedenen Formaten vor, einige stark strukturiert, andere unstrukturiert und andere in zwischen.


Hier stellt LlamaIndex die Toolbox zur Verfügung, um diese Daten mit Tools zur Datenaufnahme und Datenindizierung freizugeben. Nach der Aufnahme und Indexierung Abruf erweiterte Generation (RAG)-Anwendungen können die LlamaIndex-Abfrageschnittstelle verwenden, um auf diese Daten zuzugreifen und LLMs zu betreiben.


Einnahme

LlamaIndex verfügt über Hunderte von Datenladern, die die Möglichkeit bieten, benutzerdefinierte Datenquellen mit LLMs zu verbinden. Es verbindet vorgefertigte Lösungen wie Airtable, Jira, Salesforce und mehr mit generischen Plugins zum Laden von Daten aus Dateien, JSON-Dokumenten, einfachen CSV- und unstrukturierten Daten.

Eine vollständige Liste der Datenlader finden Sie auf der Lama-Hub .


Indizierung

Sobald Daten erfasst wurden, müssen sie mathematisch dargestellt werden, damit sie von einem LLM problemlos abgefragt werden können. Mit LlamaIndex bietet ein Index lediglich die Möglichkeit, Daten mathematisch in mehreren verschiedenen Dimensionen darzustellen. Die Indizierung von Daten ist kein neues Konzept. Mit maschinellem Lernen können wir jedoch die Granularität der Indizierung von einer oder zwei Dimensionen (z. B. Schlüssel-/Wertdarstellung) auf Hunderte oder Tausende von Dimensionen erweitern.


Der gebräuchlichste Ansatz zur Indizierung von Daten für maschinelles Lernen und LLMs wird als Vektorindex bezeichnet. Sobald die Daten indiziert wurden, wird die mathematische Darstellung der Daten als Vektoreinbettung bezeichnet. Es gibt viele Arten von Indizierungs- und Einbettungsmodellen, aber sobald die Daten eingebettet sind, kann die mathematische Darstellung der Daten für eine semantische Suche verwendet werden, da Dinge wie Text mit ähnlichen Bedeutungen eine ähnliche mathematische Darstellung haben. Beispielsweise könnten König und Königin stark miteinander verwandt sein, wenn es sich bei der Abfrage um das Königshaus handelt, aber nicht eng miteinander verbunden sein, wenn es sich bei der Abfrage um das Geschlecht handelt.


Abfragen

Hier kommt die wahre Stärke von LlamaIndex und LLMs ins Spiel. Da das Abfragen von Daten mit LlamaIndex keine komplexe Reihe von Befehlen zum Zusammenführen/Verknüpfen und Suchen der Daten ist, wird es durch ein Konzept namens „ schnelles Engineering . Die einfachste Möglichkeit, die Interaktion mit Ihren Daten anzuzeigen, nachdem Sie sie erfasst und indiziert haben, besteht darin, dass die Abfrage zu einem Prozess wird, bei dem Fragen gestellt und Antworten eingeholt werden.


Was sind die verschiedenen Indizes in LlamaIndex?

LlamaIndex bietet verschiedene Indizierungsmodelle, die darauf ausgelegt sind, die Art und Weise zu optimieren, wie Sie Ihre Daten erkunden und kategorisieren möchten. Hier können letztendlich viele Vorteile erzielt werden. Wenn Sie wissen, welche Art von Operation Ihre Anwendung für die Daten ausführen muss, kann die Nutzung eines bestimmten Indextyps der Anwendung, die das LLM verwendet und die Abfrage instanziiert, erhebliche Vorteile bringen.


Listenindex

Ein Listenindex ist ein Ansatz, der die Daten aufschlüsselt und in Form einer sequentiellen Liste darstellt. Dies hat den Vorteil, dass die Daten zwar mehrdimensional untersucht werden können, die primäre Optimierung der Datenabfrage jedoch über ein sequentielles Muster erfolgt. Diese Art von Index eignet sich gut für strukturierte Objekte, die im Laufe der Zeit auftreten, also beispielsweise für Änderungsprotokolle, in denen Sie abfragen möchten, wie sich Dinge im Laufe der Zeit geändert haben.


Baumindex

Bei Verwendung eines Baumindex übernimmt LlamaIndex die Eingabedaten und organisiert sie in einer binären Baumstruktur, in der die Daten als übergeordnete und Blattknoten organisiert sind. Ein Baumindex bietet die Möglichkeit, große Datenmengen zu durchsuchen und Antworten zu erstellen, bei denen Sie bestimmte Textsegmente basierend auf der Art und Weise, wie die Suche den Baum durchläuft, extrahieren müssen. Die Baumindizierung eignet sich am besten für Fälle, in denen Sie ein Informationsmuster haben, dem Sie folgen oder das Sie validieren möchten, z. B. den Aufbau eines Chatbots zur Verarbeitung natürlicher Sprache auf Basis einer Support-/FAQ-Engine.


Vector Store-Index

Bei Verwendung des Indextyps „Vektorspeicher“ speichert LlamaIndex Datennotizen als Vektoreinbettungen. Dies ist wahrscheinlich der gebräuchlichste Indexierungstyp, da er die Möglichkeit bietet, die Darstellung der Daten auf verschiedene Arten zu verwenden, einschließlich Vektor- oder Ähnlichkeitssuche. Wenn Daten mit einem Vektorspeicherindex indiziert werden, können sie lokal für kleinere Datensätze und von einer einzelnen Anwendung genutzt werden. Für größere Datensätze und/oder zur Verwendung in mehreren verschiedenen LLMs/Anwendungen können sie in einer leistungsstarken Vektordatenbank gespeichert werden wie Astra DB .


Stichwortindex

Bei der Schlüsselwortindizierung handelt es sich eher um den traditionellen Ansatz, bei dem ein Metadaten-Tag, also ein Schlüsselwort, bestimmten Knoten zugeordnet wird, die diese Schlüsselwörter enthalten. Diese Zuordnung erstellt ein Beziehungsnetz auf der Grundlage von Schlüsselwörtern, da ein Schlüsselwort mehreren verschiedenen Knoten zugeordnet sein kann und ein Knoten mehreren verschiedenen Schlüsselwörtern zugeordnet sein kann. Dieses Indexierungsmodell eignet sich gut, wenn Sie große Datenmengen mit Tags versehen und diese auf der Grundlage spezifischer Schlüsselwörter abfragen möchten, die über mehrere verschiedene Datensätze hinweg abgefragt werden können. Zum Beispiel rechtliche Hinweise, Krankenakten oder andere Daten, die auf der Grundlage bestimmter Metadatentypen abgeglichen werden müssen.


LlamaIndex versus LangChain: Wichtige Vergleiche

Eine der großen Fragen, die sich stellen, ist, wie LlamaIndex und LangChain im Vergleich abschneiden. Bieten sie ähnliche Funktionen oder ergänzen sie einander? Die Realität ist, dass LlamaIndex und LangChain zwei Seiten derselben Medaille darstellen. Während beide darauf ausgelegt sind, eine Schnittstelle zu LLMs und maschinellem Lernen in Ihrer Anwendung bereitzustellen, wurde LlamaIndex speziell für die Bereitstellung von Indizierungs- und Abfragefunktionen für die intelligente Suche von Daten entwickelt und entwickelt. Auf der anderen Seite dieser Medaille steht die Möglichkeit, mit Daten zu interagieren, entweder über die Verarbeitung natürlicher Sprache, also den Aufbau eines Chatbots, der mit Ihren Daten interagiert, oder die Nutzung dieser Daten, um andere Funktionen wie das Aufrufen von Code anzutreiben.


LlamaIndex bietet die Möglichkeit, Ihre Daten in verschiedenen Formaten zu speichern und diese Daten aus einer Reihe verschiedener Quellen abzurufen, um letztendlich das How für Ihre generative KI-Anwendung bereitzustellen.


LangChain bietet die Möglichkeit, mit diesen Daten etwas zu tun, sobald sie gespeichert wurden, Code zu generieren, generative Antworten auf Fragen bereitzustellen und Entscheidungen voranzutreiben, um letztendlich das „Was“ für Ihre generative KI-Anwendung bereitzustellen.


Welche Projekte können Sie mit LlamaIndex erstellen?

Mit LlamaIndex verfügen Sie über ein benutzerfreundliches Daten-/Orchestrierungs-Framework zum Erfassen, Indizieren und Abfragen Ihrer Daten zum Erstellen generativer KI-Anwendungen. Während wir oben zu Beginn ein einfaches Beispiel liefern, liegt die wahre Stärke von LlamaIndex in der Fähigkeit, datengesteuerte KI-Anwendungen zu erstellen. Sie müssen Modelle nicht neu trainieren, sondern können LlamaIndex und eine hoch skalierbare Vektordatenbank verwenden, um benutzerdefinierte Abfrage-Engines, Konversations-Chatbots oder leistungsstarke Agenten zu erstellen, die bei der Lösung komplexer Probleme interagieren können, indem sie die eingehenden Daten dynamisch interpretieren und kontextbezogen machen Entscheidungen in Echtzeit.


Erstellen Sie generative KI-Apps in Echtzeit mit Vektorsuche auf Astra DB

Wenn es also an der Zeit ist, eine generative KI-Anwendung zu erstellen, die die Fähigkeit erfordert, Ihre privaten Daten zu nutzen und diese in die Fähigkeit einer Anwendung zu integrieren, mit diesen Daten zu interagieren und auf sie zu reagieren, ist LlamaIndex ein hervorragender Ausgangspunkt für die Aufnahme, Indizierung und Abfrage. Aber wiederholen Sie nicht die Fehler der Vergangenheit und isolieren Sie die Daten, die Sie für KI-Anwendungen verwenden, einbetten und auf die Sie zugreifen. Entwickeln Sie eine vollständige End-to-End-Lösung, die die Speicherung dieser Einbettungen und Indizes in einem hoch skalierbaren Vektorspeicher wie Astra DB umfasst.



Um mit LlamaIndex zu beginnen und zu sehen, wie DataStax und LlamaIndex zusammen besser funktionieren, lesen Sie den aktuellen DataStax-Blogbeitrag: „ Das Erstellen von GenAI-Apps im Petabyte-Bereich ist jetzt noch einfacher.

Weitere Informationen zum Einrichten und Bereitstellen von Astra DB finden Sie in einem der leistungsstärksten Vektorspeicher der Welt, der auf Apache Cassandra basiert und für die Verarbeitung großer Datenmengen in großem Maßstab entwickelt wurde. Um kostenlos loszulegen, hier registrieren .


Von Bill McLane, DataStax