
Jujur, saya sangat kecewa dengan Habr. Mengapa tidak ada yang menyoroti hal seperti memenangkan pendekatan jaringan saraf dengan sumber
terbuka penuh, eh? Dan
data jaringan saraf terbuka sepenuhnya? Memang, yah, DeepMind Technologies menggambarkan
bagaimana mereka
mengajarkan AI bermain catur dengan sendirinya ... Hanya sekarang kode ditutup di sana, dan pelatihan berlangsung di cluster Google, dan tidak didistribusikan di Nvidia Turing dengan
kernel tensor , seperti dalam kasus ini. Mengapa saya harus mengedit
Wikipedia bahasa
Inggris sendiri untuk menarik perhatian?
Oke, sesuatu yang saya
lakukan terlalu jauh dengan emosi, saya kira. (Masih ada tautan dalam komentar yang menyebutkan leela.) Artikel ini adalah percobaan: cara untuk menunjukkan kepada saya bagaimana
artikel saya yang lain, yang terlalu populer, menurut pendapat saya, akan memengaruhi ini.
Cerita dimulai ketika saya memutakhirkan Nvidia Geforce GTX 770 lama saya ke RTX 2080 Ti. Nah, mengingat
berapa biayanya, saya ingin memaksimalkannya. Pada awalnya saya bermain-main dengan
Ray Tracing , membaca tentang cara
kerjanya dengan CUDA melalui
NVIDIA OptiX . Saya membaca tentang bagaimana satu orang berhasil
menggunakan inti RT untuk tujuan lain. Mengulanginya. Tetapi jumlah komentar yang mengatakan bahwa
jaket kulit orang yang bercerai sangat hebat sehingga saya bosan membacanya. Terutama mengingat saya tahu bahwa penelusuran jalur adalah algoritma terpenting dari industri film dan game, dan ini bukan penemuan Nvidia. Tidak semuanya. Bahkan perangkat keras.
Kemudian saya memutuskan untuk melihat ke arah
NVENC . Saya umumnya pecinta freebie. Ternyata, ada banyak di encoder perangkat keras ini. Pertama, artikel paling populer tentang Habr tentang NVENC berbicara tentang bagaimana
YourChief , dipersenjatai dengan debugger, mampu menembus batas jumlah stream encoding simultan untuk itu (dan kartu saya, ternyata, bisa
luar biasa ). Selain itu, tambalan, seperti biasa terjadi, hanya mengubah
beberapa byte .
Kemudian ternyata teknologi NvFBC (pengambilan ultra-cepat bingkai penuh) juga dapat diaktifkan pada kartu geforce, jika Anda menggunakan tambalan ajaib
di atas kerangka kaca Looking, sebelum mengaktifkan
teknologi ini (tambalan dapat dilihat di
sini ).
Lalu saya ingin warna 30-bit di Photoshop. Mengulang keberhasilan orang lain, saya menemukan byte yang membatasi dukungan OpenGL dalam mode berjendela (seperti pada DirectX dalam mode berjendela dan layar penuh dan dalam OpenGL dalam mode layar penuh, warna 30-bit bekerja dengan cara ini). Dan Nvidia menulis tentang itu, berjanji untuk mengungkap patch. Mungkin ini kebetulan, tetapi mereka menghapus
pembatasan ini di Gamescom 2019. Tetapi masih ada dukungan tidak resmi untuk HDR10 + (metadata HDR dinamis).
Jadi, sekarang saatnya untuk akselerator matriks, akselerator saraf, tensor nuclei, sebut saja apa yang Anda suka. Itu sedikit lebih rumit. Saya akan mengatakan segera bahwa saya ketiduran di jaringan saraf di universitas, jadi saya harus mencari tahu. Tetapi setelah menonton beberapa
video di mana seorang pria menelurkan ribuan burung untuk melewati Flappy Bird, dan setelah beberapa generasi burung-burung ini melewati rintangan seperti jarum jam, saya terinspirasi oleh ide tersebut. Pertanyaannya adalah apa yang harus diluncurkan. Dan kemudian saya ingat bahwa Google baru-baru ini membual bahwa mereka telah mengalahkan
pemain Go
terbaik mereka dengan AI mereka, yang dianggap mustahil sebelum menggunakan algoritma "normal". Jujur, dia mencintai Google DeepMind versi rumit. Ya, itulah yang menciptakannya: AlphaGo Lee → AlphaGo Master → AlphaGo Zero → AlphaZero (yang terakhir sudah bisa dalam catur, dan di shogov, dan di mana, dan secara umum, karena mereka menerapkan mekanisme yang panjang untuk menjelaskan aturan permainan, itu poker dapat diadaptasi). Saya tahu poker, jika ada, jangan menulis tentang itu, kalau tidak saya tahu Anda.
Pencarian google saya "kode sumber alphazero" tidak menghasilkan apa-apa. Ya, ternyata mereka tidak berpikir untuk membuka kode! Tetapi saya tidak bisa mempercayainya. Yaitu, Elon Musk adalah kependekan dari OpenAI (konon agar ketika AI berkembang, ia lebih dipelajari, atau sesuatu, dan lebih bebas dari hak cipta penulis). Dan di sini di reddit saya menemukan sebuah
tautan . Ternyata, beberapa orang yang penuh kasih dari DeepMind masih memutuskan untuk memberikan bagian dari kode sumber, dengan mencetaknya langsung dalam file pdf. / facepalm
Nah, di sini saya langsung
mengunduh dan jaringan syaraf
dari sini . Dan setelah bermain dengannya, saya menyadari bahwa untuk beberapa alasan tidak bermain catur. Butuh waktu sekitar 20 menit untuk memahami bahwa itu berfungsi, bukan catur, dan 40 menit lagi untuk menemukan
versi untuk catur. Dan di sini saya terkejut. Pertama, mereka telah berhasil mengimplementasikan cuda backend dengan dukungan untuk kernel tensor dari Nvidia baik untuk game dan untuk pelatihan (
sukarela dan didistribusikan , apalagi). Kedua, tepat pada saat itu mereka berduel dengan Stockfish untuk posisi 1 di peringkat catur komputer! Saya tidak tidur setengah malam, menonton super final
TCEC dan jaringan saraf menang! Saya segera berlari untuk mengedit Wikipedia, yang pada saat itu hanya memiliki sedikit informasi, dan keesokan harinya semua orang menulis tentang itu! Ternyata, selama pertandingan leela hanya menggunakan sekelompok 2080 Ti dan 2080, yaitu kartu saya cukup. Setelah mengunduh jaringan saraf
dari sini , saya dengan tenang meluncurkannya di komputer saya! Ya, tentu saja, jaringan syaraf itu menghancurkan saya. Inilah cara mengaturnya.
Secara pribadi, saya benar-benar menggunakan shell explorer Catur HIARCS. Lebih lanjut, saya juga memberi orang-orang di android untuk
menguji leela di DroidFish. Android menggunakan jaringan suling, lebih sederhana dan lebih kecil, tetapi masih tidak lemah.
Pada prinsipnya, saya bisa mengecat instruksi instalasi lebih detail, menambahkan tautan, menulis: =))
Omong-omong, pertanyaan seperti itu, adakah yang pernah mendengar tentang penggunaan NVENC dan NVDEC yang tidak standar? Sepertinya itu dapat diadaptasi untuk mempercepat operasi matematika. Saya membacanya di suatu tempat, tetapi tidak ada detailnya.