Zum Inhalt springen

In-Context Learning und SPR

aus AufEinWort, der freien Forschung

🎓 In-Context Learning und SPR

📽️ 5IN CO~1 (16:00)

Es geht also um Personalisierung der LLMs, und wir können LLMs wirklich personalisieren für einen Haufen Haufen verschiedener Dinge personalisieren. Das Einfachste sind hier diese sogenannten "Custom Instructions". Das hast du natürlich schon gesehen. Hier kann man ein klein wenig personalisieren. In diesem Video will ich dir zeigen, wie du zum Beispiel einen Chat personalisieren kannst auf dich. Da musst du dich natürlich an das Token-Limit halten, und um das Token-Limit effizienter zu gestalten, will ich dir das sogenannte "Spars Prime Representation" zeigen.

Das „Spars Prime Representation“ ist etwas, das vom David Shapiro kommt. Hierfür nehmen wir sozusagen einfach nur Custom Instructions, ganz, ganz einfach ausgedrückt, um eine Zusammenfassung zu machen. Und mit dieser Zusammenfassung können wir ChatGPT danach sozusagen „primen“. Du weißt natürlich noch immer, wenn wir in einem solchen neuen Chat mit drinnen sind, dann können wir hier Dinge reintippen und ChatGPT wird sich für eine gewisse Zeit eben merken können, worüber wir sprechen. Bitte erinnere dich immer an das Kontextfenster, also Kontextfenster bzw. Token-Limit nicht vergessen.

Und ja, ich habe mir kurz einen Pulli angezogen, da ich zu kalt hab. Also, wie könnte man hier vorgehen? Mit einem doofen Beispiel: Sagen wir, ich will hier einen Fitnesstrainer-Experten haben, damit ich mich über mein Training unterhalten kann. Und nehmen wir an, ich trainiere nach einem speziellen Trainingssystem. Das Trainingssystem könnte z. B. Doggcrapp sein, das ist ein ganz, ganz bekanntes System von Dante Trudel. Dieser Artikel hier ist auf Rap One – das ist eine deutsche Seite, wo es um Bodybuilding und so weiter geht. Dieser Artikel beschreibt das Doggcrapp-Training relativ gut. Es geht hier um spezielle Techniken, wir müssen das nicht unbedingt vertiefen. Ich will dir aber einfach mal zeigen, wie man einen solchen Chat primen könnte, damit er eben ein Experte ist mit diesem oder nach diesem spezifischen Trainingssystem.

Das heißt, ich will ihm ganz einfach beibringen, wie das Doggcrapp-Training funktioniert. Wir würden ihm erstmal eine Rolle geben: „Du bist ein Fitness- und Bodybuilding-Experte. Du hilfst mir dabei, mein Training zu optimieren. Ich trainiere nach diesem System.“ Danach kopieren wir hier den gesamten Artikel rein und zum Schluss schreibe ich noch zurück „Antworte nur mit Okay.“ Das verwenden wir, um wieder ein klein wenig Tokens zu sparen – nur mit „Okay“ und „warte auf mehr Infos“. Das heißt, ich schicke das Ganze ab, ich werde höchstwahrscheinlich das „Okay“ zurückbekommen. Und wenn alles gut läuft, dann weiß ChatGPT hier diesen gesamten Chat natürlich noch.

Das funktioniert zwar, aber man muss sagen, das wird natürlich etwas uneffizient, da diese Texte sehr, sehr lang sind. Gehen wir davon aus, ich will jetzt noch irgendwas zu Ernährung mit reinposten. Nehmen wir an, ich esse nach einem gewissen Schema, z. B. nach dem Paleo-Essen hier. Wir könnten danach ganz einfach diesen Artikel hier kopieren und auch das wieder ChatGPT erklären, dass wir in etwa so essen wollen. Ich habe den Artikel nicht gelesen, ich kenne die Paleo-Diät, ich kenne aber nicht diesen Artikel. Also, das ist hier nur ein Beispiel. Meine Ernährung sieht so aus. „Antworte mit Okay.“

Jetzt haben wir hier also einen Experten für Paleo-Ernährung und Doggcrapp-Training. Das heißt, wir haben hier einen Chat, einen GPT, wenn du das so nennen willst. Einfach einen Chatverlauf, in dem er uns hier beraten kann. Und ich könnte mal sowas sagen wie: „Ich will heute Oberkörper trainieren und 2500 Kalorien essen. Gib mir einen Plan, der die Infos berücksichtigt.“ Jetzt werde ich höchstwahrscheinlich hier tatsächlich einen Plan bekommen, der das Doggcrapp-Training berücksichtigt und der natürlich auch Paleo-Essen berücksichtigt.

