2 Punkte von GN⁺ 2023-09-07 | 1 Kommentare | Auf WhatsApp teilen
  • fast.ai beobachtete beim Finetuning eines Modells für die Kaggle LLM Science Exam eine Verlustkurve, die darauf hindeutete, dass ein LLM Datensatzbeispiele nach einmaligem Sehen zu speichern scheint
  • Gewöhnliche neuronale Netze lernen oft schrittweise über mehrere Epochen, doch in diesem Experiment fiel der Trainingsverlust an den Epochengrenzen stufenartig ab, was von bisherigen Erfahrungen abwich
  • Ähnliche Muster traten unabhängig von Hugging Face Trainer, LoRA oder vollständigem Finetuning auf, sodass dies kaum als einfacher Library-Bug erklärt werden konnte
  • In Experimenten mit zyklischer Lernrate und 1cycle passten Veränderungen bei Trainingsverlust, Validierungsverlust und MAP@3 weitgehend zur Memorierungs-Hypothese, und ein schlechterer Validierungsverlust bedeutete nicht sofort eine schlechtere Genauigkeit
  • Wenn vortrainierte LLMs extrem schnell lernen, müssen Finetuning-Strategien wie catastrophic forgetting, Data Augmentation, Datenmischung und Dropout neu überprüft werden

Eine Verlustkurve, die sich von gewöhnlichem Lernen neuronaler Netze unterschied

  • Ein neuronaler Klassifikator passt seine Ausgabewahrscheinlichkeiten an, indem er Eingaben und korrekte Labels wiederholt sieht
    • Der Vorgang, den gesamten Trainingsdatensatz einmal zu durchlaufen, wird Epoche genannt
    • Der Verlust (loss) zeigt an, wie falsch das Modell liegt, und bestraft selbstsichere Fehlvorhersagen stärker
  • Normalerweise sinkt der Trainingsverlust zu Beginn schnell und flacht dann allmählich ab, während sich der Validierungsverlust langsamer verbessert
    • Allein an der Verlustgrafik sind Anfang und Ende einer Epoche oft nicht klar zu erkennen
    • Aus der Praxis gab es die Einschränkung, dass neuronale Netze mehrere Epochen brauchen, um ein bestimmtes Bild ausreichend zu lernen
  • fast.ai entdeckte beim Training eines Modells für die Lösung naturwissenschaftlicher Multiple-Choice-Fragen in der Kaggle LLM Science Exam ein anderes Muster
    • Es wurde mit dem von Radek Osmulski erstellten Big Questions Dataset über 3 Epochen trainiert
    • Am Ende jeder Epoche zeigte sich ein stufenförmiger Einbruch des Trainingsverlusts

Vom Bug-Verdacht zur Memorierungs-Hypothese

  • Zunächst wurde ein Bug im Trainingsprozess vermutet
    • Wenn das Modell zum Beispiel auch während der Auswertung auf dem Validierungsset weiterlernt, kann es so wirken, als sei es direkt nach der Validierung plötzlich besser geworden
    • Zuerst wurde die Möglichkeit eines Problems im verwendeten Hugging Face Trainer geprüft
  • Open-Source-Entwickler im Alignment Lab AI Discord antworteten, dass sie ähnliche Verlustkurven ebenfalls gesehen hatten
    • Da die ersten Antwortenden alle Trainer verwendeten, wirkte die Hypothese eines Library-Bugs zunächst plausibel
    • Später wurden jedoch auch Fälle geteilt, in denen dieselbe Kurve in benutzerdefinierten Trainingsloops auftrat
  • Es wurde auch geprüft, ob es sich um ein spezielles LoRA-Phänomen handelt, doch dasselbe Muster zeigte sich ebenso beim vollständigen Finetuning
    • In der LLM-Finetuning-Community war diese Art von Verlustkurve offenbar bereits beinahe ein häufiges Phänomen

