27. Juli 2023 von Marc Mezger
Smarte Informationsbeschaffung: Conversational Agents für den Zugriff auf Unternehmenswissen
In der modernen Geschäftswelt ist es von entscheidender Bedeutung, zeitnah und präzise auf unternehmensinternes Wissen zugreifen zu können. Mithilfe von KI-Sprachmodellen (LLMs) wie Luminous von Aleph Alpha lassen sich diese Informationen effizient nutzen und in einer benutzerfreundlichen Chat-Umgebung bereitstellen. In diesem Blog-Beitrag werde ich zeigen, welche Prozesse und Komponenten erforderlich sind, um Dokumente und sonstiges Wissen auf professionelle Art durchsuchbar zu machen. Auf diese Weise sind Mitarbeitende und Kundinnen sowie Kunden in der Lage, mit den Dokumenten eines Unternehmens zu chatten und zu interagieren. Zuallerst möchte ich kurz die Grundlagen erläutern.
Embeddings
Embeddings sind numerische Vektoren, die die Bedeutung oder das semantische Konzept von Wörtern, Sätzen oder Dokumenten in einem mehrdimensionalen Raum darstellen. Die folgende Abbildung zeigt dieses Konzept recht anschaulich.
Die zugrunde liegende Idee ist, verschiedene Arten von Input, wie beispielsweise unterschiedliche Sprachen, Bilder und Sprache, durch ein Embedding-Modell zu verarbeiten. Dieses Embedding-Modell basiert auf einem Large Language Model (LLM), das so modifiziert wurde, dass lediglich die interne Repräsentation – also die Informationen im Zwischenschritt – ausgegeben wird. Diese Vektoren können anschließend miteinander verglichen werden.
Der Vorteil eines LLM liegt in der umfassenden Menge an Weltwissen, auf dem es trainiert wurde. Dadurch versteht das Modell die zugrunde liegenden Konzepte hinter den Wörtern. Es erkennt beispielsweise, dass die Begriffe „Hund“, „Dog“ und ein Bild eines Hundes tatsächlich dasselbe Konzept repräsentieren. Diese Fähigkeit erstreckt sich sowohl auf mehrsprachige als auch auf multimodale Inhalte und beinhaltet auch das Erkennen von Synonymen. Durch die Nutzung dieser Fähigkeiten wird die Suche effizienter gestaltet, da sie nicht länger auf die Übereinstimmung von Wörtern abzielt, sondern auf die Übereinstimmung eines Konzepts. Durch die Konvertierung von Text in Embeddings können wir die Ähnlichkeit zwischen verschiedenen Textelementen messen, indem wir die Distanz zwischen ihren Vektoren berechnen. Dies ermöglicht eine effiziente Identifikation und den Vergleich semantisch ähnlicher Inhalte.
Large Language Models (LLMs)
LLMs sind KI-Modelle, die entwickelt wurden, um menschenähnliche Texte zu erstellen und zu verstehen. Diese Modelle basieren auf neuronalen Netzwerken, insbesondere auf sogenannten Transformer-Architekturen. LLMs werden auf riesigen Mengen von Texten trainiert, die aus dem Internet stammen, und lernen dabei, Muster und Zusammenhänge in der Sprache zu erkennen.
Ein bekanntes Beispiel für ein Large Language Model ist GPT-3 von OpenAI, wobei GPT für „Generative Pre-trained Transformer“ steht, oder auch die Luminous-Modelle von Aleph Alpha. Diese Modelle sind in der Lage, kohärente und relevante Texte in natürlicher Sprache zu erzeugen, Fragen zu beantworten, Texte zu übersetzen und sogar einfache Aufgaben in Programmiersprachen zu lösen.
Auch ChatGPT ist ein Large Language Model, allerdings eins, das für den Dialog mit Menschen optimiert wurde.
Vektordatenbank
Eine Vektordatenbank ist eine spezialisierte Form von Datenbank, die darauf ausgelegt ist, Daten als hochdimensionale Vektoren zu speichern. Jeder dieser Vektoren besitzt eine bestimmte Anzahl von Dimensionen, die – abhängig von der Komplexität und Granularität der Daten – zwischen zehn und mehreren tausend liegen kann. Vektordatenbanken eignen sich insbesondere zur Speicherung von Daten, die als Vektoren repräsentiert werden können, wie beispielsweise Text, Bilder und Audiodateien.
Der entscheidende Vorteil von Vektordatenbanken gegenüber herkömmlichen Datenbanken besteht darin, dass sie speziell für die Verarbeitung von Vektoren optimiert sind und dadurch direkte Vektorvergleiche ermöglichen. Der Prozess der Embedding-Erstellung muss lediglich einmal durchgeführt oder bei Bedarf aktualisiert werden, wenn neue Dokumente hinzugefügt werden. Dies vereinfacht und beschleunigt das Verwalten und Abrufen von Informationen erheblich, was sich positiv auf die Effizienz des gesamten Systems auswirkt.
Beispiele für Vektordatenbanken sind unter anderem Chroma, Pinecone oder Qdrant.
Langchain
Im Kern ist Langchain ein Framework, das um LLMs aufgebaut ist. Es kann für Chatbots, generative Frage-Antwort-Systeme (GQA), Zusammenfassungen und vieles mehr verwendet werden. Die zentrale Idee der Bibliothek besteht darin, verschiedene Komponenten zu verknüpfen, um fortgeschrittene Anwendungsfälle rund um LLMs zu erstellen. Die Ketten können aus mehreren Komponenten aus verschiedenen Modulen bestehen – zum einem aus einem Sprachmodell wie Luminous von Aleph Alpha und einer Vektordatenbank, also einer Art Persistenz, und Prompts, den Anweisungen an die Sprachmodelle.
Architektur
Meine Architektur ist in folgendem Bild zu finden.
Zunächst besteht das Hauptziel darin, das in einem Unternehmen vorhandene Wissen nutzbar zu machen, das üblicherweise in Form von digitalen Dokumenten vorliegt. Diese Dokumente werden durch Vorverarbeitung in einzelne Teile zerlegt – abhängig von der Komplexität geschieht dies entweder manuell oder automatisch. Aus diesen Textfragmenten werden anschließend sogenannte Embeddings generiert, die in einer Vektordatenbank gespeichert werden. Ein geeignetes Embedding-Modell für diesen Zweck ist Luminous Explore, das in einem exzellenten Blog-Beitrag von Aleph Alpha vorgestellt wurde: Luminous Explore: A Model for World-Class Semantic Representation
Wenn ein User eine Frage stellt, wird zunächst ein Embedding für diese Frage erstellt. Dieses Embedding wird dann in der Vektordatenbank mit den vorhandenen Dokumenten-Embeddings verglichen, und die am besten passenden Ergebnisse werden zurückgegeben. Anschließend wird die Frage zusammen mit den Ergebnissen an das Luminous-Complete-Modell übergeben, das eine passende Antwort generiert. Schließlich kann mithilfe von Luminous Explain verdeutlicht werden, auf welchem Teil des Dokuments die Antwort basiert.
Integrationsmöglichkeiten
Die Integrationsmöglichkeiten dieser Lösung sind äußerst vielfältig und flexibel. Die Backend-Architektur ermöglicht eine einfache Einbindung in verschiedene Plattformen – einschließlich herkömmlicher Websites, Chatbots in Microsoft Teams oder sogar sprachgesteuerter Systeme. Die modulare und skalierbare Gestaltung der Architektur gewährleistet eine schnelle Implementierung auf nahezu allen Systemen. Durch das Bereitstellen einer universellen Schnittstelle kann die Lösung nahtlos in eine Vielzahl von Anwendungen, Programmen oder Websites integriert werden. Dieses Vorgehen erlaubt es, die Vorteile der leistungsstarken semantischen Suche und Analyse in verschiedensten Szenarien und Kontexten zu nutzen, um Benutzererfahrungen zu optimieren und den Zugriff auf wertvolle Informationen zu erleichtern.
In diesem Showcase präsentiere ich euch eine Anwendung, die das oben beschriebene Verfahren veranschaulicht. Zunächst wurde ein Buch über synthetische Materialien in Embeddings umgewandelt und entsprechend indexiert. Im nächsten Schritt kann der User einen Suchbegriff eingeben. Der eingegebene Suchbegriff wird verwendet, um das am besten passende Dokument zu identifizieren, das im Dokumentenbereich angezeigt wird. Anschließend wird mithilfe von Luminous Complete eine präzise und relevante Antwort auf die ursprüngliche Anfrage generiert. Die Kombination dieser Technologien ermöglicht es, effizient und intuitiv auf Informationen zuzugreifen, wodurch User wertvolle Zeit sparen und sich auf ihre Kernaufgaben konzentrieren können.
Verwendungsmöglichkeiten
Einsatzmöglichkeiten für Conversational Agents gibt es zahlreiche, hier möchte ich euch ein paar Beispiele geben:
- Kundensupport: Ein Conversational Agent kann in Unternehmen eingesetzt werden, um Kundinnen und Kunden bei der Lösung ihrer Probleme zu unterstützen, indem er auf deren Fragen semantisch passende Antworten aus einer Wissensdatenbank extrahiert.
- E-Commerce: Ein solcher Agent kann dazu verwendet werden, um Kundinnen und Kunden bei der Suche nach passenden Produkten zu unterstützen, indem er ihre Anfragen analysiert und relevante Produktvorschläge auf der Grundlage ihrer Bedürfnisse und Präferenzen bietet.
- Personal Assistant: Conversational Agents können als digitale Assistenten fungieren, die Usern helfen, ihre Aufgaben zu organisieren, Erinnerungen festzulegen, Informationen im Web zu finden oder sogar E-Mails und Nachrichten zu verfassen.
- E-Learning: Ein Conversational Agent mit semantischer Suche kann in Lernumgebungen eingesetzt werden, um Schülerinnen, Schülern und Studierenden bei der Suche nach relevanten Informationen und Lernmaterialien zu helfen, die auf ihre spezifischen Fragen und Bedürfnisse zugeschnitten sind.
- Gesundheitswesen: Solche Agenten können Patientinnen und Patienten sowie dem medizinischen Personal helfen, indem sie Informationen zu Krankheiten, Medikamenten und Behandlungen bereitstellen oder sogar bei der Diagnose von Erkrankungen unterstützen, indem sie auf medizinische Fachliteratur zurückgreifen.
- Reiseplanung: Ein Conversational Agent kann Reisenden bei der Suche nach Reisezielen, Flügen, Hotels und Aktivitäten helfen, indem er ihre Präferenzen und Anforderungen berücksichtigt.
- News und Content Discovery: Ein solcher Agent kann Usern helfen, personalisierte Nachrichten und Inhalte zu entdecken, die auf ihren Interessen und Vorlieben basieren.
- Human-Ressource-Management: Ein Conversational Agent kann dazu beitragen, die Effizienz von HR-Abteilungen zu steigern, indem er bei der Beantwortung von Mitarbeiteranfragen, der Durchführung von Mitarbeiterbefragungen oder der Verwaltung von Bewerberdaten unterstützt.
Repository
Natürlich möchte ich euch auch eine praktische Demonstration dieses Konzepts vorstellen. Ihr findet eine von mir erstellte Demo unter folgenden Links:
Das Beispielprojekte zeigt, wie das Durchsuchen von Wissen unter Verwendung von Aleph Alphas Technologien ermöglicht wird.
Ein besonderes Merkmal dieser Implementierung ist die Integration der Explain-Funktion von Aleph Alpha. Diese Funktion trägt dazu bei, potenzielle Halluzinationen, also fehlerhafte oder irreführende Informationen, die vom Modell generiert werden könnten, weitestgehend zu verhindern. Dadurch werden die Qualität und Zuverlässigkeit der bereitgestellten Antworten und Informationen weiter optimiert.