Ana Sayfa Etiketler Hakkında |

Eric Jang'in AlphaGo'yu Yeniden Kurmasını İzledim, Siz İzlemek Zorunda Kalmayın

Yayınlanma tarihi 2026-05-25
18 dk okuma3,471 kelime 7 gün içinde güncellendi Lisans CC BY-NC-SA 4.0 artificial intelligencecomputer sciencewritingpersonal

Nisan ayında Eric Jang, AlphaGo Zero'yu sıfırdan yeniden kurmak için iki hafta harcadı ve sonucu autogo adıyla, uzun ve etkileşimli bir yazıyla birlikte internete koydu. Geçen hafta da Dwarkesh Patel ile öğrendikleri üzerine iki buçuk saatlik bir kara tahta dersine oturdu. Sohbeti bir arada tutan ana soru şu: Baskın paradigmanın policy-gradient RL ile eğitilmiş büyük dil modellerine kaydığı bir dünyada AlphaGo tarifi bize hala ne öğretebilir?

Bu yazı, konuşmadaki on kavramsal bloğu, anlatıldıkları sırayla ele alıyor. Kayıttan sonra Eric'in errata olarak yayımladığı önemli bir düzeltmeyi de dahil ediyorum. Amaç, AlphaGo'nun eğitim döngüsünü bu kadar zarif yapan şeyi, neden kimsenin bunu LLM'lere temiz biçimde taşıyamadığını ve AlphaGo açısından bakınca bugünkü RL'in sınırlarının nasıl göründüğünü anlamak.

Başlığın ima ettiğinin aksine, bu tür işlerle ilgileniyorsanız podcast bölümünü izlemenizi öneririm.


1. Kaba kuvvet arama Go'da neden ölür?

Go, Tromp-Taylor puanlaması altında alan hesabıyla karara bağlanır. Bilgisayar bilimcilerin kullandığı kural seti genelde budur, çünkü oyunun ne zaman bittiği konusunda belirsizlik bırakmaz. Bu kulağa olduğundan daha önemli geliyor: AI için terminal state'lerde temiz bir reward sinyali vardır. İnsan profesyonel oyununda bu yoktur, çünkü insanlar istifa eder.

19×19 bir tahtada açılışta en fazla 361 legal hamle vardır. Taşlar hareket etmediği için branching factor her ply'da bir azalır. Tromp-Taylor altında oyunlar yaklaşık 300 ply sürer. Bu yüzden naif oyun ağacının yaklaşık yaprağı vardır; bu, gözlemlenebilir evrendeki atom sayısından daha fazla state demektir.

Naif Go ağaç patlaması

Sıfırdan başlayan herhangi bir Go programının içine düştüğü durum bu. Sayıp bitiremezsiniz. Hangi dalların araştırmaya değer olduğuna karar vermeniz gerekir. Eric, AlphaGo'nun kırılma noktasını birbirine bağlı iki soruya uygulanabilir bir cevap olarak çerçeveliyor: Ağacın genişliğini nasıl budarsınız, yani hangi hamleleri düşünmeye değer görürsünüz? Ve ağacın derinliğini nasıl budarsınız, yani ne zaman simülasyonu durdurup ortaya çıkan pozisyonun değerini tahmin edersiniz?

AlphaGo'dan önce klasik Monte Carlo Tree Search bu ilk soruyu UCB1 (Upper Confidence Bound 1) ile ele alıyordu. Bu, şu ifadeyi maksimize eden child node'u seçen bir multi-armed-bandit sezgiseli:

Veri yapılarını anlamak için netleştirmem gereken birkaç tanım:

  • root node: tahtanın mevcut state'i.
  • children: root'tan bir legal hamleyle ulaşılabilen state'ler.
  • : bu edge üzerinden ulaşılan leaf'lerin ortalama değeri.
  • : state'inde action'ını alma olasılığı. Bu ancak policy network geldiğinde devreye girer.

İlk terim exploit terimidir; bu edge üzerinden ulaşılan leaf değerlerinin online running mean'idir. İkinci terim explore bonus'udur; parent'ın visit count'u ile büyür, bu child'ın visit count'u ile küçülür. UCB1'in regret bound'ları vardır ve simülasyonları dallar arasında paylaştırmak için ilkeli bir yol verir.

