Das Geheimnis des perfekten Prompts, Episode 2: Der KI Knowledge-Assistent

Wir berichten aus der Praxis über Experimente mit LLMs - in dieser Episode geht es um eine chatbot-artige Assistenz-Funktion, die das Auffinden von unternehmensinternen Informationen erleichtern soll.

­Kurzer Recap aus Teil 1 der Serie: Die Welt kopuliert mit ChatGPT. Aktuelle Sprachmodelle haben je nach Anwendungsfall sowohl großes Potenzial als auch erhebliche Defizite. Die für Machine Learning und LLM-Hosting benötigte Hardware säuft viel zu viel Kühlwasser und frisst viel zu viel Energie. Der Bereich der KI-gestützten Systeme entwickelt sich rasant. In diesem Beitrag berichten wir von den Erfahrungen bei der Entwicklung eines Assistenz-Systems, das bestehende textuelle Daten aus einem bestimmten Themenbereich nutzt, um Anwendern schnelle und kompetente Antworten zu liefern.

Hinter die KI-Kulissen schauen

Im Gegensatz zu vielen anderen Vertretern der Digitalbranche versuchen wir bei Intercorp unseren Kunden nicht mittels diffuser Beratungsleistungen zu zeigen, wie toll ChatGPT funktioniert, sondern erproben auf Datenschutz fokussierte Lösungen, die über gegenwärtig übliche Einsatz-Szenarien hinausgehen.

Unser Ziel ist die Entwicklung von Assistenz-Systemen, bei der die Datenhoheit, sofern technisch möglich und wirtschaftlich vertretbar, uneingeschränkt bei den Unternehmen liegt, die diese Daten auch erheben.

Das ist aus verschiedenen Gründen noch problematisch, insbesondere wenn die Investitionsmöglichkeiten (oder die Willigkeit) der Unternehmen im Bereich KI überschaubar sind.

Intercorp steht im Kontakt mit kleinen und großen Playern aus dem KI-/LLM-Bereich (z.B. Aleph Alpha, Merantix oder Neuroforge), um Lösungsansätze zu diskutieren und potenzielle Partnerschaften auszuloten. Eine der wesentlichen Erkenntnisse des Austauschs ist, dass die meisten größeren Spezial-Anbieter von Produkten oder Dienstleistungen rund um LLMs und Machine Learning erst ab Mindestbudgets im sechsstelligen Bereich ernsthafte Gespräche führen.

Für viele unserer Kunden sind solche Budgets zum gegenwärtigen Zeitpunkt indiskutabel. Abhängig von der Branche und Größe ist in den meisten Fällen nicht überschaubar, welche messbaren Benefits von KI-Lösungen in den Unternehmen tatsächlich zu erwarten sind. Und verständlicherweise ist man zögerlich, auch im Angesicht der rasanten Weiterentwicklung, zu früh zu viel zu investieren.

Daher ist es uns ein Anliegen, mit überschaubaren Mitteln und Maßnahmen die bestmöglichen Ergebnisse zu erzielen und Produkte für KMU zu konzeptionieren, bei denen der initiale Invest überschaubar und berechenbar bleibt.Mit allen sich daraus ergebenden Vor- und Nachteilen.

Intercorp verfolgt Ansätze, die sich nicht nur auf die Dienstleistungen externer Firmen verlassen, sondern bedient sich bevorzugt existierender Komponenten aus dem Open Source Bereich, die bereits jetzt viele spannende Möglichkeiten bieten und denen – nicht nur unserer Meinung nach – die Zukunft gehört. Zu unserem Toolkit gehören u.a. umfassende, qualitativ hochwertige Sprachmodelle wie Wizard, Llama2, Alpaca und Bloom für die Verarbeitung und Erzeugung natürlicher Sprache sowie Frameworks wie Langchain oder ChromaDB für die Integration sensibler, lokaler Datenquellen.

