• Ημερομηνία δημοσίευσης
    Φεβρουάριος 18, 2025
  • Κοινοποίηση

Σε αυτήν την ανάρτηση ιστολογίου, θα μιλήσω για λεπτομέρειες και αρχές της μεθόδου LoRA (Low-Rank Adaptation Of Large Language Models), καθώς θα αναλύσω την εργασία . Ο κύριος στόχος της εργασίας είναι να παρουσιάσει μια νέα δομή που μειώνει το κόστος της μικρορύθμισης ενός μοντέλου, αυξάνοντας παράλληλα την απόδοσή του. Οι λειτουργίες μικρορύθμισης κατέχουν σημαντική θέση στις μελέτες επεξεργασίας φυσικής γλώσσας εδώ και καιρό. Ας υποθέσουμε ότι έχετε ένα εκπαιδευμένο μοντέλο και θέλετε να επεκτείνετε τις γνώσεις του. Μπορείτε να το κάνετε αυτό μικρορυθμίζοντας, χωρίς να εκπαιδεύσετε το μοντέλο από την αρχή.

Ας υποθέσουμε ότι ένα μοντέλο έχει n παραμέτρους μετά την εκπαίδευση και πρέπει να το ρυθμίσετε με ακρίβεια. Εάν χρησιμοποιείτε μια μέθοδο πλήρους μικρορύθμισης, όλες οι παράμετροι του μοντέλου πρόκειται να ενημερωθούν. Όταν εξετάζουμε μοντέλα που έχουν δισεκατομμύρια παραμέτρους, η ενημέρωση για όλες τις παραμέτρους θα δημιουργήσει προβλήματα χρόνου και αποθήκευσης. Στην εργασία, τα καλύτερα ή ισοδύναμα αποτελέσματα απόδοσης τονίζονται για τα μοντέλα RoBERTa, DeBERTa, GPT-2 και GPT-3 χρησιμοποιώντας τη μέθοδο LoRA.

Στην εργασία αναφέρεται ότι η μέθοδος LoRA είναι εμπνευσμένη από τις μελέτες των Li et. al (2018a) και Aghajanyan et al. (2020). Αυτές οι μελέτες τονίζουν ότι η επιτυχία των υπερπαραμετροποιημένων μοντέλων βασίζεται στην πραγματικότητα σε μια χαμηλή εγγενή διάσταση. Αυτό έγινε το σημείο που διαμόρφωσε την υπόθεση της μεθόδου LoRA.

Η μέθοδος LoRA είναι μια μελέτη που βασίζεται αποκλειστικά στην παραγοντοποίηση κατάταξης. Σε αυτή τη μέθοδο, δύο διαδοχικοί πίνακες προστίθενται παράλληλα σε ορισμένα πυκνά στρώματα στα νευρωνικά δίκτυα όπως φαίνεται στο Σχήμα 1. Αυτοί οι διαδοχικοί πίνακες σχηματίζονται από μια δεδομένη διαμόρφωση κατάταξης. Το παρακάτω σχήμα δείχνει πώς μοιάζει ένα πυκνό στρώμα μετά την προσθήκη των διαδοχικών πινάκων κατάταξης. Οι μεταβλητές εισόδου αποστέλλονται τόσο μέσω της αρχικής μήτρας βάρους προπόνησης όσο και μέσω της πρώτης μήτρας των διαδοχικών πινάκων. Στη συνέχεια, οι τιμές εξόδου υπολογίζονται αθροίζοντας τις εξόδους αυτών των δύο παράλληλων πινάκων.

 

Ekran Resmi 2024-12-26 15.25.36.png
Πηγή: https://arxiv.org/abs/2106.09685

Η μέθοδος LoRA

Τα νευρωνικά δίκτυα έχουν πολλά πυκνά επίπεδα που εκτελούν πολλαπλασιασμούς πινάκων. Οι πίνακες βαρών σε αυτά τα επίπεδα είναι στην πραγματικότητα πίνακες πλήρους τάξης (όλες οι γραμμές και οι στήλες είναι ανεξάρτητες). Αλλά οι Aghajanyan et al. ανέφεραν στην εργασία τους ότι τα προ-εκπαιδευμένα μοντέλα γλώσσας έχουν χαμηλή «ενδογενή διάσταση». Αυτό διαμόρφωσε την υπόθεση LoRA σε αυτήν την πτυχή. Έτσι, η υπόθεση LoRA έγινε ότι τα μοντέλα μπορούσαν να μάθουν με αλλαγές χαμηλών διαστάσεων στον πίνακα βαρών κατά την προσαρμογή σε μια συγκεκριμένη εργασία.