Das Muster schneller Memorierung in den Kaggle-Experimenten

  • Die Deutung der Open-Source-Kollegen war, dass die Verlustkurve Overfitting zeigt
    • Das würde bedeuten, dass das Modell nach ein- oder zweimaligem Sehen der Eingaben bereits lernt, sie wiederzuerkennen, was anfangs unmöglich schien
    • In der ersten Grafik fiel der Verlust nach der ersten Epoche von 0.8 auf 0.5 und nach der zweiten Epoche von 0.5 auf unter 0.2
    • In der Mitte der zweiten und dritten Epoche schien kaum neues Lernen stattzufinden
  • Wenn diese Deutung stimmt, hat das Modell das Trainingsset nach nur dreimaligem Sehen jeder Zeile nahezu auswendig gelernt
    • Das Signal, das das Modell bei jeder Frage erhält, ist nur der Vergleich zwischen korrektem Label und eigener Auswahl
    • Trotzdem ging der Trainingsverlust stark zurück

Verlustveränderungen mit zyklischer Lernrate

  • Beim Training des Kaggle-Modells über 2 Epochen wurde ein zyklischer Lernraten-Zeitplan verwendet, basierend auf Leslie Smiths Paper von 2015 Cyclical Learning Rates for Training Neural Networks
  • Die Kurve der ersten Epoche ähnelte einem normalen Lernmuster
    • Während der ersten 10 % wurde die Lernrate aufgewärmt
    • Danach wurde die Lernrate entsprechend einem Cosine-Schedule reduziert
    • Sobald die Lernrate hoch genug war, sanken Trainings- und Validierungsverlust schnell und flachten später ab
  • In der zweiten Epoche wurde der Datensatz nicht erneut gemischt, daher tauchten die frühen Batches wieder bei niedriger Lernrate auf
    • Diese Batches waren auch in der ersten Epoche nur bei niedriger Lernrate gesehen worden, daher hatte das Modell sie nicht stark gelernt
    • Gegen Ende der ersten 10 % tauchten die Batches wieder auf, die in der ersten Epoche mit hoher Lernrate gesehen worden waren, und der Trainingsverlust fiel abrupt
  • Im gleichen Bereich verschlechterte sich der Validierungsverlust
    • Das lässt sich so lesen, dass das Modell nicht besser generalisierte, sondern die Trainingsdaten memorierte und bei den Antworten sehr selbstsicher wurde
    • Da die Verlustfunktion selbstsichere Fehlvorhersagen stärker bestraft, verschlechterte sich der Validierungsverlust
  • Im späteren Teil der Kurve wurde der Trainingsverlust wieder schlechter
    • Dass sich der Trainingsverlust bei vernünftiger Lernrate verschlechtert, ist normalerweise nicht üblich
    • Unter der Memorierungs-Hypothese lässt sich das so deuten, dass das Modell die bei niedriger Lernrate gesehenen Batches nicht wirksam memorieren konnte, während es aus den unmittelbar davor gesehenen Batches übermäßige Sicherheit mitnahm
    • Später kalibrierte sich das Modell wieder auf ein vernünftigeres Sicherheitsniveau ein, woraufhin der Validierungsverlust erneut sank

1cycle-Experiment und der Unterschied bei den Metriken

  • Im nächsten Experiment wurde über 3 Epochen 1cycle training verwendet
    • Die Lernrate wurde nur einmal über 10 % der anfänglichen Trainingsbatches aufgewärmt
    • Für die restlichen Batches wurde die Lernrate mit einem Cosine-Schedule abgesenkt
    • Anders als im vorherigen Experiment wurden Aufwärmen und Abklingen nicht in jeder Epoche wiederholt
    • Der LoRA-Rang wurde erhöht, um das Lernen zu verlangsamen
  • Die resultierende Kurve passte insgesamt zur vorigen Deutung, doch der Anstieg des Validierungsverlusts trat in Epoche 3 statt in Epoche 2 auf
    • Im vorherigen Experiment war der Trainingsverlust in der zweiten Epoche auf etwa 0.2 gefallen, was sehr selbstsichere Vorhersagen ermöglichte
    • Im 1cycle-Experiment wurde dieses Sicherheitsniveau erst in der dritten Epoche erreicht, und auch der Anstieg des Validierungsverlusts trat dann auf
  • Ein schlechterer Validierungs-verlust bedeutet nicht zwangsläufig echtes Overfitting
    • Die Kaggle-Leaderboard-Metrik ist Mean Average Precision @ 3, also eine rangbasierte Genauigkeit der drei besten Multiple-Choice-Vorhersagen
    • Das batchweise Validierungs-MAP@3 beim 1cycle-Training verbesserte sich weiter bis zur letzten Epoche, obwohl sich der Validierungsverlust verschlechterte
  • Zusätzliche Logs und ein Notebook zur Reproduktion finden sich in Johnos Bericht

