Perangkat keras yang digunakan dalam pertandingan AlphaZero vs Stockfish

22

Saya mengerti bahwa AlphaZero harus menggunakan perangkat keras yang berbeda dari Stockfish biasa. Saya berharap bahwa perangkat keras memiliki efek besar pada kekuatan mesin. Itu sebabnya saya bertanya-tanya apakah ada upaya yang dilakukan untuk menyediakan perangkat keras yang sebanding dengan keduanya. Juga apa artinya "sebanding" di sini?

Secara khusus saya membaca bahwa orang mengeluh tentang:

  • Stockfish hanya diberi 1 GB cache, dan
  • batas waktu 1 menit / langkah (Bagaimana ini merugikan Stockfish?)
pengguna1583209
sumber
Ukuran hash , bukan cache, rupanya.
Federico Poloni
2
Saya sangat menyarankan menanyakan hal ini di forum teknis (seperti AI Stack Exchange , mungkin berjudul "Keadilan evaluasi dalam pertandingan AlphaZero vs Stockfish"), karena jawabannya di sini tidak baik.
Veedrac

Jawaban:

20

Itu sebabnya saya bertanya-tanya apakah ada upaya yang dilakukan untuk menyediakan perangkat keras yang sebanding dengan keduanya.

Ini Google yang sedang Anda bicarakan! Jadi jawabannya jelas "Tidak".

Dari perangkat keras kertas asli yang digunakan untuk inisialisasi dan pelatihan -

Pelatihan dilanjutkan untuk 700.000 langkah (mini-batch dengan ukuran 4.096) mulai dari parameter yang diinisialisasi secara acak, menggunakan 5.000 TPU generasi pertama (15) untuk menghasilkan game permainan mandiri dan 64 TPU generasi kedua untuk melatih jaringan saraf

dan perangkat keras yang digunakan untuk gim -

AlphaZero dan AlphaGo Zero sebelumnya menggunakan mesin tunggal dengan 4 TPU Stockfish dan Elmo bermain di tingkat keterampilan terkuat mereka menggunakan 64 benang dan ukuran hash 1GB.

Jadi, AlphaZero menggunakan perangkat keras khusus yang dikembangkan oleh Google. Ini menggunakan Unit Prosesor Tensor (TPU) khusus daripada Central Processing Unit (CPU) umum seperti yang tersedia secara komersial.

Ini adalah bagaimana Wikipedia menggambarkan TPU generasi kedua yang mereka gunakan -

TPU generasi kedua diumumkan pada Mei 2017. Google menyatakan desain TPU generasi pertama terbatas pada bandwidth memori, dan menggunakan 16 GB Memori Bandwidth Tinggi dalam desain generasi kedua meningkatkan bandwidth hingga 600 GB / s dan kinerja hingga 45 TFLOPS. TPU tersebut kemudian disusun menjadi modul TFLOPS 4-chip 180-chip

Mereka menggunakan 4 TPU untuk game, jadi kekuatan pemrosesan 180 TFLOPS. Catatan TFLOPS = 1000 miliar operasi floating point per detik.

Sebagai perbandingan, chip terbaru Intel yang paling kuat adalah prosesor Core i9 Extreme Edition yang beroperasi pada 1 TFLOP. Bagian atas baris I7 yang akan Anda temukan di mesin permainan biasanya sekitar 100 GFLOP (yaitu sepersepuluh TFLOP).

Saya pikir itu adil untuk mengatakan bahwa AlphaZero menggunakan gorila 800 pon dari konfigurasi perangkat keras dibandingkan dengan mouse Stockfishes.