Οι ενημερώσεις σε αυτόν τον πίνακα έγιναν μέσω πινάκων 

Ekran_Resmi_2024_12_26_15_32_57_6efdebb733.png

χωρίζονται με χαμηλόβαθμο. Εδώ, το B είναι ένας πίνακας dxr, ο A είναι ένας πίνακας rxk, ενώ το r (κατάταξη) είναι πολύ μικρότερο από τα d και k. Κατά τη διάρκεια της λεπτομέρειας, οι ενημερώσεις gradient στο Wo αποτρέπονται. Και οι δύο πίνακες Wo και ∆W πολλαπλασιάζονται με τις ίδιες τιμές εισόδου και τα αποτελέσματα αθροίζονται και σχηματίζεται η έξοδος h= w0 + ∆Wx = w0 +BAx.

Στην αρχή της εκπαίδευσης, χρησιμοποίησαν τυχαία Gaussian αρχικοποίηση για τιμές μήτρας Α και πλήρη μηδενική προετοιμασία για τιμές μήτρας Β. Με άλλα λόγια, το ΒΑ ισούται με μηδέν στην αρχή.

Εφαρμογή LoRA στην Αρχιτεκτονική Transformer

Υπάρχουν 4 πίνακες βάρους Wq, Wk, Wv, Wo στη μονάδα αυτοπροσοχής και 2 πίνακες βάρους στη μονάδα MLP στην αρχιτεκτονική μετασχηματιστή. Κατά τη διάρκεια της προσαρμογής του LoRA, πάγωσαν τα βάρη στη μονάδα MLP και εφάρμοσαν τη μέθοδο στα βάρη προσοχής για να διατηρήσουν την προπόνηση απλή.

Πλεονεκτήματα   

  • Οι μεγαλύτερες ευκολίες που παρέχει η LoRA είναι οι χρήσεις μνήμης και αποθήκευσης. Για παράδειγμα, στο άρθρο αναφέρεται ότι για ένα μεγάλο μοντέλο μετασχηματιστή που έχει εκπαιδευτεί με τον Adam, η χρήση VRAM μειώνεται έως και 2/3 εάν << r d. Αυτό συμβαίνει επειδή οι καταστάσεις βελτιστοποίησης δεν διατηρούνται για παγωμένες παραμέτρους.
  • Για το μοντέλο GPT-3 175B, η κατανάλωση VRAM μειώθηκε από 1.2 TB σε 350 GB.
  • Στο σενάριο όπου r=4 και άλλαξαν μόνο τα βάρη των πινάκων τιμής και ερωτήματος, το μέγεθος του σημείου ελέγχου μειώθηκε από 350 GB σε 35 MB. Αυτό επέτρεψε την εκπαίδευση με λιγότερες GPU.
  • Επιπλέον, δεδομένου ότι δεν υπάρχει ενημέρωση κλίσης στις περισσότερες από τις παραμέτρους, επιτεύχθηκε επιτάχυνση 25% κατά την εκπαίδευση του GPT-3 175B με LoRA σε σύγκριση με τη διαδικασία πλήρους λεπτομέρειας.

Το άρθρο αναφέρει επίσης ότι εάν η διαδικασία λεπτομέρειας απαιτείται για διαφορετική γλώσσα, ολόκληρο το μοντέλο θα πρέπει να χρησιμοποιηθεί αντί για το LoRA.

Πρόσθετες Γνώσεις

Τι είναι μια Κατάταξη

Η κατάταξη είναι ο συνολικός αριθμός γραμμικά ανεξάρτητων στηλών ή γραμμών ενός πίνακα. Ας υποθέσουμε ότι έχουμε έναν πίνακα με n στήλες και όλες οι στήλες είναι ανεξάρτητες μεταξύ τους, τότε μπορούμε να πούμε ότι η κατάταξη στήλης αυτού του πίνακα είναι n. Και πάλι, αν όλες οι γραμμές ενός πίνακα με n γραμμές είναι ανεξάρτητες μεταξύ τους, τότε μπορούμε να πούμε ξανά ότι η κατάταξη γραμμής του πίνακα είναι n.

