Giriş
Oyun oynayan yapay sinir ağları, AlphaZero gibi, ham politika ile test zamanı arama mekanizmasını birleştirerek süper insan performansı sergiliyor. Peki, benzer teknikler dil modellemede neden kullanılmıyor? DeepSeek-R1 yazarları, MCTS (Monte Carlo Ağaç Arama) ile sınırlı başarılar elde ettiklerini belirtiyor. Finbarr Timbers, UCT yerine pUCT seçiminin bu sorunu tetikleyebileceğini savunuyor.
Bu yazının amacı, iki soruyu keşfetmek:
Arama distilasyonunun dil modeli akıl yürütmesini iyileştirmesi mümkün mü?
Standart dil güçlendirme yöntemleri ile nasıl bir performans sergiliyor, örneğin GRPO?
Deneysel Yöntem
Bu soruları keşfetmek için, Qwen-2.5-1.5B-Instruct modeline MCTS uyguladım. Countdown adlı kombinatorik aritmetik oyununda, distile edilen modelin (arama mekanizması olmadan değerlendirildiğinde) ortalama %11.3 başarı puanı elde ettiğini gördüm. Bu, CISPO için %8.4, en iyi N için ise %7.7 puandır. Önceden eğitilmiş modelle (3.1%) kıyaslandığında, %8.2 oranında bir iyileşme sağladık.
Bu düşük mutlak puanlar, 1.5B model üzerinde küçük ölçekli deneyler yapmamızdan kaynaklanıyor. Bu yazıyı bir dizi yazının ilki olarak kullanmayı umuyorum ve daha büyük modellerle ilerledikçe bu puanların artacağını düşünüyorum.
Düşük Ödül Fonksiyonu ile Eğitim
Başlangıçta GSM8K ortamını test etmek için kullandım, ancak GRPO ile MCTS arasında güçlü bir fark bulamadım. Bu nedenle, Countdown oyununu seçtim. N pozitif tam sayının verildiği bir ortamda, standart işlemleri (toplama, çıkarma, bölme, çarpma) kullanarak belirli bir hedefi hesaplamak gerekiyor. Neden Countdown? Kombinasyonel problemler, paralel uyarlanabilir akıl yürütme ağaç aramasından daha fazla fayda sağlıyor gibi görünüyor.
Eğitim sırasında, doğruluk için 0/1 ile sonuçlanan seyrek ödül kullanmanın dengesiz eğitim sonuçları doğurduğunu gözlemledim. Bunun yerine, daha yoğun bir ödül fonksiyonuna geçtim:
$$1.0 - 2 imes ext{min}igg( rac{|t - p|}{t}, 1.0igg)$$
Burada $t$ gerçek hedef ve $p$ tahmin edilen hedeftir. Ancak değerlendirme yine seyrek ödül fonksiyonunu kullanıyor çünkü puanları sezgisel bir şekilde anlamak istiyoruz.
Monte Carlo Ağaç Arama (MCTS)
MCTS algoritması daha önce geniş bir şekilde ele alındı, bu nedenle detaylı bir tarif vermekten kaçınıyorum. Kısaca, MCTS, bir değer fonksiyonundan yönlendirilerek eylem alanını akıllıca keşfetmek için bir arama ağacı inşa eder. Tahta oyunlarında eylem alanı anlamlıdır; her hamle oyunun sonucunu önemli ölçüde etkileyebilir. Ancak dil modellemede, birçok token dolgu veya sözdizimsel şeker görevi görüyor ve en iyi-k logits'ten branşlanmak her zaman çeşitliliği artırmıyor.
Tree-of-Thoughts (Yao et al., 2023) tarafından önerilen yaklaşımı tercih ediyorum. Bu yaklaşımda, her node durumu bir dizi ardışık token olarak tanımlanıyor:
Kök düğüm, giriş istemine karşılık geliyor.
Ara düğümler, akıl yürütme adımlarına karşılık geliyor: ...
Terminal düğümler, yanıtlara karşılık geliyor: ...
Uygulamam, her örnek için N ajanının aynı örnek arama ağacını paylaştığı ve sanal kayıplar kullanarak arama çeşitliliğini teşvik ettiği paralel MCTS kullanıyor.
Trajektori Seçimi
Geleneksel tahta oyunu MCTS ile, eğitim sinyali kök düğümdeki arama politikasını ve modelin tahmin ettiği ham politika arasındaki KL sapmasını minimize etmekten gelir. Ancak, eylem alanımızın granülaritesi, akıl yürütme adımlarını token'larla karşılaştırdığımızda uyuşmazlık gösteriyor. Bu nedenle, algoritmanın belirli bir örnek için M iterasyonu tamamlanınca, çalışanlar açgözlü bir seçim süreci gerçekleştiriyor:
Kökten başlayarak, en yüksek ziyaret sayısına sahip trajektory seçiliyor.
Bu trajektory, PPO eğitiminde kullanılmak üzere ortak bir havuza gönderiliyor.
Eğitim sürecini, değerlendirme puanı duraklama noktasına ulaşana kadar sürdürüyoruz. Tüm deneyler Andromeda'daki 8xH100 düğümde gerçekleştirildi. MCTS için altı GPU jeneratör olarak atanırken, iki tane de eğitici olarak kullanıldı. Bir Rust işçisi, veritabanından sorular alıyor ve bir jeneratör havuzuna gRPC ile tahmin talepleri gönderiyor. Seçilen trajektörler bir Redis akışına yazılıyor; eğitmenler buradan örnekler alıyor. Ağırlıklar, her sekiz gradyan adımında Redis pub/sub kullanılarak senkronize ediliyor.
Sonuç
Yürütülen tüm deneyler, dil modellerinin akıl yürütme süreçlerini geliştirmek adına yeni bir perspektif sağlıyor. MCTS'nin sunduğu yapı, daha yüksek performans elde etmemizde önemli bir rol oynayabilir. Bu yazının ilerleyen bölümlerinde, daha büyük modeller ve hesaplama bütçeleri kullanarak daha fazla veri elde edeceğimizi umuyorum.




