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

Düz SGD ANDREA'yı Eğitemez

Stokastik Gradyent İnişi, Başlangıç Noktası

Backprop, her parametre için bir gradyent g hesaplar. Düz stokastik gradyent inişi (SGD), her parametreyi p -= lr * g ile günceller. Bir öğrenme oranı, adım başına bir yön, geçmiş gradyentlerin hafızası yok.


Düz SGD, ölçekte iki nedenle bozulur:


1. Gradyanlar parametreler arasında çok farklı büyüklüklere sahiptir. Nadir bir token için gömme çoğu adımda küçük bir gradyan alır; bir layernorm ölçeği büyük bir tane alır. Tek bir öğrenme oranı her ikisine de uymaz.

2. Gradyanlar salınır. 16 kaynaklı bir korpustan gürültülü bir mini-batch bir parametreyi sola, sonra sağa, sonra tekrar sola iter. Düz SGD kendini yenmek için adımları boşa harcar.


Adam (Kingma & Ba, 2015) her parametre için iki hareketli ortalama ile her ikisini de düzeltir.

Birinci Moment & İkinci Moment

m: Yumuşatılmış Yön

Birinci moment m son gradyanları üstel olarak ortalar:


m = beta1 m + (1 - beta1) g


beta1 = 0.9 ile. Birkaç adımdan sonra, m yumuşatılmış bir yön taşır; bir kötü batch onu zar zor kaydırır.


v: Yumuşatılmış Büyüklük

İkinci moment v son kare alınmış gradyanların ortalamasını alır:


v = beta2 v + (1 - beta2) g^2


beta2 = 0.999 ile. v, her parametrenin gradyanının tipik olarak ne kadar büyük olduğunu izler. Büyük gradyanlı parametreler büyük bir v alır; küçük gradyanlı parametreler küçük bir v alır.


Parametre Başına Uyarlanabilir Öğrenme Oranı

Yumuşatılmış yönü, yumuşatılmış büyüklüğün kareköküne bölmek her parametreyi karşılaştırılabilir bir temele getirir:


adam_step = m / sqrt(v + eps)


Küçük gradyanlı gömme vektörleri büyütülür; büyük gradyanlı layer normlar küçültülür. Artık tek bir global lr her parametre için uygundur.

Momentleri Okuma

Bu adımda iki parametre aynı gradyan `g = 0.1` alır. Parametre A birçok adımda `v = 0.0001` biriktirmiştir; parametre B `v = 1.0` biriktirmiştir. `adam_step = g / sqrt(v + eps)` kullanarak, bu adımda hangi parametre daha büyük güncelleme alır ve Adam neden bunu böyle ister?

Erken Adımların Neden Önyargı Düzeltmesine İhtiyacı Var

Soğuk Başlangıç Önyargısı

m & v sıfırdan başlar. 1. adımdan sonra, m = 0.1 g_1 & v = 0.001 g_1^2. Her iki tahmin de uzun vadeli ortalamayı dramatik bir şekilde düşük tahmin eder. Düzeltme olmadan, optimize edici temkinli başlar ve temsillerin oluştuğu değerli erken adımları yavaşça artırarak boşa harcar.


Düzeltme

Adam her tahmini 1 / (1 - beta^t) ile ölçekler, burada t adım numarasıdır:


m_hat = m / (1 - beta1^t)


v_hat = v / (1 - beta2^t)


1. adımda beta1 = 0.9 ile, bölen (1 - 0.9) = 0.1 olur, bu yüzden m_hat = m / 0.1 = 10 * m. Bias-düzeltilmiş tahmin, uzun vadeli ortalamanın öngördüğüyle eşleşir. t büyüdükçe, beta^t 0'a yaklaşır, düzeltme 1'e yaklaşır ve düzeltilmiş & düzeltilmemiş değerler yakınsar.

Ayrılmış Ağırlık Azaltımı (AdamW Yeniliği)

L2 Düzenlileştirme vs Ağırlık Azaltımı

Klasik L2 düzenlileştirme, kayba bir ceza ekler: L_total = L_data + (lambda / 2) sum(p^2). Geri yayılım bu cezayı gradyanın bir parçası olarak görür: g_total = g_data + lambda p. L2 terimi Adam'ın m & v güncellemelerinden geçer, parametre başına büyüklüklerle yumuşatılır ve yeniden ölçeklenir.


Loshchilov & Hutter (2019), bir regularizer'ı Adam üzerinden yumuşatmanın her ikisini de bozduğunu kanıtladı. Adam'ın uyarlanabilir ölçeklendirmesi, büyük gradyanlı parametrelerde ağırlık çürümesini küçültür (çürümenin aşırı öğrenmeyi en sert şekilde mücadele etmesi gereken yerde) ve küçük gradyanlı olanlarda büyütür.


AdamW: Çürümeyi Doğrudan Uygula

AdamW, ağırlık çürümesini gradyandan ayırır. Çürüme, parametre güncellemesi sırasında her parametreye doğrudan uygulanır, asla m veya v'ye dokunmaz:


p -= lr (m_hat / (sqrt(v_hat) + eps) + weight_decay p)


Artık her adımı iki terim yönlendirir:


1. Adam terimi: m_hat / (sqrt(v_hat) + eps) gradyan yönünü parametre başına büyüklük geçmişine göre yeniden ölçekler.

