Gefen: Optimized Stochastic Optimizer
Het artikel introduceert Gefen, een geheugenefficiënte optimizer die de geheugenvoetafdruk van AdamW met ongeveer 8x vermindert door middel van automatische tweede-momentdeling en geleerd eerste-momentkwantisatie, wat grotere batchgroottes en verbeterde doorvoer mogelijk maakt terwijl een equivalente prestatie behouden blijft.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Stel je voor dat je een reusachtige robot (een deep learning-model) traint om een nieuwe vaardigheid te leren. Om dit te doen, heeft de robot een "coach" (een optimizer) nodig die hem vertelt hoe hij zijn interne instellingen moet aanpassen na elke oefensessie. De populairste coach op dit moment is genaamd AdamW.
AdamW is een geweldige coach, maar hij draagt een zware rugzak. Voor elke instelling die de robot heeft, draagt AdamW twee extra notitieboeken (de zogenaamde "first and second moment states") om zich te herinneren wat de fouten uit het verleden waren en hoe snel de veranderingen gaan. Als je robot 1 miljard instellingen heeft, voegt de rugzak van AdamW nog eens 2 miljand instellingen aan gewicht toe. Dit maakt de rugzak zo zwaar dat je geen grote robot op een standaard trainingscomputer krijgt, of dat je de robot in hele kleine, trage stapjes moet laten oefenen.
Het paper introduceert een nieuwe coach genaamd Gefen. Gefen is een "geheugenefficiënte" optimizer die die zware rugzak 8 keer kleiner maakt, terwijl de leersnelheid en de kwaliteit van de robot precies hetzelfde blijven als bij AdamW.
Zo werkt Gefen, met behulp van enkele eenvoudige analogieën:
1. De "Groepsknuffel"-strategie (Notities delen)
Het Probleem: AdamW schrijft een aparte notitie voor elk los getal in de hersenen van de robot.
Gefen's Oplossing: Gefen realiseert zich dat veel van deze getallen eigenlijk "beste vrienden" zijn. Ze reageren op zeer vergelijkbare manieren op de wereld. In plaats van voor elke individuele vriend een unieke notitie te schrijven, groepeert Gefen ze in teams (blokken) en geeft het hele team één gedeeld notitieboek.
- Hoe weet het wie het moet groeperen? Normaal gesproken heb je een supercomplexe kaart nodig (een zogenaamde "Hessian matrix") om te zien wie vrienden zijn met wie, maar die kaart is te groot om te tekenen voor reusachtige robots.
- Gefens Truc: Gefen kijkt naar de allereerste oefensessie van de robot. Het ziet welke getallen samen bewogen in een vergelijkbaar patroon. Het gaat er dan vanuit: "Als jullie aan het begin samen bewogen, zullen jullie waarschijnlijk later ook samen bewegen." Het groepeert deze getallen vervolgens automatisch. Geen mens hoeft aan te geven welke groepen gemaakt moeten worden; de coach ontdekt het zelf.
2. De "Schetskunstenaar"-strategie (Quantization)
Het Probleem: Zelfs met gedeelde notitieboeken zijn de getallen erin nog steeds geschreven met een hoge precisie (zoals 10 decimalen), wat veel ruimte inneemt.
Gefens Oplossing: Gefen gebruikt een aanpak van een "schetskunstenaar". In plaats van het exacte getal op te schrijven (bijv. 0,123456789), rondt het het af naar de dichtstbijzijnde "standaardwaarde" uit een vooraf gemaakte lijst (een codebook).
- De Slimme Lijst: De meeste optimizers gebruiken een generieke, vaste lijst met waarden (zoals een liniaal met vaste streepjes). Gefen kijkt echter naar de specifieke robot die hij coacht en leert de perfecte lijst met streepjes die precies bij die robot past. Het gebruikt een slimme wiskundige methode (Dynamic Programming) om een aangepaste liniaal te maken die perfect bij de data past, waardoor fouten tot een minimum worden beperkt.
- Stabiliteit: Zodra het deze lijst aan het begin heeft geleerd, blijft het de hele tijd dezelfde lijst gebruiken. Het hoeft niet elke dag de liniaal opnieuw te tekenen, wat tijd bespaart en de stabiliteit behoudt.
De Resultaten: Een Lichtere Rugzak, Dezelfde Prestaties
De auteurs hebben Gefen getest op diverse modellen, van kleine beeldclassificatie-modellen tot grote taalmodellen (zoals Llama 3).
- Geheugen: Gefen verminderde de hoeveelheid geheugen die nodig is voor de optimizer met ongeveer 8 keer vergeleken met AdamW. Voor een model met 13 miljard parameters bespaart dit ongeveer 97 GB aan geheugen, terugbrengend naar slechts 1,5 GB.
- Snelheid: Omdat de rugzak lichter is, kan de robot een grotere "micro-batch" (oefengroep) tegelijk dragen. In tests met meerdere computers (FSDP en DDP) zorgde dit ervoor dat de training 56% sneller verliep, omdat de computers niet hoefden te wachten tot het geheugen weer vrij was.
- Kwaliteit: Ondanks de zware compressie en het delen van informatie, leerde de robot net zo goed als met de zware AdamW-rugzak. De uiteindelijke prestaties (nauwkeurigheid of loss) waren identiek.
Waarom dit ertoe doet
Denk aan het inpakken voor een reis. AdamW is als het inpakken van een koffer waarbij elke enkele sok zijn eigen individuele doosje krijgt. Gefen is het besef dat je al je sokken in één compact bundeltje kunt rollen en in één klein zakje kunt stoppen. Je bespaart enorme ruimte, maar je hebt nog steeds al je sokken en je komt net zo snel op je bestemming aan.
Het paper beweert dat Gefen een "drop-in replacement" is, wat betekent dat je het direct in je bestaande trainingscode kunt vervangen zonder instellingen te wijzigen, en dat het onmiddellijk geheugen bespaart en mogelijk je training versnelt.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.