Νέα

Το κόστος έρευνας του DeepMind είναι τόσο υψηλό που ένα χαρτί ICML κόστισε 12,9 εκατομμύρια δολάρια

2024-08-03

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


Νέα Έκθεση Σοφίας

Επιμέλεια: Qiao Yang

[Εισαγωγή στη Νέα Σοφία] Ένα έγγραφο που έγινε πρόσφατα αποδεκτό από την DeepMind στο ICML 2024 αποκάλυψε πλήρως την «τυραννία» τους που υποστηρίζεται από την Google. Ένα άρθρο εκτιμά ότι η υπολογιστική ισχύς και το κόστος που απαιτούνται για αυτήν την έρευνα είναι περίπου το 15% της προεκπαίδευσης του Llama 3 και το κόστος μπορεί να φτάσει τα 12,9 εκατομμύρια δολάρια ΗΠΑ.

Πόσος πειραματικός προϋπολογισμός χρειάζεται για τη δημοσίευση μιας εργασίας συνεδρίου;

Πρόσφατα, η DeepMind δημοσίευσε μια μελέτη που διεξήγαγε μια εκτενή εμπειρική έρευνα διαφόρων αλγοριθμικών και αρχιτεκτονικών λεπτομερειών, όπως η επιλογή παραμέτρων και βελτιστοποιητή, όταν το LLM κλιμακώνεται.

Αυτό το έγγραφο έχει γίνει αποδεκτό από το ICML 2024.


Διεύθυνση χαρτιού: https://arxiv.org/abs/2407.05872

Το χαρτί των 63 σελίδων καλύπτει δεκάδες χιλιάδες μοντέλα και οι εναλλακτικές περιλαμβάνουν 3 βελτιστοποιητές, 4 σχήματα παραμετροποίησης, πολλές υποθέσεις ευθυγράμμισης, περισσότερους από δώδεκα ρυθμούς εκμάθησης και 14 μεγέθη παραμέτρων έως 26,8 Β.


4 σχήματα παραμετροποίησης που απαιτούν πειραματισμό

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

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


Προσθέτοντας όλη την απαιτούμενη υπολογιστική ισχύ, έφτασε στην πραγματικότητα τα εκπληκτικά 12,9 εκατομμύρια δολάρια ΗΠΑ.

Ήρθε η ώρα να δοκιμάσετε τις βασικές δεξιότητές σας.

Στη συνέχεια, ας ακολουθήσουμε αυτό το άρθρο του ιστολογίου για να μάθουμε πού ακριβώς κάηκαν αυτά τα περισσότερα από 10 εκατομμύρια δολάρια ΗΠΑ.

Πληροφορίες αρχιτεκτονικής μετασχηματιστή

Το Παράρτημα Γ της εργασίας παρέχει διάφορες λεπτομερείς ρυθμίσεις σχετικά με τον αλγόριθμο και την αρχιτεκτονική του μοντέλου, όπως χρήση αρχιτεκτονικής μόνο αποκωδικοποιητή, κανονικοποίηση στρώματος, λειτουργία ενεργοποίησης GeLU, μη εγκατάλειψη, Tokenizer T5, μέγεθος παρτίδας 256, χρήση παραλληλισμού FSDP κ.λπ.


Στατιστικά κλίμακας παραμέτρων πειραματικών μοντέλων

Μέσω αρχιτεκτονικών πληροφοριών, μπορούμε να υπολογίσουμε χονδρικά το FLOPS που απαιτείται για κάθε διακριτικό στην εκπαίδευση, που υποδηλώνεται ως M.

Δεδομένου ότι η εργασία δεν περιγράφει κανένα μηχανισμό GQA/MQA, υποτίθεται ότι Rkv=1, επιπλέον των lseq=512, Dhead=128, L=8 (βάθος) και V=32101 (λεξιλόγιο τμηματοποιητή λέξεων).

Οι συνολικές παράμετροι του μοντέλου μπορούν να εκφραστούν ως εξής:

Επομένως, μπορούμε να πάρουμε τον τύπο υπολογισμού του M:

Από προεπιλογή, ο αριθμός των διακριτικών που υποβάλλονται σε επεξεργασία ανά πείραμα (TPE) είναι 5k (αριθμός βημάτων εκπαίδευσης) × 256 (μέγεθος παρτίδας) × 512 (lseq), που είναι περίπου 6,5536e9.

def M(d: int, L=8, l_seq=512, V=32101) -> int:     return 6*d * (L*(12*d + l_seq) + V) TPE = 50000 * 256 * 512