Menara Brian
sumber
1
FLOPS singkatan dari operasi floating point per detik. Aritmatika titik apung mungkin tidak digunakan sama sekali dalam algoritma inti dari Stockfish dan AlphaZero. Jadi jumlah FLOPS sebenarnya bukan ukuran yang berarti dari kecepatan prosesor yang relevan dengan mesin catur.
René Pijl
9
Sebaliknya, saya percaya jaring saraf menggunakan aritmatika floating point cukup intensif. (Tapi tentu saja ucapan Anda masuk akal dan berlaku untuk Stockfish.)
Federico Poloni
3
Perbandingan yang jauh lebih tepat adalah dengan GPU; NVIDIA Tesla V100 dapat melakukan 120 TFLOPS, naik dari generasi sebelumnya (P100) yang hanya melakukan sekitar 20. CPU dioptimalkan sangat berbeda dari GPU yang melakukan banyak sekali angka.
Nick T
12

Saya pikir itu yang terbaik jika saya menguraikan poin kedua Anda dengan contoh langkah dalam game 1 antara AlphaZero dan Stockfish yang juga berfungsi untuk memuaskan rasa ingin tahu saya hari ini.

batas waktu 1 menit / langkah (Bagaimana ini merugikan Stockfish?)

Performa Stockfish tergantung pada batas waktu dan konfigurasi perangkat keras, jadi pikirkan ketika seseorang menggandakan utas CPU, maka Stockfish membutuhkan lebih sedikit waktu (tidak perlu setengah) untuk menemukan solusinya daripada dengan konfigurasi pertama.

Pada laporan pertama yang diposting di Chess.com seseorang mengklaim bahwa Stockfish tidak bermain secara optimal karena dia tidak dapat mereproduksi hasil yang sama menggunakan Stockfish yang sama di komputernya. Dia mengatakan bahwa pada posisi di bawah (game 1 - move 11) Stockfish memainkan Kg1-h1 (memindahkan rajanya) yang tidak masuk akal sama sekali. Di sisi lain, stockfish di komputernya menunjukkan gerakan yang lebih berkembang seperti Be3 (memindahkan uskup kotak gelap), mari kita lihat posisi:

Game 1 bergerak 11

Ya, itu adalah langkah pasif dan sepertinya Stockfish seharusnya memainkan langkah yang lebih berkembang. Tapi dia salah. Mengapa? Karena dia menjalankan Stockfish selama 15 detik, dan jika dia menjalankannya selama satu jam, dia akan mendapatkan Kg1-h1 sebagai langkah terbaik di posisi itu. Stockfish mengubah keputusannya ketika menganalisis semua kemungkinan pergerakan secara lebih mendalam. Inilah yang awalnya saya katakan dalam balasan saya :

Saya menjalankan stockfish terbaru pada posisi (pada langkah 11):

  • Pada awalnya, ini memberikan b4 sebagai langkah optimal ketika mesin berjalan sekitar satu menit. Setelah itu, diputuskan Be3 lebih baik.
  • Tetapi setelah 5 menit pada perangkat keras saya yang berjalan pada 1.400 k node / s itu akan memutuskan untuk pergi dengan Kh1 sebagai langkah optimal.

  • Di koran, dikatakan bahwa stockfish menghitung 70.000k posisi per detik dan dijalankan selama 1 menit per gerakan, itu sekitar 50 kali perangkat keras saya, jadi saya akan membiarkan tambang berjalan selama 50 menit ... Kg1-h1 masih merupakan pilihan untuk Stockfish.

Batas waktu adalah kuncinya

Dalam kasus di atas, mungkin tidak masalah jika Stockfish berlari dua kali karena keputusannya akan sama, tetapi pada langkah selanjutnya pasti akan :

masukkan deskripsi gambar di sini

Di posisi ini, Stockfish memilih untuk memindahkan pion di sisi kiri ( a4-a5 ). Katakanlah saya memiliki komputer yang menjalankan mesin Stockfish pada kecepatan 1.400 k node per detik, itu sekitar 50 kali lebih rendah daripada Stockfish di game nyata ( Di koran , katanya 70.000kn / s). Jadi saya bisa mensimulasikan permainan jika saya menjalankannya selama 50 menit di setiap gerakan. Baik.