Sorun şu: UCB1'in hangi child'ların a priori ziyaret etmeye değer olduğuna dair hiçbir fikri yoktur. 361 aday hamle varken, erken aşamada aptal hamleleri de umut veren hamleleri de aynı şekilde örnekleyerek devasa sayıda simülasyon harcarsınız. Eric'in buradaki çerçevesi keskin: klasik MCTS her action'ı geniş bir bandit üzerinde uniform prior gibi ele alır. 10 kollu bir bandit için bu fena değildir. 361 kollu ve 300 seviye derinliğinde iç içe geçmiş bir bandit için umutsuzdur.


2. PUCT ve prior neden oyunun tamamıdır?

AlphaGo'nun ilk büyük değişikliği, UCB1'i PUCT (Predictor + Upper Confidence applied to Trees) ile değiştirmektir:

PUCT formülü

Yeni terim , yani policy prior. Bu, üzerinde değerlendirilen neural network'ün action'ına verdiği olasılıktır ve node genişletildiği anda tree node'una tam bir kez yazılır. Formüldeki diğer her şey search-time istatistiği olarak kalır: leaf değerlerinin running mean'i, parent'ın visit count'u, ise bu edge'in visit count'u.

Yeni bir node'a ilk ziyarette olduğu için explore terimi olur. Yüksek prior'a sahip child'lar, yani yüksek alanlar, önce ziyaret edilir. Bir child'ı ziyaret etmeye devam ettikçe paydadaki lineer büyür, paydaki ise sadece karekök hızında büyür. Böylece explore terimi söner ve devralır. Prior, child'ların hangi sırayla deneneceğini belirler; visit count'lar ne zaman denemeyi bırakacağını belirler; search yeterince kanıt topladığı anda öne çıkar.

Sıfırdan eğitilen bir Go botunda prior, hangi hamlelerin bariz aptalca olmadığına dair search-time bilgisinin neredeyse tamamını taşır. Value head ise aramayı ne zaman durduracağınızı söyler. İyi bir prior olmadan MCTS yine 361 hamlenin tamamına yayılır ve search depth asla yönetilebilir hale gelmez. Bu bölüm genişliği çözüyor; derinliği ise network'ün ikinci çıktısı olan value head çözüyor.


3. İki başlı network

Eric'in söylediği gibi: insanlar tahtaya bakar ve oyun bitmeden 100 hamle önce kazanma olasılığını içgüdüsel olarak hesaplar. Bir neural network bu hesabı amortize edebilir; 100 hamlelik rollout yerine tek bir forward pass koyabilir. Value head'iniz olduğunda leaf'e kadar simüle etmek zorunda kalmazsınız. Terminal olmayan herhangi bir state'te durur ve value head'in tahminine güvenirsiniz.

AlphaGo'nun neural network'ü bir board state alır ve iki şey üretir:

  • Policy head, : iyi action'lar üzerinde olasılık dağılımı. Genişliği budar.
  • Value head, : bu state'ten kazanma olasılığı. Derinliği budar.

AlphaGo'nun iki başlı policy ve value network'ü

Doğal bir soru şu: policy head gerçekten gerekli mi? Eğer herhangi bir state'ten kazanma olasılığını söylüyorsa, neden her legal hamle ile oluşan sonraki state'leri tek tek çıkarıp, her biri için hesaplayıp, en yüksek değeri veren hamleyi oynamıyoruz? Derste iki sebep geçiyor. Birincisi, bu her hamle için network'ü 361 kere forward çalıştırmayı gerektirir; policy head'in tek forward pass'i ise tüm move olasılıklarını birden verir. İkincisi, value üzerinden argmax tek bir nokta tahminidir. Eğitimin asıl amacı MCTS'nin hesapladığı şeyi, yani tek bir argmax'tan fazlasını, policy network'e damıtmaktır. Tek bir forward pass bir search'ü kodlayamaz.

İkinci, daha mimari bir soru da şu: Alanın geri kalanı Transformer'lara geçmişken neden convolutional ResNet? Eric kendi ölçeğinde Transformer'ları denedi ve ResNet'leri geçemedi. Okuması şu: Go savaşları, yani capture'lar, ladder'lar, life-and-death problemleri yoğun biçimde lokaldir. Convolutional receptive field'lar "bu taşın yakınında ne olduğu en önemli şeydir" öncülünü kodlar ve faydalı bir lokal pattern tahta boyunca yeniden kullanılır. Daha büyük ölçeklerde Transformer'ların bu inductive bias'ı veriden öğrenebileceğini düşünüyor, ama kendi bütçesinde CNN prior kazandı.