Πείραμα ευθυγράμμισης

Στο πείραμα ευθυγράμμισης της υπόθεσης, το βέλτιστο αποτέλεσμα που προέκυψε από την επακόλουθη σάρωση ρυθμού εκμάθησης χρησιμοποιήθηκε απευθείας αντί για ξεχωριστή σάρωση ρυθμού εκμάθησης, επομένως ο υπολογισμός του κόστους σε αυτό το βήμα είναι σχετικά απλός:


def alignment() -> int:     return 4 * TPE * sum(M(d) for d in [1024,2048,4096]) # >>> f'{alignment():.3E}' # '3.733E+20' # >>> cost_of_run(alignment())[0] # 888.81395400704

Εάν το H100 κοστίζει 3 $ ανά ώρα λειτουργίας, το κόστος του πειράματος ευθυγράμμισης είναι περίπου 888 $.

ποσοστό μάθησης

Υποπρόβλημα: Πείραμα βέλτιστης απώλειας αξιολόγησης (eval loss).

Ο Πίνακας E1 του χαρτιού καταγράφει όλους τους πιθανούς συνδυασμούς βελτιστοποιητή × σχήμα παραμετροποίησης × μέγεθος μοντέλου × πειραματικές ρυθμίσεις κάτω από 6 μεγέθη μοντέλων και πραγματοποιεί σαρώσεις βασικού ρυθμού εκμάθησης αντίστοιχα για να επιτύχει την καλύτερη απώλεια αξιολόγησης.

Περιλαμβάνονται συνολικά οι ακόλουθες πειραματικές μεταβλητές:

- Διάσταση μοντέλου D∈3072,4096,6144,8192,12288,16384

- 4 επιλογές παραμετροποίησης

- 3 βελτιστοποιητές, εκ των οποίων το SGD έχει μόνο 5 πειραματικές ρυθμίσεις, το Adam και το Adam+Param Scaling έχουν 7 πειραματικές ρυθμίσεις

Ας υποθέσουμε ότι τα πειράματα εδώ διεξάγονται όλα ανεξάρτητα και τα αποτελέσματα δεν αναπαράγονται από άλλα μέρη, επομένως, εάν εκτελούνται όλα μία φορά, υπάρχει μια εκτίμηση ανώτατου ορίου του κόστους:


H = [1,2,4,6,8,12,16,20,24,32,48,64,96,128] D = [h * 128 for h in H] def table_e1() -> int:   sets_x_optims = 5 + 7 + 7   return 4 * sets_x_optims * TPE * sum(M(d) for d in D[-6:]) # >>> f'{table_e1():.3E}';cost_of_run(table_e1()) # '1.634E+23' # (388955.9991064986, 16206.499962770775)

Το κόστος αυτού του τμήματος είναι κοντά στα 400.000 $, το οποίο εξακολουθεί να είναι εντός του αποδεκτού εύρους, αλλά είναι ήδη πολύ ακριβό για τους περισσότερους ακαδημαϊκούς προϋπολογισμούς.

Ο Πίνακας E1 δίνει την καλύτερη απώλεια αξιολόγησης, αλλά δεν περιγράφει τη στρατηγική σάρωσης του LR και ο αριθμός των σημείων σε κάθε εικόνα είναι επίσης διαφορετικός.


Δεδομένου ότι δεν λάβαμε απάντηση από τον συγγραφέα της εργασίας, δεν μπορούμε να προσδιορίσουμε τον συγκεκριμένο μηχανισμό, επομένως υποθέτουμε ότι κάθε απώλεια που έχει αξιολογηθεί καλύτερα έχει περάσει από 15 πειράματα (η οπτική επιθεώρηση διαπίστωσε ότι ο αριθμός των σημείων σε κάθε γραμμή είναι περίπου 10 έως 15).

β παράμετρος

Σύμφωνα με την Ενότητα 4.2 της εργασίας, ο ρυθμός μάθησης περιλαμβάνει επίσης την επιλογή δύο υπερπαραμέτρων: β και γ.

Εάν υπάρχουν μόνο β παράμετροι, ονομάζεται ρύθμιση "LR+default":


Αυτό το μέρος περιλαμβάνει βελτιστοποιητή 3×, παραμετροποίηση 4×, καθώς και ξεχωριστά πειράματα σε καθολικά και μεμονωμένα επίπεδα (GlobalLR, Perlayer-fullalign) και έναν άγνωστο αριθμό σαρώσεων LR:


def beta_only() -> int:   return 3*4*2*PpL * TPE * sum(M(d) for d in D) # 7.988E+23 (1902022.3291813303, 79250.93038255542)

Όπως φαίνεται από τον τύπο, το κόστος είναι παρόμοιο με το πείραμα epsilon παρακάτω, και τα δύο είναι 2 εκατομμύρια δολάρια ΗΠΑ.

γ παράμετρος

Σε σύγκριση με το πείραμα της παραμέτρου β, υπάρχουν δύο λεπτομερείς διαφορές σε αυτό το μέρος.

Πρώτα απ 'όλα, εκτός από τις ρυθμίσεις GlobalLR και Perlayer-fullalign, πρέπει να προστεθεί και η ρύθμιση Perlayer-noalign.


Δεύτερον, μια τρισδιάστατη αναζήτηση υπερπαραμέτρων (γ_1, γ_h, γ_L+1) εκτελείται μόνο για d=1024=b, επομένως υπάρχουν επιπλέον 800 εκτελέσεις.


Ο τύπος υπολογισμού μετά τον συνδυασμό των δύο είναι:


Το εκτιμώμενο κόστος αυτού του τμήματος είναι κοντά στο πείραμα του χάρτη θερμότητας έψιλον του Adam, περίπου 3,2 εκατομμύρια δολάρια.

def gamma_expts() -> int:   return 36*TPE * (800*M(1024) + PpL*sum(M(d) for d in D)) # gamma_expts 1.354E+24 (3224397.534237257, 134349.8972598857)

Παράμετροι Epsilon του Adam optimizer

Το πείραμα παραμέτρων Epsilon που περιγράφεται στην Ενότητα 4.3 του εγγράφου αντιπροσωπεύει το μεγαλύτερο μέρος του υπολογισμού.


Σύμφωνα με το παραπάνω συμπέρασμα, 15 διαφορετικοί ρυθμοί μάθησης (πόντους ανά γραμμή) δοκιμάζονται κάθε φορά για να βρεθεί η καλύτερη απώλεια αξιολόγησης, τότε το ποσό υπολογισμού του γραφήματος αλλαγής παραμέτρου έψιλον που φαίνεται στο Σχήμα 6 είναι:


Οι υπολογισμοί αποκάλυψαν έναν συνοπτικά ακριβό λογαριασμό 2 εκατομμυρίων δολαρίων.

PpL = 15  # unprincipled estimate def eps_variants() -> int:   return 4 * 6 * PpL * TPE * sum(M(d) for d in D) ''' >>> f'{eps_variants():.3E}';cost_of_run(eps_variants()) '7.988E+23' (1902022.3291813303, 79250.93038255542) '''

Εκτός από το γραμμικό διάγραμμα στην αριστερή πλευρά του Σχήματος 6, υπάρχουν επίσης τα αποτελέσματα του θερμικού χάρτη στο Παράρτημα ΣΤ.


Υποθέτοντας ότι κάθε τιμή μπλοκ είναι το αποτέλεσμα 13 σαρώσεων ρυθμού εκμάθησης, το ποσό υπολογισμού αυτού του μέρους είναι:


Διαπιστώθηκε ότι το κόστος μόλις απόκτησης αυτών των 8 χαρτών θερμότητας ήταν 3,2 εκατομμύρια δολάρια ΗΠΑ. Επίσης, εφόσον μοντελοποιούμε τον αριθμό των σαρώσεων LR ως σταθερά 13, αυτός ο αριθμός μπορεί να είναι χαμηλότερος από το πραγματικό κόστος.

def eps_heatmaps() -> int:    # eps-type * eps-val * parameterizations * LR range * ...   return 2 * 6 * 4 * 13 * TPE * sum(M(d) for d in D[-6:]) ''' >>> f'{eps_heatmaps():.3E}';cost_of_run(eps_heatmaps()) '1.341E+24' (3193533.466348094, 133063.89443117057) '''

αποσύνθεση βάρους

Το πείραμα αποσύνθεσης βάρους (Παράρτημα G) είναι σχετικά εύκολο να γίνει κατανοητό Μια βασική σάρωση LR εκτελείται στο σχήμα παραμετροποίησης 4× και σε όλες τις παραμέτρους:


Είναι πολύ φθηνότερο από το πείραμα epsilon, που είναι ο ετήσιος μισθός ενός μηχανικού της Bay Area - 317.000 $.