Η κατάταξη της γραμμής και η κατάταξη στηλών ενός πίνακα πρέπει να είναι ίσες. Ως παράδειγμα, μπορούμε να δούμε τον παρακάτω πίνακα.

Πίνακας A = [[1,2,5], [ 2, 4, 10] ]

Αν κοιτάξουμε προσεκτικά τον πίνακα, μπορούμε να δούμε ότι η 2η σειρά είναι διπλάσια από την 1η σειρά. Ομοίως, η 2η και η 3η στήλη του πίνακα είναι 2 και 5 φορές η 1η στήλη, αντίστοιχα. Με άλλα λόγια, ενώ υπάρχουν δύο διανύσματα στην ίδια γραμμή με βάση μια σειρά στον πίνακα, και τρία διαφορετικά διανύσματα σε μια άλλη γραμμή βάσει στήλης, υπάρχει μόνο ένα μοναδικό διάνυσμα σε κάθε γραμμή και βάση κάθε στήλης. Αυτό σημαίνει ότι η κατάταξη του πίνακα είναι 1.

Για να βρούμε την κατάταξη, μετατρέπουμε τον πίνακα στη μορφή κλιμακίου και στη συνέχεια υπολογίζουμε τον αριθμό των σειρών που αποτελούνται από τουλάχιστον μία μη μηδενική τιμή.

Τι είναι μια μήτρα χαμηλής κατάταξης

Στους πίνακες, η κατάταξη μπορεί να είναι ίση ή μικρότερη από τον αριθμό των στηλών ή των γραμμών. Οι πίνακες που έχουν μικρότερες γραμμικά ανεξάρτητες σειρές ή στήλες από τον τρέχοντα αριθμό γραμμών ή στηλών ονομάζονται πίνακες χαμηλής κατάταξης. Οι πίνακες όπου όλες οι σειρές ή οι στήλες είναι ανεξάρτητες ονομάζονται πίνακες πλήρους κατάταξης.

Τι είναι η παραγοντοποίηση/αποσύνθεση κατάταξης

Μπορούμε να ξαναγράψουμε έναν πίνακα με βαθμό r ως B=LR^T αποσυνθέτοντάς τον σε πίνακες L και R. Εδώ, το L είναι ένας πίνακας διαστάσεων mxr, ενώ το R^T είναι ένας πίνακας διαστάσεων rxn. Αυτή η διαδικασία είναι γνωστή ως αποσύνθεση βαθμού.

Η σημασία της παραγοντοποίησης κατάταξης:

Η σημασία της διαδικασίας παραγοντοποίησης κατά βαθμό έγκειται στο ότι μας επιτρέπει να διαιρέσουμε έναν πίνακα σε μικρότερους πίνακες, L και R, και να τους διατηρήσουμε σε λιγότερο χώρο. Αυτό σημαίνει ότι μπορείτε να αποθηκεύσετε τον πίνακα B αποθηκεύοντας τους παράγοντες του L και R. Αυτό μειώνει τις απαιτήσεις αποθήκευσης του πίνακα B σε (m+n)r αριθμούς από mn αριθμούς. Ένα επιπλέον σημείο που αξίζει να αναφερθεί εδώ είναι ότι μετά την αποσύνθεση ενός πίνακα σε αυτούς τους δύο μικρούς πίνακες, επιτρέπει την πραγματοποίηση πολλών υπολογισμών σχετικά με τον πίνακα χωρίς καν να παραχθεί ξανά ο ίδιος πίνακας. Για αυτόν τον λόγο, όταν έχουμε να κάνουμε με έναν πίνακα χαμηλού βαθμού, η παραγοντοποίηση κατά βαθμό θεωρείται πάντα ως ένα σημαντικό πρώτο βήμα. Μετά την παραγοντοποίηση κατά βαθμό, οι υπολογισμοί μπορούν να γίνουν πολύ πιο γρήγορα και χρησιμοποιώντας λιγότερη μνήμη.

Επί πλέον

Για πιο λεπτομερείς πληροφορίες σχετικά με τους πίνακες χαμηλής κατάταξης, μπορείτε να διαβάσετε το ιστολόγιο και την εργασία του Ethan R. Epperly στο LoRA . Επιπλέον, μπορείτε να εξετάσετε λεπτομερώς τις εφαρμογές που βασίζονται σε κώδικα του LoRA στο αποθετήριο microsoft/LoRA στο github.

Gizem ABALI, MSc. / Επικεφαλής ομάδας