Son olarak, network sadece mevcut tahtayı görür, geçmişi görmez. Go perfect-information bir oyundur ve yalnızca 'ye bağlı bir Nash equilibrium strategy vardır. Poker veya Diplomacy gibi hidden-information oyunlarında elinizin değeri rakiplerin önceki blöflerine ya da ittifaklarına bağlıdır ve zaman boyunca state taşıyan bir mimariye ihtiyacınız olur. Go için buna gerek yoktur.


4. Self-play ve neyin damıtıldığı

Network ve PUCT elinizde olduğunda eğitim döngüsü basittir. Her self-play oyunundaki her hamle için agent MCTS simülasyonu yapar. Eric 200 ile 2048 arasında sayılar kullandı; üst aralık KataGo ile aynı seviyede. Bir simülasyonun dört adımı şunlardır: expand edilmemiş bir leaf'e ulaşana kadar argmax PUCT ile tree'de bir path seç; leaf'i node olarak ekleyip genişlet; leaf üzerinde network'ü çalıştırarak ve alıp değerlendir; değeri root'a geri yürütüp visit count'ları artırarak ve her edge'de 'nun running mean'ini güncelleyerek back up yap.

Monte Carlo Tree Search'ün dört adımı

Belirli bir root'tan tüm simülasyonlar bittikten sonra agent bir hamle seçer. Eğitim sırasında root visit count'larına orantılı seçer, inference'ta argmax alır. O state için iki şeyi kaydeder: MCTS visit dağılımı ve hamle sırası kendisinde olan tarafa göre final oyun sonucu . Bu tuple'lar replay buffer'a gider.

Eğitim de buffer üzerinde supervised learning'den ibarettir:

Bu kadar. Advantage estimation yok, TD (Temporal Difference) learning yok, PPO (Proximal Policy Optimization) yok, off-policy importance weight yok. Sadece MCTS visit distribution'a karşı cross-entropy loss ve oyun sonucuna karşı MSE loss; ağırlıkları zevkinize göre ölçekleyebilirsiniz.

AlphaGo self-play eğitim döngüsü

Birçok turdan sonra policy network, gördüğü her state'te MCTS'nin hesaplayacağı şeyi içselleştirmiş olur. Network'ten geçen forward pass'ler tek başına search distribution'a giderek yaklaşır. Bu, bir sonraki MCTS turunun daha keskin bir prior ile başladığı anlamına gelir; search daha verimli olur; visit distribution daha da keskinleşir.

MCTS damıtması öncesi ve sonrası policy

Bunun naif winner-imitation'dan neden çok daha iyi olduğunu görebilirsiniz. MCTS ile damıtılmış policy, sadece kazanıp kazanmadığınızı öğrendiğiniz terminal pozisyonlarda değil, her state'te search'ten faydalanır. Aşağıdaki win-rate curve'leri kazancı gösteriyor: inference'ta tek bir forward pass ve hiç MCTS olmasa bile, MCTS hedefleriyle eğitilmiş bir network yalnızca oyun sonuçlarıyla eğitilmiş olandan çok daha güçlüdür. Inference'ta MCTS'yi tekrar üstüne koyduğunuzda bir artış daha alırsınız.

Policy ve MCTS agent'ları için win rate curve'leri

Kesikli çizgi, hiç MCTS kullanmayan ham policy network'tür. Mavi çizgi, üstüne MCTS eklenmiş aynı network'tür. Kırmızı çizgi, MCTS hedefleriyle damıtılmış ve inference'ta yeniden MCTS ile kullanılan network'tür. Sıfır MCTS simülasyonunda bile damıtılmış network çok daha güçlüdür. Distillation, search'ü forward pass'in içine paketlemiştir.

Eric ders boyunca AlphaGo'ya birkaç kez "zarif" diyor. Kastettiği şey bu. Her zaman supervision sinyalinin temiz ve yoğun olduğu bir rejimde çalışırsınız, çünkü MCTS ziyaret ettiğiniz her state'te size daha iyi bir label verir; sadece kazanca götüren az sayıdaki state'te değil. Podcast'in sonlarına doğru söylediği gibi: AlphaGo'da "non-zero success rate'e nasıl ulaşırım" şeklindeki exploration problemini çözmek zorunda kalmazsınız. Her adım güzel bir supervised signal üzerinde hill-climb'dır.


5. Naif REINFORCE neden plateau yapar?

AlphaGo/MCTS distillation'ın neden özel olduğunu görmek için ders, neyin çalışmadığına sapıyor. MCTS'yi tamamen atlayıp sadece naif policy-gradient self-play yaptığınızı varsayın: policy checkpoint'lerinden oluşan bir ligi birbirine karşı oynatın, bir tarafın kazandığı oyunları bulun ve o oyunlardaki action'ları reinforce edin.

Eric'in örneği şöyle: iki denk policy 300 hamlelik 100 oyun oynuyor. Şans eseri biri 51'e 49 kazanıyor. Bu 51 galibiyetin yalnızca birinin gerçekten daha iyi bir hamleden geldiğini, diğer 50'sinin istatistiksel gürültü olduğunu düşünün. Naif REINFORCE update'i kazanan her oyundaki her action'ı yukarı ağırlıklandırmak ister. Böylece yaklaşık 30.000 gürültülü label'ın içine gömülü tek faydalı gradient elde edersiniz.

Variance matematiği:

burada . covariance terimi, sequence length'te worst-case variance verir. Bu, LLM tartışmasında daha sonra ortaya çıkan "'de kuadratik" noktasıdır.

İşaret etmeye değer bir düzeltme. Podcast'te Eric kuadratik büyümeyi policy gradient'in multi-step formülasyonuna bağlıyor ve LLM lab'lerinin single-step RL'i bu yüzden tercih ettiğini söylüyor. Kayıttan sonra errata yayımladı: variance, gradient'i full sequence üzerinden de formüle etseniz per-token da formüle etseniz, sequence length ile kuadratik büyür. Hatta per-token reward'larınız varsa multi-step RL'in variance'ı single-step'ten daha düşüktür. LLM lab'lerinin single-step yapmasının gerçek sebebi, sadece sequence-level reward'lara sahip olmalarıdır: kod geçti mi, cevap yardımcı oldu mu? Bu yüzden per-token formülasyon size aynı şeyi verir. Çıkarım şu: uzun sequence'lerde credit assignment worst case'te kuadratik zordur; blowup'a sebep olan şey formülasyon seçimi değildir.

MCTS'nin farklı yaptığı şey, credit-assignment problemini tamamen kenardan dolaşmaktır. "Bu oyun kazanıldı, bu hamleleri kopyala" demek yerine MCTS şunu der: "Ziyaret ettiğin her state'te, oynadığından daha iyi bir hamle burada." Ziyaret edilen her state yoğun bir supervision target olur. Sinyali gürültüden kazıp çıkarmanız gerekmez.

Klasik RL variance düzeltmeleri, yani advantage estimation , TD learning ve Generalized Advantage Estimation, return'den ortalama performans tahminini çıkararak variance'ı azaltmaya çalışır. Gittikleri yere kadar doğrudurlar. Ama zaten gürültülü bir sinyalin variance'ını azaltırlar. MCTS sinyali tamamen daha yoğun bir sinyalle değiştirir.


Ziyaret edilen her state'e daha iyi bir action atamanın tek yolu MCTS değildir. Bir diğer seçenek de DeepMind'ın AlphaStar'ında ve OpenAI Five'da çok etkili kullanılan Neural Fictitious Self-Play (NFSP)'dir.

MCTS ve NFSP search yönleri

NFSP'de bir opponent sabitlenir ve ona karşı "best response" policy model-free RL ile eğitilir. PPO, V-MPO, Q-learning, hangisini isterseniz. Reward, kazanırsa 1, aksi halde 0'dır. Bunu farklı opponent'lara karşı tekrar edersiniz ve her best response'u ilgili state'ler için label sağlayıcı olarak kullanırsınız.

MCTS ve NFSP aynı şeyi üretir: replay buffer'daki her state için student policy'nin taklit edeceği iyileştirilmiş bir action . Fark, iyileştirilmiş action'ın nereden geldiğidir. MCTS simüle edilmiş geleceklerde ileri doğru rollout yapar ve hayal edilen leaf'leri score etmek için value function kullanır. NFSP terminal reward'a kadar gerçek rollout'lar yürütür, sonra win/lose sinyalini agent'ın gerçekten ziyaret ettiği state'ler üzerinden TD tarzı update'lerle geriye doğru yayar.