Saya menjalankan analisis Stockfish pada posisi di atas dan saya mendapatkan hasil sebagai berikut:

  • Stockfish mulai menyarankan beberapa gerakan, tetapi setelah 6 menit di komputer saya (sesuai dengan 7,2 detik pada Stockfish dalam permainan nyata) itu lebih suka a4-a5 seperti permainan berjalan .

Itu bagus, tapi saya tetap menjalankannya selama 50 menit untuk mencapai perhitungan Stockfish dalam permainan yang diizinkan 1 menit:

Kebenaran yang menyedihkan adalah bahwa saya percaya Stockfish kehilangan semua gimnya karena batas waktu. Stockfish mendapatkan pencarian dan evaluasi yang lebih mendalam seiring berjalannya waktu dan dalam permainan itu tidak diizinkan untuk menggunakan buku pembuka yang membuatnya mempertimbangkan banyak gerakan di kedalaman yang dangkal. Perhatikan bahwa dalam permainan sebenarnya a4-a5 dimainkan yang menunjukkan bahwa (dengan asumsi itu dapat mengevaluasi 70 juta posisi per detik) Stockfish dalam permainan tidak menghabiskan lebih dari 21,6 detik untuk bergerak. Jika tidak, itu akan mengubah keputusannya menjadi tiga gerakan lain dalam permainan yang sebenarnya. Alasan untuk ini masih belum jelas bagi saya karena Stockfish saya juga mengkonsumsi lebih sedikit memori (sekitar ~ 130MB RAM dibandingkan dengan 1GB yang disebutkan dalam kertas asli , dengan asumsi semua itu masuk ke tabel hash).


Kesimpulan

Perangkat keras yang menjalankan Stockfish, seperti yang saya tunjukkan, adalah yang terbaik 18 kali lebih cepat daripada milik saya (Pembaruan: pada satu inti) berdasarkan langkah yang saya analisis. Saya tidak yakin apakah AlphaZero benar-benar dapat menggunakan perangkat keras seperti itu untuk melatih jaringannya dalam 4 jam, saya hanya bisa menganggap itu terlalu rendah untuk permainan seperti catur. Selain itu, AlphaZero menghabiskan waktu itu untuk belajar yang juga mencakup membangun bukaan yang solid (dan seperti yang ditunjukkan makalah ini, preferensi atas bukaan tertentu). Di sisi lain, Stockfish cacat pada bukaan, dan itu tidak mengevaluasi 70 juta posisi per detik selama 60 detik pada setiap gerakan.

Sebagai catatan terakhir, semua hal yang saya katakan didasarkan pada asumsi saya. Tentu saja, hasil AlphaZero dan permainannya sangat menarik bagi saya. Namun, saya ingin sekali melihat permainan di mana permainan Stockfish sama seperti yang saya dapatkan di komputer saya juga. Artinya, lebih banyak waktu dan buku pembuka diperbolehkan. Juga mudah untuk mendapatkan output dari analisis Stockfish di setiap gerakan, dan saya berharap mereka merilisnya untuk menunjukkan seberapa baik kinerjanya.

ReZzT
sumber
1
Mengenai batas waktu, Gambar 2 di kertas AlphaZero menunjukkan yang sebaliknya: Stockfish lebih baik dalam anggaran yang lebih rendah, tetapi skala lebih buruk, ketika lebih banyak daya tersedia. arxiv.org/pdf/1712.01815.pdf
old-ufo
1
@ old-ufo Terima kasih telah menunjukkan itu. Seperti yang saya katakan, kinerja Stockfish (dan AlphaZero) tergantung pada perangkat keras serta batas waktu. Sebagai contoh, jika kita memberi Stockfish lebih banyak perangkat keras (dan AlphaZero lebih sedikit) dan meregenerasi angka itu, garisnya dapat diubah sehingga selalu berada di atas garis AlphaZero. Jadi saya kira itu poin yang baik dalam membandingkan perangkat keras untuk kedua sistem yang juga menjawab pertanyaan utama.
ReZzT
4