2. Çürüme terimi: weight_decay * p her parametreyi sıfıra doğru, Adam'ın yumuşatmasından geçmeden, düzgün bir şekilde küçültür.


ANDREA-120M v2 weight_decay = 0.01 olarak ayarlar. Her adımda, her parametre Adam teriminin yaptığı her ne olursa olsun, sıfıra doğru %1 küçülür.


AdamW Optimizer Step

Neden Ayrık Olması Önemli

ANDREA-120M v1 vanilla Adam (ağırlık çürümesi yok) kullandı ve 110K adımda tekrar döngülerine çöktü. v2 AdamW ile `weight_decay = 0.01` kullandı ve tutarlı çok paragraflı metin üretti. Açıklayın (a) vanilla Adam'da olmayan AdamW'ye özgü eklenen belirli terim nedir, & (b) bu terimi Gradyan İÇİNE (klasik L2) koymak neden AdamW'nin decoupled (dışarıda) yerleştirmesinden daha kötü olur.

Deneysel Kanıt

v1 Çöküşü (ağırlık çürümesi yok)

ANDREA-120M v1 vanilla Adam ile 165K adım eğitildi. Örnek çıktılar:


- Adım 80K: region region region region region region region

- Adım 110K: ''''' ''''' '' ''' '' ''' '''?' ''' ' '' '' '

- Adım 140K: games, games, games, games, games, games, games

- Adım 165K: Budy Budy Budy Budy Budy Budy Budy Budy Budy


Kayıp sayıları makul kaldı (EMA minimum 3.23 adım 110K'da, rastgele-şans 9.04'e karşı). Kayıp tek başına tekrar çöküşünü gizler: sonsuza dek bir token ezberleyen bir model, o token'ın göründüğü her adımda düşük çapraz-entropi elde eder.


v2 Kararlılığı (weight_decay = 0.01)

v2, AdamW ekledi (artı gradient clipping, LR warmup, sample monitoring). ~112K. adımda üretilen örnekler:


- Carolina parakeet 1939'da nesli tükenmiş olarak ilan edildi (gerçeklere uygun)

- Fourier dönüşümü sinyalleri frekans bileşenlerine ayırır (ders kitabı tanımı)

- Yağmurun ritmik nakaratı, Pencerede sızıntılar, Hayatın acısından soluklama (haiku kısıtı sağlandı)


Dış değerlendirme v2 örneklerini 9.5/10 olarak derecelendirdi, "bu ölçekte etkileyici tutarlılık ve bilgi koruma" dedi.


AdamW Olmadan 12M Hayatta Kaldı. Neden?

ANDREA-12M, çökme olmadan vanilla Adam ile eğitildi. 12M parametrede, ağırlık matrisleri yeterince küçük kalır ki Adam'ın uyarlanabilir ölçeklendirmesi bireysel ağırlıkları tekrarı süren kaçak büyüklüklere itemez. 120M ölçeğinde, ağırlık büyüklükleri adım başına daha fazla sürüklenir ve birikir; uniform decay sıfıra doğru sabit bir düzeltme kuvveti uygular. Ağırlık ölçeği büyüdükçe decoupled weight decay daha önemli hale gelir.

weight_decay = 0.01 Seçmek

Neden `weight_decay = 0.01` 120M-parametreli bir model için işe yarayabilir ama 100 kat büyük bir değer (`weight_decay = 1.0`) eğitimi yok edebilir? Güncelleme kuralı `p -= lr * (adam_term + weight_decay * p)` hakkında akıl yürütün. Temsili bir `p` seçin, tek bir adım için `weight_decay = 1.0` koyun ve birkaç adım sonra `p`'nin ne olduğuna tarif edin.

Komşu Etkinlikler

AdamW, bu dersteki üç kardeş etkinlik ile kilitlenir:


- Etkinlik 11: LR ısınma + kosinüs azalma. AdamW tek başına, yeni başlatılmış ağırlıklarda anlık tepe öğrenme hızından modeli kurtaramaz. Isınma, lr'yi 2000 adımda artırır böylece AdamW'nin önyargı düzeltmesi ve ağırlık çürümesi temsilleri stabilize etmek için zamana sahip olur.

- Etkinlik 12: Gradyan kırpma. AdamW, gradyanların sınırlı büyüklüğe sahip olduğunu varsayar. ANDREA'nın banditindeki kaynak geçişleri her 7 ila 42 adımda nadir gradyan sıçramalarına neden olur; kırpma bunları AdamW'nin m, v veya p'ye dokunmasından ÖNCE L2 normu 1.0 ile sınırlar.

- Etkinlik 13: FP32 / FP16 / FP8 hassasiyeti. AdamW, her parametre için m ve v'yi depolar, ağırlıkların bellek ayak izini iki katına çıkarır. FP16 bu ayak izini yarıya indirir; FP8 onu tekrar indirir. Hassasiyet seçimleri optimizatör kararlılığı ile etkileşime girer.


AdamW, warmup, clipping ve precision dört yapraklı yonca oluşturur. Bir yaprağı düşürün, ANDREA'nın çöküşünü izleyin.

Optimizer Yansıtması

Bir ANDREA-120M v1 örneğini seçin (örneğin, `region region region region`) ve AdamW'nin her adımdan itibaren (adım 0'dan başlayarak) uygulanan `weight_decay * p` teriminin o belirli başarısızlık modunu nasıl önleyeceğini tarif edin. Bir paragraf.