def weight_decay() -> int:   return 4 * PpL * TPE * sum(M(d) for d in D) ''' >>> f'{weight_decay():.3E}'; cost_of_run(weight_decay()) '1.331E+23' (317003.7215302217, 13208.488397092571) '''

Βελτιστοποιητής προσαρμογέα

Αυτό το μέρος του πειράματος περιγράφεται λεπτομερώς στο Παράρτημα C3 και πρόκειται να ελεγχθεί εάν η κλιμάκωση παραμέτρων Adafactor και Adam+ έχουν παρόμοιους μηχανισμούς κλιμάκωσης πλάτους.


Υπάρχουν διαγράμματα 2×4, όπου κάθε βελτιστοποιητής συλλέγει 11 σημεία δεδομένων, επομένως ο τύπος υπολογισμού είναι:


Άλλα 188.000 δολάρια προστέθηκαν στον λογαριασμό.

def adafactor() -> int:   return 2*2*4*PpL*TPE*sum(M(d) for d in D[:11]) ''' >>> f'{adafactor():.3E}'; cost_of_run(adafactor()) '7.918E+22' (188532.80765144504, 7855.533652143543) '''

Βελτιστοποίηση υπολογισμού

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

def P(d: int, L=8, V=32101) -> int:     return 2 * d * (6*L*d + V) def compute_optimal():   indices_50k = (14, 14, 12)   return 4*PpL*sum([     TPE * sum(sum( M(d) for d in D[:i] ) for i in indices_50k),         20  * sum(P(d)*M(d) for d in D[:11]) *3,   ]) # compute_optim 7.518E+23 (1790104.1799513847, 74587.67416464102)

Συνοψίζω

Συνοψίστε την υπολογιστική ισχύ και το κόστος των παραπάνω πειραμάτων:

alignment       3.733E+20 (888.81395400704, 37.033914750293334) table_e1        1.634E+23 (388955.9991064986, 16206.499962770775) eps_variants    7.988E+23 (1902022.3291813303, 79250.93038255542) eps_heatmaps    1.341E+24 (3193533.466348094, 133063.89443117057) beta_only       7.988E+23 (1902022.3291813303, 79250.93038255542) gamma_expts     1.354E+24 (3224397.534237257, 134349.8972598857) weight_decay    1.331E+23 (317003.7215302217, 13208.488397092571) adafactor       7.918E+22 (188532.80765144504, 7855.533652143543) compute_optim   7.518E+23 (1790104.1799513847, 74587.67416464102)

Διαπιστώθηκε ότι η υπολογιστική πολυπλοκότητα ολόκληρης της εργασίας ήταν 5,42e24 FLOPS.

Αυτός ο αριθμός είναι μόνο το 15% του ποσού υπολογισμού εκπαίδευσης του Llama 3. Εάν εκτελεστεί σε ένα σύμπλεγμα 100.000 καρτών H100, χρειάζονται μόνο 2 ημέρες για να ολοκληρωθούν όλα τα πειράματα.

total_flops=5.421E+24 rental price: US$12.9M h100 node months required: 746.9595590938408 (sanity check) D=[128, 256, 512, 768, 1024, 1536, 2048, 2560, 3072, 4096, 6144, 8192, 12288, 16384] (sanity check) model sizes: ['0.00979B', '0.0227B', '0.058B', '0.106B', '0.166B', '0.325B', '0.534B', '0.794B', '1.1B', '1.87B', '4.02B', '6.97B', '15.3B', '26.8B'] (sanity check) M/6P: ['63.4%', '68.5%', '75.3%', '79.7%', '82.8%', '86.8%', '89.3%', '91.0%', '92.2%', '93.9%', '95.7%', '96.7%', '97.7%', '98.3%']

Ωστόσο, εάν δεν το μετρήσουμε από τα πρότυπα της προεκπαίδευσης LLM και θεωρήσουμε μόνο αυτή την εργασία του DeepMind ως ακαδημαϊκή έρευνα, αυτό το ποσό υπολογισμού φαίνεται αρκετά υπερβολικό.

Εάν το εργαστήριο έχει μόνο 10 H100, θα ήταν αδύνατο να διεξαχθεί έρευνα αυτού του μεγέθους.

Ένα μεγάλο εργαστήριο με 100 H100 μπορεί να είναι σε θέση να ολοκληρώσει όλα τα παραπάνω πειράματα σε λίγα χρόνια.

Βιβλιογραφικές αναφορές:

https://152334h.github.io/blog/scaling-exponents/

https://news.ycombinator.com/item?id=41107721

https://arxiv.org/abs/2407.05872