Im letzten Logbuch-Beitrag haben wir zwei aktuelle Einsatz-Szenarien für KI-gestützte Assistenz-Systeme angeteasert. In diesem Beitrag geht es um einen Chatbot, der das bestehende Wissen in einem Unternehmen konsumiert und helfen soll, das Know-how in Dialogform verfügbar zu machen – sowohl für die eigenen Mitarbeiter als auch für die Kunden unseres Kunden.

Kontext der KI-Assistenzfunktion

Bei den Unternehmen, für die wir F&E betreiben, handelt es sich um weltweit tätige Hersteller und Dienstleister aus verschiedenen Branchen. Die Kunden haben über die Jahrzehnte viel, zum Teil nur mäßig strukturiertes Wissen angesammelt, sowohl im Produkt-Bereich als auch in der IT.

Wir konzentrieren uns bei der Entwicklung auf zwei Anwendungsfälle.

  1. Einen Chatbot, der in der Lage ist, Azubis oder neu eingestellten Mitarbeitern beim Onboarding und der Wissensbeschaffung zu unterstützen.
  2. Einen Chatbot, der dem IT-Personal helfen soll, Wissen aus verschiedenen Quellen schnell und ohne großen Recherche-Aufwand zu aggregieren.

Die Entwicklung solcher Assistenz-Systeme ist mit einigem Aufwand verbunden, daher stellt sich das Unternehmen als erstes die erwartungskonforme und berechtigte Frage, ob in einem überschaubaren Zeitraum ein ROI zu erwarten ist. Die Frage können wir nie pauschal beantworten, aber immerhin Hinweise geben, welche Vorteile solche Systeme bieten und wo Potenziale entstehen, die zu einem ROI führen können.

Vorteile von unternehmensinternen KI-Chatbots

  1. Verfügbarkeit rund um die Uhr, was insbesondere dann praktisch ist, wenn das Unternehmen weltweit Dependancen hat und alle auf das gleiche Wissen zugreifen sollen.
  2. Jeder Lernende hat sein eigenes Tempo. Ein Chatbot kann individuell auf Fragen und Anforderungen eingehen und daher jedem Mitarbeiter oder Azubi hinsichtlich seiner persönlichen Fähigkeiten oder Eigenschaften gerecht werden
  3. Ein Chatbot wird nie meckern. Lernende können so oft wie nötig Fragen stellen – zur Not auch die gleiche, ohne sich beurteilt oder gedrängt zu fühlen
  4. Meinungen oder persönliche Vorlieben, die bei der Interaktion mit menschlichen Kollegen mitunter zu bewusster oder unbewusster Beeinflussung insbesondere neuer Mitarbeiter führen können, spielen bei Chatbots keine Rolle
  5. Chatbots können leicht und plattformunabhängig integriert werden, z.B. in Lernplattformen, Websites und Apps
  6. Chatbots mit „Gedächtnis“ können den Fortschritt und die Bedürfnisse der Lernenden verfolgen und den Inhalt entsprechend anpassen.
  7. Durch das Fragen-Antwort-Format können Lernende aktiv mit dem Material interagieren, was oft effektiver ist als passives Lernen, etwa nur Durchlesen von Informationen.
  8. Die laufenden Kosten für einen Chatbot sind oft geringer als die Gehälter und Schulungskosten für menschliche Tutoren.
  9. Chatbots können in verschiedenen Sprachen interagieren (geeignete Sprachmodelle vorausgesetzt), sodass Lernende in ihrer Muttersprache oder in einer gewünschten Sprache lernen können.
  10. Chatbots können gleichzeitig mit tausenden von Benutzern interagieren, ein menschlicher Kollege tut sich bei mehr als einer Handvoll Schützlingen schwer

Wesentliche KI-Herausforderungen und potenzielle Probleme

  • Eine der größten Sorgen ist die Sicherheit personenbezogener oder unternehmenskritischer Daten. Eine unsachgemäße Implementierung, das Ausnutzen von Prompting-Schwachstellen könnten dazu führen, dass sensible Informationen in falsche Hände geraten oder kompromittiert werden.
  • Chatbots könnten Informationen aus den verfügbaren Datenquellen falsch interpretieren oder aus dem Kontext reißen, was zu Missverständnissen oder fehlerhaften Schlussfolgerungen führen kann.
  • Die zusätzlichen Datenquellen (abgesehen von den Informationen, die im LLM ohnehin vorhanden sind), auf die der Chatbot zugreift, müssen stets aktuell gehalten werden. Der beste Chatbot bringt nichts, wenn seine Antworten auf veralteten Daten basieren.  Insbesondere, wenn regelmäßiges Finetuning notwendig sein sollte, kann diese periodische Aktualisierung viele (Hardware-)Ressourcen binden.
  • Ein Chatbot kann nicht das Urteilsvermögen und die Intuition eines Menschen ersetzen. Es könnte Situationen geben, in denen menschliches Eingreifen oder eine Überprüfung erforderlich ist.
  • Nutzer könnten zu hohe Erwartungen an die Fähigkeiten des Chatbots haben, insbesondere wenn er mit einer Datenbank verbunden ist. Das kann zu Enttäuschungen und unangemessenen, zusätzlichen Zeitaufwänden führen, wenn der Bot nicht die erwarteten Informationen liefert.

KI Azubi-Chatbot: Das Setup

Sprechen wir über einen konkreten Fall: Bei der Implementierung des Use Case „Chatbot für Azubis“ waren wir gleichermaßen beeindruckt wie ernüchtert. Viele Fragen wurden von den hochwertigen Sprachmodellen erstaunlich präzise, hilfreich und umfassend gelöst, bei einigen, teilweise völlig trivialen Aufgaben aber versagte die KI. Inhaltliche Beispiele folgen noch, zunächst ein paar Stichworte zum verwendeten Tech-Stack. Wir gehen in diesem Fall nach dem RAG-Prinzip vor (Retrieval Augmented Generation):

  • Flask-Webserver (Python) hinter einem NGINX-Proxy als Web-Frontend, um die Interaktion mit den LLMs auch im Versuchs-Kontext beim Kundenunternehmen möglichst unkompliziert und komfortabel zu gestalten
  • Langchain-Framework (Python) für die Einbindung von und Interaktion mit verschiedenen Sprachmodellen
    • GPT-3.5-Turbo und GPT-4 via OpenAI-API
    • Lokal hinterlegte Sprachmodelle, primär LLama2- und Wizard-Varianten in den Größen 7B und 13B
  • Vektordatenbanken auf Basis von LlamaIndex und ChromaDB, erzeugt mit textuellen Daten aus Web-Scrapings, Indesign-Dokumenten, CSV-Daten und PDFs

Im Grunde geht es bei dieser Chatbot-Ausprägung darum, dem System verschiedene relevante Unternehmens- und Produktdaten zur Verfügung zu stellen, damit sich Auszubildende eigenständig weiterbilden können und bei konkreten Fragestellungen kompetente Unterstützung erhalten – auch und insbesondere dann, wenn gerade nicht akut ein menschlicher Ansprechpartner zur Verfügung steht.

Beobachtungen und Erkenntnisse

Es sei zunächst festgestellt, dass die Implementierung von Sprachmodellen im Unternehmenskontext technisch gesehen keine ausufernden Aufwände verursacht, zumal es auf dem Markt bereits bemerkenswert funktionale Frameworks gibt (u.a. besagtes LangChain), die den Entwicklern und Integratoren von KI-gestützten Anwendungen viel Arbeit abnehmen können. Die Evolution ist im Bereich des Toolings ähnlich rasant wie bei den Sprachmodellen selbst, sodass die Herausforderung darin besteht, passende Sprachmodelle zu wählen, eine qualitativ hochwertige Datenbasis zu schaffen und optimale Fragestellungen und Leitplanken zu entwickeln, also gutes Prompting.

Der Implementierungsaufwand ist besonders gering, wenn man sich externer Dienstleister wie OpenAI, Azure, AWS o.ä. bedient, die Sprachmodelle via APIs anbieten und somit auch gleich sämtliche, für LLMs benötigte Rechenleistung und Datenhaltung externalisiert werden kann. Kosten und technische Abhängigkeiten beiseitegelassen, ist der wesentliche Nachteil in solchen Szenarien ein Mangel an Datenschutz und Datenhoheit. Da mögen die großen Tech-Unternehmen versprechen, was sie wollen – sind die Daten aus dem Haus, sind sie raus, Punkt. Und insbesondere Microsoft hat in den letzten Monaten aufgrund diverser Probleme rund um Azure, Outlook und Exchange nicht gerade dazu beigetragen, das Vertrauen in die Sicherheit großer Cloud-Anbieter zu stärken.

Bindet man sich die zusätzlichen Anforderungen ans Bein, die bei Nutzung von Sprachmodellen auf einer unter eigenen Kontrolle stehenden Infrastruktur entstehen, fallen mehr Implementierungsaufwand und zumindest initial höhere Betriebskosten an, weil ein sinnvoller Betrieb von kompetenten LLMs wie Llama2 nur auf potenter Hardware möglich ist. Dafür hat man Im Gegenzug Hoheit über seine Daten und ist unabhängiger von externen Dienstleistern.

Im Rahmen des aktuellen Entwicklungsstandes von LLMs gibt es, abgesehen von den „technischen“ Grundlagen (Sprachmodell, Datenbasis, Hardware), eine entscheidende Komponente im Workflow: Der Mensch, der die richtigen Fragen stellt.

Einer der wesentlichen Vorteile von Sprachmodellen ist ja deren Fähigkeit, mit dem Mensch in natürlicher Sprache zu kommunizieren. Der Wunsch ist, Informationen aus Datenquellen zu erhalten, ohne hierfür besondere technische Fähigkeiten vorweisen zu müssen, etwa die Nutzung von Programmiersprachen.

Dass man bei der Interaktion mit LLMs keinen Programmcode schreiben muss, ändert nichts an der Tatsache, dass die Handlungsanweisungen oder Fragen, die man an den Chatbot richtet, möglichst präzise und eindeutig sein sollten, da sonst die Antworten nicht erwartungskonform oder inhaltlich korrekt ausfallen, es ist also eine Denkweise nötig, die auch beim Programmieren hilft.

KI-Kuriositätenkabinett

Ein paar komische Beispiele aus unserem Prompting-Museum, genutzt wurde hier das GPT4-Modell von OpenAI, und der Chatbot wurde via Prompt-Template unter anderen mit folgenden Leitplanken ausgestattet:

  1. Antworte nur in deutscher Sprache
  2. Antworte nur, wenn du dir sicher bist, nicht raten oder halluzinieren.
  3. Nutze ausschließlich die bereitgestellten Quellen (in Form einer Vektor-Datenbank)

Der Temperature-Wert, der festlegt, wie „kreativ“ der Bot antworten darf, wurde auf 0 eingestellt, das sorgt in den meisten Fällen dafür, dass auf gleiche Fragen immer die gleichen Antworten entstehen.

Frage 1.1: was ist ein hors deauvre
Antwort: Ein "Hors d'œuvre" (aus dem Französischen, wörtlich übersetzt "außerhalb des Werks" oder "außerhalb des Hauptgerichts") ist ein kleines Gericht oder eine kleine Portion von Lebensmitteln, die in der Regel vor dem Hauptgang einer Mahlzeit serviert werden. Hors d'œuvres sind oft dazu gedacht, den Appetit anzuregen und den Gaumen auf das bevorstehende Essen vorzubereiten.

Frage 1.2: erkläre den begriff hors deauvre
Antwort: Der Begriff "Hors d'œuvre" stammt aus dem Französischen und wird im kulinarischen Kontext verwendet, um Vorspeisen oder Appetithäppchen zu beschreiben, die vor dem Hauptgang einer Mahlzeit serviert werden. "Hors d'œuvre" bedeutet wörtlich "außerhalb des Werks" oder "außerhalb des Hauptgerichts" und bezieht sich darauf, dass diese kleinen Gerichte vor dem Hauptgang genossen werden, um den Appetit anzuregen und den Gaumen auf das Essen vorzubereiten.

