Das Training von KI- und maschinellen Lernmodellen ist oft ein komplexer, teurer und zeitaufwändiger Prozess, der in der Regel große Datensätze und teure Computerhardware erfordert.
Dies gilt insbesondere für große Sprachmodelle, die oft riesige Datensätze und Rechenzeiten im Wert von mehreren Millionen Dollar (oder mehr) erfordern. In einigen Fällen ist es jedoch möglich, einem großen Sprachmodell neue Aufgaben mit deutlich geringeren Kosten und weniger Komplexität beizubringen.
Tatsächlich ermöglicht das sogenannte In-Context Learning das Trainieren eines Modells für neue Aufgaben ausschließlich innerhalb des Kontextfensters, wodurch das herkömmliche Modelltraining oder Fine-Tuning vermieden werden kann.
In-Context Learning (ICL) ist eine Technik, die bei Large Language Models (LLMs) eingesetzt wird und es LLMs ermöglicht, vorübergehend neue Ideen und Muster aus Informationen zu lernen, die innerhalb des Kontextfensters gegeben werden, während die zugrunde liegenden Gewichte des Modells unverändert bleiben.
Denken Sie daran, dass das Kontextfenster eines LLMs das Texteingabefenster ist, das wir zur Kommunikation mit dem LLM verwenden, indem wir Prompts, relevante Informationen, Aufgaben und Beispiele bereitstellen. Das LLM extrahiert Muster aus den bereitgestellten Beispielen im Kontextfenster, und diese Muster helfen dem Modell, sich an neue Aufgaben anzupassen.
Im Wesentlichen ist In-Context Learning eine Art temporäres Lernen, das es einem LLM ermöglicht, neue Konzepte und Muster ausschließlich innerhalb des aktuellen Kontextfensters zu erlernen.
Um das Konzept zu verdeutlichen, werfen wir einen Blick auf ein einfaches Beispiel dafür, wie wir In-Context Learning für die Beantwortung von Fragen einsetzen können (eine bestimmte Art von LLM-Aufgabe, die ich später näher erläutern werde).
In diesem Beispiel würden wir dem LLM mehrere Frage-/Antwortpaare als Beispiele zur Verfügung stellen. Der Zweck der Beispiele besteht darin, dem LLM zu helfen, das spezifische Frage-/Antwortformat zu erlernen, mit dem es arbeiten soll.
Sie können beispielsweise diesen Text im Prompt-Fenster Ihres Sprachmodells verwenden:
Beantworten Sie nun bitte anhand dieses Beispielformats die folgende Frage:
Wer ist der Regisseur von Stirb langsam?
In diesem Beispiel für In-Context Learning stellen wir 3 Fragen zum Regisseur eines bestimmten Films und wir geben auch die Antwort. Wenn wir dann eine neue Frage im gleichen Format stellen, gibt der LLM die richtige Antwort in diesem Format.
Wir können In-Context Learning für eine Vielzahl von Aufgaben einsetzen, aber es ist besonders nützlich in Bereichen wie Texterstellung, Übersetzung, Klassifizierung und Zusammenfassung. Wenn wir beispielsweise einem LLM mehrere „Few-Shot“-Beispiele zur Verfügung stellen, die die Übersetzung einer bestimmten Sprache zeigen, kann es diese Muster lernen und anwenden, um neue Sequenzen zu übersetzen.
Nachdem Sie die vorherigen Teile dieses Artikels gelesen haben, werden Sie vielleicht feststellen, dass In-Context Learning einige Ähnlichkeiten mit Fine-Tuning aufweist, da beide Techniken es einem vorab trainierten Modell ermöglichen, neue Dinge zu lernen.
Wichtige Unterschiede zwischen Fine-Tuning und In-Context Learning:
Der Hauptunterschied zwischen Fine-Tuning und In-Context Learning besteht darin, was tatsächlich passiert, wenn wir das Modell trainieren.
Beim Fine-Tuning nehmen wir ein vorab trainiertes großes Sprachmodell und trainieren das Modell dann mit einem neuen, aufgabenspezifischen Datensatz weiter. Und wichtig ist, dass bei diesem Fine-Tuning-Schritt die Modellgewichte direkt durch Gradientenabstieg aktualisiert werden. Dieser Prozess ändert die Modellgewichte dauerhaft. Darüber hinaus erfordert dieser Fine-Tuning-Prozess in der Regel eine erhebliche Datenvorbereitung und verursacht Rechenkosten, die mit dem herkömmlichen Modelltraining verbunden sind.
Im Gegensatz dazu bleiben beim In-Context Learning die Modellgewichte unverändert. Beim In-Context Learning bleiben die Gewichte des vorab trainierten Modells gleich, und das Modell passt sich auf Oberflächenebene strikt innerhalb des Kontextfensters an.
Wie oben erwähnt, gibt es auch einen grundlegenden Unterschied darin, wie dauerhaft das Training ist.
Da das Fine-Tuning die Modellgewichte direkt verändert, bewirkt das Fine-Tuning eine dauerhafte Veränderung des Modells.
Im Gegensatz dazu führt In-Context Learning zu einer oberflächlichen, temporären Änderung des Modells, da die zugrunde liegenden Modellgewichte beim In-Context Learning unverändert bleiben. Das Lernen findet nur innerhalb des Kontextfensters für eine bestimmte Sitzung statt.
Es gibt auch Unterschiede in Bezug auf die Ausgabemodelle, die durch Fine-Tuning oder In-Context Learning generiert werden.
Da wir die Modellgewichte bei der Feinabstimmung direkt mit einem neuen, aufgabenspezifischen Datensatz aktualisieren, entsteht durch das Fine-Tuning ein neues Modell, das stärker auf diesen aufgabenspezifischen Datensatz spezialisiert ist. Anders ausgedrückt: Durch das Fine-Tuning entsteht ein neues und spezialisierteres Modell.
Im Gegensatz dazu bleibt beim In-Context Learning der allgemeine Charakter des ursprünglichen Modells erhalten, da das zugrunde liegende Modell (aufgrund der unveränderten Modellgewichtung) im Wesentlichen unverändert bleibt. Durch die Beibehaltung des allgemeinen Charakters des ursprünglichen Modells funktioniert In-Context Learning besser in Situationen, in denen das Modell flexibel bleiben muss. Die Flexibilität des In-Context Learning macht diese Technik nützlich für Situationen, in denen Sie dem Modell schnell beibringen müssen, sich an eine neue Aufgabe anzupassen, aber die Kosten einer vollständigen Feinabstimmung vermeiden möchten.
Lassen Sie uns abschließend kurz auf die Leistung von Modellen eingehen, die mit Fine-Tuning oder In-Context Learning trainiert wurden.
Durch vollständiges Fine-Tuning werden oft Modelle erstellt, die bei bestimmten Aufgaben besser abschneiden. Im Gegensatz dazu werden durch In-Context Learning oft Modelle erstellt, die im Vergleich zum vollständigen Fine-Tuning weniger genau sind oder eine schlechtere Leistung erbringen.
Daher sollten Sie Fine-Tuning für Szenarien verwenden, in denen Genauigkeit und Präzision bei einer speziellen Aufgabe eine hohe Priorität haben.
In-Context Learning kann für eine Vielzahl von Aufgaben eingesetzt werden, unter anderem: Textgenerierung, Beantwortung von Fragen und Textklassifizierung.
Sie können In-Context Learning für die Textzusammenfassung verwenden.
Sie könnten einem LLM beispielsweise Textpaare geben, die jeweils aus einem großen Textblock und einer zusammengefassten Version bestehen. Durch die Bereitstellung dieser Originaltext-/Zusammenfassungsbeispiele könnten Sie einem Modell zeigen, wie es in Zukunft neuen Text zusammenfassen soll.
Wenn Sie In-Context Learning auf diese Weise für die Textzusammenfassung verwenden, können Sie das Modell so trainieren, dass es Text auf eine bestimmte Art und Weise zusammenfasst, z. B. in einem bestimmten Format oder einer bestimmten Struktur.
Eine weitere Aufgabe, bei der Sie In-Context Learning anwenden können, sind Frage-Antwort-Aufgaben.
Bei dieser Anwendung können Sie einem LLM-Modell einige Frage-Antwort-Paare im Kontextfenster bereitstellen. Dadurch kann das Modell das spezifische Frage-Antwort-Format erlernen und entsprechend reagieren.
In-Context Learning kann auch für Textklassifizierungsaufgaben wie Themenkennzeichnung und Stimmungsanalyse verwenden.
Bei dieser Art von In-Context Learning stellen Sie dem Modell einige Paare zur Verfügung, die aus einem Textblock und einer Bezeichnung bestehen. Durch die Bereitstellung einiger solcher Beispielpaare ermöglichen Sie dem Modell, anhand der in den bereitgestellten Beispielen beobachteten Muster zu lernen, wie neue Texteingaben kategorisiert werden.
Dies ist nützlich für Situationen, in denen Sie möglicherweise schnell einen Textklassifikator erstellen müssen, der für die genaue Aufgabe ausreichend leistungsfähig ist, aber die Kosten für ein vollständiges Fine-Tuning eines Modells (mit allen Kosten für Rechenleistung, Datenaufbereitung usw.) vermeiden möchten.
Die drei oben genannten Anwendungsbereiche sind wichtig, aber es gibt auch eine Vielzahl anderer Aufgaben, bei denen Sie In-Context Learning einsetzen können, wie z. B.:
Nachdem wir nun besprochen haben, was In-Context Learning ist und wie wir es nutzen, wollen wir uns kurz mit den Vor- und Nachteilen von In-Context Learning befassen.
Die Hauptvorteile sind:
Obwohl In-Context Learning viele Vorteile und Einsatzmöglichkeiten bietet, hat es auch einige Nachteile, wie z. B.:
In-Context Learning ist eine leistungsstarke Technik, mit der LLMs an neue Aufgaben angepasst werden können, ohne die Kosten für herkömmliches Modelltraining oder Fine-Tuning in Kauf zu nehmen. Mit dieser Technik können LLM-Modelle, neue Aufgaben wie Zusammenfassungen, Fragen/Antworten, Dateneingaben und Textklassifizierungen erlernen.
Diesen Beitrag teilen: