AlphaZero vs Stockish karşılaşmasında kullanılan donanım


22

AlphaZero'nun normal Stockish'ten farklı bir donanım kullanması gerektiğini biliyorum. Donanımın motor gücü üzerinde büyük bir etkisi olmasını beklerdim. Bu yüzden ikisine de benzer donanım sağlamak için herhangi bir girişimde bulunup bulunmadığını merak ediyorum. Ayrıca burada "karşılaştırılabilir" ne anlama gelir?

Özellikle insanların şikayet ettiğini okudum:

  • Stockish'e yalnızca 1 GB önbellek verildi ve
  • 1 dk / hamle zaman sınırı (Bu dezavantajı Stockish nasıl olurdu?)

Görünüşe göre karma büyüklüğü, önbellek değil.
Federico Poloni

2
Bunu teknik bir forumda sormanızı şiddetle tavsiye ediyorum ( AI Stack Exchange gibi , belki de "AlphaZero'da, Stockish'in değerlendirilmesinde eşitlik" başlıklı), çünkü buradaki cevaplar iyi değil.
Veedrac

Yanıtlar:


20

Bu yüzden ikisine de benzer donanım sağlamak için herhangi bir girişimde bulunup bulunmadığını merak ediyorum.

Bahsettiğin Google bu! Yani cevap açıkçası "Hayır" dır.

Başlangıç ve eğitim için kullanılan orijinal kağıt donanımından -

Eğitim, kendi kendine oynama oyunları üretmek için 5.000 birinci nesil TPU'yu (15) ve sinir ağlarını eğitmek için 64 ikinci nesil TPU'yu kullanarak, rastgele başlatılmış parametrelerden başlayarak 700.000 adım (4.000 boyutunda küçük gruplar) için devam etti.

ve oyunlar için kullanılan donanımlar -

AlphaZero ve önceki AlphaGo Zero, 4 TPU'lu tek bir makine kullanıyordu. Stockish ve Elmo, 64 iş parçacığı ve 1GB büyüklüğünde en güçlü beceri seviyelerinde oynadılar.

