7.0. LoRA Improvements in fine-tuning
Last updated
Last updated
Die Verwendung von LoRA reduziert erheblich die Berechnungen, die erforderlich sind, um bereits trainierte Modelle fein abzustimmen.
LoRA ermöglicht es, große Modelle effizient fein abzustimmen, indem nur ein kleiner Teil des Modells geändert wird. Es reduziert die Anzahl der Parameter, die Sie trainieren müssen, und spart Speicher und Rechenressourcen. Das liegt daran:
Reduziert die Anzahl der trainierbaren Parameter: Anstatt die gesamte Gewichtsmatrix im Modell zu aktualisieren, teilt LoRA die Gewichtsmatrix in zwei kleinere Matrizen (genannt A und B). Dies macht das Training schneller und erfordert weniger Speicher, da weniger Parameter aktualisiert werden müssen.
Das liegt daran, dass anstatt die vollständige Gewichtsanpassung einer Schicht (Matrix) zu berechnen, sie auf ein Produkt von 2 kleineren Matrizen approximiert wird, wodurch die Aktualisierung reduziert wird:\
2. **Hält die ursprünglichen Modellgewichte unverändert**: LoRA ermöglicht es Ihnen, die ursprünglichen Modellgewichte gleich zu lassen und nur die **neuen kleinen Matrizen** (A und B) zu aktualisieren. Dies ist hilfreich, da es bedeutet, dass das ursprüngliche Wissen des Modells erhalten bleibt und Sie nur das Notwendige anpassen. 3. **Effizientes aufgabenspezifisches Feintuning**: Wenn Sie das Modell an eine **neue Aufgabe** anpassen möchten, können Sie einfach die **kleinen LoRA-Matrizen** (A und B) trainieren, während der Rest des Modells unverändert bleibt. Dies ist **viel effizienter** als das vollständige Neutrainieren des Modells. 4. **Speichereffizienz**: Nach dem Feintuning müssen Sie anstelle eines **komplett neuen Modells** für jede Aufgabe nur die **LoRA-Matrizen** speichern, die im Vergleich zum gesamten Modell sehr klein sind. Dies erleichtert es, das Modell an viele Aufgaben anzupassen, ohne zu viel Speicherplatz zu verwenden.
Um LoraLayers anstelle von linearen während eines Feintunings zu implementieren, wird hier dieser Code vorgeschlagen https://github.com/rasbt/LLMs-from-scratch/blob/main/appendix-E/01_main-chapter-code/appendix-E.ipynb: