[0:00] Hallo und herzlich willkommen zu Inside [0:02] AI. Heute zum Thema Retrieval Augmented [0:05] Generation oder Kurz Rag. [0:14] Ja, das Thema RCK ist jetzt auch nicht [0:16] mehr ganz so neu. Ihr werdet [0:17] wahrscheinlich auch sagen, Tommy, es ist [0:18] doch jetzt schon im Jahr 2025, da kommst [0:21] du mir jetzt mit Re. Das war doch der [0:23] Hype von vom letzten Jahr. Ist doch ein [0:25] alter Hut. Wir haben jetzt [0:26] Agentensysteme [0:28] Search und Co. Und lange Kontextfenster [0:31] von einer Million und teil teilweise [0:33] darüber hinaus, da spielt R doch gar [0:35] keine Rolle mehr. Jain, also ganz so [0:38] einfach ist es natürlich nicht und [0:39] deshalb lohnt es sich dennoch auch [0:41] heutzutage noch darüber nachzudenken, [0:43] wie man das Thema Retrieval, das ist [0:46] nämlich tatsächlich eigentlich der [0:47] Kernpunkt, um den es hierbei geht, [0:49] nämlich das Zusammensuchen von [0:52] relevanten Informationen in Kombination [0:55] mit generativer KI im Einsatz bringen [0:58] kann. Und um das zu verstehen, schauen [1:01] wir uns einfach noch mal ganz kurz an, [1:03] wie denn der Mechanismus bei einem LM [1:06] funktioniert und zwar das sogenannte [1:08] Kontextfenster. Das heißt, ein LM, das [1:11] hat ich ja in den vorherigen Folgen auch [1:12] schon in einigen Teilen erklärt. Jedes [1:15] LM hat ein festdeiniertes [1:18] Kontextfenster, also eine Maximalanzahl [1:21] von sozusagen Tokens oder Wörtern, die [1:24] es verarbeiten kann. Und wenn man etwas [1:27] mit längeren mit mehr Tokens verarbeiten [1:30] will, dann muss man halt einfach [1:31] irgendwo vorne hinten in der Mitte was [1:33] abschneiden. Und es gibt mittlerweile [1:36] Modelle, die bis zu einer Millionen [1:38] Tokens verarbeiten können. Z.B. Gemini [1:41] 2.5 Pro von Google. Das Problem dabei [1:44] ist aber immer noch, dass nur weil ein [1:46] Modell ein Kontextinster z.B. von einer [1:49] Million Tokens hat. Das nicht bedeutet, [1:51] dass es auch genauso gut mit diesen [1:53] vielen Tokens umgehen kann wie mit [1:55] weniger Tokens. Es bleibt also dabei, je [1:58] weniger Tokens ich den Modell mitgebe, [2:01] umso besser kann die Qualität sein. Und [2:03] das heißt, es ist entscheidend, was ich [2:06] dem Modell an Input mitgebe. Wenn wir in [2:09] Richtung Prompt Engineering denken, das [2:11] ist dann quasi der Userprompt, der dem [2:13] Modell mitgegeben wird. Das ist ein [2:16] essentieller Bestandteil in der in der [2:17] Arbeit mit diesen generativen Modellen, [2:20] die auf LMS basieren. Wir haben auch [2:22] immer einen Systemprompt, der jetzt im [2:25] Fall von ChatGPT oder Enhropic von den [2:27] KI Laboren vorgegeben wird. Im Fall von [2:29] Cloud 4 beispielsweise ist der [2:32] Systemprompt, glaube ich, 60.000 1000 [2:35] Zeichen lang, also ein sehr sehr langer [2:38] Systemprompt und man muss also daher [2:41] nichtsdestotrotz immer noch ein bisschen [2:43] mit diesem Kontextfenster haushalten. [2:46] Und jetzt stellt sich die Frage, was [2:49] habe ich denn für Möglichkeiten, um mein [2:52] System zu verbessern, wenn ich [2:54] beispielsweise aktuelle Informationen [2:55] haben möchte. Ein Modell wird immer mit [2:58] einem Datensatz trainiert und wenn ich [3:00] jetzt nur dieses blanke Modell betreiben [3:02] würde, dann kann mir das Modell keine [3:04] Ereignisse wiedergeben, die noch nicht [3:06] im Trainingsdatenet enthalten waren, [3:08] weil das Modell diese einfach [3:09] schlichtwicht nicht kennt, noch nie [3:11] gesehen hat. Das heißt, wir müssen eine [3:13] Schnittstelle schaffen, mit der sich das [3:15] System sozusagen diese Informationen [3:19] herausziehen kann. Und da kommt nämlich [3:20] dann das Thema Retrieval Augmented [3:22] Generation ins Spiel, denn vereinfacht [3:25] gesagt heißt es nichts anderes als dass [3:29] wir Information aus einer beliebigen [3:32] Quelle entnehmen und in das [3:34] Kontextfenster unseres LMs überführen. [3:38] Und zwar können wir jetzt einmal das [3:40] ganze Thema hier als externe Information [3:42] bezeichnen und im einfachsten Fall [3:47] packen wir das Ganze dann mit in unser [3:49] Kontextfenster, im Prinzip mit in [3:51] unseren eigentlichen Userprompt und [3:54] natürlich für kleinere Textquellen, wenn [3:56] wir jetzt z.B. ein PDF haben, was nicht [3:59] allzu lang ist, wo hauptsächlich [4:01] Textinhalt drin ist, reicht es schon mit [4:04] Copypaste, können wir da reinpacken oder [4:06] wie bei ChatGPT einfach das PDF [4:08] hochladen und das Modell kann einfach [4:10] den gesamten Text mit verarbeiten. Wenn [4:13] wir uns das aber anschauen in der [4:14] Realität, z.B. auch in Unternehmen, da [4:17] haben wir ja unmengen von Daten, [4:19] unmengen von textuellen Daten und [4:21] anderen Daten, Unmengen von [4:23] Informationen. Und wenn ich jetzt eine [4:25] Antwort auf eine sehr spezifische Frage [4:27] bekommen möchte im Unternehmenskontext [4:29] beispielsweise, dann kann ich ja nicht [4:31] einfach alle Daten, die wir haben, [4:32] nehmen und in das Kontextfenster [4:34] reinladen. [4:36] funktioniert einfach nicht, weil es [4:37] schlichtwicht zu viele Daten sind und es [4:41] würde selbst, wenn es passen würde, die [4:43] Qualität nicht unbedingt [4:45] notwendigerweise verbessern, weil sehr [4:46] viele Informationen, die ich dem Modell [4:48] mitgebe, gar nicht relevant ist für die [4:51] Anfrage, die ich stelle. Das heißt, man [4:54] muss einen Mechanismus haben, mit dem [4:56] man relevante Informationen [4:59] identifizieren kann und dann nach Bedarf [5:02] in das Kontextfenster hereinladen kann. [5:05] Und ein Mechanismus, der sich [5:06] tatsächlich gerade auch, sag ich mal, in [5:08] den letzten beiden Jahren, der sehr sehr [5:10] stark auch gehyped wurde, ist das Thema [5:12] der sogenannten Embeddings. Und zwar ist [5:16] häufig wird RCK mit Embeddings [5:18] gleichgesetzt. Das ist aber schlichtweg [5:21] falsch, denn es ist nur eine Art von [5:24] Informationsidentifikationsmechanismus. [5:26] Und bei den Embeddings ist es so, dass [5:28] es tatsächlich eine Technologie, die [5:30] schon lange eingesetzt wird, immer dann, [5:32] wenn es um die sogenannte semantische [5:34] Suche ging. Bei der semantischen Suche [5:37] anders als bei der Stichwortsuche, wo [5:38] ich nach einzelnen Worten gesucht habe [5:40] und immer dann, wenn dieses Wort in [5:42] einem Quelltext auftaucht, dann wird mir [5:44] der entsprechende Quelltext gezeigt. Bei [5:46] einer semantischen Suche ist es so, dass [5:49] man mit Ähnlichkeiten arbeiten kann. Das [5:51] heißt, ich kann eine Suchanfrage [5:52] eingeben und mir werden ähnliche [5:55] Ergebnisse angezeigt. das im Prinzip [5:57] auch nichts anderes als bei einer Google [5:59] Suche. Hinter der Google Suche steckt [6:01] der Knowledge Graph von Google und [6:03] dieser Knowledge Graph arbeitet unter [6:06] anderem auch mit diesen Mbeddings. Und [6:09] im Prinzip vereinfacht gesagt ist es [6:11] einfach eine mathematische [6:13] Repräsentation von Inhalten. Man [6:15] encodiert quasi Textabschnitte in Zahlen [6:20] und kann dann Ähnlichkeiten berechnen. [6:22] Man kann also sagen, wie ähnlich zwei [6:25] Sätze z.B. zueinander sind. Das ist dann [6:27] im Prinzip eine mathematische [6:28] Berechnung, die durchgeführt wird und [6:30] diese Ähnlichkeit wird dann auch in Form [6:32] einer Zahl mir ausgegeben. Und wenn ich [6:35] jetzt Informationen in meinem ganzen [6:37] Wissensschatz im Unternehmen [6:38] beispielsweise identifizieren möchte, [6:41] dann bietet es sich unter Umständen an [6:43] tatsächlich mit diesen Embeddings zu [6:44] arbeiten. Das hat den Vorteil, ich [6:46] brauche nicht mehr nur über Stichworte [6:48] zu suchen, sondern kann diese [6:50] semantischen Suchen auch durchführen. [6:52] Das heißt, ich brauche nicht genau zu [6:54] wissen, welche Terminologie jetzt da [6:56] verwendet wurde in dem Dokument oder [6:58] Abschnitt, den ich da gerade suche, [7:00] sondern es reicht, wenn ich etwas [7:02] formuliere, was einfach eine hohe [7:03] Ähnlichkeit mit diesem Text hat. [7:06] Der Nachteil bei Verwendung dieses [7:08] Systems ist, diese Embedings müssen [7:11] berechnet werden. Das heißt, das ist [7:12] eine rechenintensive Aufgabe. Der [7:15] gesamte Text, den man da hinterlegen [7:17] möchte in dieser Embeddingsdatenbank, [7:19] der muss erstmal überführt werden. Und [7:22] jedes Mal, wenn ich neue Informationen [7:24] in was auch immer für einer Textform [7:26] ablege, muss ich quasi weitere [7:28] Embeddings berechnen. Das heißt, es ist [7:30] kontinuierlicher zusätzlicher [7:32] Rechenaufwand, der dazu kommt. [7:35] Das ist auch der Grund, warum die [7:37] semantische Suche alleine nicht immer [7:39] der Schlüssel zum Ziel ist oder der [7:41] richtige Weg ist. Es gibt auch Ansätze, [7:44] wo man mit der einfachen Stichwortsuche [7:45] teilweise sogar bessere Ergebnisse [7:47] erzielen kann, als rein mit Embeddings. [7:50] In der Praxis ist es im Prinzip immer [7:52] eine Kombination aus vielen [7:54] verschiedenen Ansätzen. Und [7:57] letztendlich, wenn wir z.B. zb ChatGPT [7:59] benutzen und Chat GPT im Hintergrund [8:01] eine Websuche durchführt, ist es [8:03] letztendlich auch nichts anderes als [8:05] eine Art ein Mechanismus der [8:07] Informationsextraktion, [8:10] im Prinzip ein Retrieval Mechanismus. [8:13] Und was ich jetzt in letzter Zeit immer [8:15] weiter abzeichnet, sind, dass diese [8:18] Modelle sehr gut darin sind, Tools [8:21] einzusetzen. Tools, die von den KI [8:23] Laboren fest definiert sind, wie z.B. [8:25] wie die Websuche, aber auch Tools, die [8:27] wir beispielsweise mittels MCP Protokoll [8:30] dann an die LMS anbinden. Dazu hatte ich [8:33] ja auch schon ein Video gemacht. Schaut [8:34] euch das gerne noch mal an, wenn ihr [8:36] mehr dazu erfahren möchtet. Und das ist [8:39] auch der Grund, warum Retrieval [8:40] Augmented Generation weiterhin wichtig [8:43] ist. Vielleicht ist der Begriff ein [8:45] wenig abgenutzt. Nichtsdestotrotz [8:48] brauchen wir weiterhin das Information [8:50] Retrieval und das ist häufig tatsächlich [8:52] auch eher der Schlüssel, um diese [8:53] Technologien im Unternehmenskontext [8:56] gut einsatzbar und nutzbar zu machen. [8:58] Denn wenn mir das Modell nicht die [9:01] relevanten Informationen identifizieren [9:03] kann, die ich jetzt für meine Anfrage [9:04] brauche, wird es mir auch keine gute [9:06] Antwort geben können. Und deshalb wird [9:09] sehr stark daran gearbeitet. Wir haben [9:11] in verschiedenen Projekten auch schon [9:13] mehrfach verschiedene Lösungen [9:14] aufgesetzt im Kontext des Retrieval [9:17] Manage Generation und wie ich schon [9:19] gesagt habe, ist es meistens die [9:21] Kombination aus vielen verschiedenen [9:23] Datenquellen, die angeknüpft werden. Das [9:25] können z.B. auch SQL Datenbanken sein, [9:28] wo dann Suche über die strukturierten [9:30] Daten ausgeführt werden. Und hier ist es [9:33] wichtig, sich frühzeitig Gedanken über [9:36] die bestmöglichen Formate zu machen, die [9:38] man hinterlegen möchte. PDFs [9:40] beispielsweise finden sich natürlich in [9:41] vielen Unternehmen. Allerdings ist das [9:43] nicht unbedingt das beste Format, weil [9:45] es wenig standardisiert ist. Tatsächlich [9:48] es ist sehr mühselig aus einem PDF z.B. [9:51] nur den Text und die Bilder separat und [9:53] dann die Bilder zu beschreiben zu [9:55] extrahieren. Das ist da gibt es [9:57] natürlich verschiedene Anbieter und [9:59] Mechanismen, die das tun. Das ist [10:00] allerdings äh ich sag mal unnötig [10:02] aufwendig, wenn wir der die [10:04] Informationen auch in reiner Textform [10:06] bereitstellen könnten. Das heißt, es [10:09] wird jetzt immer spannender für [10:11] Unternehmen, die generative KI nutzen [10:13] möchten, die Frage zu beantworten, wie [10:15] wir denn für die Zukunft unsere [10:17] Information und unser Wissen bestmöglich [10:20] ablegen, bestmöglich strukturieren, [10:22] damit sowohl Menschen als auch KI [10:25] Systeme ideal damit arbeiten können und [10:28] die sichten auf diese Informationen, ob [10:31] es jetzt ein PDFDument ist, ob es jetzt [10:33] eine PowerPoint Präsentation ist oder [10:34] ein Word Dokument, das lässt sich [10:36] letztendlich [10:37] relativ einfach aus den Daten, die wir [10:41] dann sinnvoll abgelegt haben, erzeugen. [10:43] Das heißt, wir kommen hier in einen [10:45] Modus, wo wir gar nicht mehr die Dateien [10:47] notwendigerweise ablegen müssen, die wir [10:49] hinterher verwenden wollen, sondern die [10:51] Dateien werden dann onemand vielleicht [10:53] erzeugt. Wichtig ist, dass die [10:55] Informationen zugänglich abgelegt sind [10:57] und eine Technologie, die hier [10:58] sicherlich auch zunehmend spannend wird, [11:00] ist das ganze Thema der der [11:02] Wissensgrafen. Also ähnlich wie Google [11:04] es mit dem Wissensgraf verwendet, gibt [11:06] es natürlich auch im Unternehmenskontext [11:09] Grafdatenbanken, die dann verschiedene [11:11] Ansätze kombinieren und vor allem sehr [11:13] gut Zusammenhänge zwischen [11:14] unterschiedlichen Datenquellen [11:16] darstellen können und über die dann halt [11:19] dieser Retrieval Mechanismus vielleicht [11:21] sogar noch mal mächtiger wird, weil ich [11:23] eben neben der semantischen Suche oder [11:25] der Stichwortsuche oder der [11:26] strukturierten Suche plötzlich auch [11:28] dieses Relationswissen [11:30] über die einzelnen Daten habe. und so [11:33] vielleicht deutlich schneller, einfacher [11:35] und besser das relevante Wissen [11:37] identifizieren kann. Viele Frameworks [11:40] bieten auch bereits Mechanismen an, um [11:44] mit RC zu starten. Wenn man jetzt [11:46] beispielsweise mit Python arbeitet, kann [11:48] ich das Agno AGI Framework tatsächlich [11:51] ans Herz legen. ist ein agentisches [11:53] Framework, mit dem man Agentensysteme [11:55] bauen kann, das auch sehr viele [11:58] verschiedene Mechanismen des Retrieval [12:00] Augmented Generation ermöglicht und wo [12:03] man sehr klein anfangen kann, sehr [12:06] einfache entweder Textdateien, [12:07] PDF-Dateien oder was auch immer [12:09] Wissensquellen hinterlegen kann. Bei [12:11] PDF, wie gesagt, muss man immer darüber [12:13] nachdenken. Das Ganze muss dann immer on [12:15] the Fly umgewandelt werden und kann dazu [12:17] führen, dass die Ergebnisse nicht ganz [12:19] so gut sind, aber nichtsdestotrotz ist [12:21] das ein sehr, sehr guter Starkpunkt, um [12:24] damit anzufangen, wenn man es noch nicht [12:26] getan hat. Und das Thema ist auf jeden [12:29] Fall weiterhin, wie gesagt, brandheiß, [12:32] auch wenn vielleicht einige andere [12:33] Hypthemen aktuell eher wog sind, aber [12:36] schaut euch doch mal an, wie ihr das [12:38] Thema bei euch in euren Organisationen [12:40] angeht. Habt ihr damit schon gute [12:43] Erfahrung gemacht? Habt ihr damit [12:44] schlechte Erfahrungen gemacht? Hat es [12:46] vielleicht noch nicht funktioniert, als [12:47] ihr es ausprobiert habt? Lasst uns gerne [12:50] Kommentare zu dem Thema da und ich freue [12:52] mich, wenn es das nächste Mal auch [12:54] wieder heißt Inside AI. Aber bevor ich [12:56] euch entlasse, möchte ich euch noch den [12:58] Tipp geben, doch auch noch mal in [12:59] unseren Podcast Out Time reinzuhören, wo [13:02] Roman Dumitrescu und ich technologische [13:04] Zukunftsvisionen diskutieren, in jeder [13:07] Folge ein neues Gedankenexperiment uns [13:09] anhören, wie denn bestimmte Technologien [13:12] unsere Zukunft verändern könnten. Hört [13:14] gerne auch da mal rein und wir sehen uns [13:17] beim nächsten Mal, wenn es heißt Inside [13:18] AI. [13:22] Ah.