Neugierig, wie gut SFT im Vergleich zum Lernen im Kontext funktioniert. ICL fühlt sich wie schwarze Magie an - das Modell nimmt wirklich eine Menge stillschweigender Informationen mit menschlicher Stichprobeneffizienz auf. Wenn Feinabstimmung dem nahe kommen kann, vielleicht kann man etwas zusammenklopfen, das sich wie kontinuierliches Lernen anfühlt? Hier ist eine naive Idee: Inner Loop, mache SFT auf Sitzungszusammenfassungen. Outer Loop, langfristiges RL, bei dem es Fähigkeiten und Wissen nutzen muss, die zwischen den Sitzungen weitergegeben werden müssen. Der Outer Loop behandelt SFT im Grunde als einen Werkzeugaufruf und motiviert das Modell, so viele wichtige Informationen wie möglich weiterzugeben. Ich bin neugierig, ob etwas, das bestehende Techniken wie diese zusammenklopft, ausreicht für kontinuierliches Lernen oder ob wir ein ganz neues Paradigma benötigen. Ich habe eine unterhaltsame Fermi-Schätzung mit ChatGPT gemacht, um ein Gefühl für diese Frage zu bekommen. Eine Frage, die man stellen könnte, ist, wie viel SFT (über LoRA) Informationen im Vergleich zum Lernen im Kontext komprimiert? Und vergleiche es nur zum Spaß mit dem Pretraining. Wenn es eine riesige Diskrepanz gibt (d.h. es werden viele Male so viele Bytes für die KV-Caches verwendet im Vergleich zu den Gewichten von LoRA), dann könnte das *andeuten*, dass es sehr schwierig wäre, dass LoRA so reich und stichproben-effizient wie ICL ist. Nochmals, das ist ein super vager Nachmittags-Rabbit-Hole, keine ernsthafte Untersuchung. Nur weil es viel weniger Speicher verwendet, bedeutet das nicht unbedingt, dass es viel dümmer ist, usw. Dieses Diagramm ist für Llama 3 70 b (das auf 15 Billionen Tokens vortrainiert wurde). Sobald wir in den niedrigen vierstelligen Tausenderbereich von Tokens kommen, muss die LoRA (deren Größe sich nicht ändert, je nachdem, wie viele Tokens du feinabstimmst) viel dichter komprimieren als ICL. Sobald du 100k Tokens hast, werden die Tokens, die durch eine Rang-32 LoRA gehen, 37x mehr komprimiert, als wenn sie im Kontext (über den KV-Cache) beachtet werden. Nebenbei bemerkt: die Bytes pro Trainings-Token für das Pretraining sind unglaublich niedrig! (0,009 in diesem Fall). Ich habe ein weiteres Diagramm gemacht, diesmal die Tokenanzahl konstant bei 100k haltend und den Rang der LoRA variierend. Naiv betrachtet scheint es, dass der Rang klein genug sein sollte, sodass er nur einen kleinen Bruchteil der gesamten Modellgewichte ausmacht (ansonsten, warum sich mit einer LoRA beschäftigen?), aber auch groß genug, um eine signifikante Menge der Informationen zu enthalten, die in den KV-Caches gespeichert sind. So kannst du sehen, wo dieser Sweet Spot sein könnte. Wie auch immer, diese Diagramme sind nicht schlüssig für irgendetwas. Und bitte entschuldige etwaige peinliche Fehler oder Missverständnisse. Ich bin gespannt auf tatsächliche hochrangige Meinungen dazu, wie gut das Zusammenklopfen von SFT und RL in Bezug auf das kontinuierliche Lernen, das wir mit dem Lernen im Kontext zwischen den Sitzungen sehen, funktionieren wird.
40,59K