English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

konuk
1 / ?
derslere geri dön

Eğitimin İki Ucundaki İki Sorun [BLOCK_TYPE SECTION/STEP]

Erken Adım Sorunu: Taze Ağırlıklar Büyük Adımlar Atamaz
[BLOCK_TYPE SECTION/STEP]

Adım 0'da her ağırlık, sıfıra yakın bir dağılımdan örneklenen küçük rastgele bir sayı olarak başlar. Aktivasyonlar sıfıra yakın kalır. Gradyanlar, nihai bir çözüm hakkında neredeyse hiçbir bilgi taşımaz. Bu gradyanlara tepe öğrenme oranı uygularsanız model, anlamlı bir yapı içermeyen yönlerde başlangıç noktasından uzaklaşır. [BLOCK_TYPE SECTION/STEP]

[BLOCK_TYPE SECTION/STEP]

ANDREA-120M v1 bu hatayı yaptı. Isınma yoktu. Adım 1'de taze başlatılmış ağırlıklara lr = 0.0003 uygulandı. Sonuç: model birkaç yüz adım içinde kötü bir parametre havzasına düştü. Kayıp değerleri makul görünüyordu; adım 80K'ya gelindiğinde örnekler tekrar döngüleri üretmeye başladı ve bir daha toparlanamadı.


Geç Adım Problemi: Büyük Adımlar Çözümü Parlatamaz

100K. adıma gelindiğinde model kaba yapıyı öğrenmiştir. Gradyanlar artık ince taneli sinyal taşır: hangi token ağırlığının küçük bir düzeltmeye ihtiyacı olduğu, hangi dikkat başlığının hafifçe yeniden dengelenmesi gerektiği. Bu aşamada zirve öğrenme oranını uygulamak her ince ayarlamayı aşırır, optimum etrafında salınım yapar ve yerleşmeyi engeller.


Eğitimin iki ucunda iki problem. Tek bir çizelge, iki bölge: yavaşça yükseliş, düzgünce iniş.

Doğrusal Isınma: İlk 2000 Adım

Formül

ANDREA-120M v2, 2000 adım boyunca doğrusal ısınma kullanır:


lr(t) = lr_scheduled(t) * min(1, (t + 1) / warmup_steps)


burada t adım numarasıdır (0-indeksli), warmup_steps = 2000, ve lr_scheduled(t) ısınma dikkate alınmadan kosinüs çizelgesinin öngöreceği değerdir.


Formülü okuma:


- t = 0 olduğunda: lr = lr_scheduled(0) min(1, 1/2000) = lr_scheduled(0) 0.0005. İlk adım çok küçüktür.

- t = 1000 anında: lr = lr_scheduled(1000) min(1, 1001/2000) = lr_scheduled(1000) 0.5. Yarım güç.

- t = 2000 anında: lr = lr_scheduled(2000) min(1, 2001/2000) = lr_scheduled(2000) 1.0. Tam güç.

- t > 2000 olduğunda: clamp çarpanı 1'de sabitler, warmup artık hiçbir şeyi etkilemez, kosinüs azalma tek başına devralır.


Sıfırdan doğrusal ramp, modele 2000 adım boyunca kaba temsiller oluşturması için zaman tanır; bu süre sonunda AdamW ve gradyan kırpma tam güçte güncellemeleri görmeye başlar. 2000. adıma gelindiğinde ağırlıklar yeterince kaymıştır, bu yüzden tepe lr artık onları kötü bir havzaya itmez.

Warmup Sırasında LR Hesaplama

ANDREA-120M v2, `lr_scheduled = 0.0003` (tepe) ve `warmup_steps = 2000` kullanır. Warmup sırasında kosinüs azalmayı göz ardı edin (`lr_scheduled` sabit kalır varsayımıyla). Şu adımlardaki gerçek öğrenme oranını hesaplayın: (a) adım 0, (b) adım 500, (c) adım 2000, (d) adım 5000. Aritmetiğinizi gösterin.

Warmup Sonrası Kosinüs Azalma

Eğri

Warmup adım 2000'de bittikten sonra öğrenme oranı, kalan adımlar boyunca zirveden sıfıra doğru bir kosinüs eğrisi izler:


lr(t) = lr_min + (lr_peak - lr_min) 0.5 (1 + cos(pi * progress))


where progress = (t - warmup_steps) / (total_steps - warmup_steps). At progress = 0 (just past warmup), cos(0) = 1, lr = peak. At progress = 1 (final step), cos(pi) = -1, lr = lr_min (typically 0 or a tiny floor).


Neden Kosinüs, Doğrusal veya Üstel Değil?

Kosinüs decay başlangıçta yavaş (eğri tepe noktasına yakın neredeyse düz), ortada hızlanır, sonra sıfıra yakınken tekrar yavaşlar. Üç fayda:


1. Tepe noktasına yakın plato. Warmup sonrası erken adımlar hâlâ neredeyse tam lr alır, modelin temsilleri oluşturmak için uzun bir yüksek öğrenme oranı döneminden yararlanmasını sağlar.

