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?)
Jawaban:
Ini Google yang sedang Anda bicarakan! Jadi jawabannya jelas "Tidak".
Dari perangkat keras kertas asli yang digunakan untuk inisialisasi dan pelatihan -
dan perangkat keras yang digunakan untuk gim -
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 -
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.
sumber
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.
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:
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):
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 :
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:
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.
sumber
Salah satu penulis asli Stockfish menjawab keluhan spesifik yang Anda sebutkan di sini:
Sumber: https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author
sumber
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.
sumber
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.
sumber
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.
sumber
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.
sumber