Salah satu penulis asli Stockfish menjawab keluhan spesifik yang Anda sebutkan di sini:

Sementara itu Chess.com juga menerima komentar panjang dari salah satu penulis Stockfish asli, Tord Romstad, yang akan kami berikan sepenuhnya:

Hasil pertandingan sendiri tidak terlalu berarti karena pilihan kontrol waktu dan pengaturan parameter Stockfish yang agak aneh: Permainan dimainkan pada waktu yang tetap 1 menit / bergerak, yang berarti bahwa Stockfish tidak menggunakan heuristik manajemen waktu ( banyak upaya telah dilakukan untuk membuat Stockfish mengidentifikasi poin-poin penting dalam permainan dan memutuskan kapan harus menghabiskan waktu ekstra untuk bergerak; pada waktu yang tetap per gerakan, kekuatannya akan sangat berkurang). Versi Stockfish yang digunakan adalah satu tahun, bermain dengan lebih banyak utas pencarian daripada yang pernah menerima jumlah pengujian yang signifikan, dan memiliki tabel hash terlalu kecil untuk jumlah utas. Saya percaya persentase pengundian akan jauh lebih tinggi dalam pertandingan dengan kondisi yang lebih normal.

Di sisi lain, tidak ada keraguan bahwa AlphaZero bisa bermain lebih baik jika lebih banyak pekerjaan telah dimasukkan ke dalam proyek (meskipun "4 jam belajar" yang disebutkan di koran sangat menyesatkan ketika Anda memperhitungkan sumber daya perangkat keras besar yang digunakan selama 4 jam itu). Tetapi bagaimanapun juga, Stockfish vs AlphaZero sangat mirip dengan perbandingan apel dengan orangutan. Salah satunya adalah program catur konvensional yang berjalan di komputer biasa, yang lain menggunakan teknik yang berbeda secara mendasar dan berjalan pada perangkat keras yang dirancang khusus yang tidak tersedia untuk pembelian (dan akan jauh dari anggaran pengguna biasa jika itu).

Dari sudut pandang lain, sudut apel vs orangutan adalah hal yang paling menarik tentang ini: Kami sekarang memiliki dua entitas buatan manusia yang sangat berbeda (baik pada perangkat keras dan perangkat lunak) yang keduanya menampilkan kemampuan bermain catur manusia super. Itu jauh lebih menarik daripada program catur lain yang melakukan hal yang sama dengan program catur yang ada, hanya sedikit lebih baik. Selain itu, kemampuan beradaptasi pendekatan AlphaZero ke domain baru membuka kemungkinan yang menarik untuk masa depan.

Untuk pemain catur yang menggunakan program catur komputer sebagai alat, terobosan ini tidak akan berdampak besar, setidaknya dalam jangka pendek, karena kurangnya perangkat keras yang sesuai dengan harga yang terjangkau.

Untuk programmer mesin catur - dan untuk programmer di banyak domain menarik lainnya - munculnya teknik pembelajaran mesin yang membutuhkan sumber daya perangkat keras yang besar untuk menjadi efektif sedikit mengecewakan. Dalam beberapa tahun, sangat mungkin bahwa program catur seperti AlphaZero dapat dibuat untuk berjalan di komputer biasa, tetapi sumber daya perangkat keras yang diperlukan untuk membuatnya masih jauh melebihi anggaran para penggemar hobi atau perusahaan berukuran sedang. Ada kemungkinan bahwa proyek sumber terbuka dengan jaringan komputer terdistribusi besar yang dijalankan oleh sukarelawan dapat bekerja, tetapi hari-hari ratusan mesin catur yang unik, masing-masing dengan kebiasaan dan kepribadian masing-masing, akan hilang.

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

Xonatron
sumber
2

