Trend-Themen
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Okay, lass uns über Frameworks, Bibliotheken, RL und warum ich wahrscheinlich deinen Lieblings-RL-Code nicht mag, sprechen. Ja, einschließlich diesem.
Das Ungewöhnliche an RL ist, dass der Algorithmus der einfache Teil ist. GRPO ist eine Einzeleinheit auf einigen Log-Wahrscheinlichkeiten. Wenn du die Daten hast, ist die Berechnung des Verlusts trivial, und dann verwendest du vermutlich eine Backprop-Bibliothek deiner Wahl.
Aber das ist das Problem – die Daten zu bekommen. Es ist eine Qual. In regulärem RL musst du Rollouts machen, vielleicht einige Episoden kürzen und die Enden entsprechend behandeln. Wenn du nicht wie eine Schnecke sein willst, solltest du die Umgebung vektorisieren und den Algorithmus dafür anpassen. Wenn du ein LLM machen willst, musst du all den Unsinn machen, der LLMs in den Speicher passt. Du musst auf deine Eingabeaufforderungen achten, die richtigen Teile für den Verlust maskieren. Du brauchst eine anständige Generierungs-Engine (vLLM), was es dann schwierig macht, die Gewichte zu aktualisieren. Wenn du Multi-Agenten-Multi-Turn-LLM-RL machen willst, kannst du gleich Commit-Sudoku spielen.
Obwohl wir viele Meinungsverschiedenheiten über alles haben, was mit RL zu tun hat, denke ich, dass @jsuarez5341s Pufferlib diesen Punkt wunderschön veranschaulicht. Es ist ohne Zweifel unglaublich in dem, was es tut – das Trainieren von RL-Algorithmen in simulierten Umgebungen sehr, sehr schnell.
Aber der Großteil seiner Neuheit ist reine Infrastruktur. Die Kernalgorithmen sind größtenteils die gleichen wie seit Jahren, und ich bin bereit zu wetten, dass sie weniger als 10 % des gesamten Ingenieurefforts ausmachen.
Natürlich hat das Auswirkungen auf den Code, den du schreiben musst, um irgendetwas über das Ausführen der integrierten Beispiele hinaus zu tun. Was ich immer wieder feststelle, ist, dass es für viele ausreichend nicht triviale (lesen: interessante) Forschungsprobleme eine ähnliche Zeit in Anspruch nimmt, (a) das Ding von Grund auf neu zu schreiben / von einfachen Primitiven, oder (b) ein bestehendes Framework anzupassen, um verrückte Ideen zu berücksichtigen.
Im ersten Fall konzentrierst du dich darauf, die eigentliche Logik zu schreiben. Im letzteren Fall kämpfst du mit dem Framework, um es dir zu ermöglichen, die Logik hinzuzufügen. Ich weiß, was ich besser mag.
All das liegt daran, dass der Algorithmus der einfache Teil ist.
Die Infrastruktur ist die Qual. Also, wann immer du in der Position bist zu wählen – benutze die Werkzeuge, die die Infrastruktur vereinfachen, und schreibe die Trainingsschleife selbst. Baue keine Frameworks, baue Bibliotheken. Du wirst dir später dafür danken.
Ein großes Dankeschön an meinen Masterbetreuer von damals, der der Erste war, der mir sagte, ich solle rllib fallen lassen und einfach PPO selbst in PyTorch schreiben. Und an @hallerite, der mich inspiriert hat, endlich diesen Rant zu schreiben. Ich könnte irgendwann in der Zukunft einen richtigen Aufwandspost mit Beispielen schreiben, wenn die Leute danach verlangen.
Top
Ranking
Favoriten