Warum Lernen aus einem einzelnen Beispiel möglich sein könnte

  • Es gibt kein Grundgesetz, das neuronalen Netzen verbietet, Eingaben anhand eines einzelnen Beispiels zu erkennen
    • Forschende und Praktiker gingen lediglich empirisch davon aus, dass neuronale Netze viele Beispiele benötigen
    • Wenn die von stochastischem Gradientenabstieg (SGD) durchsuchte Verlustlandschaft uneben ist, sind große Sprünge auf einmal schwierig
  • Faktoren, die die Verlustlandschaft glatter machen, sind bekannt
  • Vortrainierte LLMs könnten in der Nähe des minimalen Verlusts eine sehr glatte Verlustlandschaft haben
    • Viele Finetuning-Arbeiten in der Open-Source-Community finden möglicherweise genau in solchen Bereichen statt
    • Das knüpft an die Annahme aus dem ULMFiT-Paper von 2018 an
  • Die Grundidee von ULMFiT war, dass ein Modell, das Sprachmodellierung gut beherrscht, intern reichhaltige Abstraktionen und Fähigkeitsstufen aufbaut
    • Solche Stufen lassen sich mit wenig Finetuning auf andere Aufgaben übertragen
    • Heutige LLMs sind viel größer als die in ULMFiT behandelten Modelle und könnten daher noch reichhaltigere Abstraktionsschichten besitzen
  • Das Finetuning auf naturwissenschaftliche Multiple-Choice-Fragen könnte eher dem Abrufen bereits im Modell vorhandener Fähigkeiten und Wissens entsprechen
    • Möglicherweise sind dafür nicht viele Gewichtsänderungen nötig
    • Ein vortrainiertes Sprachmodell mit einem kleinen zufälligen Klassifikations-Head könnte an einer Position liegen, von der aus es sich glatt in Richtung guter Gewichtskonfigurationen bewegt
    • Mit dem Adam-Optimierer können konsistente und glatte Gradienten die effektive dynamische Lernrate erhöhen und so zu großen Schritten führen

Fragen an bestehende Finetuning-Strategien

  • Wenn ein Modell sehr schnell lernt, könnten Grundannahmen bisheriger Trainingsweisen ins Wanken geraten
    • Langsam lernende Modelle können vielfältige Daten über viele Epochen hinweg sehen und schrittweise generalisierbare Informationen herausziehen
    • Schnell lernende Modelle könnten gesehene Beispiele sofort memorieren und dadurch andere Effekte erzeugen
  • catastrophic forgetting könnte stärker hervortreten
    • Wenn ein Modell zehn Beispiele einer sehr häufigen Beziehung sieht und danach ein seltenes Gegenbeispiel, könnte es dieses Gegenbeispiel memorieren, statt die Erinnerung an die zehn früheren Beispiele nur leicht abzuschwächen
  • Auch die overfitting-hemmende Wirkung von data augmentation könnte schwächer sein
    • Wenn ein LLM die Repräsentation der Eingabeinformation gut extrahiert, dann könnte es durch Paraphrasing oder Back-Translation faktisch immer wieder dieselbe Information erhalten
  • Als mögliche Gegenmaßnahmen werden dropout und stochastic depth genannt
    • Dropout wird in Finetuning-Verfahren wie LoRA bereits in geringem Maß verwendet
    • Für stochastic depth scheint es im NLP-Bereich bislang noch keine nennenswert verbreiteten Anwendungen zu geben
  • Eine weitere Methode wäre, über das gesamte Training hinweg eine reiche Mischung von Datensätzen beizubehalten
    • Llama Code erlebte catastrophic forgetting, bei dem sich die Code-Leistung verbesserte, während andere Fähigkeiten deutlich schlechter wurden
    • Damals lag der Anteil nicht-codebezogener Daten bei 10 %
    • Bei einer Mischung näher an 50/50 hätte sich möglicherweise Coding-Leistung erzielen lassen, ohne bestehende Fähigkeiten zu verlieren