Bemerkenswert hier: Schreibfehler ignoriert das LLM gekonnt. Obwohl die Fragestellungen inhaltlich vergleichbar sind, fallen die Antworten des Chatbots unterschiedlich detailliert aus. Grundsätzlich ist das auch in Ordnung, es sei denn, man hat den so genannten Temperature-Wert für das LLM auf „Null“ gesetzt, dann sollte es bei der Beantwortung der immergleichen Fragen auch die immergleichen Ergebnisse geben.

Frage 2: wie viele hemden wurden in stuttgart verkauft
Antwort: In Stuttgart, a total of 105,516 shirts were sold.

Bemerkenswert hier: Der dem Chatbot bereitgestellte Datenschatz beinhaltet in diesem Fall keine Hemden als Produkte, sondern ferngesteuerte Spielzeug-Modelle. Daher müsste das System eigentlich eine Fehlermeldung bzw. einen Hinweis liefern, dass gar keine Hemden in der Datenbank vorhanden sind. Und das LLM antwortet, trotz vorheriger Anweisung via Prompt-Template, nicht in der gewünschten Sprache.

Frage 3.1: was für eine persönlichkeit sollte man für das kfz handwerk haben?
Antwort: Der bereitgestellte Kontext gibt keine spezifischen Informationen darüber, welche Persönlichkeitsmerkmale man für das KFZ-Handwerk haben sollte.

Frage 3.2: was ist das kfz handwerk für eine persönlichkeit?
Antwort: Das Kfz-Handwerk erfordert eine Persönlichkeit mit starken technischen Fähigkeiten, analytischem Denken, Geduld, Detailorientierung und Belastbarkeit. Kommunikationsfähigkeiten, Selbstständigkeit und Ethik sind ebenfalls wichtig. Eine Leidenschaft für Autos und die Bereitschaft zur Weiterbildung sind von Vorteil.

Frage 3.3: was ist das kfz handwerk für eine persön
Antwort: Das Kfz-Handwerk erfordert eine technisch versierte, detailorientierte und geduldige Persönlichkeit. Analytisches Denken, gute Kommunikation und die Bereitschaft zur Weiterbildung sind entscheidend. Selbstständigkeit und ein echtes Interesse an Autos sind ebenfalls wichtig, ebenso wie Ethik und Integrität. Belastbarkeit und Anpassungsfähigkeit in einer sich ständig weiterentwickelnden Branche runden das Profil ab. Es ist wichtig zu beachten, dass das Kfz-Handwerk viele verschiedene Bereiche und Spezialisierungen umfasst, darunter Mechanik, Karosseriebau, Elektronik, Lackierung und mehr. Je nach gewählter Spezialisierung können einige dieser Eigenschaften stärker betont werden als andere.

zu Frage 3.1: Eine offensichtliche Kuriosität hier ist, dass die aus unserer Sicht sinnvolle Frage nicht sinnvoll beantwortet wird. Stellt man die Frage hingegen unsinnig, erhält man sinnvolle Antworten.

zu Frage 3.2: Weniger offensichtlich ist: Die bereitgestellte Kontextquelle beinhaltet keine Informationen über das KFZ-Handwerk an sich, sondern nur bestimmte Fachbegriffe, Produkte und Techniken des Bereichs der KFZ-Mechanik. Zwar hat der Bot offensichtlich wahrgenommen, dass der Kontext „KFZ“ passt, und verweigert daher keine Rückmeldung, aber die Informationen zur Beantwortung der Frage kommt nicht aus der bereitgestellten Kontext-Quelle, sondern aus den Daten, mit denen das Modell trainiert wurde. Die Vorgabe war jedoch ausschließlich die Kontextquelle für die Antworten zu verwenden.

zu Frage 3.3: Ist noch unsinniger formuliert, aber die Antwort ist noch sinnvoller und basiert zumindest (nachweislich) teilweise tatsächlich auf Informationen aus der Kontextquelle.