Menjalankan pada perangkat keras yang sebanding akan diperlukan jika tujuan akhir Google adalah untuk membangun mesin catur yang unggul, tetapi latihan ini tidak benar-benar tentang catur. Catur hanyalah cara mudah untuk menunjukkan kemampuan AI untuk mempelajari tugas-tugas rumit dari awal. Jika itu dapat berkinerja baik terhadap beberapa konfigurasi Stockfish yang samar-samar masuk akal, kotak itu dicentang.

Saya memperkirakan tim Google tidak akan menghabiskan lebih banyak upaya untuk catur; sebaliknya, mereka akan beralih ke masalah lain yang AI tidak pernah bisa menyelesaikannya.

T Scherer
sumber
Saya memberi +1 karena saya memiliki perasaan yang sama.
SmallChess
Kedengarannya mungkin, meskipun saya ragu mereka akan menerbitkannya, jika Alphazero kalah hanya dengan selisih yang kecil (artinya itu masih memiliki kekuatan yang sebanding dengan stockfish).
user1583209
@ user1583209 Mereka mungkin menjalankannya berkali-kali untuk mencari tahu jumlah waktu belajar minimum yang diperlukan untuk menghancurkan Stockfish. Kemudian mereka melakukan lari terakhir dan menerbitkan hasil itu.
T Scherer
1

Kunjungi Forum Talkchess untuk tahu lebih banyak, di sana Anda akan menemukan sekitar 3000 programmer. Ini semua scam. Alpha bermain pada perangkat keras 30 kali lebih besar dari SF, 4TPU vs 64 core. 4TPU sekitar 1000 core atau lebih. Alpha telah mensimulasikan buku pembuka, dilatih pada banyak game pemenang GM teratas. SF memiliki hash yang sangat sedikit. TC diperbaiki pada 1 menit per gerakan, yang lagi-lagi merugikan SF, yang memiliki manajemen waktu yang canggih. TPU tidak memiliki inefisiensi SMP dengan lebih banyak inti, sehingga keunggulan perangkat keras bahkan lebih besar. Dll, dll., Jadi pada dasarnya, ini hanya aksi publisitas besar di pihak Google. Saat ini, Alpha adalah sekitar 2800 pada inti tunggal, jadi 400 elo di bawah SF, dan tidak akan maju banyak di masa depan, karena, mulai sekarang, perlu evaluasi lanjutan yang tidak akan dapat ditemukan. Mengenai masalah 4 jam, yah, LOL, ini 48 jam yang lalu, jadi sekarang Alpha ada di 5000 elo? Ayolah.

Lyudmil Tsvetkov
sumber
5
Anda tampaknya percaya bahwa AlphaZero melakukan hal yang sama dengan Stockfish, hanya 1000 kali lebih cepat karena menggunakan perangkat keras 1000 kali lebih kuat. Ini tidak benar sama sekali. Ini menggunakan pendekatan yang sangat berbeda dan pendekatan itu sangat intensif sumber daya. Faktanya, selama pertandingan AlphaZero mengevaluasi 80 ribu posisi per detik sementara Stockfish mencatat 70 juta posisi per detik. Sekarang beri tahu saya bahwa AlphaZero menang karena perangkat keras yang lebih kuat. Tentu saja pada 64 CPU itu akan lebih lambat dan siapa yang tahu bagaimana itu akan bermain tetapi intinya adalah bahwa AlphaZero melakukannya dengan lebih baik, meskipun dengan biaya lebih tinggi.
IA Petr Harasimovic
3
Perangkat keras SF harganya kurang dari $ 10rb, Alpha satu lebih dari $ 250rb. Buat kesimpulan sendiri. Nps tidak ada artinya, dan setiap programmer catur tahu itu. Anda dapat melakukan semua jenis trik sehingga nps menjadi lebih rendah, tetapi itu tidak berarti Anda akan bermain lebih kuat. Saya ingin melihatnya menerapkan pendekatan itu pada perangkat keras SF dan SF pada perangkat keras Alpha. Tebak hasilnya? +85 -0 = 15 untuk SF. Jika mereka hebat, biarkan mereka mempublikasikan kodenya.
Lyudmil Tsvetkov
3
"Alpha telah mensimulasikan buku pembuka, dilatih pada game pemenang GM yang tak terhitung jumlahnya." Buku pembuka yang disimulasikan, ya, tetapi dilatih di game GM? Apakah Anda punya sumber untuk ini? Pemahaman saya adalah bahwa Alpha sepenuhnya bootstrap.
Akavall
0