Das heißt, wir haben hier einen Trainingsplan: Negativ-Bankdrücken – einen Rest-Pause-Satz, Schulterpresse – einen Rest-Pause-Satz, enges Reversbankdrücken, Pulldown-Maschine und Kreuzheben. Das ist ein akzeptabler Doggcrapp-Trainingsansatz. Und wir verwenden hier Restpause – das ist ein spezielles System für jeden, der das nicht weiß. Bei der Ernährung gehen wir ähnlich vor: 2500 Kalorien. Erstmal zum Frühstück: 3 Eier, Paprika und etwas Spinat, Avocado, Apfel, danach ein paar Nüsse als Snack. Mittagessen: Hähnchen, Süßkartoffel, Gemüse, Olivenöl. Danach als Snack wieder Banane und ein paar Nüsse. Und zum Abendessen: Lachs, Salat, Avocado, Olivenöl. Und noch einen kleinen Snack vor dem Schlafen: das sind 100 g Blaubeeren.

Das macht alles komplett Sinn hier tatsächlich. Das ist alles perfekt. Und natürlich, wir bekommen das hier so knapp und kurz aufgelistet, weil ich natürlich immer noch meine Custom Instructions hier aktiviert habe. Das ist auch wieder, damit die Token etwas effizienter sind. Das heißt, all das zusammen macht Sinn, all das funktioniert gut. Ich will dir aber was erzählen: So verbraucht man natürlich sehr, sehr viele Tokens, da wir hier unglaublich viel Text mit drin haben. Und viel von diesem Text ist eventuell Fluff, bzw. Zeug, das für ChatGPT nicht wirklich interessant, nicht wirklich wichtig ist. Soll also heißen, wir werden dem Tokenlimit relativ schnell nahekommen.

Wenn wir in GPT-4o arbeiten, sind es 188.000 Token. Wie gesagt, in Zukunft ist das eventuell nicht mehr wirklich relevant. Gehen wir jedoch z. B. auf ein Open-Source-Modell wie HuggingChat und verwenden hier z. B. Mistral, dann wissen wir hier, dass das Kontextfenster leider nicht allzu groß ist. Egal, welches Modell wir hier verwenden – diese Open-Source-Modelle haben aktuell ein relativ kleines Fenster. Und wenn du hier... falls es das noch gibt, sobald du dir den Kurs ansiehst... wenn du GPT-3.5 verwendest, dann haben wir nur 4000 Token. Das heißt, höchstwahrscheinlich haben wir jetzt auch so langsam schon die ganzen Tokens verbraucht, und ChatGPT wird sich langsam aber sicher nicht mehr an die Dinge erinnern, die…über die wir hier oben gesprochen haben.

Du weißt, wir könnten danach nach einer Zusammenfassung fragen, aber das ist natürlich nicht sehr geschickt. Und gerade wenn du ChatGPT an noch mehr Text „trainieren“ willst, dann wird das relativ schnell ein riesengroßes Chaos. Und jetzt will ich dir zeigen, wie wir das umgehen können. Wir haben hier das da, das kommt von David Shapiro, und er nennt das Ganze „Spars Prime Representation“. Was meint er damit? Das werden wir natürlich jetzt besprechen.

Dieses „Spars Prime Representation“ – hier geht es einfach nur darum, wie man effizient ist, LLMs Dinge beizubringen. Wenn wir das so einfach wie möglich runterbrechen, tatsächlich. Die ganze Theorie kannst du dir natürlich gerne durchlesen, wenn du magst. Es geht hier aber immer um die gleichen Dinge. Man versucht hier sozusagen zu arbeiten wie Menschen arbeiten. Auch Menschen können Dinge einfach komprimieren und nur die relevanten Dinge sich erinnern, tatsächlich. Ein Mensch der weiß natürlich nicht jedes einzelne Wort von diesem Artikel, wenn er den Artikel lesen würde. Er weiß ganz einfach die wichtigsten Punkte. Und jetzt geht es darum, etwas rauszufinden: Wie wir die wichtigsten Punkte bekommen von diesem Artikel – und zwar so, dass es nicht nur für uns perfekt und relevant ist, sondern für das LLM.

Und da kommt die „Spars Prime Representation“ ins Spiel. Die „Spars Prime Representation“ baut immer auf dem Konzept auf, das wir schon gelernt haben: Semantic Association. Das heißt, diese Modelle sind assoziativ. Wenn wir hier einige Wörter reintippen, einige wichtige Wörter, dann wird das LLM automatisch hier effizient werden, die richtigen Tokens haben und so in den richtigen Texten suchen.