Schon aus diesen wenigen Beispielen wird deutlich, dass allgemeine Sprachmodelle alles andere als unfehlbar sind. Wir haben während unserer Tests allerdings auch festgestellt, dass der überwiegende Teil der Fragen bemerkenswert kompetent und sprachlich außerordentlich sauber beantwortet wurden – grammatikalische oder orthografische Fehler sind selten und oft werden die Antworten sogar mit hilfreichen oder warnenden Hinweisen versehen, damit es nicht zu Missverständnissen oder reflexionsloser Verwendung von halbgaren Bot-Antworten kommt. Die Antwort auf eine Frage nach Prognosen für zukünftige Entwicklungen wird etwa ungefragt mit Zusätzen versehen, dass die vom LLM aufgeführte Rechnung keineswegs präzise sein werde, da in aller Regel nicht ausreichend Kontext und Umfelddaten zur Verfügung stünde, um verlässliche Informationen und Vorhersagen zu liefern.

Es gibt neben der „Temperatur“ noch andere Werte, mit denen sich das Verhalten und die Zuverlässigkeit eines Sprachmodells manipulieren lässt, unter anderem Zufälligkeiten, Antwortlängen oder Häufigkeiten von Wortfragmenten, gute Detailerklärungen dazu finden sich hier.

Die wichtigste Stellschraube, um die Antwortqualität zu verbessern, ist der Prompt selbst – je klarer man die Frage formulieren kann und was für eine Antwort erwartet wird, desto besser wird der Bot reagieren. Es gibt eine Reihe von Kontext-Informationen, mit denen man Fragen ergänzen kann, dazu gehören zum Beispiel:

  • Welche Aufgabe oder Rolle der Chatbot spielt – beispielsweise könnte man ihm vorgeben, dass er ein Kundenberater ist, der ein Produkt anpreisen soll
  • Wie umfangreich die Antwort ausfallen soll – wenn man nur oberflächliche Hinweise braucht, macht es keinen Sinn, sich ganze Abhandlungen generieren zu lassen
  • Auch hilfreich ist, wenn man dem Bot mitteilt, was man NICHT möchte. Wenn man beispielsweise Informationen zu Backwaren braucht, in der Antwort aber Süßgebäck keine Rolle spielen soll, ist es sinnvoll, dem Sprachmodell das mitzuteilen.
  • Ausgaben des Bots kann man sich auch vorformatieren lassen – wenn beispielweise eine Antwort in Tabellenform benötigt wird, ist das (mit Einschränkungen) möglich.
  • Das Konzept des Few-Shot-Promptings sieht vor, dass man ein paar beispielhafte Fragen-Anworten-Paare als Beispiele mitschickt, damit der Bot ein „Gefühl“ dafür bekommt, auf welche Weise er formulieren soll

Prinzipiell lässt sich also schlussfolgern, dass präzisere und detailliertere Fragen entsprechend höherwertige Antworten erzeugen.

Nach unseren bisherigen Erfahrungen mit den genannten Anwendungsfällen erscheint uns der Einsatz sowohl intern als auch im Kundenkontakt mittlerweile als nutzbringend, allerdings braucht es für ein erfolgreiches Deployment ein paar Voraussetzungen:

Die Erwartungshaltung sollte bei den Nutzern zurechtgerückt werden, damit sie keine Wunder erwarten. Kritische Business-Entscheidungen sollten, aufgrund der nicht vollständig vermeidbaren Halluzinationen und Fehlinterpretationen, nicht ausschließlich auf Informationen basieren, die das Sprachmodell hergibt.

Und es sollte sichergestellt sein, dass die zukünftigen Anwender für den Einsatz und Gebrauch eines solchen Bots auch offen sind.

Im nächsten Teil der Logbuch-Reihe werfen wir dann einen Blick auf einen weiteren Prototypen, der es ermöglicht, sich direkt mit einer SQL-Datenbank zu unterhalten.

Stay tuned.