MCTS hayal edilen trajectory'ler üzerinde ileri doğru search yapar; NFSP gerçekleşmiş trajectory'ler üzerinde geriye doğru search yapar

Tarif şudur: buffer'ınızdaki her state'i search ile iyileştirilmiş bir action'la etiketleyin ve bunun üzerinde supervise edin. Go'da bunu yapmanın en ucuz yolu MCTS'dir, çünkü oyun fully observable'dır ve ileri doğru simüle edebilirsiniz. Imperfect-information oyunlarında NFSP aynı şeyi geriye doğru başarır.


7. MCTS neden LLM'lere aktarılmıyor?

DeepSeek-R1 paper'ı, LLM reasoning için MCTS'yi çalıştıramadıklarını raporladı. Eric'in teşhisi iki yapısal başarısızlık belirliyor:

Sınırsız genişlik. Go'da ply başına en fazla 361 legal hamle vardır. "Reasoning trace'te olası bir sonraki düşünce" uzayı ise fiilen sınırsızdır. PUCT'nin yapısı, aynı child'ı birkaç kez ziyaret edip değerini rafine edeceğinizi varsayar. Dil tarafında aynı continuation'ı neredeyse hiçbir zaman iki kez örneklemezsiniz. Visit-count mekaniği dağılır.

Derinlik sınırsızdır ve value head'i eğitmek zordur. Go'da , tam tanımlanmış bir pozisyondan tam tanımlanmış bir oyunu kazanma olasılığıdır. LLM reasoning'de yarım kalmış bir ispatın değeri nedir? Kısmen yazılmış bir fonksiyonun? Partial reasoning trajectory'leri üzerinde value head eğitmek kolay değildir, çünkü temiz bir termination condition ve temiz bir reward yoktur.

Bunlardan birini telafi edebilirsiniz. İkisini aynı anda telafi etmek çok daha zordur. İnsanlar çeşitli Tree-of-Thoughts varyantlarıyla bunu denedi. PUCT, Go'nun boyutuna ve derinliğine göre ayarlanmış bir sezgiseldir. Dilin kombinatoriğine zarif biçimde ölçeklenmez.

Bugünkü LLM'lerde çalışan şey, açık bir tree yapısı olmadan reasoning'e benzeyen bir şeydir: modeller bir yaklaşım dener, çalışmadığını fark eder, geri çekilir, başka bir yaklaşım dener. Bu açıkça inşa edilmekten çok eğitimden çıkmıştır. Eric, LLM reasoning'de forward search'ün geri dönme ihtimalini dışlamıyor; sadece muhtemelen token'lar üzerinde PUCT olarak değil. MuZero tarzı yöntemler continuous control'de hala zorlanıyor.

Konuşmadan ilgili bir dipnot: 2021'de Andy Jones, Scaling Scaling Laws with Board Games'i yayımladı. Bu çalışma MCTS güdümlü board game'lerde training compute ile test-time compute'un öngörülebilir oranlarda takas edilebildiğini gösterdi. Bu, daha sonra o1 sınıfı reasoning modelleriyle popülerleşen test-time scaling paradigmasının, beş yıl önce bir Go botu üzerinde görülmüş haliydi. Ama sorun şu: scaling law'lar ancak alttaki tarif çalışmaya başladıktan sonra ortaya çıkar. Data'nız kötüyse veya mimariniz yanlışsa, scaling law'lar size kendinden emin ama yanlış extrapolation verir. Eric autogo'ya kısmen scaling law'larla güçlü bir Go botuna Bitter-Lesson tarzı yol alıp alamayacağını görmek için başladı. Dürüst cevabı: yapamazsınız, çünkü önce scaling law'ların fit edeceği datayı üretecek çalışan bir sisteme ihtiyacınız var.

8. Off-policy training ve DAgger

AlphaGo Zero'nun pratikte daha şaşırtıcı yönlerinden biri, replay buffer'ının fiilen off-policy olması ve buna rağmen çalışmasıdır. Gradient step yaptığınız zamana gelindiğinde, batch'teki çoğu (state, action) çifti policy'nin eski versiyonları tarafından üretilmiştir. RL araştırmacıları normalde bunun için endişelenir; off-policy bilinen bir instability kaynağıdır.

