LLM satranç anomalisinin bir kısmı artık açıklanabiliyor
(dynomight.net)- Çoğu LLM satranç oynayamazken yalnızca
gpt-3.5-turbo-instructmodelinin özellikle güçlü görünmesi, prompt arayüzü değiştirildiğindegpt-4ovegpt-4o-minimodellerinin de belirgin biçimde iyileştiğini gösteren deneylerle kısmen açıklanıyor - OpenAI'nin gizlice bir satranç motoru çağırdığı hipotezi zayıf: aynı tahtada bile ulaşılan hamle sırasına göre farklı hamleler yapıyor, prompt değişikliklerine duyarlı ve performansı da bir motor seviyesinde değil, yaklaşık 1750 Elo düzeyinde kalıyor
- Yalnızca üç kısa in-context örnek ile performans büyük ölçüde arttı; Stockfish'in 100 öz oyunu içinden seçilen örneklerle yapılan fine-tuning sonrasında da iyileşme doğrulandı
- Buna karşılık mevcut yasal hamleleri vermek performansı ciddi biçimde düşürdü; tüm notasyonu tekrarlayıp ardından sonraki hamleyi ekleyen notasyon tekrarı (regurgitation) yöntemi, chat modelini completion modeli gibi davranmaya yaklaştırarak performansı artırdı
- Nihai bileşim olan
gpt-4o + regurgitation + examples,gpt-3.5-turbo-instructkarşısında 50 partide 10 galibiyet, 5 beraberlik ve 35 mağlubiyet aldı; beyazın avantajı hesaba katıldığında yaklaşık 1540 Elo olarak tahmin ediliyor vegpt-3.5-turbo-instructın yaklaşık 1750 Elo seviyesine ulaşamıyor
Problem kurulumu: Neden yalnızca gpt-3.5-turbo-instruct satrancı iyi oynuyor?
- Önceki gözlemin çıkış noktası, çoğu LLM'in satrancı çok kötü oynamasına karşın
gpt-3.5-turbo-instructın ileri seviye amatör düzeyinde oynamasıydı - Bu model, 1 yıldan daha eski görece küçük bir model olmasına rağmen, satrançta daha yeni modellerden daha iyi görünüyor
- Olası açıklamalar kabaca dört taneydi
- Büyük base model satrancı iyi oynuyor olabilir ama instruction tuning'den geçmiş chat modellerinde bu yetenek korunmuyor olabilir
gpt-3.5-turbo-instructdaha fazla satranç verisiyle eğitilmiş olabilir- Belirli bir LLM mimarisinde özel bir unsur olabilir
- Satranç verisinin toplam eğitim verisi içinde yeterince büyük bir paya sahip olması gerekebilir
- Sonraki tartışma, OpenAI'nin satranç motoru çağırma olasılığına, LLM'in gerçekten satranç oynayıp oynamadığına ve base model ile chat model arasındaki farka daraldı
Gizlice satranç motoru kullanma hipotezi ikna edici değil
gpt-3.5-turbo-instructın satranç notasyonunu tanıyıp harici bir satranç motoru çağırdığı şüphesi pek olası görünmüyor- Gerekçeler birkaç başlığa ayrılıyor
- OpenAI çalışanları böyle bir işlem yapılmadığını söylüyor
- Satranç motorları aynı tahta durumunda hamle sırasından bağımsız olarak değerlendirme yapar, ancak
gpt-3.5-turbo-instructaynı tahtada bile ulaşılan hamle sırası farklıysa farklı hamleler yapıyor - Satranç amatörü ölçütünde iyi olsa da uzman ölçütünde zayıf ve satranç motorlarıyla karşılaştırıldığında çok düşük performans gösteriyor
- Prompt değiştirildiğinde oyun tarzı ince biçimde değişiyor
- Sonraki OpenAI modelleri varsayılan hâlleriyle çok daha kötü oynuyor, ancak uygun promptlarla iyi oynayabiliyor
- Eğer hile söz konusu olsaydı, bunun dış motor çağrısı gibi görünmesini engelleyip LLM'in hamleyi kendisi seçiyormuş izlenimi verecek kadar çok karmaşık bir yöntem seçilmiş olurdu
LLM yalnızca ezberle oynuyor değil
gpt-3.5-turbo-instruct, oyunun ilerleyen bölümünde de yasa dışı hamleleri nadiren öneriyor1. e4 d5 2. exd5 Qxd5 3. Nc3gibi bir dizgede son hamlenin yasal olup olmadığını anlamak için satranç kuralları ve durum takibi gerekiyor- Gerçek partilerde de
gpt-3.5-turbo-instruct, tarihte hiç oluşmamış yeni tahta durumlarında da oldukça iyi oynuyor - Bu nedenle açılışları ezberleyip sonrasında rastgele oynadığı açıklaması doğru görünmüyor
Temel deney: completion modeli ile chat modeli arasındaki fark
gpt-3.5-turbo-instructbir completion modeli olduğu için, sonraki hamle PGN biçimindeki metni devam ettirterek alınıyor- Örnek olarak
[Event "Shamkir Chess"], oyuncu adları, Elo, sonuç ve1. e4 e5 2. Nf3 Nc6 3.gibi notasyon veriliyor
- Örnek olarak
gpt-4o-minivegpt-4oise chat modelleri olduğundan, system prompt ve user prompt üzerinden yalnızca bir sonraki hamleyi standart cebirsel notasyonla vermeleri isteniyor- Stockfish level 1'e karşı her hamlede en fazla 0.01 saniye verilerek 50 partilik ortalama alındı ve oyun sonrasında her turun puanı centipawn cinsinden hesaplandı
- pawn 100 puan kabul edildi
- ±1500 galibiyet/mağlubiyete karşılık geliyor
- Temel promptta
gpt-3.5-turbo-instructgüçlü görünürken,gpt-4ovegpt-4o-minigibi chat modelleri zayıf kaldı
Prompt bileşimi deneyleri
- User promptun en üstünde system promptun tekrar edilip edilmeyeceği ve oyuncu adı ile Elo gibi meta verilerin eklenip eklenmeyeceği farklı kombinasyonlarla denendi
gpt-4o-miniiçin büyük bir fark neredeyse görünmedigpt-4oiçin system prompt tekrarının biraz yardımcı olduğu, meta verinin ise biraz zararlı göründüğü izlendi; ancak bunun gürültü olma ihtimali de var- Sonraki deneylerde sadeleştirme için hem system prompt tekrarı hem de meta veri kapatıldı
Yalnızca üç örnekle performans büyük ölçüde artıyor
- LLM'lere görev verirken sık kullanılan yöntemlerden biri olarak API üzerinden üç kısa girdi/çıktı örneği verildi
- girdi
1.→ çıktıe4 - girdi
1. e4→ çıktıd5 - girdi
1. e4 e5 2. Nf3 Nc6 3.→ çıktıBb5
- girdi
- Sadece bu üç örnekle sonuçlar çok daha iyi oldu
- Daha fazla ya da farklı örneğin daha iyi olup olmayacağı denenmedi; çünkü her grafiği üretmek için çok sayıda sorgu gerekiyordu
Fine-tuning yardımcı oluyor ama örneklerle birleşimi kararsız
- Hem
gpt-4o-minihem degpt-4oüzerinde fine-tuning yapıldı - Veri üretim yöntemi şöyleydi
- Stockfish en yüksek zorlukta kendi kendine 100 parti oynadı
- Her oyundan rastgele bir hamle seçilerek eğitim örneği olarak kullanıldı
- Ayrı olarak Stockfish'in 100 öz oyunu doğrulama verisi olarak kullanıldı
- Fine-tuning tek başına performansı iyileştirdi
- Ancak
gpt-4onun ilk fine-tuning sonucu kötü göründüğünden, daha küçük bir step size ile yeniden çalıştırıldı ve bu nokta bir belirsizlik olarak kaldı - Örneklerle fine-tuning'i birleştirmek beklendiği kadar tutarlı biçimde iyi sonuç vermedi
- Yalnızca fine-tuning faydalı
- Yalnızca örnekler de faydalı
- Fine-tuning sonrasına örnek eklemek neredeyse hiç etki etmiyor
- Örneklerin bulunduğu durumda fine-tuning hatta zararlı sonuç verebiliyor
Yasal hamle listesini vermek performansı bozuyor
- Model zaman zaman yasa dışı hamle verdiği için, mevcut yasal hamleler listesinin notasyonun önüne eklenmesi denendi
- System prompt da yasal hamleler listesi ve kısmi notasyonu alacak şekilde değiştirildi
- Sonuç çok kötüydü
- Sadece kazanma oranı düşmedi, hatalar daha erken turlarda başladı
- Bu yüzden sonrasında yasal hamle listesi kullanılmadı
Temel fikir: Tüm notasyonu tekrar ettirmek
- Chat modelleri, special tokenlar ve instruction tuning sayesinde
<|SYSTEM|>,<|USER|>,<|ASSISTANT|>gibi diyalog biçimlerinde çalışıyor - Base modeller ise metni devam ettiren completion modellerine daha yakın ve PGN notasyonu da bu biçime daha iyi uyuyor
- OpenAI'nin
gpt-4-basemodeline doğrudan erişim yok vegpt-4oda completion mode'da çağrılamıyor; bu yüzden doğrudan karşılaştırma yapılamıyor - Bunun yerine
gpt-4onun completion modeli gibi davranması için, yalnızca sonraki hamleyi vermesi değil, tüm oyunu tekrar edip sonuna bir hamle daha eklemesi istendi - Örneğin girdi
1. e4 e5 2.ise, çıktının1. e4 e5 2. Nf7gibi olması talep edildi - Bu yöntem
gpt-4o-minivegpt-4onun satranç performansını iyileştirdi - Tüm hamle sırasını tekrar ettirmek, modelin iyi bir hamle seçme olasılığının daha yüksek olduğu bağlamı kendi kendine kurmasına yardımcı oluyor
- Bu sonuç, erişilemeyen
gpt-4-basemodeline completion mode'da erişilebilse onun da satrancı oldukça iyi oynayabileceğine dair bir dayanak sağlıyor
Notasyon tekrarı, örnekler ve fine-tuning kombinasyonu
- Notasyon tekrarı yönteminde ayrıca yeniden fine-tuning deneyleri yapıldı
- girdi, önceki gibi kısmi notasyondu
- istenen çıktı ise giriş notasyonunun tamamının tekrar edilip sonuna sonraki hamlenin eklenmiş biçimiydi
- Bu yöntemde yapılan fine-tuning'in biraz yardımcı olduğu görüldü
- Üç örnek de notasyon tekrarı yöntemine göre yeniden kuruldu
- girdi
1.→ çıktı1. e4 - girdi
1. d4→ çıktı1. d4 d5 - girdi
1. e4 e5 2. Nf3 Nc6 3.→ çıktı1. e4 e5 2. Nf3 Nc6 3. Nf3
- girdi
- Az bilgi taşımalarına rağmen örnekler yine büyük etki gösterdi
- Örneklerle fine-tuning birlikte kullanıldığında tuhaf desen tekrarlandı
- Fine-tuning üzerine örnek eklemek yardımcı oluyor
- Ancak yine de yalnızca örnek kullanılan durumdan daha kötü kalıyor
Deney sonuçları ve Elo tahmini
- Sonuçlar üç kategoriye ayrıldı
- İyi: notasyon tekrarı, örnekler, örneksiz fine-tuning
- Belirsiz: meta veri, system prompt tekrarı, örneklerle birlikte kullanılan fine-tuning
- Kötü: yasal hamle listesi sağlanması
- Nihai bileşim, notasyon tekrarı ve örneklerin kullanıldığı; diğerlerinin kapatıldığı düzendi
gpt-4o + regurgitation + examplesoldukça iyi olsa dagpt-3.5-turbo-instructkadar güçlü değildi- İki model 50 parti oynadı ve tüm partilerde
gpt-4obeyaz taşları aldı
gpt-4o sonucu |
Sayı |
|---|---|
| Galibiyet | 10 |
| Beraberlik | 5 |
| Mağlubiyet | 35 |
- Bu sonuç yaklaşık -191 Elo farkıyla uyumlu
- Beyazın ilk hamle avantajının yaklaşık 35 Elo olduğu bilgisi hesaba katıldığında,
gpt-4o + regurgitation + examplesiçin yaklaşık1750 - 191 - 35/2 ≈ 1540 Elotahmini yapılıyor - Bu da orta seviye amatör düzeyi olarak değerlendiriliyor
Mevcut hipotez: veri ve arayüz birlikte etkili
- Mevcut hipotez iki parçadan oluşuyor
- OpenAI'nin base modelleri, açık modellerden daha fazla ya da daha iyi satranç oyun verisi ile eğitilmiş olabilir
- Daha yeni OpenAI base modelleri completion mode'da satrancı iyi oynayabilir, ancak pratikte erişilebilen chat modelleri bunu yapamıyor olabilir
- Açık modellerin hem base hem de chat sürümlerinin satrançta kötü olduğu görüldü; bu da mimari sınırlamadan çok veri farkına işaret ediyor olabilir
- Bir makalenin A.2 bölümünde, GPT-4'ün PGN notasyonlu satranç oyunlarıyla eğitildiği ve yalnızca Elo 1800 üzeri oyuncuların oyunlarını içerecek şekilde filtreleme yapıldığı belirtiliyor
gpt-3.5-turbo-instructın aynı veriyi kullandığına dair açık bir doğrulama yok; ancak PGN notasyonuyla satranç oynayıp yaklaşık 1750 Elo ölçülmesi tesadüf gibi görünmüyor- Llama gibi açık modellerin eğitiminde ne kadar satranç verisi bulunduğu doğrulanamadı
- Açık internetten çok sayıda oyun alınmış olabilir, ancak yüksek kaliteli oyunların büyük ölçekte seçildiği bir veritabanı daha iyi sonuç vermiş olabilir
- Çok fazla düşük beceri düzeyli satranç verisi nedeniyle modelin düşük kaliteli hamleleri tahmin etmeye yatkın hâle gelmesi mümkün; ancak güçlü hamle dizilerinin olduğu konumlarda güçlü oyuncuların sonraki hamlesinin tahmin edilmesi gerektiğinden, bunun ana açıklama olmadığı düşünülüyor
Kalan belirsizlikler ve pratik izlenim
- Eğer
gpt-4ochat mode'dagpt-4-basecompletion mode'dan daha zayıfsa, sebebin chat interface, instruction tuning ya da ikisinin birlikte olup olmadığı bilinmiyor gpt-4-basei chat mode gibi simüle etmek iyi sonuç verir mi, ya dagpt-4ocompletion mode'da çağrılabilse iyi oynar mı, deneyle sınanamıyorgpt-4odan daha iyi davranış çıkarmanın başka yolları olması muhtemel- Prompt, örnekler ve fine-tuning için en iyi kombinasyonu bulmak çok zor
- Arama uzayı büyük
- Kolay bir soyutlama yok
- LLM'ler öngörülmesi zor ve kırılgan
- Deneyler yavaş ve maliyetli
- Aynı nihai tarif
gpt-4e uygulandığında satrancı iyi oynayamıyor - Bulunan kombinasyon
gpt-4oya özgü olabilir;gpt-4için farklı promptlar, daha fazla örnek ya da fine-tuning gerekebilir - Bu süreç, mühendislikten çok büyü formülü bulmaya daha yakın hissettiriyor; çünkü modellere göre hassasiyet çok yüksek
1 yorum
Hacker News yorumları
gpt-3.5-turbo-instruct’un gerçekten satrancı anlayıp anlamadığını görmek için, mat olmayan 1000 rastgele yasal pozisyonda bir sonraki hamleyi yapmasını istemek yeterli
Bu pozisyonlar https://github.com/tromp/ChessPositionRanking ile üretilebilir; eğitim verilerinde görmüş olabileceği normal oyunlardan tamamen farklıdır ve çoğu zaman yasal hamle seçenekleri de çok sınırlıdır
Bir sonraki hamlenin yasallığını test etmek için iyidir, ama genellikle taraflardan biri ezici biçimde üstün olduğundan hamlenin kalitesini ayırt etmek için daha az kullanışlıdır
Hikaru’nun bir pozisyona bakıp en başından itibaren “canlı yorum” yapar gibi o pozisyona nasıl gelindiğini göstermesi şaşırtıcıydı; ama aynı videoda, tuhaf rastgele satranç bulmacalarında bu yaklaşımın neredeyse hiç işe yaramadığını açıklıyordu
Gerçek oyunlardan çıkan bulmacalar, rastgele üretilen bulmacalardan çok daha iyi ve en üst düzey insanlar için de daha anlamlı
Satrancı iyi anlayan biri, örneğin Elo 1800 seviyesinde biri, ilk denemede yasal hamle üretememeyi fiilen hiç yaşamaz
Gerçek akıl yürütmenin sembolik mantık ve soyutlama gerektirdiği söylenebilir; LLM’ler ise sonraki token tahminleyicileridir
Örneğin filin her zaman yalnızca çapraz hareket ettiğini gördüğü için sadece bu hamleleri dikkate alabilir; ama yasal/yasadışı hamle kavramını çıkarsamış olmayabilir
İçeride pozisyonu temsil eden bir şey oluşturabilir, ama kodlanmış bir satranç pozisyonu verildiğinde bu temsil otomatik olarak etkinleşmeyebilir
gpt-3.5-turbo-instruct’un satrancı “anladığı”, “akıl yürüttüğü” ve “gerçek mantık” yürüttüğü iddia ediliyorsa, yazıda sözü edilen ileri seviye amatör satranç oyuncuları arasında yasa dışı hamle yapan birini bulmalarını söylemek isterim
Satrancı bilen biri, bunun neredeyse hiç yaşanmadığını doğrulayabilir
Yasa dışı hamle yapılmış oyun bağlantıları olup olmadığını da merak ediyorum
Benden çok daha yüksek seviyedeki yayıncıların da arayüzün hamleyi yasa dışı olduğu için reddettiğini fark edene kadar tekrar tekrar yasa dışı hamle denediklerini gördüm
YouTube’da sadece “GM illegal moves” diye aratınca bile büyükustaların yasa dışı hamle yaptığı yeterince örnek derleme olarak çıkıyor
Örnek: https://www.youtube.com/watch?v=m5WVJu154F0 — Vidit vs Hikaru örneği özellikle çarpıcı; Vidit kendi şahıyla Hikaru’nun şahına saldırıyor
LLM bir kara kutu olduğu sürece, kuralları izleyerek akıl yürütüp yasal hamleyi mi anladığını, yoksa yalnızca çok fazla yasal hamle verisi öğrenip yasal hamle üretmeyi mi öğrendiğini bilemeyiz
Gerçeğin hangisi olduğunu iddia edebilirsiniz, ama LLM’nin ne “düşündüğünü” gerçekten anlamanın hiçbir yolu yok
Körleme satrançta asla yasa dışı hamle yapmamak için epey iyi olmak gerekir
İnsanlar, hatta kendi alanlarında tanınmış uzmanlar bile çok hata yapar; bazen de kendi uzmanlık alanlarında çok pahalı ve geriye dönüp bakınca bariz görünen hatalar yaparlar
Ama insan aptallıklarıyla dolu bir derlem üzerinde eğitilmiş bir LLM satrançta yasa dışı hamle yapınca beyin hemen “Ben satrançta yasa dışı hamle yapmıyorum; bilgisayar bunu yapıyorsa nasıl satranç oynuyor olabilir?” diye tepki veriyor
En azından üstbilişsel önyargı ve temel yükleme hatasının kusursuz bir örneği gibi görünüyor
Bu yazıda da önceki yazıyla aynı sorun var. Yazar yasa dışı hamle sıklığına dair hiç veri sunmuyor
Bu yüzden anlamlı bir sonuca varılamıyor
Bu, LLM’in uzman bir doktor olduğunu iddia edip, hatalı tıbbi tavsiye verdiği tüm vakaları veriden ayıklamaya benziyor
Yasa dışı hamle denemelerinin sayısı yaklaşımlar arasında anlamlı biçimde farklı olsaydı ve özellikle bu fark yasa dışı hamleler çıkarıldıktan sonraki performansla korele olmasaydı ilginç olurdu; ama yazının sonucunu baştan aşağı sarsmaz
Yasal hamle kümesinden rastgele seçim yapmak gerçekten berbat bir satranç oyuncusu üretir; dolayısıyla LLM çıktısından örnekleme yapıldığında çok daha iyi oynuyorsa, LLM’in bir şey kattığı açıktır
Yasa dışı hamle denemelerinin hepsini yenilgi saymak gerektiğini söyleyip LLM’in tek başına yeteneğinin tanımı üzerine tartışmak, asıl noktadan uzaklaşıyormuş gibi geliyor
O zaman gerçekten de “LLM+script” uzman doktor haline gelmiş olurdu; ama bu satrançtaki yasa dışı hamleler için mümkün olsa da tıbbi tavsiye değerlendirmesi için elbette mümkün değil
Burada yok ama turbo instruct daha önce değerlendirilmişti
https://github.com/adamkarvonen/chess_gpt_eval
Eğitim oranı %99’un üzerinde, test ise %1’in altında olduğu için yapay zeka doğrulamasının temel şartlarını bile geçmiyor
Çoğu yapay zeka konferansında ayakta kalması zor bir makale olurdu; ama etki faktörü çok yüksek Nature Medicine’da yayımlandı ve tıbbi yapay zeka alanında çokça atıf aldı
https://www.nature.com/articles/s41591-018-0268-3
“Birçok açıdan mühendislikten çok bir büyü sözünü bulma işine benziyor” ifadesi hâlâ genel olarak LLM’lere dair izlenimimle aynı
Çalışıyor olması şaşırtıcı, ama umarım bir sonraki teknolojik yenilik her seferinde kendimizi kötü bir bilimkurgu filminin içinde hissettirmez
“Herkes yanıldı” denemez bence
Bu noktayı söyleyen tek kişi ben de değildim; bu teorinin listede olmamasına şaşırdım, çünkü 7 gün önce de şöyle yazmıştım: https://news.ycombinator.com/item?id=42145710
“Herkese açık bir benchmark haline gelen her şeyin eğitim sırasında özel olarak hedeflendiğini varsaymak gerekir.”
Bu, yazıda değinilip çürütülen “hile/LLM çıktısını ikame etme” teorisinden farklı
Devam yazısı bu tahmini güçlendiriyor. OpenAI, temel modeli açık modellerden daha fazla ve daha iyi satranç oyunu verisiyle eğitti; ayrıca bir makalenin A.2 bölümünde OpenAI yazarları, GPT-4’ün Elo 1800 üzeri oyuncuların PGN notasyonlu satranç oyunlarıyla eğitildiğini belirtiyor
OpenAI’ın, insanların gerçekten denemek isteyebileceği görevlerin verileriyle eğitim verisini takviye etmesi tamamen mantıklı
Bu etik dışı da değil. Hiçbir veri kümesi gerçekten “tarafsız” olmadığından, zaten bir seçim yapmak gerekiyorsa potansiyel olarak yararlı yanıtları iyi verecek şekilde eğitmemek için bir neden yok
Ne de olsa OpenAI’ın oyun yapay zekası konusunda çok deneyimi var
https://news.ycombinator.com/item?id=42145215
Bir blog yazarının tesadüfen 1800 Elo düzeyinde acemi bir performans keşfedip tweet atmasını umarak, devasa veri kümeleriyle aşırı pahalı büyük LLM’ler eğitilmez
Satranç, Goodhart hedefi olacak kadar standart bir LLM benchmark’ı da değil; OpenAI da genel olarak kestirme yollardan veya hileden çok problemleri doğru yöntemle çözmeye çalıştı
GPT serisi standart benchmark’lara veya karşı örneklere kolayca aşırı uyum sağlayabilirdi ve bunun tanıtım değeri de çok daha büyük olurdu; buna rağmen ciddi biçimde aşırı uyum göstermedi. Örneğin “çilek problemi” gibi bir şeye eğitmek çok kolay olurdu
Buna karşılık bazı diğer LLM sağlayıcılarının puanları ezberlemeyi önleme makalesinde çok daha fazla düşüyor
Ayrıca söz konusu veri kümesini anan makalenin kendisinde açık bir araştırma amacı var; satranç, oracle kullanılabildiği için LLM’lerin denetimini ve dünya modellemesini analiz etmeye yarayan bir model organizma olarak ilgi çekiyor
DeepMind’ın süre sıkışmalı satranç LLM makalesi de Gemini’ın satranç becerisini olduğundan iyi gösterip GCP pazarlamasında kullanmaya yönelik sinsi bir planın parçası değil
Başta satrancın havalı olduğunu düşünmüş olabilirler; yarın da Go ya da şiir yazma becerisinin havalı olduğunu düşünebilirler
Alan fark etmeksizin eğitim verisine “amatör” içerikten çok uzman içeriği koymak gibi
Promptta “oyunu kazanmaya çalış” denmiyor ama sonuç, LLM’in ne kadar kazandığıyla ölçülüyor.
Bu, “Sen bir satranç büyükustasısın” promptunun içinde örtük olarak var mı?
LLM eğitiminde bir yerlerde “oyunsa her zaman kazanmaya çalışılır” diye bir örüntü mü var?
Sadece kazanması söylenirse kazanma oranı artabilir mi?
Satranç partisi örnekleri ve açıklamalarında neredeyse her zaman oyuncular kazanmaya çalıştığı için, kazandıran hamleyi oynamak yalnızca en mantıklı çıktıdır.
Bu yüzden promptta açıkça kazanması söylense bile performansın çok artacağını sanmıyorum.
Tersine, kaybettiren ya da kötü hamle yapması söylenirse ne olacağı ilginç. Bunu etkili biçimde yapabiliyor mu ve hamleler hâlâ çoğunlukla yasal mı; bunlara bakmak, daha önce gördüğü kavramlara ne kadar dayandığını daha iyi gösterebilir.
O cümle, mümkün olan en iyi hamle token’larını üretme olasılığını artıracaktır.
Modelin satranç dizisi üretme becerisi, eğitim verisindeki parti havuzunda bulunan uzmanlıkla sınırlı.
Bazı oyuncuların bilerek kaybetmeye çalıştığı partiler karışmış olsa bile bu muhtemelen çok azdır; ayrıca satranç partilerinde oyuncu niyeti açıklama olarak yazılmadığından, kazan ya da kaybet diye promptlamak LLM’in bunu ayırt edip yakalamasını sağlayamaz.
LLM’e bilerek kaybetmesini söyleyerek bunu görebilirsiniz. Benim deneyimime göre ChatGPT kendini Scholar’s Mate’e düşecek şekilde ayarlamaya çalışıyor; ama rakip bunu kabul etmezse, örtük olarak kazanmaya çalışıyormuş gibi rakibin savunmasız taşlarını almaya başlıyor.
“Neden?” diye sorulunca da her zamanki gibi sonradan gerekçelendirme sunuyor.
Bu yüzden “ve kazan” ya da “siyah kazanır” gibi bir ifade olmaması beni şaşırttı.
Pekiştirmeli öğrenme yüzünden LLM, insan oyunu kaybedip kötü hissetmesin diye bunu özellikle kaçınıyorsa epey komik olurdu.
Promptu iyileştirmeleri iyi olmuş, ama hâlâ çok büyük iki iyileştirme olasılığını atlıyorlar.
Birincisi, hamle önermeden önce mevcut tahta konumunu ve ileriye dönük planını açıklatmak. Bu, modelin gerçekten daha fazla düşünmesini sağlar; o1’e benzer ama burada daha odaklı bir işlemeyi garanti edebilir.
İkincisi, her adımda gerçekten bir ASCII tahta çizdirmek. Tahta+hamle biçimi, 20 hamleyi listelemekten daha kararlı işlenebilir ve yasal hamle sayısını artırabilir.
ASCII art gibi iki boyutlu “grafikler” dil modellerine yabancı; model metni, satır sonları dahil bir token akışı olarak algıladığı için satırlar arasındaki “dikey” ilişki insanlara göründüğü kadar açık değildir.
Bağlam penceresinde bir tahta diyagramı olsa bile, modelin partiyi akıl yürütmesine pek yardımcı olmama olasılığı yüksek.
Bunun yerine “c5’te siyah at” gibi her taşın konumunu düz metinle listeletmek, konum farkındalığını güçlendirmek için daha uygun olabilir.
Anthropic modellerinde dokümantasyon, girdinin önemli kısımlarını XML gösterimiyle etiketleyip sınıflandırmayı öneriyor. Bu tür yumuşak bir yapı Claude model sonuçlarını iyileştiriyor gibi görünüyor ve muhtemelen model bunu tanıyacak şekilde özel olarak eğitilmiştir.
Referans: https://docs.anthropic.com/en/docs/build-with-claude/prompt-...
Bir Anthropic modeli için son prompt şöyle olabilir: “Bir satranç büyükustasısın. Etiketler içindeki tamamlanmamış partiye bak, tüm partiyi tekrar et, ardından standart cebirsel gösterimle tek bir yeni hamle ver ve yeni notasyonu vermeden önce etiket bloğu içinde akıl yürütmeni açıkla.”
Bu tür bir prompt, Anthropic modellerinde belirgin iyileştirme sağlayacak şekilde tasarlanmış.
İronik biçimde, Claude 3.5 Sonnet’i aylarca yoğun kullandıktan sonra bunu ancak birkaç hafta önce keşfettim. RTFM hâlâ faydalı bir beceri.
OpenAI modellerinde de benzer şekilde basit ama pek bilinmeyen affordance’lar olabilir.
1,5 yıl önceki satranç deneylerimde tüm hamle dizisini tekrar etme hilesi, ince ayar olmadan en iyi teknikti.
Sonucu görmek isterim, ama iyileşirse epey şaşırırım.
Başka yollarla da daha fazla zaman ve alan verilirse performansın daha da iyileşebileceği hipotezi var.
Örneğin mevcut tahta konumunu gösterip konum analizi, temel zayıflıklar ve güçlü yönler listesi, olası stratejiler listesi, bunlardan bir strateji seçimi ve son olarak hamle seçimi yaptırmak gibi.
Yani hamleyi doğrudan tükürtmek yerine gerçekten düşündürmek. Burada örnekler kilit nokta olacaktır.
Bu fikirlerin ReAct makalesi ve düşünce zinciri makalesinde iyi çalıştığı gösterildi; buna, N kez tekrarlayıp çoğunluk cevabı çıktığında durma yöntemi de eklenebilir. Bu da düşünce zinciri öz-tutarlılığı makalesinden alınmış bir fikir.
“İnce ayar yardımcı olur ve örnekler de yardımcı olur; ama ince ayarı gereksiz kılan şey örneklerdir, tersi değil” kısmı çok ilginç.
Bu özel örnekte, sadece örnek sağlamak ince ayarla eşdeğer.
Benim için büyük bir keşif; bundan sonra örnekleri daha sık kullanmayı düşünüyorum.
Nedenini açıklamak zor, ama ince ayarın hep abartıldığına dair bir sezgim vardı.
Bir nedeni, örneklerin “tam orada” olması ve ince ayar yapılmış nöronlara kıyasla örtük olarak çok daha yüksek ağırlık alması olabilir.
Bu oyuncak örnekte çok önemli değil, ama girdide sağlanan her örneğin, ince ayara kıyasla tahmin süresini ve maliyetini artırdığını unutmamak gerekir.
Ticari LLM’lerle karanlıkta el yordamıyla yapılan türden deneyleri artık bırakmak gerekiyor
Bu meselenin temeline inmek için LLM’i yalnızca satranç oyunlarıyla eğitmeyi denemek ilginç olurdu. Stockfish’i kendi kendine oynatarak sonsuz miktarda sentetik veri üretilebilir; ayrıca satranç yorumları ve “tahtada kaç piyon var?”, “kalem nerede?”, “tahtayı çiz” gibi satranç diyalogu örnekleri biraz karıştırılarak modelin tahta temsiline sahip olup olmadığı gösterilebilir
“Ortaya çıkan özelliklerin” ya da genel dil yeteneğinin, hatta yetenekliymiş gibi yapma becerisinin satranç oynamak için gerekli olduğuna inanmıyorum. Satrançta iyi olmak başka konularda da zeki olmak anlamına gelmez; tersi de geçerlidir
Böyle bir deney benim yanıldığımı da kanıtlayabilir
Yaklaşık bir hafta önce çıkan makale https://arxiv.org/pdf/2411.06655 ince ayarlı Llama ile iyi sonuçlar elde ediyor gibi görünüyor
Satranç yorumu becerisini ele alan şu makaleyi de beğeniyorum: https://arxiv.org/abs/2410.20811
Kalan ödülü ekleyerek ağın iyi ve kötü oyunlarda hangi hamlelerin geldiğini öğrenmesini de sağlayabilirsiniz; bu da Decision Transformer gibi çevrimdışı pekiştirmeli öğrenme çerçevesine dönüşür
Satranç becerisinin genel LLM’ler için tamamen yararsız olduğunu ve bir ortaya çıkış olgusu olmadığını; yalnızca bu havalı numara uğruna gradyan bant genişliği ve parametre uzayı tükettiğini düşünüyorum
Satranç için özel olarak eğitilmemiş LLM’lerin satrancı iyi oynayamaması bunu açıkça gösteriyor
Satranç hamlesi gösterimine optimize edilmiş bir tokenizer oluşturup Stockfish oyunlarıyla bir LLM’i sıfırdan eğitmek ilginç olabilir
Özel tokenizer kullanılırsa aynı model boyutunda kalite artacaktır
Kodlama ve kod çözme için çok sayıda katmanı boşa harcamak gerekmez; “doğal” gizil temsil de daha sezgisel olabilir