Wie funktioniert das Ganze? David Shapiro hat hier für uns Custom Instructions vorbereitet. Er hat diesen sogenannten „Spars Prime Representation Generator“ gemacht und auch einen „Decompressor“. Was machen wir damit? Lange Rede, kurzer Sinn: Wir kopieren das Ding. Wir könnten einfach mal wieder in ChatGPT reingehen, einen neuen Chat wählen, und jetzt könnten wir die Custom Instructions hier oben natürlich anpassen. Das heißt, ich würde das da unten rauslöschen – also „Wie soll ChatGPT reagieren?“ – wir löschen das raus, und wir fügen das ein. Und hier haben wir die gesamten Dinge beschrieben: Was ist die Mission vom Modell? Hier wird alles ganz, ganz genau erklärt. Also, er ist ein SPR-Writer. Er versucht ganz einfach, wenn wir das hier so einfach wie möglich erklären, unsere Texte so zusammenzufassen, dass sie für ChatGPT am meisten Sinn machen.

Ich klicke jetzt ganz einfach „Speichern“, und ich werde dir was Cooles zeigen. Wenn wir jetzt hergehen zu diesem Artikel und ich kopiere diesen gesamten Artikel, dann wirst du sehen, wie praktisch all das tatsächlich ist. Das heißt, ich gehe hier runter, bis hier her, kopiere das Ding, und wir gehen zurück in ChatGPT, wir fügen das ein und schicken das ab. Und jetzt bekommen wir hier etwas, das tatsächlich komprimierter ist als das, was wir vorhin hatten. Das heißt, dieser Artikel wird jetzt so zusammengefasst, dass er für ChatGPT perfekt ist. Und wir streichen sozusagen den Fluff raus, wir streichen die unnützen Wörter raus, damit es für ChatGPT effizienter wird.

Gleichzeitig können wir natürlich auch noch das mit dem Paleo-Artikel machen. Das heißt, ich kopiere den Artikel, und ich füge auch diesen Paleo-Artikel hier ein. Und ich werde auch hierfür eine richtig, richtig praktische Zusammenfassung bekommen. Und so kann sich ChatGPT ganz einfach leichter merken, worüber wir sprechen.

All das zusammen ist wirklich unglaublich einfach. Daneben sagt uns David Shapiro auch noch, dass es einige Methoden gibt, wie man LLMs trainieren kann. Wir können das „Initial Bulk Training“ verwenden. Das ist natürlich wahnsinnig, wahnsinnig teuer. Bitte erinnere dich daran: Das ist das sogenannte „Pretraining“. Das heißt, man trainiert ein komplettes Modell riesen riesengroß  an haufenweise Text. Das können wir selbst natürlich nicht machen. Das machen die Firmen an sich, und das kostet Millionen. Das hast du bereits gelernt.

Was gibt es sonst noch? Man kann „Fine-Tuning“ machen. Du hast natürlich auch schon ganz genau gelernt, wie man Fine-Tuning machen kann. Wir werden uns später natürlich auch noch ansehen, wie wir sogar selbst Fine-Tuning machen können. Ja, das ist möglich. Es ist – muss ich jetzt schon dazu sagen – für viele suboptimal, da es einfach nicht besonders perfekt ist, um zusätzliches Wissen tatsächlich dem LLM zu geben. Das zeigt eher dem LLM nur, wie es reagieren soll.

Danach gibt es „Online Learning“. Hier ist noch nicht ganz sicher, wie das funktioniert. Ja, wir können in die Suche reingehen, also ChatGPT durchsucht automatisch Artikel, wenn es Dinge nicht kennt. Aber die sind oft einfach nicht wirklich spezifisch. Und wir haben das „In-Context Learning“, und dieses Video zeigt natürlich das „In-Context Learning“. Das ist aktuell die beste Methode, die wir verwenden können.

Also genau das da war natürlich schon „In-Context Earning“. Das heißt, wir haben ChatGPT ganz einfach Artikel gegeben, und diese Artikel fügen wir ganz einfach in den Chat ein. Ich glaube, ich muss dir nicht sagen, dass das funktioniert – du hast das hier schon gesehen. Es ist aber nicht effizient für diese Tokens. Es wird aber effizient durch diese „Spars Prime Representation“, da wir hier jetzt natürlich die Zusammenfassung dieser Artikel haben. Also, die Diät – die Paleo-Diät – ist wirklich runtergebrochen auf die einfachsten Dinge. Und hier auch das Doggcrapp-Training ist runtergebrochen auf die wirklichen Kernpunkte, die wichtig sind für ChatGPT.