Stockfish dibatasi untuk CPU sehingga tidak akan pernah bisa skala ke level yang GPU mampu.

Matriks perhitungan menghitung skala GPU dengan n, sementara skala CPU dengan n 3 , core tensor ini lebih dioptimalkan sehingga kemungkinan kinerja lebih baik saat Anda skala.

Jameis terkenal
sumber
-2

Paragraf pertama lebih detail, jawaban singkat dan sederhana paragraf ketiga pendapat saya tentang situasi

Dengan AlphaZero perangkat keras memiliki 0 efek pada kekuatan permainannya. Mungkin butuh waktu lebih lama tetapi bukan karena itu berpikir. Ini adalah jaringan saraf, yang berarti Anda memberinya info dalam vektor (tabel kolom tunggal) yang ia lakukan dengan matematika sederhana melalui tensor raksasa (tabel 3 atau lebih dimensi) lalu ia mengeluarkan jawabannya. Stockfish perlu waktu untuk menjadi baik karena memeriksa posisi yang memungkinkan untuk melihat apakah suatu gerakan menguntungkan, sehingga semakin lama ia melihat masalah, semakin banyak posisi / gerakan yang dapat ia periksa.

Sebenarnya tidak ada pengaturan perangkat keras yang sebanding. Karena mereka memiliki kebutuhan yang berbeda, Stockfish perlu menganalisis lebih banyak posisi sementara AlphaZero hanya perlu bergerak. Dan orang-orang kesal karena komputer AlphaZero secara teknis jauh lebih kuat dan mereka pikir mereka harus sama dalam hal itu. Tapi, AlphaZero tidak membutuhkan superkomputer itu setelah pelatihan.

Menurut saya itu tidak masalah apa yang mereka berikan kepada kedua belah pihak, kecuali Stockfish memiliki jumlah waktu yang tidak masuk akal itu mungkin akan mengikat beberapa pertandingan lagi tetapi secara umum efek yang sama akan terjadi. Inilah sebabnya saya pikir ini, Stockfish awalnya mengevaluasi dengan potongan-potongan dan nilai-nilainya sementara, Alpha bermain (mungkin) jutaan game untuk menyadari apa yang penting secara strategis. Itulah sebabnya kantung Alpha jauh lebih banyak daripada Stockfish, tetapi mendapatkan keuntungan posisi yang sangat besar.

Ezecal
sumber
Itu salah. AlphaZero melakukan pencarian pohon. Semakin banyak perangkat keras membuatnya semakin kuat. Dan itu membutuhkan satu ton perangkat keras untuk bermain lebih baik daripada ikan.
BlindKungFuMaster
Tidak ada dalam posting ini yang benar ...
SmallChess
Sistem ini didasarkan pada 3 neuralnet dan pencarian parsial pohon Monroe Carlo, sehingga Anda benar tentang hal itu menggunakan pencarian pohon. Selama bermain itu menggunakan 2 prinsip jaringan saraf yang dikembangkan dalam alphago of value dan kebijakan. Go adalah permainan yang tidak dapat dilakukan melalui kekuatan komputasi karena secara astronomis lebih kompleks daripada catur. Jadi jika saya percaya bahwa itu membutuhkan daya komputasi lebih dari algoritma brute force maka Anda delusi. Atau ketinggalan informasi. Jaringan syaraf ketiga digunakan untuk mencoba dan mempercepat proses belajar dengan menebak perubahan propagasi belakang. Kekuatan Alphazeros ada di jaring bukan mcts.
Ezecal