2. Orta kısımda yumuşak geçiş. AdamW’nin absorbe etmesi gereken ani sıçramalar yok.

3. Sıfıra yakın plato. Son adımlarda ince ayar için çok küçük lr kullanılır, benzer şekilde simüle edilmiş tavlama gibi.


ANDREA-120M toplam 200K adım boyunca eğitilir; bunların 198K'sı, 2000 adımlık warmup sonrası kosinüs bozunma bölgesindedir.


LR Warmup & Cosine Decay

ANDREA-12M'nin 25K Adımda Sıcak Yeniden Başlatma

Plato

ANDREA-12M, lr = 0.0004 tepe değeriyle kosinüs bozunma kullanarak 60K adım eğitildi. Yaklaşık 22K adımda kayıp, EMA ~2.4 seviyesinde plato yaptı. Kosinüs bozunma lr'yi ~0.00015'e düşürmüştü. Bandit çeşitli verileri beslemeye devam etti; model iyileşmeyi durdurdu.


Tanı: lr mevcut havzadan kaçamayacak kadar fazla düşmüştü. Hermes verileri müfredata girmek üzereydi (adım 25K), bu da 590K yeni konuşma getiriyordu. Modelin bu veri şokunu absorbe etmesi için enerjiye ihtiyacı vardı.


Yeniden Başlatma

Adım 25K’da zamanlama bir sıcak yeniden başlatma yürüttü: lr değerini 0.00015 (düşmüş) seviyesinden tekrar 0.0004 (orijinal tepe) seviyesine yükseltti, ardından kalan adımlar boyunca kosinüs bozunmasını sürdürdü.


Loshchilov & Hutter (2017) bu tekniği “SGDR” (stochastic gradient descent with warm restarts) olarak adlandırdı. Sezgi: yüksek lr yerel bir havzadan kaçmak ve komşu havzaları keşfetmek için yeterli kinetik enerji sağlar; ardından gelen kosinüs bozunması daha iyi bir havzaya yeniden tavlanmayı sağlar.


Sonuç. Yeniden başlatmadan sonraki 10K adımda Loss EMA değeri 2.40'tan 2.10'a düştü. Model, adım 43.6K'da SMMA loss 2.0 ile yayınlandı ve tutarlı Q&A dönüş yapısını gösterdi.


ANDREA-120M v2, warm restart kullanmamayı tercih etti: 200K adım mevcutken ve parametre sayısı çok daha büyükken, düzgün monoton azalma daha istikrarlı yakınsama sağladı. Yeniden başlatma, eğitim kısa olduğunda ve plato bilinen bir veri kaymasıyla çakıştığında en iyi sonucu verir.

v1'in Başarısızlığını Teşhis Etme

ANDREA-120M v1, adım 1'den itibaren `lr = 0.0003` kullandı, warmup yoktu. Adım 80K'da örnekler `region region region region` üretti. Mekanistik olarak nedenini açıklayın: adım 1'den 100'e kadar taze başlatılmış bir ağırlık matrisine `lr = 0.0003` ile ne olduğunu ve 2000 adımlık bir warmup ile ne olduğunu adım adım inceleyin. Neden warmup olmayan yol kötü bir havzaya düşüyor?

Uygulamada Çizelge Seçimleri

Eğer gürültülü bir veri kümesi üzerinde 120M modelini TOPLAM SADECE 50K adım için eğitiyor olsaydınız, ANDREA-120M v2'nin 2000 adımından daha uzun mu yoksa daha kısa bir warmup mu kullanırdınız? Tek bir mekanistik argümanla gerekçelendirin.

Bitişik Etkinlikler

Üç kardeş LR çizelgesine bağlanır:


- Etkinlik 10: AdamW. Warmup, AdamW'nin bias düzeltme süresinin stabilize olmasına olanak tanır. Warmup olmadan, adım 1'deki 10x amplifikasyon, gradyanların taşıdığı gürültüyü çoğaltır; warmup ile çarpan gerçek sinyale ulaşır.

- Etkinlik 12: Gradyan kırpma. Kırpma, gradyan L2 normunu AdamW'den ÖNCE 1.0'da sınırlar. Warmup lr'yi; kırpma g'yi sönümler. Birlikte, erken adımları şok eğilimli müfredatlarda bile güvenli tutarlar.

- Etkinlik 22: Kontrol noktası oluşturma. Sıcak yeniden başlatma, kontrol noktasından optimizer durumunu (m, v, adım sayacı) yüklemeyi, ardından çalışma sırasında programı değiştirmeyi gerektirir. ANDREA-12M'nin adım 25K'daki yeniden başlatması bunu gösterir; durum yükleme mantığını doğru yapmak iki deneme aldı.


Zamanlama, optimizer ve kırpma bir kararlılık üçgeni oluşturur. Bir köşeyi düşürün, ANDREA'nın v1 çöküşünü izleyin.