RAG: KI mit Gedächtnis oder nur ein Hype?
Shownotes
In dieser Folge nehmen wir das Buzzword RAG – Retrieval Augmented Generation – kritisch unter die Lupe. Wir sprechen offen darüber, warum RAG als Allheilmittel für Unternehmens-KI gehandelt wird, aber in der Praxis oft an Grenzen stößt. Dabei teilen wir unsere Erfahrungen, verraten Tricks für bessere Suchergebnisse und diskutieren ehrlich, wo Halluzinationen trotz Datenbank-Anbindung nicht verschwinden. Wir zeigen, wie RAG den Arbeitsalltag vereinfachen kann, etwa beim Onboarding oder in der internen Wissenssuche, aber auch, warum es keine One-Size-Fits-All-Lösung gibt. Am Ende bleibt die Frage: Ist RAG ein echter Gamechanger oder doch komplexer als gedacht? Hört rein und findet es mit uns heraus!
Haben Sie Feedback oder Anregungen für kommende Folgen? Wir freuen uns über eine Nachricht!
Retrieval Augmented Generation (RAG)
https://de.wikipedia.org/wiki/Retrieval-Augmented_Generation
LLM (Large Language Model)
https://de.wikipedia.org/wiki/Sprachmodell#Gro%C3%9FeSprachmodelle(LLM)
Vektordatenbank
https://de.wikipedia.org/wiki/Vektordatenbank
Quadrant (Qdrant)
Atlassian Confluence
https://www.atlassian.com/de/software/confluence
TF-IDF (Term Frequency-Inverse Document Frequency)
https://de.wikipedia.org/wiki/Tf-idf
Apache Lucene
Fine-Tuning (KI)
https://de.wikipedia.org/wiki/Fine-Tuning(K%C3%BCnstlicheIntelligenz)
DIVISIO GmbH
afritz consulting GmbH
Transkript anzeigen
00:00:00: So nah und doch so fern.
00:00:02: Eigentlich schon sehr beeindruckend mit dieser neuen KI, aber irgendwie liegt so ein LLM dann doch zu oft daneben, um es wirklich praktisch bei der Arbeit einzusetzen.
00:00:10: Dass man dann immer jedes Mal alles von vorne erklären muss.
00:00:14: Und wie es bei einem selbstem Betrieb läuft, weiß es auch nicht.
00:00:17: Wenn es nur etwas gäbe, damit die Ergebnisse doch noch ein bisschen besser werden.
00:00:22: Gibt es, so zumindest das Versprechen?
00:00:24: Das Zauberwort heißt Rack.
00:00:26: Retrieval Augmented Generation.
00:00:28: Wir stöpseln einfach eine Datenbank mit den fehlenden Fakten an unser
00:00:32: LLM und schon klappt alles.
00:00:33: Klingt zu gut um wahr zu sein?
00:00:35: Stimmt.
00:00:36: Also kompletter Quatsch, stimmt nicht.
00:00:38: Nur ist es wir mal nicht ganz so einfach.
00:00:41: Heute aus unserem gemütlichen Meetingraum in den Design-Offices Köln heißen euch Andreas und Christoph zu einer neuen Folge von Künstlich-Klug
00:00:49: willkommen.
00:00:54: Hi Andreas.
00:00:55: Hi Christoph.
00:00:56: Und herzlich willkommen zum Podcast Künstlich-Klug.
00:00:59: Hallo.
00:01:00: Wir haben heute ein extrem cooles Thema und zwar das Thema Rack.
00:01:05: Rack.
00:01:06: Rack.
00:01:06: Rack.
00:01:07: Genau.
00:01:08: Steht ja für Retrieval Augmented Generation.
00:01:12: Und ist häufig ein Begriff, der durch Social Media geistert, im Zusammenhang mit KI, wird als das Allheil ne schlechte
00:01:22: Beschworen und... Racks sind sehr in.
00:01:24: Racks sind total in.
00:01:26: Fällt meistens im gleichen Absatz wie Company GPT.
00:01:30: Und genau, ja, es ist auf jeden Fall sehr beliebt und erstaunlich, wie viele Experten es dafür gibt, wenn man bedenkt, wie kompliziert das Thema
00:01:37: eigentlich ist.
00:01:39: Ja, deswegen wollen wir es heute mal so ein bisschen auseinanderbauen und gucken, was eigentlich dahinter steckt.
00:01:44: Und vielleicht erst mal mit dem Anglismus an, weil wir wollen es ja immer zugänglich machen.
00:01:49: Ja, genau.
00:01:51: Retrieval Augmented Generation, RAG, also durch... Wie übersetzen wir Retrieval gut?
00:02:02: Abholen, einholen, einsammeln, durch einsammeln veränderte Generierung.
00:02:08: Das heißt, wir generieren was, das ist das gleiche Generieren wie in Generative AI und wir sammeln was ein und damit ändern wir das, was generiert wird.
00:02:16: Ja.
00:02:18: So weit.
00:02:19: So weit, so gut.
00:02:20: Genau, mein Verständnis davon ist, es gibt einen Hintergrund irgendein Art von Datenbank-Wissenschaft, sozusagen.
00:02:28: Manche laden Dokumente aus ihrem Internet da rein oder andere Informationen aus anderen Systemen.
00:02:35: Wie
00:02:35: gießt denn der Klassiker?
00:02:36: Genau.
00:02:37: Und nutzen das als zusätzliche Wissensquelle, zu dem, worauf das Modell vortrainiert wurde, um... quasi Antworten daraus zu generieren, um die Antworten aktuell vielleicht auch darauf auf diesen Informationen zu halten, etc.
00:02:54: Genau, so ist das.
00:02:55: Denn wir haben ja beim Erklärung, wie so ein LLM funktioniert, hatten wir gesagt, dass das Wissen quasi in das Modell eingebacken ist, und zwar das Wissen zum Zeitpunkt des Trainings.
00:03:05: Und ich habe ja... Daher, dass es sehr oft gerne bei Firmenternsachen eingesetzt wird, habe ich ja Firmenterner, die hoffentlich noch nicht in den Trainingssets gelandet sind, mal was ganz Banales, zum Beispiel, wie stelle ich hier richtig einen Urlaubsantrag, das ist in jeder Firma ein bisschen anders, kann das Modell ja nicht wissen, wenn ich es frage.
00:03:22: RAG ist eine Krücke, um zwei Dinge hinzubekommen.
00:03:27: Zum einen, um zusätzliches Wissen in das Modell hineinzubekommen, wenn ich mit dem Modell rede und generell in diesem Kontext die Halluzination zu reduzieren, so die Hoffnung.
00:03:37: Also die pauschale Erklärung ist, damit kann man sein eigenes Wissen in das Modell machen und dann, wenn man das dazu fragt, Halluzin jetzt nicht mehr.
00:03:45: Das ist natürlich Quatsch.
00:03:46: Das wird immer sehr übersimplifiziert verkauft und Rack ist deshalb im Moment so innen, weil es so ein Null acht Fünfzehn.
00:03:54: Template gibt, wie man so ein Rack aufbaut.
00:03:56: zusammen, wenn ich so einen GPT dran stöpsel und gerade rennen die ganzen Firmen daraus und verkaufen für Pauschbeträge, weil sie es einmal programmiert haben, einen Rack.
00:04:05: Und die Leute sind dann oft in der sehr enttäuscht, dass es ja dann doch nicht so toll funktioniert.
00:04:09: Also da wird gerade viel Schindglude auch getrieben.
00:04:11: Deshalb muss man eigentlich fast ein bisschen davor warnen, obwohl an der Technik natürlich was dran ist.
00:04:16: Also es ist eine ernsthafte Technik, aber ist halt oft nicht so leicht, wie man sich das vorstellt.
00:04:21: Ich finde die Anwendungsfälle trotzdem spannend.
00:04:23: Also ich habe es relativ früh kennengelernt, war auch als Company GPT sozusagen.
00:04:29: War damals noch etwas langsam klar, Modelle waren relativ schlank damals noch und Rechenleistungen auch.
00:04:36: Aber ich fand es total interessant, weil... für Morgengrichtlinie oder eine Reisekostenrichtlinie oder oder oder, plötzlich alles zugänglich waren und das im Onboarding von beispielsweise neuen Mitarbeitenden einfach extrem viel erleichtert hat.
00:04:51: Man konnte ja das Company GPT fragen anstelle des Chefs Nerven.
00:04:57: Genau.
00:04:58: Oft ist ja auch der Grund, warum man so was einführen möchte, weil die internen Wikis fürchterlich zu durchsuchen sind.
00:05:06: Wer schon mal mit Atlassien... Konflurenz?
00:05:11: Konflurenz arbeiten durfte, die Suchfunktion.
00:05:14: Manchmal, da gebe ich ja Wörter ein, von denen ich weiß, die kommen im Artikel vor und er findet den Artikel nicht.
00:05:19: Das muss ich auch erstmal verstehen, wie dieses Tool funktioniert.
00:05:22: Da ist das schon für da.
00:05:24: Aber man muss es halt richtig machen und dazu muss man so ein bisschen verstehen, wie das Rack überhaupt funktioniert.
00:05:30: Welches, vielleicht noch mal einen Schritt zurück, welches Problem löstest du noch außer beispielsweise das klassische Company GPT?
00:05:37: Also in welchen Anwendungsfällen kann man das dann trotzdem aus sinnvoller Weise nutzen?
00:05:41: Also immer da, wo das Wissen, dass diese Modelle von sich aus mitbringen, nicht ausreicht, weil es speziell ist.
00:05:49: Es ist auch dadurch eine Alternative zum Fine-Tuning, was man ja machen kann mit einem LLM, wenn man Zugriff drauf hat oder OpenAI bietet das auch über Services an.
00:05:59: Man kann es ja selber weiter trainieren.
00:06:01: Das ist dann viele sagen, ich habe einen GPT gebaut.
00:06:04: Nein, die Leute haben keinen GPT gebaut, die haben einen schönen Prompt davor gesetzt, was auch gut ist.
00:06:08: Die meisten jedenfalls.
00:06:10: Man kann tatsächlich sein eigenes GPT Feintune, indem man ein Haufen Daten an OpenAI übergibt.
00:06:16: Und das ist so eine Premium-Funktion.
00:06:18: Und dann kann ich mein eigenes GPT trainieren.
00:06:20: Und dann lasse ich halt meine Daten da reinbacken.
00:06:22: Und weil das ist sehr teuer.
00:06:23: und dann haben wir das Update-Problem.
00:06:25: Weil jedes Mal, wenn sich eine Kleinigkeit ändert, muss ich diesen Prozess wiederholen.
00:06:30: Und mit RAG, dadurch, dass ich eine Datenbank an mein LLM, an mein Chatbot an... Binde, die regelmäßig, die bei jeder Anfrage abgefragt wird, wo versucht wird, sich das passende Wissen herauszuziehen, ist es natürlich so, dass wenn ich den Inhalt der Datenbank ändere, dass dann bei der nächsten Anfrage schon die nächsten Daten drin sind.
00:06:52: Problem für aktuelle Daten.
00:06:54: Also selbst wenn ich die Möglichkeit habe zu Fein-Tune oder die Mittel oder das machen möchte, habe ich dadurch auch das Update-Problem gemischt.
00:07:01: Also spezialisiertes Wissen, Reduktion von Halluzination.
00:07:05: Das kann auch in einem Bereich sein, wo das Modell eigentlich wissen müsste.
00:07:09: Aber... Training einfach nicht gut genug war, keine Ahnung, chinesische medizinische Fachliteratur im juristischen Bereich wird sehr gerne genutzt für Verträge und so weiter und natürlich interner.
00:07:21: Dann kann ich das dadurch auch mein Modell versuchen anzureichen.
00:07:25: und in der Theorie
00:07:27: findet dieses Modell oder beziehungsweise Direct Process das Modell macht nämlich gar nichts, Theater Analogie, das Modell schreibt wieder nur ein Theater Skript.
00:07:36: Es ist sogar oft so, Das meistens, inzwischen ist es mit Tool-Use manchmal möglich, das Modell gar nichts von diesem Rack-Prozess weiß.
00:07:43: Also, dass das nicht irgendwie mit dem Modell überhaupt feiratet wird.
00:07:46: Das Rack, dieses Retrieval ist ein separates Modul dieser Software, die den Chat anbietet.
00:07:53: Vom Ablauf her stelle ich es mir so vor, ich stelle... Also, ich gebe ein Prompt ein, ich stelle eine Anfrage, ganz LLM.
00:08:00: Chattych, wie sonst auch, genau.
00:08:02: Der schickt als allererstes eine Abfrage los an die Datenbank, eine Suchfrage sozusagen, sucht er drinnen nach passenden Informationen, holt die ab und nimmt das dann als Kontext her, um eigentlich die Antwort aus dem LLM zu generieren.
00:08:17: Genau, ich erweitere mein Prompt, OPARC, also ohne dass es der Nutzer mitbekommt, im Hintergrund mit Informationen aus der Datenbank.
00:08:26: Das ist der ganze Trick, weil wir wissen ja, dass wenn ich wirklich, es ist so, wenn ich die richtigen Informationen.
00:08:34: direkt in den Kontext reinpacken, dann habe ich wirklich in der Tat sehr, sehr wenig Halluzination.
00:08:39: Es ist immer noch möglich, dass das Ding die falsche Antwort gibt, aber dann wird es wirklich unwahrscheinlich.
00:08:44: Also wenn ich den Absatz aus dem Wiki habe, um einen Antrag einzureichen, muss auf der Webseite so und so das Formular ausgefüllt werden und das muss mindestens so und so viele Wochen vorher passieren, zum Beispiel.
00:08:54: Und ich habe wirklich diesen Absatz schon gefunden.
00:08:57: und dann frage ich ChatGPT, ich bin auf der Webseite XY, was muss ich denn jetzt machen?
00:09:03: dann wird er mir dann schon die richtige Antwort geben.
00:09:06: Wobei man natürlich sagen muss, wenn ich so eine gute Suchfunktion habe, dann könnte ich eigentlich dem User ja schon die Erklärung.
00:09:12: Aber dann
00:09:12: muss der User das ja halt schon immer noch selber lesen.
00:09:15: Der Vorteil ist halt, dass ich Einzelfragen stellen muss.
00:09:18: Also wenn ich es zu neunzig Prozent schon weiß, aber ich weiß nicht mehr.
00:09:22: Wie viele Wochen vorher darf ich das noch stellen?
00:09:25: Da muss ich nicht den Artikel suchen, runter scrollen, bis ich an die Stelle, wo das ist, sondern ich kann halt den Wort fragen, wie viele Wochen vorher muss denn der Urlaubsantrag gestellt werden, damit
00:09:33: er durchgeht.
00:09:34: Muss denn die Datenbank in einer gewissen Art strukturiert sein, also häufig fällt das Wort Vektor Datenbank, damit ich das überhaupt nutzen kann, nutzbar machen kann?
00:09:46: Ja, also es gibt ein, das beliebte Narrativ, wenn dann die Leute ihre Null Acht Fünfzehn Off the Shelf Räglösung unter die Leute bringen wollen.
00:09:55: Da sind man diese lustigen Bildchen dann mit den blinkenden Pfeilen.
00:10:00: Also ich erzähle jetzt.
00:10:01: Ja, ich erzähle mal das Standard Narrativ, das nicht ganz falsch ist und dann werde ich mal drauf eingehen, aber warum es in der Realität oft nicht ausreicht.
00:10:09: Also das klassische Rack benutzt eine sogenannte Vektordatenbank, das ist eine ganz spezielle Art von Datenbank, da reden wir gleich drüber.
00:10:17: Da wird der Text die ich referenzieren will, in Schnipseln reingepackt, das dies berühmte Chunking.
00:10:22: Das heißt, ich packe nicht einfach ein ganzes PDF da rein mit vierzig Seiten, sondern ich packe zum Beispiel Absätze oder einzelne Sätze und zum Beispiel da rein.
00:10:31: Da geht es schon los.
00:10:32: Wie chunk ich das richtig?
00:10:33: Das ist für jeden Einsatzfall nämlich unterschiedlich.
00:10:36: Nämlich sehr große Chunks, wird man prompt schnell sehr groß.
00:10:39: Ich lasse meinen Kontext zu stark aus.
00:10:42: Eventuell habe ich dann auch zu viel Informationen, was wieder die Antwort schlechter macht.
00:10:46: Mache ich die Chunks zu klein, dann nehme ich vielleicht den ersten, den siebten, achten, neunten und den zwölften Satz und die dazwischen wären es gewesen von einem Abschnitt.
00:10:53: Das ist auch wieder ein Problem, das Chunking.
00:10:55: Damit geht es schon mal los.
00:10:57: Auch wie mache ich das?
00:10:58: Mache ich das einfach in fixer Länge oder wenn ein Satz zu Ende ist, wenn ein Absatz zu Ende ist, etc.
00:11:02: Es gibt viele Möglichkeiten.
00:11:05: Dann schreibe ich das halt in diese Vektordatenbank.
00:11:07: Und der Dreh- und Angelpunkt beim Rack, der richtig knifflige Teil, das mit dem Chunking kriegt man dann noch hin, ist, wie soll ich dafür, dass auch die richtige Information rausfällt.
00:11:18: Und in dem Standardbeispiel ist halt diese Vektordatenbank.
00:11:22: die geht hin und nimmt die Anfrage des Users, erzeugt daraus ein Embedding.
00:11:27: Und dann sind wir wieder bei den Embeddings.
00:11:28: Deshalb ist dieses Embedding-Thema so wichtig, weil ohne Embeddings funktioniert dieser Standard-Feind.
00:11:33: Genau, da der verweist auf die vorherigen Folgen.
00:11:36: Genau.
00:11:37: Dieses Embedding ist quasi ein Fingerabdruck der Frage.
00:11:40: Also das soll die Essenz der Frage einfangen.
00:11:45: Und jetzt kommen diese neuen Vektor-Datenbanken, diese neu.
00:11:47: Also wer schon mal mit klassischen Datenbanken zu tun hat, die Vektor-Datenbanken sind, um genau zu sein, sind es meistens NoSQL-Datenbanken.
00:11:54: Das klassische Beispiel ist Quadrant, endlich mal ein deutsches Startup, ist auch eine sehr gute Vektordatenbank.
00:12:00: Das ist auch das schöne deutsche Start-up und sie bauen auch was Gutes.
00:12:03: Freut mich.
00:12:05: Und der Klassiker ist, ich nehme halt diesen Fingerprint.
00:12:08: Was die Vektor-Datenbanken können, die können nach diesen Fingerprints unglaublich schnell suchen.
00:12:12: Das kann eine normale Datenbank nicht.
00:12:14: Die sind auf andere Arten von Suchen ausgerichtet.
00:12:17: Und dann findet diese Vektor-Datenbank hoffentlich alle Textschnipsel, deren Fingerprint so ähnlich ist.
00:12:24: Und da geht es schon mal, guck, ich fang schon wieder mit dem Problem an.
00:12:26: Das sparen wir uns jetzt nicht so.
00:12:28: Jetzt mit diesem Magen Mechanismus, nehme ich mir dann die zehntzwanzig-dreißig-besten-Hits aus dieser Vektordatenbank, ändere meinen Prompto.
00:12:36: Der User fragt das hier.
00:12:38: Bitte benutze folgende Informationen aus der Firmendatenbank, tap, tap, tap, tap, da werden einfach die Ergebnisse reinkopiert, um die Frage zu beantworten.
00:12:47: Das heißt, das LLM sieht nicht nur die Nutzerfrage, sondern vereinfacht ausgedrückt, diesen erweiterten Prompt mit der Nutzerfrage.
00:12:54: So, und in der Theorie kriegt das LLM dann alle Informationen, die es braucht, keine Halluzinationen mehr, abgedatete, direkt abgedatete Informationen, weil so eine Quadrant-Vektor-Datenbank, es gibt auch andere, aber es ist tatsächlich der Marktführer.
00:13:09: Auch Open Source, kann man auch selber hosten, kann ich also von daher nur empfehlen, ist auch eine gute Wahl, wenn man eine braucht.
00:13:15: So, und dann habe ich theoretisch den richtigen Chat.
00:13:17: Alle super, Folge zu Ende sind wir fertig.
00:13:20: Genau.
00:13:21: Ich glaube, da stecken ein paar Dinge drin.
00:13:23: Bei einer Sache sind wir uns, glaube ich, einig.
00:13:26: Das ganze Rack funktioniert nur so gut, wie die Suche eigentlich ist.
00:13:31: Genau,
00:13:31: dann kommen wir nämlich zu dem Punkt.
00:13:32: Das ist das, was wir dann immer... Also dieses Narrativ ist so toll und haben wir wieder dieses magische Denken, weil jetzt haben wir die magischen Embeddings und die magische super neue Vektor-Datenbank, zweimal toller, neuer High-Tech und auch das LLM, das kann ja nicht schiefgehen.
00:13:48: Es gibt Beispiele, wo, wenn man das relativ schnell so zusammenwirft, das ist schon reich, das stimmt auch.
00:13:53: Aber jetzt fangen die Probleme an.
00:13:55: Der erste Denkfehler ist, dass das Embedding einer Frage, dem Embedding der Antwort sehr ähnlich ist.
00:14:03: Wieso?
00:14:05: Also das ist schon mal der erste Fehler.
00:14:07: Da gibt es dann zum Beispiel einen ganz lustigen kleinen Trick, der erhöht meine Rechenkosten ein bisschen.
00:14:12: Ich brauche mehr LLN im Abfragen, aber ich lasse das Modell absichtlich haluzinieren.
00:14:17: Das heißt, ich stelle die Frage wirklich JetGPT und sage, wenn du es nicht weißt, denk dir was aus, was plausibel ist.
00:14:23: Das heißt, ich schiebe es an, denk dir mal was aus.
00:14:27: Er generiert wahrscheinlich passende Antworten.
00:14:30: Ein wahrscheinlich gut klebriger Text.
00:14:33: höchstwahrscheinlich falsch, weil er hat ja nicht Zugriff auf die echten Daten.
00:14:36: Aber er hört sich höchstwahrscheinlich so ähnlich an wie die richtige Antwort.
00:14:40: Das heißt, der Fingerprint sieht dem wiederum sehr ähnlich.
00:14:44: Das ist ein ganz einfacher Hack, um so ein Reksystem gleich viel besser zu machen.
00:14:49: Gibt es auch einen schönen Namen zu und ein Paper?
00:14:52: Wollen wir mal das Paper raussuchen?
00:14:55: Den habe ich jetzt nicht präsent.
00:14:56: So, da geht es schon mal los.
00:14:58: Ich muss also auf jeden Fall, wenn ich ein Reksystem baue, dass das allerwichtigste ... dieses Retrievel, das R muss ich testen.
00:15:04: Und das machen die meisten Leute schon.
00:15:06: Ich meine, die haben keinen Lust.
00:15:07: Also die Schlangenölverkäufer sagen, hier kaufst du den Rek, schreiben schön großen Preis an, Magic, Magic läuft.
00:15:13: So, und dann ... ... die Kunden ... ... wollen natürlich ... ... möglichst schnell mal irgendwas mit KI machen.
00:15:20: Muss man leider sagen, oft ist nicht die ... ... bei jedem guten KI-Projekt
00:15:24: ... ... muss
00:15:25: leider auch ... ... der Kunde viel mitarbeiten.
00:15:28: Das wird oft vergessen ... ... und wenn die Projekte scheitern ... ... dann oft ... weil vorher eine Erwartungshaltung geschaffen wurde, die nicht erfüllt werden kann.
00:15:36: Alles magic, das Ding denkt für sich selbst, alle Probleme gelöst, ihr müsst nichts machen.
00:15:41: Und dann möchte keiner hingehen und sagen, zum Beispiel für ein gutes Rack, gebt uns mal bitte zweihundert bis fünfhundert übliche Abfragen, die bei euch vorkommen, mit den Ergebnissen in eurer Wissensdatenbank, wo ihr sagt, wo das Wissen ist.
00:15:52: Weil ich muss ja meinen Retrieval testen, ob es die Informationen findet.
00:15:56: Sei es ein gutes Rack-System, wenn ich das baue, kann ich eigentlich nur bauen mit einem Testdatensatz.
00:16:01: auch wenn man normalerweise beim nicht mehr Maschinenlearning hat, wo man Datensätze anholfen muss, also mindestens mal ein Dutzend oder zwei Dutzend.
00:16:08: Beispiel, damit ihr sehen könnt, findet mein Retrieval das, damit ich den Schanker einstellen kann.
00:16:13: Auch die Frage, wo kommen die Fingerprints denn her?
00:16:15: Ich habe gesagt, dann machen wir ein Embedding, wie machen wir das denn?
00:16:17: Braucht man ein eigenes Embedding-Modell?
00:16:20: Davon gibt es Dutzende von den großen Anbietern und Source-Anbieter, wo las ich das Modell laufen.
00:16:27: Was für den Einfall ein super Embedding ist, ist für den anderen Fall vielleicht komplett nutzlos.
00:16:31: Es gibt domänenspezifische Embeddings, zum Beispiel Embeddings speziell für Code, die ich im Programm kontextlos suche.
00:16:38: Ja, wie war deine Frage?
00:16:41: Genau, also wir waren an dem Punkt, das ganze Racksystem ist nur so gut wie die Suche
00:16:46: ist.
00:16:47: Genau.
00:16:47: Das Retrieve, und jetzt beispielsweise einen Hack hast du ja gerade eben schon verraten, davon gibt es wahrscheinlich nur einen halben Stutzend mehr.
00:16:54: die Halluzination am Anfang zu provozieren, um bessere Antworten zu finden aufgrund des Fingerprintings.
00:17:01: Was ich mich frage ist, wenn so eine Suchanfrage da jetzt implizit gestellt wird oder vielleicht auch explizit mit schon vorgebauten Antwortmöglichkeiten, kann es... passieren, dass mir dann Zusammenhänge verloren gehen, die ich eigentlich in dieser Datenbank gespeichert habe, die aber sinnvoll sind.
00:17:20: Also ich mache mal ein dummes Beispiel.
00:17:22: Ich habe die Dienstwagenrichtlinie und die Reisekostenrichtlinie reingeladen.
00:17:26: Ich habe jetzt ein Dienstreise gemacht mit meinem Dienstwagen.
00:17:29: Ich möchte die abrechnen.
00:17:31: So, eine Information steht hier drin, die andere Information steht da drin.
00:17:35: Kriege ich die zusammen durch so eine Abfrage?
00:17:37: Je nachdem, wenn ich mein Retriever gut mache.
00:17:41: Die Frage, das heißt, wie kriege ich das denn hin, dass ich nach weiteren Dingen suche.
00:17:45: In deinem Beispiel wird es mit einem Plumpten, ich embede einfach, das nennt man als Verb, also ich erzeugere den Ebeding aus deiner Frage, sehr gut möglich sein, dass es schief geht, weil er sich auf den Dienstwagen versteift.
00:17:58: Das heißt, da kommen wir schon zum nächsten Hack.
00:18:01: Viele sagen immer, und ich will die nicht schlechtreden, die Vektor-Datenbanken, nützliches Tool, in vielen Fällen sehr nützlich, aber die Leute versteifen sich gleich darauf.
00:18:09: Es gibt eine viel simplere, plumpere Sache.
00:18:12: Ich kann eine ganz normale Suchfunktion mit Keywords benutzen, die ich bisher immer hatte.
00:18:17: Vielleicht nicht die von Kornfluenz.
00:18:20: Aber einfach textbasierter Suche.
00:18:21: Richtig.
00:18:22: Ich mache eine aus meiner normalen Frage, mache ich erst mal eine ganz normale Keyword Extraction.
00:18:28: Die Web-Leute, die kennen das eher, es gibt da etwas, das nennt sich TFI-DF, kann ich in dem Kontext immer noch benutzen.
00:18:33: Also ich kann auch einfach nach allen Wörtern, die in der Frage vorkommen suchen.
00:18:36: Ich mach so meine, der, die das wehen, aus und so nach den Wörtern.
00:18:40: und jetzt noch ein toller Hack gleich in der Frage.
00:18:43: Ich frage eine LLM, was sind denn gute?
00:18:45: Suchbegriffe für diese Frage.
00:18:48: Ja, ich gebe dem den Kontext.
00:18:49: Ich sage, in diesem Wiki sind folgende Informationen.
00:18:52: Das ist eine typische, gibt es vielleicht noch ein bisschen mehr, ist eine typisches Wiki von einem mittleren, mittelsgroßen Unternehmen.
00:18:57: Da stehen, kann man mit solchen Sachen rechnen.
00:19:00: Mit welchen Keywords würdest du denn nach den passenden Artikeln für diese Frage suchen?
00:19:05: Dann erzeugst du die Keywords.
00:19:07: Und dann mache ich meine Retrievalsuche ganz normal mit einer Volltextsuche, mit einer ganz klassischen Datenmache oder mit einem System wie Lucine.
00:19:14: Wenn das schon klappt, brauche ich meine Vektodatenbank gar nicht mehr.
00:19:18: Sehr oft ist es so, dass beide Verfahren kombiniert werden.
00:19:21: Dann kommen wir wieder zu dem Archimeding.
00:19:22: Also bliebte Reihenfolge, ich such erst mit den Keywords.
00:19:26: Das ist das Merkwürdige, nämlich gar nicht mit der neuen tollen, sondern ganz banal mit meinen langweiligen Keywords.
00:19:32: Und dann benutze ich die Embeddings nur noch, um die Reihenfolge zu ändern.
00:19:35: Das heißt, ich gucke nur noch bei den Embeddings, das nennt sich Rewanking.
00:19:39: Ich lasse mir eine Menge geben von den Keywords.
00:19:42: Hier sind zwei Hundert Artikel von den Keywords gegeben mit einer ganz normalen Datenbankanfrage, wie man sie kennt.
00:19:48: Und dann nehme ich meinen Embeddingsystem und sag, Guck mal, welche Fingerprints fassen denn von denen am besten?
00:19:54: Weil das Problem mit den Embeddings ist, dass die manchmal zu viel Beifang haben lassen.
00:19:58: Die sind so ein bisschen wie so riesiges Schleppnetz, weil die eben so viele Dimensionen haben, weil so viel Wissen in diesen Fingerprints drin ist, dann findet der vielleicht ein Artikel Snippet, der einfach... vom grammatikalischen Ausdruck sehr ähnlich ist.
00:20:12: zu der Frage.
00:20:13: Das ist ja auch eine Art von Ähnlichkeit und all diese Ähnlichkeiten sind ja in dem Embedding gespeichert.
00:20:18: Das heißt, die finden manchmal zu viel Ähnlichkeiten anhand aller möglichen Aspekte.
00:20:23: Aber dann kommt es halt darauf an, wenn ich extra einen Embedding suche, einen Embeddingmechanismus, der speziell zum Beispiel auch für Rack gedacht wird, dann reduziert sich
00:20:31: das.
00:20:32: Ein Anwendungsfeld, den ich beispielsweise mal kennenlernen durfte und wo das mit der Vektor-Datenbank und der Merling sehr gut funktioniert hat, war ein Abgleich von Rechnungen und zwar Rechnungsähnlichkeit, also wo es darum ging, Duplikate festzustellen bei Rechnung und bei Dingen, die sehr ähnlich aussahen, aber dasselbe eigentlich beinhaltenden Beispielsweise irgendwie die leicht abgennete Firmenadresse oder einen anderen Rechnungstext aber alles andere relativ ähnlich war.
00:21:05: Und diese Ähnlichkeiten, das war, glaube ich, genau das, wo für die Vektodatenbank genial war.
00:21:10: Das ist
00:21:10: wirklich, das ist, was es natürlich ganz toll löst.
00:21:13: Dann kann man sich das auch mit den Keywords sparen.
00:21:15: Das ist ein sehr schönes Beispiel, wie es richtig eingesetzt wird.
00:21:18: Und das glaube ich auch.
00:21:19: Darf man fragen, welche Vektodatenbank das war.
00:21:23: War es Quarten?
00:21:24: Nee, es war tatsächlich, glaube ich, im SAP-Kontext und genau auch dort gibt es eine Vektor-Datenbank.
00:21:31: Vielleicht um den Schwenk nochmal zu den Halluzinationen zu machen.
00:21:36: Ich glaube, die Halluzinationen sind ja, also sind nicht ausgeschlossen durch die Vektor-Datenbank oder durch das Retrieval, weil ich glaube, ein Grundproblem der Halluzinationen ist ja, Ein LNM weiß nicht, was es nicht weiß.
00:21:53: Genau.
00:21:54: Also, wenn es nichts findet, fängt es einem zu spinnen.
00:21:57: Das
00:21:57: kann nicht
00:21:57: anders.
00:21:59: Ganz selten.
00:22:01: Ich weiß nicht, ob ich mal erlebt habe, dass ich weiß nicht.
00:22:03: Ich glaube, ich habe das Verantwortung noch nie bekommen.
00:22:05: Ja,
00:22:07: genau.
00:22:08: Also deswegen nicht ausgeschlossen.
00:22:09: Nein,
00:22:09: genau.
00:22:10: Also zwei Möglichkeiten.
00:22:12: Also, wenn das Retrieval die richtigen Informationen nicht findet, dann wird es gefährlich, weil wenn die Lücken eventuell dazu gedichtet, also gefüllt durch Erfundenes, es kann allerdings sogar manchmal sein, dass die richtige Info gefunden wird und aus anderen Gründen, weil einfach die Wahrscheinlichkeit falsch gewürfelt wird.
00:22:33: Also, so Zahlen, Größenordnungen, das hängt natürlich unglaublich stark vom Projekte vom Contents von allen, wie viel Zeit ich mir nehme.
00:22:44: Das ist auch ein Fass ohne Boden.
00:22:46: Tun ich an dem Rack eine Woche oder zwei?
00:22:49: Oder nehme ich mir sechs Monate dafür?
00:22:51: Klar, wenn ich noch einen Trick und noch einen Trick und noch einen Trick mache, dann kriege ich das immer weiter gedrückt.
00:22:55: Ich kriege die aber nie auf Null.
00:22:57: Also wenn ich zum Beispiel ein System, ein Shadboard habe, der ohne das Rack in dreißig bis vierzig Prozent der Fälle mir falsche Antworten gibt, was bei Firmen der Ansachen höchstwahrscheinlich der Fall ist, dann kriege ich das hinterher reduziert auf... Wenn ich gut bin, zwei, drei Prozent falsche Antworten, wenn es manchmal auch nur zehn, zwanzig Prozent.
00:23:16: Man muss halt immer schauen in diesem Kontext, was akzeptabel ist.
00:23:21: Dann gibt es natürlich noch Tricks, um hinterher vielleicht festzustellen, ob es falsch ist.
00:23:24: Das nennt sich dann LLM as a Judge.
00:23:27: Ich nehme einen zweiten Chatbot, der bekommt die Frage gestellt.
00:23:33: Hier sind folgende Informationen, das ist eine Frage von einem Nutzer.
00:23:37: Hier sind folgende Informationen, das ist die Antwort.
00:23:40: Passt das?
00:23:40: Sieht das valide aus?
00:23:42: Denn der Spruch der dazu gehört, für mich immer, wenn ich das erkläre, ich muss nicht ein Ei legen können, um zu erkennen, dass es faul ist.
00:23:50: Das heißt, diese Judge-LLMs, also Judge-Wiederrichter, die das bewährten, die müssen auch noch nicht mal so smart sein.
00:23:58: Damit kriegt man das zum Beispiel auch schon wieder ganz gewaltig gedrückt.
00:24:01: Und jedes Mal mit jedem dieser Techniken drück ich es dann weiter runter.
00:24:04: Deshalb ist es so unglaublich wichtig, dass ich mir ein Test-Set mache, zum einen fürs reine Retriebe.
00:24:10: Also da muss dann eine Experte aus der Buchhaltung, Rechnungsabteilung, was auch immer, der sich mit dem jeweiligen Problem auseinander setzt, muss mir zum Beispiel geben, welchen richtig ist, dann teste ich das Retrievel für sich und ich muss aber auch durchaus mal ein paar Fragen vorbereiten, mit denen entsprechenden echten Antworten, damit ich in der Testkarte kann, ob es richtig ist.
00:24:32: Möglichst automatisiert, dann sind wir wieder bei typischen... Best Practices, wie man ordentlich Software schreibt.
00:24:37: Das sind Sachen, die kann man auch sehr schön dann in automatisierte Tests schreiben, die man wiederum mit dem LLM machen kann, weil ich kann nicht Wort für Wort die Antwort vergleichen, sondern ich muss nur fragen, hier ist die echte Antwort, das ist die erzeugte Antwort, ist das ungefähr das gleiche?
00:24:50: Und das, da ist dann so wenig Halluzination drin.
00:24:53: Ich, ob der jetzt, wenn die wirkliche Antwort ist, achtzig Prozent sind richtig und das LLM sagt, achten siebzehn oder zweieinachtzig sind nicht so wichtig.
00:25:01: Die Größenordnung kriegen die Dinger hin und damit habe ich ein automatisierten
00:25:04: Test.
00:25:05: Vielleicht letzte Frage, um das Thema abzuschließen.
00:25:07: Wie ist das mit den Kontextfenstern?
00:25:10: Also kann man sich dabei auch vertun, weil Kontextfenster können beliebig groß sein, gebe ich zu viel Inhalt
00:25:17: rein,
00:25:19: beschreibe ich das Kontextfenster
00:25:20: und das Rackproblem.
00:25:23: Das ist ein richtig schlimmes Rack-Problem.
00:25:25: Wenn ich so ein Ding baue, muss ich aufpassen, dass ich es nicht zu sehr fülle.
00:25:29: Weil, also viele Rack-Systeme sind auch nur eine Frage, eine Antwort oder einen ganzen Chat, weil man stellt sich vor, man führt ohnehin längeren Chat und jede meiner kurzen Fragen wird durch zehn Dienervier-Seiten-Firmen-Richtlinien ergänzt.
00:25:40: Da ist das Context Window ganz, ganz schnell voll.
00:25:43: Da muss ich das Racksystem zum einen so bauen, dass ich weiß, welches Modell soll denn damit arbeiten.
00:25:48: Ich muss dessen Kontextfenster kennen.
00:25:51: Ich muss es so programmieren, dass der Kontext nicht zu voll wird.
00:25:55: Das heißt, ich habe hier noch zehn schönen Ergebnisse, die kann ich leider nicht nehmen.
00:25:58: Ich kann nur die ersten drei Ergebnisse nehmen, weil das der große Chance sind.
00:26:03: Kontextwindow wird ein echtes Problem.
00:26:06: Da gibt es dann auch wieder Tricks.
00:26:08: Genau, ist glaube ich ein Problem, was sich mit der Zeit besser und besser löst, weil die Modelle besser werden.
00:26:15: Ich habe aber heute erst, ich benutze einen Code Assistenten, der auch noch ein Rack mit drin hat, wobei aber das Rack da nicht das... Problem ist, ich hatte den ganzen Tag heute Kontextwindow-Probleme und ich habe schon mit Claude gearbeitet.
00:26:28: Aktuell, Sie wollen es jetzt auf eine Million Tokens erhöhen.
00:26:31: Zwarhunderttausend Tokens Kontextwindow hat nicht gereicht, weil das Projekt zu groß war.
00:26:37: Da muss ich mir eine Menge Tricks ausdenken, um damit noch Koden zu können.
00:26:41: Ich bin da auch voll reingerannt.
00:26:44: Ich glaube, das Problem tritt gerade deswegen auf.
00:26:47: Und das ist der Charme eigentlich von den Rack-Setups im Sinne eines Company GPT.
00:26:58: Es wird häufig ja lokal aufgesetzt, damit ich die Informationen bei mir im Unternehmen behalten kann, datenschutztechnisch nach außen nicht preisgebe.
00:27:06: Und gerade die kleinere Modelle, die dann lokal laufen, haben kleinere Kontextfenster.
00:27:11: Deswegen muss man an der Stelle eben vorsichtig sein.
00:27:14: Sehr
00:27:14: guter Hinweis.
00:27:14: Ich wollte gerade sagen, weil du sagst, ich behalte die Daten bei mir, aber in dem Moment, wo ich die natürlich an OpenAI schicke, in dem Erweitern
00:27:22: kommt es.
00:27:22: Aber das stimmt.
00:27:23: Rags sind auch eine Möglichkeit, aus kleineren Modellen mehr rauszuholen, Wenn ich einfach nur über meine Urlaubsplanung reden will mit dem Bild, dann muss das nicht Astrophesik können.
00:27:33: Und dann kann ich ein kleines, so eine einfache Frage wie wieviel ich diese Formular auskönne, dann auch die kleinen Modelle lösen mit einem Rack.
00:27:38: Schönes Beispiel.
00:27:39: Korrekt.
00:27:41: Ich glaube, die Komplexität oder die Dimensionen hinter so einem Rack ist ein bisschen deutlich geworden.
00:27:47: Was wollen wir abschließend festhalten?
00:27:49: Es ist eine coole Technik.
00:27:51: Also kein Schlangenöl.
00:27:53: Aber es ist komplexer, als es immer gerne verkauft wird und alle Beteiligten müssen sich richtig ran setzen, damit so ein REC-System gut
00:28:00: wird.
00:28:00: Genau, ich glaube, es gibt keine One-Size-Fitzes-All-Lösung dafür.
00:28:04: Noch nicht, ne?
00:28:06: Aber es ist eine extrem coole Variante, um Firmen intern, KI und LLMs zu nutzen und gerade eben auch um solche Dinge zu beschleunigen wie das Onboarding oder andere Dinge.
00:28:17: Auf jeden Fall.
00:28:17: Also gibt es tausend tolle Sachen, auf die man das verwenden
00:28:19: kann.
00:28:21: Schließen wir damit?
00:28:22: Schließen wir damit.
00:28:23: Vielen Dank fürs Zuhören und Zuschauen und dann hoffentlich bis zur nächsten spannenden Folge.
00:28:27: Ebenso.
00:28:28: Bis dann.
00:28:28: Tschüss.
00:28:32: Liebe Zuhörer, das war es für heute von Künstlich
00:28:35: Klug.
00:28:36: Wir hoffen, ihr habt jetzt eine bessere Vorstellung davon, wie man KI mit eigenem Wissen anreichert und warum es trotzdem nicht immer klappt.
00:28:45: Teilt uns gerne eure Fragen,
00:28:47: Wünsche
00:28:48: und Gedanken zur heutigen Folge über die E-Mail in der Beschreibung mit.
00:28:52: Wir hoffen, ihr seid auch bei der nächsten Folge
00:28:54: von Künstlich Klug
00:28:55: wieder dabei.
Neuer Kommentar