Defterimde tanımları şöyle netleştirdim:

  • Off-policy, agent'ın action'ları üreten policy'den farklı bir policy'yi değerlendirip iyileştirerek optimal strategy öğrenmesi demektir. Başka policy'lerin, ya da geçmiş benliklerin, yaptıklarından öğrenir. Q-learning, deep deterministic policy gradient ve soft actor-critic klasik off-policy yöntemlerdir. Sample-efficient ve exploratory'dirler, ama unstable olabilirler.
  • On-policy, agent'ın yalnızca mevcut policy'sinin ürettiği action'lardan öğrenmesi demektir. PPO bunun kanonik örneğidir.

AlphaGo Zero'daki bilmece şu: off-policy replay buffer neden stable?

Cevap DAgger'dır (Dataset Aggregation; Stéphane Ross'un imitation learning çalışmasından). On-policy imitation learning'in failure mode'u, yalnızca optimal trajectory'nin state'leri üzerinde eğitilmenizdir. İlk kez yoldan saptığınızda training data'nızın kapsamadığı bir state'e düşersiniz ve hatalar birikir. DAgger training set'i, off-optimal state'leri sizi geri hunileyecek expert action ile etiketlenmiş halde ekleyerek büyütür.

DAgger dataset aggregation diyagramı

AlphaGo'nun replay buffer'ı doğal bir DAgger dataset'idir. Buffer'daki state'ler çoğunlukla policy'nin tipik trajectory'leri üzerindedir, arada biraz drift vardır. Buffer'daki her state, tanımı gereği kazanmaya doğru işaret eden MCTS türevi bir label taşır. Bu yüzden eski state'leri örneklediğinizde bile supervision network'e winning trajectory manifold'una doğru huni oluşturmayı öğretir.

Bunu bozacak failure mode, buffer'ın mevcut policy'nin asla ziyaret etmeyeceği state'lerle dolu olmasıdır. O zaman actual play için ilgisiz state space bölgeleri üzerinde eğitim yaparsınız. AlphaGo-Zero tarzı sistemler bunu fresh self-play data karıştırarak kontrol altında tutar.

Eric autogo'da bunu daha ileri götürdü: bir self-play oyununun her hamlesinde MCTS yapmak yerine, rastgele board state'leri örnekleyip her birinde mevcut network ile MCTS'yi yeniden çalıştırdığı bir deney yaptı. Bu, robotics'teki off-policy setup'a çok daha benzer; bir Bellman updater sürekli "bu state'te ne yapmalıydım?" diye yeniden düşünür. Çalışır. MCTS label'ları rastgele board state'lerinden bile winning play'e geri huniler.

Bu aynı zamanda AlphaGo ile modern robotics off-policy learning arasındaki en güçlü bağlantıdır. QT-Opt ve benzeri sistemler tam olarak bunu yapar: bir pusher transition'ları replay buffer'a yazar, bir Bellman updater sürekli target'larını yeniden hesaplar, bir trainer da bu target'lara karşı supervised regression yapar. AlphaGo, target üretmek için Bellman backup yerine search kullanır.


9. RL düşündüğünüzden daha bilgi-verimsizdir

Podcast'in en alıntılanabilir bölümü Dwarkesh ve Eric'in bits per sample üzerine konuştuğu yer. RL hakkındaki standart endişe sample inefficiency'dir: herhangi bir sinyal almak için bütün bir trajectory rollout etmeniz gerekir. Agent'lar çok günlük task'lara girdikçe FLOP başına sample sayısı düşmeye devam eder.

Daha az takdir edilen problem bits per sample'dır. Eğitilmemiş bir LLM'in "the sky is..." prompt'u ile karşılaştığını ve vocabulary size'ın 100K olduğunu düşünün. Supervised learning altında size cevabın "blue" olduğu söylenir ve cross-entropy loss'unuz olur; modeliniz "blue"ya düşük olasılık veriyorsa bu büyük bir sayıdır. RL altında ise herhangi bir sinyal almadan önce "blue"yu sample etmeniz gerekir. Random initialization ile bunu örnekleme olasılığınız kabaca 'dir. "Blue"ya bir kez denk gelmek için yaklaşık 100K sample gerekir. O ana kadar her sample size hiçbir şey öğretmez.

