ჩვეულებრივი SGD ვერ უნარს ANDREA-ს სწავლება
სტოქასტიკური გრადიენტის ჩამხდარი, საწყისი წერტილი
Backprop ითვლის გრადიენტს g-ს ყოველი პარამეტრისთვის. ჩვეულებრივი სტოქასტიკური გრადიენტის ჩამხდარი (SGD) განაახლებს ყოველ პარამეტრს p -= lr * g-ით. ერთი სწავლის სიჩქარე, ერთი მიმართულება ყოველ ნაბიჯზე, წარსული გრადიენტების მეხსიერება არაა.
ჩვეულებრივი SGD ჩაიშალა მასშტაბზე ორი მიზეზის გამო:
1. გრადიენტები ძალიან განსხვავებული მაღლობისაა პარამეტრების გასწვრივ. იშვიათი ტოკენის ემბედინგი იღებს მცირე გრადიენტს უმეტეს ნაბიჯებზე; layernorm-ის სკალა იღებს დიდს. ერთი სწავლის სიჩქარე ვერ შეძლებს ორივეს შეხვედრას.
2. გრადიენტები რყევადია. ხმაურიანი მინი-ბატჩი 16-წყაროს კორპუსიდან უბიძგებს პარამეტრს მარცხნივ, შემდეგ მარჯვნივ, შემდეგ კვლავ მარცხნივ. ჩვეულებრივი SGD ხარჯავს ნაბიჯებს თავისთან ბრძოლაში.
Adam (Kingma & Ba, 2015) ორივეს ასწორებს ორი გლუვი საშუალოთი თითოეული პარამეტრისთვის.
პირველი მომენტი & მეორე მომენტი
m: გლუვი მიმართულება
პირველი მომენტი m ექსპონენციალურად საშუალოებს ბოლო გრადიენტებს:
m = beta1 m + (1 - beta1) g
beta1 = 0.9-ით. რამდენიმე ნაბიჯის შემდეგ, m შეიცავს შეცდომისგან გაწმენდილ მიმართულებას; ერთი ცუდი ბატჩი ნაკლებად იცვლის მას.
v: შეცდომისგან გაწმენდილი მაგნიტუდა
მეორე მომენტი v საშუალოა უახლეს კვადრატულ გრადიენტებს:
v = beta2 v + (1 - beta2) g^2
beta2 = 0.999-ით. v თვალ-ყური ადევნებს იმას, თუ რამდენად დიდია ჩვეულებრივ თითოეული პარამეტრის გრადიენტი. დიდგრადიენტიანი პარამეტრები იღებენ დიდ v-ს; მცირეგრადიენტიანი პარამეტრები იღებენ მცირე v-ს.
პარამეტრზე-პარამეტრ ადაპტური სწავლის სიჩქარე
გლუვდებული მიმართულების გაყოფა გლუვდებული სიმძლავრის კვადრატულ ფესვზე ყველა პარამეტრს მსგავს საფუძველზე აყენებს:
adam_step = m / sqrt(v + eps)
მცირე გრადიენტის ემბედინგები მასშტაბირდება ზევით; დიდი გრადიენტის layernorm-ები მასშტაბირდება ქვემოთ. ერთი გლობალური lr ახლა შეესაბამება ყველა პარამეტრს.
მომენტების წაკითხვა
რატომ საჭიროა ბიასის კორექცია ადრეულ ნაბიჯებზე
Cold-Start Bias
m და v იწყება ნულიდან. პირველი ნაბიჯის შემდეგ, m = 0.1 g_1 და v = 0.001 g_1^2. ორივე შეფასება მნიშვნელოვნად ჩამორჩება გრძელვადიან საშუალოს. კორექციის გარეშე, ოპტიმიზატორი იწყებს შეშინებულად და ნელა იზრდება, რაც ფლანგავს ძვირფას ადრეულ ნაბიჯებს, როდესაც ფორმირდება წარმოდგენები.
კორექცია
Adam ყოველ შეფასებას მასშტაბირებს 1 / (1 - beta^t)-ით, სადაც t არის ნაბიჯის ნომერი:
m_hat = m / (1 - beta1^t)
v_hat = v / (1 - beta2^t)
1-ლი ნაბიჯზე beta1 = 0.9-ით, გამყოფი (1 - 0.9) = 0.1, ამიტომ m_hat = m / 0.1 = 10 * m. კორექციით შეწორებული შეფასება შეესაბამება იმას, რასაც გრძელვადიანი საშუალო პროგნოზირებდა. როგორც t იზრდება, beta^t უახლოვდება 0-ს, კორექცია უახლოვდება 1-ს, & შეწორებული & შეუწორებელი მნიშვნელობები ცნობიერებენ.
განცალკევებული წონის დეკაი (AdamW ინოვაცია)
L2 რეგულარიზაცია წონის დეკაის წინააღმდეგ
კლასიკური L2 რეგულარიზაცია უმატებს ჯარიმას ზარალს: L_total = L_data + (lambda / 2) sum(p^2). უკუაწარმოდგენა ხედავს ამ ჯარიმას გრადიენტის ნაწილად: g_total = g_data + lambda p. L2 ტერმი გადის Adam-ის m & v განახლებებში, გლუვდება & გადამასკლირდება პარამეტრების მიხედვით მაგნიტუდებით.
ლოშჩილოვი და ჰუთერი (2019) დაამტკიცეს, რომ რეგულარიზატორის გლუვდება Adam-ის მეშვეობით ორივეს არღვევს. Adam-ის ადაპტური მასშტაბირება წონის დეკაის შემცირებას უწევს დიდგრადიენტულ პარამეტრებზე (სადაც დეკაი უნდა იბრძოლოს ოვერფიტინგის წინააღმდეგ ყველაზე მძლავრად) და აძლიერებს მცირეგრადიენტულებზე.
AdamW: გამოიყენე დეკაი პირდაპირ
AdamW წონის დეკაის გამოყოფს გრადიენტისგან. დეკაი პირდაპირ ეხება თითოეულ პარამეტრს პარამეტრის განახლების დროს, არასდროს ეხება m-ს ან v-ს:
p -= lr (m_hat / (sqrt(v_hat) + eps) + weight_decay p)
ახლა ორი ტერმი მართავს თითოეულ ნაბიჯს:
1. Adam-ის ტერმი: m_hat / (sqrt(v_hat) + eps) გადასკალირებს გრადიენტის მიმართულებას თითოეული პარამეტრის მაგნიტუდის ისტორიის მიხედვით.
2. შეკუმშვის ტერმი: weight_decay * p ამცირებს ყველა პარამეტრს ნულისკენ, ერთგვაროვნად, Adam-ის გლუვების გავლის გარეშე.
ANDREA-120M v2 აყენებს weight_decay = 0.01. ყოველ ნაბიჯზე, ყოველი პარამეტრი მცირდება 1%-ით ნულისკენ, გარდა იმისა, რასაც Adam-ის ტერმი აკეთებს.
რატომ არის მნიშვნელოვანი განცალკევება
ემპირიული მტკიცებულება
v1 კოლაფსი (weight decay 없이)
ANDREA-120M v1 165K ნაბიჯზე გაწვრთნილი vanilla Adam-ით. ნიმუში გამომავალი:
- ნაბიჯი 80K: region region region region region region region
- ნაბიჯი 110K: ''''' ''''' '' ''' '' ''' '''?' ''' ' '' '' '
- ნაბიჯი 140K: games, games, games, games, games, games, games
- ნაბიჯი 165K: Budy Budy Budy Budy Budy Budy Budy Budy Budy
შეცდომის რიცხვები შენარჩუნებული იყო მისაღები (EMA მინიმუმი 3.23 ნაბიჯზე 110K, შედარებით შემთხვევითი შანსის 9.04). შეცდომა მარტო მალავს გამეორების კოლაფსს: მოდელი, რომელიც ერთი ტოკენის მარადიულად მემორიზებას ახერხებს, მიაღწევს დაბალ კროს-ენტროპიას ყველა ნაბიჯზე, როდესაც ეს ტოკენი გამოჩნდება.
v2 სტაბილურობა (weight_decay = 0.01)
v2-ში დაემატა AdamW (პლუს გრადიენტის მოჭრა, LR warmup, შეწირულების მონიტორინგი). ნაბიჯზე ~112K, გენერირებული შეწირულები:
- Carolina parakeet ოფიციალურად გამოცხადდა გაქრობილად 1939 წელს (ფაქტობრივად სწორი)
- ფურიეს გარდაქმნა სიგნალებს და分解ებს სიხშირის კომპონენტებად (სკოლის მაგალითი)
- Rain's rhythmic refrain, Rivulets on the window, Respite from life's pain (ჰაიკუს შეზღუდვა დაკმაყოფილებულია)
გარე შეფასებამ v2 შეწირულებს 9.5/10 მისცა, უწოდა მათ "მშვენიერი თანმიმდევრულობა და ცოდნის შენარჩუნება ამ მასშტაბზე."
12M მოდელი გადარჩა AdamW-ის გარეშე. რატომ?
ANDREA-12M ჩაივარჯიშა ჩვეულებრივი Adam-ით კოლაფსის გარეშე. 12M პარამეტრებზე, წონის მატრიცები საკმარისად მცირე რჩება იმისთვის, რომ Adam-ის ადაპტური სკალირება ვერ გაიტარებს ინდივიდუალურ წონებს იმ გარბენულ მაგნიტუდებში, რომლებიც იწვევს გამეორებას. 120M სკალაზე, წონის მაგნიტუდები უფრო შორს მიედინება ყოველ ნაბიჯზე და გროვდება; უნიფორმული დეკეი უწევს მუდმივ აღდგენით ძალას ნულისკენ. განცალკევებული წონის დეკეი უფრო მნიშვნელოვანი ხდება მოდელის სკალირებისას.
`weight_decay = 0.01`-ის შერჩევა
მიმდებარე აქტივობები
AdamW ურთიერთქმედებს სამი სიმოგების აქტივობასთან ამ კურსში:
- აქტივობა 11: LR warmup + cosine decay. AdamW მარტო ვერ დაიცავს მოდელს მყისიერი პიკის სწავლის ტემპისგან ახალად ინიციალიზებულ წონებზე. Warmup ზრდის lr-ს 2000 ნაბიჯზე, რათა AdamW-ის მიკერძოების კორექცია და წონის დეკრიმენტირება მიიღონ დრო წარმოდგენების სტაბილიზაციისთვის.
- აქტივობა 12: გრადიენტის კლიპინგი. AdamW ვარაუდობს, რომ გრადიენტებს შეზღუდული მაგნიტუდა აქვთ. წყაროს ტრანზიციები ყოველ 7-დან 42 ნაბიჯამდე ANDREA-ს ბანდიტში იწვევს პერიოდულ გრადიენტის პიკებს; კლიპინგი ზღვარს უყოფს მათ L2 ნორმა 1.0-ზე მანამდე, ვიდრე AdamW შეხებდეს m-ს, v-ს ან p-ს.
- აქტივობა 13: FP32 / FP16 / FP8 სიზუსტე. AdamW ინახავს m-ს და v-ს თითოეული პარამეტრისთვის, რაც ორჯერ ზრდის მეხსიერების მოცულობას მხოლოდ წონებთან შედარებით. FP16 ნახევარს ამცირებს ამ მოცულობას; FP8 კიდევ ერთხელ ამცირებს. სიზუსტის არჩევანი ურთიერთქმედებს ოპტიმიზატორის სტაბილურობასთან.
AdamW, warmup, clipping და precision ჩამოყალიბდება ოთხცხვიანი კლავერის ფორმაში. ჩამოგდებული ერთი ფოთოლი ANDREA-ს ჩამონგრევს.