Das heißt, wir würden das kopieren, wir gehen wieder in einen neuen Chat, und wir würden eigentlich dasselbe machen. Das heißt, wir starten wieder mit sowas: „Du bist ein Fitness- und Bodybuilding-Experte. Du hilfst mir dabei, mein Training zu optimieren. Ich trainiere nach diesem System.“ Danach würde ich natürlich die Dinge reinkopieren, die wir in dieses „Spars Prime Representation“ zusammengefasst haben. Und „bup“, und ich könnte jetzt sagen: „Antworte nur mit Okay.“ Oder aber ich beschreibe zusätzlich auch noch die Ernährung: „Meine Ernährung richtet sich danach...“ einen Doppelpunkt, die Anführungszeichen. Und wir werden jetzt die Ernährung einfügen. Die Ernährung ist das da. Das heißt, wir kopieren natürlich auch die Ernährung. Und „bup“, jetzt haben wir auch die Ernährung hier mit drin. Wieder die Anführu… Anführungszeichen zu, und wir könnten jetzt sowas machen: „Antworte nur mit Okay und warte auf Anweisungen.“

Und ich hoffe, du siehst, um wie viel das Ganze effizienter geworden ist. Wir haben jetzt das „Okay“, wir haben diesen kurzen Text. Dieser Text ist wirklich wahnsinnig, wahnsinnig viel kürzer. Wenn wir das vergleichen mit diesem Text, dann hoffe ich, dass du siehst, um wie viel effizienter wir hier unsere Tokens verwenden. Erstmal haben wir hier wirklich wahnsinnig, wahnsinnig viel Text drin, aber wir haben dennoch nicht wirklich mehr Wissen für ChatGPT drinnen. Nach dieser „Spars Prime Representation“, nach der Zusammenfassung, haben wir jedoch viel, viel mehr drinnen – bzw. dasselbe drin, aber viel effizienter.

Jetzt könnte ich wieder meine Frage stellen: „Ich will heute Oberkörper trainieren und 2500 Kalorien essen. Gib mir einen Plan.“ Und du siehst, wir bekommen hier den Plan, der sieht wieder genauso aus eigentlich wie der Plan vorhin. Das heißt: Bankdrücken, einen Satz Restpause bis zum Muskelversagen, Schultern, Trizeps, Rückendichte und so weiter. Wir haben diesmal sogar das extreme Stretching dabei – das hatten wir vorhin tatsächlich nicht. Das heißt, es funktioniert hier jetzt sogar besser.

Danach die Ernährung: 2500 Kalorien, alles nach Paleo natürlich: Spinat, Tomaten, Pilze, Eier, Avocado, Beerenmischung, Mandeln. Danach das Mittagessen und so weiter. Das heißt, all das hat jetzt viel, viel besser funktioniert, viel, viel einfacher funktioniert. Und wir haben haufenweise Tokens gespart dank dem „Spars Prime Representation“. Das ist die einfachste Form des „In-Context Learning“.

Nebendem haben wir natürlich noch viele, viele weitere Möglichkeiten. Bzw. wir können uns selbst ganze Experten bauen dank der sogenannten „RAG“-Technologie. Du kennst das generelle Grundkonzept von „RAG“ schon, und auch das können wir verwenden. Und in unseren RAGs können wir diese „Spars Prime Representation“ verwenden, um noch effizienter zu sein. Dementsprechend war das die einfachste Form vom „In-Context Learning“. Und wir machen das noch effizienter, indem wir das „Spars Prime Representation“ verwenden, um Zusammenfassungen zu haben, damit wir effizienter mit unseren Tokens sind.

Irgendwann, wie gesagt, wird das Tokenlimit eventuell kein Problem mehr sein. Aber solange verwenden wir das „Spars Prime Representation“, um mal das effizienter zu machen. Und gerade wenn du mit einem LLM arbeitest, das ein etwas geringeres Tokenlimit hat, ist das der perfekte Weg, ist das die perfekte Lösung.

In dem Sinne, im nächsten Video sehen wir uns die „RAG“-Technologie an. Denn auch die funktioniert sehr, sehr gut und sehr, sehr einfach. Denn in diesem Video haben wir die Custom Instructions verwendet, um das „In-Context Learning“ effizienter zu machen – mit der einfachsten Methode hier, mit dem normalen „In-Context Learning“ in einem Chat-Interface. Also, nächstes Video geht um die sogenannte „RAG“-Technologie.