Bits per sample karşılaştırması

Formel olarak: pass rate iken supervised learning sample başına bit sağlar. çok küçükken bu büyüktür. Binary outcome üzerinde RL ise binary entropy sağlar:

Bu ifade 'te tepe yapar. Yazı tura bir bittir. Her iki uçta da sıfıra gider. Eğitimin neredeyse tamamını küçük- rejiminde geçirirsiniz; bu rejimde RL sample başına neredeyse sıfır bit verirken SL çok bit verirdi.

AlphaGo döngüsünün özel olmasının en derin sebebi bu. Her supervision step'i tek bir en iyi hamleye one-hot değil, visit distribution üzerinde soft target'tır. Soft target'lar sample başına one-hot label'lardan çok daha fazla bilgi taşır: dark-knowledge distillation argümanı budur. Bu yüzden AlphaGo'nun policy network'ü her adımda sample başına maksimum bit alır. MCTS mevcut policy'den kesin biçimde daha iyi bir labeler olduğu için supervision sinyali asla düzleşmez.

Podcast'ten hatırlanacak cümle: AlphaGo'da policy network'ü MCTS action'ını taklit etsin diye eğitmezsiniz; MCTS distribution'ını taklit etsin diye eğitirsiniz. Action one-hot'tır; distribution yoğundur. Dark knowledge budur.

Bunun çalışması için üç şeyin aynı anda doğru olması gerekir: value function ucuz ve somut olmalı, action space PUCT'nin davranabileceği kadar küçük olmalı, hızlı bir simulator olmalı. Go'da üçünün üçü de var. Coding, multi-step reasoning ve ekonomik değeri yüksek task'ların çoğunda üçte sıfır var.


10. Bu automated AI research için ne anlama geliyor?

Podcast'in kapanış bölümü algoritmalardan research workflow'a dönüyor. Eric autogo için coding agent'ları yoğun biçimde kullandı. Dürüst raporu şu: bugünkü frontier modeller, yol tanımlandıktan sonra hill-climbing'de iyi. Bir hyperparameter sweep çalıştırabilir, bazı layer'larda gradient'ların küçük olduğunu fark edebilir, code change önerebilir, experiment çalıştırabilir ve follow-up önerebilirler. Buna sabit bir objective üzerinde "grad-student-like" execution diyor.

Henüz yapamadıkları ve Eric'in tekrar tekrar çarptığı şey lateral thinking. Mevcut yol yanlış olduğunda, metric plateau yaptığında, infra'da ince bir bug olduğunda ya da problemin framing'i yanlış olduğunda, modeller first principles'a geri çekilmek yerine yanlış eksende öğütmeye devam eder. Gerçek research insight genelde insanın "dur, bu deney dalının tamamı yanlış bir varsayımdan çıkıyor" diye fark etmesinden gelir.

Bu, AlphaGo dersinin tersidir. AlphaGo çalışır çünkü MCTS policy network'e her state'te daima daha iyi bir öğretmen verir. Mevcut LLM coding agent'larının böyle bir öğretmeni yoktur. Bir reward'ları vardır, yani test geçti mi, ve gürültülü ara seçimlerle dolu uzun bir horizon'ları vardır. Eric'in iki saat boyunca anlattığı yüksek-variance, düşük-bits-per-sample rejimindedirler.

Rebuild-AlphaGo egzersizinden tek bir çıkarım istiyorsanız, bence şu: bir agent'a per-state öğretmen vermeyi çözmek, yani MCTS'nin "oynadığından kesinlikle daha iyi bir action burada" eşdeğerini bulmak, sparse terminal reward'lar üzerinde RL'i ölçeklemekten muhtemelen daha yüksek kaldıraçtır. Bu öğretmen forward search'ten mi gelir, backward TD'den mi, daha güçlü bir modelden distillation'dan mı, yoksa henüz icat etmediğimiz bir şeyden mi gelir bilmiyoruz. Ama AlphaGo tarifi neyin eksik olduğunu çok net gösteriyor.


Eric Jang ve Dwarkesh Patel'e teşekkürler.

Eric'in etkileşimli AlphaGo tutorial'ı kanonik referanstır; tüm kod GitHub'daki autogo reposunda. Policy-gradient variance üzerine errata'sı kısa ve okumaya değer.