Instructions, Guidelines, Best Practices – das Repertoire an digitalisiertem Wissen ist in vielen Unternehmen oft zu groß, um es auf klassischen Wegen zugänglich zu machen. Large Language Models haben das Potenzial, diesem Dilemma zu begegnen. Wir haben den Eigenversuch gestartet.
In einem Unternehmen ist es völlig normal, dass es verschiedene Wissensflüsse und Datenquellen gibt. Softwareentwickler leben für ihre Git-Repositories, UI-Designer pflügen durch verschiedene Figma-Dateien und die Rechtsabteilung hat eine Sammlung wichtiger PDFs sowohl in der Cloud als auch lokal. Wenn es dann unternehmensweite oder interdisziplinäre Aufgaben gibt, ist es entscheidend, dass alle Beteiligten einfachen Zugriff auf die relevanten Informationen haben. Bestenfalls über eine Single Source of Truth, die Zugriff auf alle Wissenssammlungen hat und das darin enthaltene Wissen über eine zentrale Schnittstelle den relevanten Stakeholdern zur Verfügung stellt.
Vieles braucht es dazu nicht. Um genau zu sein vier Dinge: Eine Sammlung von firmenspezifischem Wissen, eines der aktuellen Sprachmodelle (z.B. GPT-4, LLAMA2 oder BERT), eine Vektor-Datenbank und ein Framework zum Deployment der Schnittstelle. Gibt man etwas Data-Expertise dazu ist das Ergebnis ein Q&A-Tool, das über alle freigegebenen Daten Bescheid weiß und von allen Mitarbeitenden zentral genutzt werden kann. Wichtig dabei: Das Tool kennt nur jene Dokumentationen, die gezielt freigegeben wurden – sensible Daten bleiben damit sicher. Zudem kann das Tool zwischen verschiedenen Nutzerrollen unterscheiden und inhaltlich zugeschnittene Antworten liefern – sowohl im Informationsumfang, als auch in der Informationstiefe und dem Sprachstil. Damit wird das Tool für jede Rolle im Unternehmen zum perfekten Sparring: Egal ob Tech-Lead, UX-Designer oder Communications Manager. Im Selbstversuch haben wir unseren Chatbot flik mit spezifischem Wissen gefüttert.
Konkret verwenden wir einen technologischen Ansatz namens Retrieval Augmented Generation (RAG). Dieser ermöglicht es, Daten außerhalb eines Foundation Models wie GPT zu integrieren, indem die an das Foundation Model gesendeten Prompts um die firmen-spezifischen Daten erweitert werden. Um ein adaptives, RAG-basiertes Q&A-Tool zu implementieren, werden die folgenden vier Bausteine benötigt.
Wie die ersten drei Bausteine miteinander interagieren, ist in der Abbildung dargestellt.
Bei Formigas verwenden wir Notion als Werkzeug für kollaboratives Wissensmanagement. Dementsprechend haben wir für dieses Experiment unseren Notion Workspace als Datenbank verwendet. Dazu kann sowohl die Notion API als auch ein einfacher Notion-Export verwendet werden.
Liegen die Custom Data vor, können sie mit Hilfe eines Embedding-Models in Zahlen umgewandelt werden (Data Embedding). Warum ist das nötig? Computer können mit gespeicherten Zahlen wesentlich effizienter umgehen als mit gespeichertem Text. In unserem Experiment verwenden wir das Embedding-Model text-embedding-ada-002 von OpenAI und greifen über die OpenAI API darauf zu. Dieses Modell transformiert jeden Wissensblock unserer Custom Data in einen 1536-dimensionalen Vektor. Diese Sammlung von Vektoren repräsentiert nun unsere Custom Data in Form von Zahlen und wir schreiben sie in eine Vektor-Datenbank. Hierfür verwenden wir Pinecone, eine cloud-basierte Vektor-Datenbank. Pinecone ermöglicht es, schnelle Rechenoperationen auf den Vektoren durchzuführen, wie zum Beispiel das Similarity Matching.
Beim RAG-Ansatz werden alle Informationen in Embeddings umgewandelt, um performante Rechenoperationen auf den Daten ausführen zu können.
Um Prompt und Kontext einander zuordnen zu können, muss zunächst ein Prompt Embedding erzeugt werden, wofür das gleiche Embedding Model von OpenAI auf die User Prompt angewendet wird. Innerhalb der Vektordatenbank wird das Prompt Embedding gegen alle Data Embeddings über ein Similarity Matching anhand der berechneten Cosine Similarity getestet. Dabei wird das Data Embedding identifiziert, das dem Prompt Embedding semantisch am nächsten steht. Der Inhalt dieses Data Embeddings kann nun als Kontext zusammen mit der User Prompt als gemeinsame Completion Prompt an ein Completion Model gesendet werden, um die Frage innerhalb der Prompt zu beantworten. Als Completion Model wurde OpenAI’s gpt-3.5-turbo verwendet. Dieses Modell liefert die Antwort auf die vom Benutzer gestellte Frage und verfügt dafür über das notwendige Wissen in Form des richtigen Kontextes aus der Vektor-Datenbank. Um die RAG Technologie über das Deployment Nutzenden zur Verfügung zu stellen, verwenden wir Langchain als Framework. Langchain ist darauf spezialisiert LLM-basierte Applikationen zu bauen.
Unseren Eigenversuch haben wir auf formigas.ai online gestellt. Um die Cloud-Services von OpenAI und Pinecone anzubinden, haben wir Serverless-Functions verwendet.
Der vorgestellte RAG-Ansatz ist natürlich nicht auf einfache Q&A-Tools beschränkt. Letztendlich handelt es sich um einen universellen Ansatz, um das Potenzial von Large Language Models auf unternehmensinternes Wissen anzuwenden. Large Language Models können vieles, vom Schreiben von Social Media Posts über das Übersetzen und Interpretieren von Rechtstexten bis hin zum Schreiben von funktionalem Code.
So kann der RAG-Ansatz auch zur Unterstützung der firmeneigenen Softwareentwicklung eingesetzt werden, indem die firmenspezifische Syntax als Kontext gespeichert wird und das System funktionalen und firmenspezifischen Code generiert.
OpenAI ist übrigens nur einer von vielen Anbietern von Large Language Models. Eine deutsche Alternative bietet AlephAlpha – zum Beispiel dann, wenn Daten aufgrund der DSGVO Deutschland oder Europa nicht verlassen dürfen.
Ziel des RAG-Ansatzes ist es, zu jeder User Prompt den passenden Kontext zu finden und diesen zusammen mit der Prompt an das Sprachmodell zu senden.
Neben dem RAG-Ansatz und den verwendeten Embeddings gibt es auch die Möglichkeit, Large Language Models mit eigenen Daten zu fine-tunen. Das bedeutet, die vorhandenen vortrainierten Sprachmodelle mit eigenem Wissen weiter zu trainieren. Warum ist das für ein Q&A-Tool der kompliziertere Weg? Welche Anwendungsgebiete gibt es für den Fine-Tuning-Ansatz? Und wie kann man eigene Q&A-Tools auf den eigenen Firmen Daten aufbauen? Diese Fragen können wir euch unter anderem in unserem AI Sprint detailliert beantworten. Meldet euch gerne bei uns!
In zwei Tagen von einer strategischen Vision zu konkreten Handlungsoptionen