Bu yüzden, AlphaZero Google tarafından geliştirilen özel bir donanım kullandı. Piyasada bulunan genel Merkezi İşlem Birimleri (CPU) yerine özel Tensör İşlemci Birimleri (TPU'lar) kullandı.

Bu, Wikipedia'nın kullandıkları ikinci nesil TPU'ları nasıl tanımladığını açıklar.

İkinci nesil TPU, Mayıs 2017’de ilan edildi. Google, birinci nesil TPU tasarımının hafıza bant genişliği sınırlı olduğunu ve ikinci nesil tasarımda 16 GB Yüksek Bant Genişliği Bellek kullanmanın bant genişliğini 600 GB / sn’ye çıkardığını ve performansı 45 TFLOPS’e çıkardığını belirtti. TPU'lar daha sonra 4 çipli 180 TFLOPS modülünde düzenlenir.

Oyunlar için 4 TPU kullandılar, bu yüzden 180 TFLOPS işlem gücü. Not TFLOPS = saniyede 1000 milyar kayan nokta operasyonu.

Karşılaştırma için Intel'in en güçlü yongası, 1 TFLOP'de çalışan Core i9 Extreme Edition işlemcisidir. Bir oyun makinesinde bulacağınız I7 çizgisinin tepesi tipik olarak yaklaşık 100 GFLOP (yani bir TFLOP'un onda biri) olacaktır.

AlphaZero’nun, Stockishes mouse'a kıyasla 800 kiloluk bir goril kullandığını söylemek doğru olmaz.


1
FLOPS, saniyede kayan nokta işlemleri anlamına gelir. Kayan nokta aritmetiği, muhtemelen Stockish ve AlphaZero'nun çekirdek algoritmalarında kullanılmıyor. Bu yüzden FLOPS sayısı, satranç motoruyla ilgili işlemci hızının gerçekten anlamlı bir ölçüsü değildir.
René Pijl

9
Aksine, sinir ağlarının oldukça yoğun bir şekilde kayan nokta aritmetiği kullandıklarına inanıyorum. (Ama elbette, sözlerin çok mantıklı ve Stockish için de geçerli.)
Federico Poloni

3
GPU ile çok daha uygun bir karşılaştırma olacaktır; NVIDIA Tesla V100, 20'ye kadar olan önceki nesle (P100) kadar 120 TFLOPS yapabilir. CPU'lar, büyük miktarlarda sayılar yapan GPU'lardan çok farklı şekilde optimize edilmiştir.
Nick T,

12

Sanırım en iyisi, bugünkü merakımı gidermek için AlphaZero ile Stockish arasındaki 1. oyunda bir örnek hareketle ikinci noktanızı hazırlarsam.

1 dk / hamle zaman sınırı (Bu dezavantajı Stockish nasıl olurdu?)

Stockfish'in performansı hem zaman sınırına hem de donanım konfigürasyonuna bağlıdır, bu yüzden birinin CPU ipliklerini ne zaman iki katına çıkardığını düşünün, o zaman çözümü bulmak için ilk konfigürasyonda olduğundan daha az zaman gerekir (mutlaka yarısı değil).

Chess.com'da yayınlanan ilk raporda birileri bilgisayarında aynı sonuçları elde edemediği için Stockish'in en iyi şekilde oynamadığını iddia etti. Aşağıdaki pozisyonda olduğunu söyledi (oyun 1 - hareket 11) Stockish hiçbir anlam ifade etmedi Kg1-h1 (kralı taşındı) oynadı. Öte yandan, bilgisayarındaki stockfish, Be3 (karanlık kare piskoposunu hareket ettir) gibi daha gelişmekte olan bir hareket gösterdi, pozisyonuna bakalım:

Oyun 1 hamle 11

Evet, pasif bir hamleydi ve sanırım Stockish daha gelişmekte olan bir hamle oynamış olmalıydı. Ama yanılıyordu. Niye ya? Çünkü 15 saniye Stockish koştu ve bir saat boyunca koşmuş olsaydı, Kg1-h1'i bu pozisyondaki en iyi hareket olarak kazanmış olacaktı. Stockish, tüm olası hareketleri daha derinlemesine analiz ettiğinde kararını değiştiriyor. İşte cevabımda ilk söylediklerim :

En son balık stokunu pozisyona koştum (11 numaralı hamleyde):

  • İlk başta, b4, motor yaklaşık bir dakika çalıştığında en uygun hareket olarak verir. Bundan sonra, Be3'ün daha iyi olduğuna karar verir.
  • Ancak 1.400k düğüm / sn'de çalışan donanımım üzerinde 5 dakika sonra en uygun hareket olarak Kh1 ile çalışmaya karar verecek.

  • Makalede, stok balıklarının saniyede 70.000k pozisyonu hesapladığı ve hamle başına 1 dakika çalıştığı söyleniyor, donanımımın yaklaşık 50 katı, bu yüzden benimki 50 dakika boyunca koşmaya izin vereceğim ... Kg1-h1 hala Stockish için seçim.

Zaman sınırı anahtarıdır

Yukarıdaki durumda, Stockish, kararın aynı olacağı için iki kez koştuğu için bir önemi yoktu, ama bir sonraki harekette kesinlikle :

görüntü tanımını buraya girin

Bu pozisyonda Stockish piyonu sol tarafa taşımayı tercih etti ( a4-a5 ). Diyelim ki, Stockish motorunu saniyede 1.400k düğüm hızında çalıştıran bir bilgisayarım var, bu gerçek oyunda Stockish'ten yaklaşık 50 kat daha düşük ( Bu yazıda 70.000kn / s). Böylece her hamlede 50 dakika boyunca çalıştırırsam oyunu simüle edebilirim. Tamam.

Yukarıdaki pozisyonda Stockish analizini yaptım ve aşağıdaki sonuçları aldım:

  • Stockish bazı hareketler öne sürmeye başladı, ancak bilgisayarımdaki 6 dakika sonra ( gerçek oyunda Stockish'in 7.2 saniyesine denk geldi ) oyunun ilerleyişinde a4-a5'i tercih etti .

Bu iyi, ancak 1 dakikalık izin verilen oyunda Stockish'in hesaplarına ulaşmak için 50 dakika boyunca çalışmasını sağladım:

Üzücü gerçek şu ki, Stockish'in zaman kaybettiği için tüm oyunlarını kaybettiğine inanıyor. Stockish zaman geçtikçe oyunda derinlemesine bir araştırma ve değerlendirme alıyor ve oyunda sığ derinliklerde birçok hareketi düşünen bir açılış kitabı kullanmasına izin verilmiyordu. Asıl oyunda a4-a5'in oynandığını ve bu sayede (saniyede 70 milyon pozisyonu değerlendirebileceğini varsayarak) oyundaki Stockish'in hareket halindeyken 21.6 saniyeden fazla zaman harcamamış olduğunu unutmayın. Aksi takdirde, kararını gerçek oyunda bu üç hamle olarak değiştirmiş olacaktı. Bunların nedeni hala benim için net değil çünkü Stockish'im de daha az bellek tüketiyordu ( orijinal belgede belirtilen 1 GB'ye kıyasla yaklaşık 130 MB RAM , hepsinin karma tablolara gittiğini düşünerek).


Sonuç

Stockish'in belirttiği donanım, belirttiğim gibi, analiz ettiğim harekete dayanarak benimkinden (Update: tek bir çekirdekte) 18 kat daha hızlıydı. AlphaZero'nun 4 saat içinde ağlarını eğitmek için bu tür donanımları gerçekten kullanabileceğinden emin değilim, sadece satranç gibi bir oyun için çok düşük olduğunu varsayabilirim. Ayrıca, AlphaZero bu saatleri öğrenme için harcayarak açıklıklar inşa etmeyi de (ve makalenin belirttiği gibi, belirli açıklıklar tercihleri) harcadı. Öte yandan, Stockish açılışlarda sakatlandı ve her seferinde 60 saniye boyunca saniyede 70 milyon pozisyonu değerlendirmedi.

Son bir not olarak, söylediğim her şey varsayımlarıma dayanıyordu. Tabii ki, AlphaZero ve oyunların sonucu benim için çok ilginçti. Ancak, Stockish oyununun tıpkı benim bilgisayarımda edindiğim gibi olduğu bir oyun görmeyi çok isterdim. Yani, daha fazla zaman ve bir açılış kitabı. Her analizde Stockish analizinin çıktılarını elde etmek de kolaydır ve performansının ne kadar iyi olduğunu göstermek için yayınlamasını diliyorum.


1
Zaman sınırı ile ilgili olarak, AlphaZero kağıdındaki Şekil 2 tersi gösterir: Stockish daha düşük bütçede daha iyidir, ancak daha fazla güç olduğunda daha kötü ölçeklendirir. arxiv.org/pdf/1712.01815.pdf
eski ufo

1
@ old-ufo Buna dikkat çektiğiniz için teşekkürler. Dediğim gibi, Stockish'in (ve AlphaZero) performansı donanıma ve zaman sınırına bağlı. Örnek için, Stockish'e daha fazla donanım (ve daha az AlphaZero) vermiş ve bu rakamı yeniden üretmiş olsaydık, çizgisi her zaman AlphaZero hattının üstünde kalacak şekilde dönüştürülebilirdi. Bu yüzden ana soruyu cevaplayan her iki sistem için donanımı karşılaştırmak için iyi bir nokta olduğunu düşünüyorum.
ReZzT

4

Stockfish'in asıl yazarlarından biri, burada bahsettiğiniz şikayetlere cevap veriyor:

Bu arada Chess.com ayrıca, orijinal Stock Photo yazarlarından Tord Romstad’dan tam olarak bahsedeceğimiz uzun bir yorum aldı:

Maç sonuçları kendileri tarafından oldukça garip bir zaman kontrolü seçimi ve Stockish parametre ayarları nedeniyle özellikle anlamlı değildir: Oyunlar 1 dakikalık sabit bir sürede oynandı, bu da Stockish'in zaman yönetimi sezgisini kullanmadığı anlamına gelir ( Stockish'in oyundaki kritik noktaları tanımlaması ve ne zaman bir hamle için fazladan zaman harcayacağına karar vermesi için çok çaba sarf edilmiştir, hamle başına sabit bir zamanda, güç önemli derecede acı çekecektir). Kullanılan Stockish sürümü bir yaşında, önemli miktarda test almış olandan çok daha fazla arama iş parçacığıyla oynuyor ve iş parçacığı sayısı için çok küçük karma tabloları vardı. Daha normal şartlara sahip bir maçta beraberlik oranının çok daha yüksek olacağına inanıyorum.

Öte yandan, AlphaZero'nun projeye daha fazla çalışma yapıldığında daha iyi oynayabileceğine dair hiçbir şüphe yoktur (her ne kadar kağıtta belirtilen "4 saatlik öğrenme", kullanılan muazzam donanım kaynaklarını dikkate aldığınızda yanıltıcıdır. bu 4 saat boyunca). Fakat her durumda, Stockish vs AlphaZero, elmaların orangutanlarla karşılaştırılmasıdır. Bunlardan biri sıradan bilgisayarlarda çalışan geleneksel bir satranç programı, diğeri ise temelde farklı teknikler kullanıyor ve satın alınamayan özel tasarımlı bir donanım üzerinde çalışıyor (ve olsaydı sıradan kullanıcıların bütçesinden çıkacaktı).

Başka bir açıdan bakarsak, elmalar orangutanlar açısı bununla ilgili en heyecan verici şey: Artık hem donanım hem de yazılım tarafında iki tane süper satranç oynama becerisi sergileyen insan yapımı varlıklara sahibiz. Bu, mevcut satranç programlarıyla aynı şeyi yapan başka bir satranç programından çok daha ilginç, sadece biraz daha iyi. Ayrıca, AlphaZero yaklaşımının yeni alanlara uyarlanabilirliği, gelecek için heyecan verici olanaklar sunuyor.

Bilgisayar satranç programlarını bir araç olarak kullanan satranç oyuncuları için, bu atılımın, en azından kısa vadede, uygun fiyatlar için uygun donanımın bulunmaması nedeniyle büyük bir etkisi olması muhtemel değildir.

Satranç motoru programcıları için - ve diğer birçok ilginç alandaki programcılar için - etkili olması için büyük donanım kaynakları gerektiren makine öğrenme tekniklerinin ortaya çıkması biraz bulaşık ısırmasıdır. Birkaç yıl içinde, sıradan bilgisayarlarda çalıştırmak için AlphaZero benzeri bir satranç programının yapılabilmesi oldukça olasıdır, ancak bunları oluşturmak için gereken donanım kaynakları , hobilerin veya ortalama büyüklükteki şirketlerin bütçesinin çok ötesinde olacaktır. Gönüllüler tarafından işletilen büyük bir bilgisayar ağına sahip açık kaynaklı bir projenin çalışması mümkün olabilir, ancak her birinin kendine özgü tuhaflıkları ve kişilikleri olan yüzlerce benzersiz satranç motoru güne gitmiş olacak.

Kaynak: https://www.chess.com/news/view/alphazero-reactions-f--top-gms-stockfish-author


2

Google'ın nihai hedefi daha iyi bir satranç motoru oluşturmaksa, karşılaştırılabilir bir donanım üzerinde çalışmak gerekecektir, ancak bu alıştırma aslında satrançla ilgili değildi. Satranç, AI'nın karmaşık görevleri sıfırdan öğrenme yeteneğini göstermenin uygun bir yoludur. Eğer Stockish'in belli belirsiz makul konfigürasyonlarına karşı iyi bir performans sergileyebilirse, kutuyu işaretleyin.

Google ekibinin satranç üzerinde fazla çaba harcamayacağını tahmin ediyorum; bunun yerine, AI'nın asla başaramadığı diğer problemlere geçeceklerdir.


+1 verdim çünkü aynı hislere sahibim.
SmallChess

Sesler muhtemel, eğer Alphazero sadece küçük bir farkla kaybetmiş olsaydı, onu yayınlayacaklarından şüpheliydim (yani, yine de balığa benzer güçte olacaktır).
user1583209

@ user1583209 Muhtemelen, Stockish'i ezmek için gereken asgari öğrenme zamanını bulmak için defalarca koştular. Sonra bir final çalışması yaptılar ve bu sonuçları yayınladılar.
T Scherer

1

Daha fazla bilgi edinmek için Talkchess Forum'u ziyaret edin, orada 3000 programcının bulunduğu bir yer var. Hepsi bir aldatmaca oldu. Alpha, SF'den 30 kat daha büyük bir donanımda, 4TPU'lar ve 64 çekirdekte oynadı. 4TPU'lar yaklaşık 1000 çekirdek veya daha fazlasıdır. Alpha sayısız en iyi GM kazanan oyun hakkında eğitilmiş açılış kitabını simüle etmişti. SF'nin çok az karması vardı. TC, hamle başına 1 dakikada sabitlendi, bu da, ileri zaman yönetimine sahip olan SF'ye yine zarar veriyor. TPU'lar daha fazla çekirdeğe sahip SMP verimsizliklerinden yoksundur, bu nedenle donanım avantajı daha da büyüktü. Vb, vb., Yani temelde, bu Google’da büyük bir tanıtım hareketi oldu. Halen, Alpha tek çekirdekte 2800 civarındadır, bu nedenle SF'nin altında 400 elos vardır ve bundan sonra, keşfedemeyeceği gelişmiş bir değerlendirmeye ihtiyaç duyacağı için gelecekte fazla ilerlemeyecektir. 4 saatlik mesele ile ilgili olarak, LOL, bu 48 saat önceydi, öyleyse şimdi Alpha 5000 elo'da mı? Haydi.


5
AlphaZero'nun Stockfish ile aynı şeyi yaptığına inanıyor gibisin, çünkü 1000 kat daha hızlı donanım kullanıyordu. Bu hiç doğru değil. Çok farklı bir yaklaşım kullanmaktadır ve bu yaklaşım çok kaynak yoğundur. Aslında, maç boyunca AlphaZero saniyede 80 bin pozisyonu değerlendirirken, Stockish saniyede 70 milyon pozisyonu izliyordu. Şimdi bana AlphaZero'nun daha güçlü bir donanım yüzünden kazandığını söyle. Tabii ki 64 işlemcide daha yavaş olacak ve kimin nasıl oynanacağını bilen var, ama asıl nokta AlphaZero'nun daha yüksek maliyetle de olsa daha iyisini yapması.
IA Petr Harasimovic

3
SF donanımı maliyeti 10 bin doların altında, Alpha biri 250 bin doların üzerinde. Sonuçları kendin çiz. NPS anlamsız ve her satranç programcısı bunu biliyor. Her türlü numarayı yapabilirsiniz, böylece nps azalır, ancak bu daha güçlü oynayacağınız anlamına gelmez. Bu yaklaşımı SF donanımına, SF'yi ise Alpha donanımına uyguladığını görmek isterim. Sonucu tahmin etmek? SF için +85 -0 = 15. Çok iyilerse, kodlarını yayınlamalarına izin verin.
Lyudmil Tsvetkov,

3
“Alpha, sayısız en iyi GM kazanan oyun hakkında eğitilmiş açılış kitabını simüle etmişti.” Simüle açılış kitabı, evet, ama GM oyunları konusunda eğitildi? Bunun için kaynağın var mı? Anladığım kadarıyla Alpha tamamen önyüklendi.
Akavall

0

Stockish CPU'larla sınırlıdır, bu nedenle GPU'ların yapabildiği seviyeye asla ölçeklendirilemez.

N CPU'lar ölçeği ise Gor matris hesaplamaları GPU'lar, n ile ölçek 3 Ölçeklerken daha iyi performans muhtemelen öyledir, bu tensör çekirdekler daha da optimize edilmiştir.


-2

İlk paragrafta daha ayrıntılı, ikinci kısa ve basit cevap üçüncü paragrafta durumla ilgili görüşlerim

AlphaZero ile donanımın oyun gücü üzerinde 0 etkisi vardır. Daha uzun sürebilir ama düşündüğü için değil. Sinirsel bir ağdır, yani onu bir vektörde beslediğiniz anlamına gelir (tek sütun tablo), dev bir tensörden basit bir matematik yapar (3 veya daha fazla boyutlu tablo) ve sonra cevabı tükürür. Stockish'in iyi olması için zamana ihtiyacı vardır, çünkü bir hareketin faydalı olup olmadığını görmek için olası konumları kontrol eder, bu yüzden soruna ne kadar uzun bakarsa kontrol edebilir.

Gerçekten benzer bir donanım kurulumu yok. Çünkü farklı ihtiyaçları var, Stockfish daha fazla pozisyonu analiz ederken, AlphaZero'nun bir hamle yapması gerekiyor. Ve insanlar üzgün çünkü AlphaZero'nun bilgisayarı teknik olarak çok daha güçlü ve bu konuda eşit olması gerektiğini düşünüyor. Ancak, AlphaZero antremandan sonra bu süper bilgisayara ihtiyaç duymuyor.

Bence her iki tarafa da ne verdikleri önemli değil. Bu yüzden bunu düşünüyorum, Stockish başlangıçta parçalar ve değerleri ile değerlendirirken, Alpha stratejik olarak neyin önemli olduğunu anlamak için (muhtemelen) milyonlarca oyun oynadı. Bu yüzden Alpha kesesinin, Stockish'ten çok daha fazla olmasına rağmen çok büyük konumsal avantajlar kazanıyor.


Bu açıkça yanlış. AlphaZero ağaç araması yapar. Daha fazla donanım daha güçlü hale getirir. Ve stok balıktan daha iyi oynamak için bir ton donanıma ihtiyacı var.
BlindKungFuMaster

Bu yazıdaki hiçbir şey doğru değil ...
SmallChess

Bu sistem 3 sinir ağına ve kısmi Monroe Carlo ağaç aramasına dayanıyor, bu yüzden ağaç aramayı kullanarak bu konuda haklısın. Oyun sırasında, değer ve politikaya bağlı olarak geliştirilen 2 sinir ağı ilkesini kullanır. Go, hesaplama gücü ile yapılamayan bir oyundur, çünkü astronomik olarak satrançtan daha karmaşıktır. Öyleyse kaba kuvvet algoritmasından ziyade bilgi işlem gücüne ihtiyaç duyduğuna inanıyorsam, o zaman sanrınız. Ya da bilgili özledim. Üçüncü sinir ağı, geri yayılma değişikliklerini tahmin ederek öğrenme sürecini denemek ve hızlandırmak için kullanılır. Alphazeros'un gücü ağlarda mcts değil.
Ezecal
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.