1 Kommentare

 
GN⁺ 2023-09-07
Meinungen auf Hacker News
  • Danke, dass du diesen Beitrag auf HN gepostet hast. Ich bin einer der Co-Autoren des Artikels, und es war wirklich spannend, gemeinsam mit Johno diesem seltsamen Phänomen des schnellen Memorierens bei LLMs nachzugehen.
    Ich arbeite seit 30 Jahren mit neuronalen Netzen und seit 2017 mit Fine-Tuning von Sprachmodellen, aber dieses Verhalten hat mich sehr überrascht. Andere haben ähnliche Phänomene bei LLMs gesehen, aber ich habe noch keine Analyse dieser Art gesehen, und vielleicht haben wir etwas übersehen.

    • Im Palm-E-Paper (https://palm-e.github.io/) ist interessant, dass beim Entfrieren des LLMs und Training nur mit neuen Bilddaten erwartungsgemäß starkes katastrophales Vergessen bei Aufgaben der natürlichen Sprachverarbeitung auftritt, dieser Effekt aber mit zunehmender Größe des vortrainierten LLMs deutlich abnimmt.
      Beim 12B-Modell sank die Leistung im Schnitt um -87,3 %, beim 84B-Modell um -61,6 % und beim 562B-Modell nur um -3,9 %. Es fühlte sich so an, als läge man einer Erkenntnis schon sehr nahe, und ich frage mich, ob das Vermeiden katastrophalen Vergessens schlicht eine Frage der Skalierung sein könnte.
    • Dass nicht angegeben wird, was das Basismodell ist, wirkt auf mich wie ein großer Fehler; man sollte das nicht als Phänomen von LLMs im Allgemeinen darstellen.
      Ich bin kein Forscher, aber es ist offensichtlich, dass nicht alle LLMs dieselbe Architektur haben, und selbst ähnliche Architekturen können sich so entwickeln, dass sie bei derselben Eingabe funktional ziemlich unterschiedlich reagieren. Trotzdem behandeln viele Texte LLMs offenbar so, als wären sie eine einzige Architektur und ein einziges Modell.
    • Jeremy, ich mag deine Arbeit immer sehr. Da Astronomie mein Fachgebiet ist, als technische Ergänzung: Das hier beschriebene MOND-Beispiel müsste tatsächlich Antwortmöglichkeit (E) als richtige Lösung haben.
    • Jeremy, wenn man den Loss eines Batches einmal berechnet, den Gradienten aktualisiert und danach mit no_grad den Loss desselben Batches erneut berechnet, könnte man ziemlich genau bestimmen, wie viel das Modell in einem Schritt gelernt hat.
      Es könnte interessante Ergebnisse liefern, die Differenz zwischen dem ersten und dem zweiten Loss auf Batch- oder Beobachtungs-/Fragenebene zu plotten.
    • Sehr interessant. Früher gab es in einem Issue zu Hugging Face transformers schon eine ähnliche Diskussion, und auch damals hielten wir Memorieren für die wahrscheinlichste Erklärung. Schön zu sehen, dass andere zum selben Schluss gekommen sind.
      https://github.com/huggingface/transformers/issues/18730
  • Ich bin mir nicht sicher, ob Leute „over confident“ wirklich in diesem Sinn verwenden. Der Ausdruck ist ziemlich missverständlich, und was hier passiert, sollte man besser Overfitting nennen.
    Wenn man sich Daten als Punkte vorstellt, versucht ein gut generalisierendes Modell, die einfachste Funktion zu finden, die die Punkte der Trainingsdaten recht gut trifft. Trainiert man jedoch weiter, können die Parameter sehr groß werden, und die Funktionskurve kann weit über den tatsächlichen Datenbereich hinaus stark oszillieren, um exakt durch die Trainingsdaten zu gehen.
    Dadurch passt sie technisch gesehen besser zu den Trainingsdaten, wird aber zu einer seltsamen Funktion, die bei neuen Daten extreme Ausgaben liefert, sodass die Generalisierung nahezu maximal schlecht wird. Overfitting ist allerdings nicht dasselbe wie Memorieren. Große Modelle können kleine Datensätze auch ohne Overfitting memorieren, und weil sie so viele Parameter haben, ist nur eine geringe Veränderung nötig, um die Trainingsdaten zu treffen. Das Training endet dann zwar, aber es findet keine Generalisierung statt; so einen Fall nennt man Unterbestimmtheit.
    Es gibt auch Modelle, die Ausgabe und Konfidenz gemeinsam liefern, sodass „Überkonfidenz“ auch bedeuten kann, dass das Modell fälschlich eine hohe Konfidenz, also eine geringe Fehlerstreuung, vorhergesagt hat.

    • Wenn man ein neuronales Netz mit argmax auf den Ausgabewahrscheinlichkeiten als Funktion betrachtet, ist das überhaupt kein Overfitting. Die Klassifikationsgenauigkeit auf ungesehenen Daten, also auf dem Validierungsset, wird weiterhin besser.
      Der Kern ist hier ein Problem der Kalibrierung: https://en.m.wikipedia.org/wiki/Calibration_(statistics). Das bedeutet, dass die Ausgabewahrscheinlichkeiten des neuronalen Netzes nicht die tatsächlich beobachteten Wahrscheinlichkeiten widerspiegeln. Wenn Wahrscheinlichkeiten systematisch zu niedrig geschätzt werden, nennt man das „Unterkonfidenz“, wenn sie zu hoch geschätzt werden, „Überkonfidenz“.
      In diesem Fall kann der Klassifikator für ungesehene Daten weiterhin besser werden, auch wenn die Kalibrierung schlechter wird und der Validierungs-Loss steigt.
    • Für ein Modell, dessen Genauigkeit besser wird, verwendet man den Begriff Overfitting nicht. Das halte ich für irreführend.
    • Der Loss auf dem Trainingsset wird besser und der Loss auf dem Validierungsset schlechter, daher sehe ich es als eine Art Overfitting. Es unterscheidet sich allerdings vom üblichen Overfitting, bei dem die Genauigkeit auf dem Validierungsset schlechter wird.
      Hier wurde die Genauigkeit auf den Validierungsdaten weiterhin besser, aber wenn das Modell falsch liegt, liegt es mit höherer Konfidenz falsch als zuvor. Wenn es sich früher zum Beispiel zu 60 % sicher war, dass die Antwort X ist, und damit falsch lag, ist es jetzt immer noch fälschlich bei X, aber mit höherer Sicherheit, etwa 70 %. Deshalb ist es eine merkwürdige Form von Overfitting, und der spezifischere Ausdruck „Überkonfidenz“ scheint gut zu passen.
  • Ich bin kein LLM-Experte, aber aus Sicht des allgemeinen Machine Learning ist das nicht besonders überraschend.
    Man hat bereits ein generatives Modell mit Milliarden Parametern, das den Fine-Tuning-Samples schon eine gewisse Wahrscheinlichkeitsmasse zuweist. Nun berechnet man den Gradienten, der diese Wahrscheinlichkeitsmasse erhöht, und macht einen Schritt in diese Richtung. Letztlich ist der Autor also überrascht, dass dieser eine Schritt die Wahrscheinlichkeitsmasse des Samples stark erhöht.
    Aber generative Modelle sind enorm überparametrisiert und geben dem Fine-Tuning-Sample bereits eine gewisse Wahrscheinlichkeitsmasse. Wenn es im Milliarden-dimensionalen Parameterraum keine Richtung gäbe, in der sich die Wahrscheinlichkeit vergleichsweise weniger Samples schnell erhöhen lässt, wäre das eher überraschend.

    • Genau das habe ich auch gedacht. Es war überhaupt nicht überraschend, und deshalb fragte ich mich, ob ich vielleicht etwas übersehe.
  • Ergab sich das nicht schon ziemlich klar aus der Tatsache, dass die meisten LLMs derzeit nur eine Epoche lang trainiert werden?
    Wenn sie nur eine Epoche lang trainiert werden, bedeutet das schließlich, dass schon ein zweiter Durchlauf durch die Daten Overfitting-Sorgen auslösen würde. Allerdings scheint das etwas im Widerspruch zu den Ergebnissen dieses Papers [0] zu stehen, wonach auch ältere Daten bis mindestens 4 Epochen genauso gut sind wie neue Daten.
    [0]: https://arxiv.org/abs/2305.16264

    • Kleine Korrektur: Viele öffentliche LLMs werden mindestens etwas mehr als eine Epoche trainiert, und auf bestimmte Daten-Teilmengen wie Wikipedia lässt man normalerweise mehrere Epochen laufen.
    • Sie werden nicht nur eine Epoche lang trainiert. Über hochwertige Daten lässt man mehrere Epochen laufen. Auch Metas Llama-Team hat gezeigt, dass der Loss weiter sinkt, wenn man mehr und mit mehr Tokens trainiert.
  • Vielleicht nicht direkt relevant, aber ich habe ChatGPT Code schreiben lassen, um in PowerShell die Details von Spaltenfiltern in einer Excel-Tabelle programmatisch zu steuern.
    Alles, was es ausprobiert hat, funktionierte nicht; es war zwar sehr nah dran, lief aber nicht. Am Ende fand ich C#-Code, der das Problem behebt, fügte ihn in ChatGPT ein, ließ ihn den Code lesen und bat es dann, das Problem in PowerShell zu lösen. Es sagte, es habe die Lösung verstanden, passte das Skript an, und es funktionierte perfekt.
    Aus irgendeinem Grund war dieses Verhalten eine ziemlich augenöffnende Erfahrung. Ich hatte in der Frage Material bereitgestellt, auf das es nicht trainiert war, und dadurch löste es das Problem. Aus Sicht des Spracherwerbs verstehe ich, wie das möglich ist, aber es fühlte sich wirklich beeindruckend an, dass ein LLM so etwas kann.

    • Eine interessante Anekdote. Ich glaube, es gibt derzeit bei LLMs eine verbreitete Tendenz, sich zu stark auf den Wissensabruf im Modell zu konzentrieren und den Teil „Sprachmodell“ zu unterschätzen.
      Diese Dinge sind gut im Sprechen und Erklären und werden deshalb leicht vermenschlicht. Sie sind so gut darin, dass man die gewaltige, magisch wirkende Leistung der Statistik-Engineering-Arbeit als trivialen Grundbaustein hinnimmt. Aber dieser Baustein ist ein Ziegel aus Gold.
      Von natürlicher Sprache zu Code, von Text zu Audio, von Bild zu Bild, von einer natürlichen Sprache in eine andere: Übersetzen, Bearbeiten, Zusammenfassen, Erweitern und Extrapolieren – das ist es, was diese Modelle tun. Das inhärente „Wissen“ ist nur Kontext.
      Vektor-Embeddings sehe ich etwas anders: Sie sind eine Form der semantischen Katalogisierung, ähnlich wie die Dewey-Dezimalklassifikation, und ermöglichen Suche. Aber Datenabruf direkt aus dem Modell, etwa „Wer war 1984 Präsident der USA?“, finde ich persönlich nicht besonders interessant.
  • Ich frage mich, ob LLMs schon einmal zur Erweiterung ihrer eigenen Trainingsdaten verwendet wurden.
    Ich frage mich, was passieren würde, wenn man ein LLM mit wenigen Eingaben trainiert, dann viele synthetische Eingaben erzeugt und sie den Trainingsdaten hinzufügt. Ich denke dabei an eine Art „Träumen“. Vielleicht fügt es nur Rauschen hinzu, aber LLMs können ihren eigenen Kontext anreichern und durch „lautes Denken“ ihre Ausgaben verbessern – vielleicht könnten sie dasselbe auch mit Trainingsdaten tun.

    • Ja. Ein beträchtlicher Teil der jüngeren Forschung verwendet LLM-Ausgaben als Trainingsdaten, und das war eine sehr erfolgreiche Forschungsrichtung.
    • Im Grunde ist RLHF genau das. Man nimmt einen kleinen, von Menschen kuratierten Datensatz, der vorgibt, was gute und schlechte Ausgaben sind, und lässt das LLM anhand seiner eigenen Ausgaben selbst trainieren.
    • Interessanterweise steht diese Schlussfolgerung im direkten Gegensatz zu einem Geschwisterkommentar, der meint, ein kleiner von Menschen kuratierter Korpus könne effektiver sein als ein großer synthetischer Datensatz.
    • Wenn ein Modell mit denselben Daten trainiert wird, die es selbst erzeugt hat, kommt keine neue Information ins System. Es würde sowohl das verstärken, was es bereits richtig vorhersagt, als auch das, was es falsch vorhersagt, und sich daher nicht verbessern.
      Allerdings ist es üblich, mit einem großen Modell synthetische Trainingsdaten zu erzeugen, um ein anderes, kleineres Modell zu trainieren. So kann man Wissen von einem Modell auf ein anderes übertragen.
    • Du kannst es selbst ausprobieren, um die Antwort zu finden: Erzeuge Zufallsdaten gemäß einem Modell, passe eine lineare Regression oder eine andere Verteilung daran an, ziehe dann Stichproben aus dieser Verteilung und füge sie dem Trainingssatz hinzu.
  • Ich finde, der Titel ist irreführend.
    Ist im Kontext des Lernens aus einem einzigen Beispiel zu lernen nicht wünschenswert, während Auswendiglernen unerwünscht ist? Ersteres ist ein Ziel, weil man sich der Lernweise von Tieren annähern will; Letzteres ist ein häufiger Fehlermodus. Der Artikel scheint eher ein Beispiel für unerklärtes Auswendiglernen zu zeigen als für Lernen.

  • Beim Training eines ViT von Grund auf habe ich eine ähnliche Loss-Kurve gesehen, und sie hat mich immer beschäftigt, aber ich hatte größere Sorgen und bin deshalb nicht tiefer eingestiegen.
    Der Unterschied ist, dass der Trainings-Loss während jeder Epoche ansteigt. Der abrupte Abfall zwischen den Epochen ist groß genug, dass der Trainings-Loss insgesamt sinkt und auch der Validierungs-Loss weiter sinkt. Das Modell kommt recht nahe an den Stand der Technik heran, also scheint es „normal“ zu sein.
    Ich habe auf dieser Größenordnung keine Convolutional Neural Networks trainiert und weiß daher nicht, ob ein ähnliches Phänomen dort auch auftritt; wenn ja, hätte es vermutlich jemand erwähnt. Deshalb denke ich, dass solche seltsamen Loss-Kurven vielleicht besonders ein Merkmal Transformer-basierter Modelle sind.

    • Im Original hieß es, dass LLMs eine starke Abstraktion benötigen; Transformer-Netzwerke sind grundsätzlich so ein Fall, und beim Training von Grund auf wird das deutlich sichtbar.
      Das Modell kommt lange Zeit fast nirgendwohin und wirkt völlig nutzlos, bis die Gewichte irgendwann nach mehreren Trainingszyklen ein Minimum auf der Fehleroberfläche finden und es plötzlich anfängt, richtig zu funktionieren. Denn der Transformer hat aus Sicht des Attention-Mechanismus eine Abstraktion gelernt, die auf alle Eingabedaten funktioniert. Man kann dabei daran denken, wie man beim Lesen einen Satz überfliegt. Ich gebe hier aus der Erinnerung einen Beitrag wieder, den ich früher auf HN gesehen habe, also ist es keine perfekte Erklärung.
    • Ich habe auch bei den Trainings-Loss-Kurven anderer gesehen, dass sie während einer Epoche ansteigen und am Ende der Epoche stark abfallen. Ich habe es selbst nie erlebt und habe keine Ahnung, woran es liegt.
    • Nach der ersten Epoche ist die durchschnittliche Zeit seit dem letzten Einsatz des aktuellen Datenelements im Training am Anfang einer Epoche kurz und wird im Verlauf der Epoche immer länger. Ich würde erwarten, dass diese Zeit positiv mit dem Loss der aktuellen Iteration korreliert.
    • Wenn der Loss schon in der ersten Epoche steigt, wirkt das etwas seltsam.
  • Ich frage mich nun, ob es rechnerisch effizient wäre, Informationen wie den aktuellen Chat-Kontext spontan als Teil der Modellgewichte zu lernen oder auswendig zu speichern.
    Das One-Shot-Encoding, in dem der Hippocampus sehr gut ist, ermöglicht es, Erfahrungen zu abrufbaren Erinnerungen zu machen, die mit zuvor gelernten semantischen Konzepten verknüpft sind. Tatsächlich wird das vom Kindesalter bis ins Erwachsenenalter besser, je reichhaltiger die semantische Konzeptualisierung von Ereignissen wird.
    Wenn das Auswendiglernen von Ereignissen in LLMs durch ein solches tiefes semantisches Framework beschleunigt wird, könnte das einen Weg zu langen Kontextfenstern bieten?

    • Möglich wäre es, aber vieles wissen wir nicht. Die Fragen sind, ob spontanes Auswendiglernen mit katastrophalem Vergessen anderer Informationen einhergeht und wie man steuern kann, dass aktuelle Inhalte auswendig gelernt, ältere Inhalte aber erinnert werden.
    • Nur ein Gedanke eines Anfängers, aber mir gefällt die Idee. Man bräuchte eine eigene veränderbare Kopie des Modells, und die ist normalerweise riesig. Außerdem braucht man Backpropagation, also etwas mehr Rechenaufwand.
      Bei lokalen Modellen, die kleiner als GPT-3.5/4 sind, könnte es vielleicht möglich sein. Außerdem müsste man entscheiden, was ins Langzeitgedächtnis kommt und was im Kurzzeitgedächtnis bleibt.
  • Wenn das stimmt, stützt es die Annahme, dass ein deutlich kleinerer von Menschen kuratierter Datensatz viel wertvoller ist als ein von LLMs erzeugter synthetischer Datensatz.

    • Die Seite mit den meisten Informationen gewinnt. Wenn die Informationen Struktur haben, kann man diese stark nutzen, um synthetische Daten zu erzeugen.
      Als Beispiel kann Apple Sim dienen. Das ist ein Repository für 3D-Modelle von Innenräumen; indem man den Renderer steuert, kann man Informationen auf mehreren Ebenen erzeugen und anschließend für reale Fotos verwenden. Da dieser Ansatz in der Bildverarbeitung insgesamt eingesetzt wird, ist der Vektorraum für Embeddings ziemlich natürlich. Algebraisch gesprochen muss man nicht viel Struktur hinzufügen.
      Wenn die Domäne stark algebraischen Charakter hat, kann man korrekte Beispiele auch beliebig erzeugen, und ich würde jedem eine solche Situation empfehlen.
    • Google ist vor etwa zwei Jahren zu diesem Schluss gekommen, hat aber noch keine klaren Ergebnisse vorweisen können. Das Schlüsselwort oben ist kuratiert.
    • Es dürfte eine Art Wertmetrik geben, die Menge und Qualität ausbalanciert, und in einer Phase wie jetzt, in der wir die Funktionsweise der Technik mittelmäßig gut verstehen, lässt sich diese Metrik wohl nutzen. Mit anderen Worten: Es gibt potenzielle Gewinne durch synthetische Daten.
      Allerdings wird meiner Ansicht nach irgendwann das Prinzip „No Free Lunch“ greifen, und synthetische Daten kümmern sich auch nicht immer um den Datenerzeugungsprozess von Ausreißern.
    • Dem kann ich schwer zustimmen. Im Gegenteil: Ich denke, KI seit der ULMFiT-Ära hat die Notwendigkeit menschlich kuratierter Daten endgültig beendet.
      ChatGPT 4 wird bereits als Oracle-Modell zum Trainieren alltäglicher KI-Modelle genutzt. Ein wirklich riesiges Oracle-Modell wird bis auf sehr kleine menschliche Eingaben den Großteil überflüssig machen.
    • Warum können wir solche Dinge nur theoretisieren? Warum können wir nicht wissen, wie und warum sie funktionieren?