Changes

Jump to: navigation, search

NNUE

10,011 bytes added, 00:40, 13 January 2021
no edit summary
'''[[Main Page|Home]] * [[Learning]] * [[Neural Networks]] * NNUE'''
[[FILE:SekienNue.jpg|border|right|thumb|250px| [[:Category:Toriyama Sekien|Toriyama Sekien]] - Nue (鵺) <ref>[https://en.wikipedia.org/wiki/Nue Nue] (鵺) from the [https://en.wikipedia.org/wiki/Konjaku_Gazu_Zoku_Hyakki Konjaku Gazu Zoku Hyakki] (今昔画図続百鬼) by [[:Category:Toriyama Sekien|Toriyama Sekien]], circa 1779, [https://en.wikipedia.org/wiki/Wikimedia_Commons Wikimedia Commons]</ref> <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=74611&start=2 Re: What does NNUE actually mean] by [[ Henk Drost]], [[CCC]], July 29, 2020</ref> ]]
'''NNUE''', (&#398;U&#1048;&#1048; Efficiently Updatable Neural Networks)<br/>
=[[Stockfish NNUE]]=
As reported by [[Henk Drost]] <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=74059 Stockfish NN release (NNUE)] by [[Henk Drost]], [[CCC]], May 31, 2020</ref>,
[[Hisayori Noda|Nodchip]] incorporated NNUE into the chess playing [[Stockfish ]] 10 as a proof of concept.
[[Stockfish NNUE]] was born, and in summer 2020 the computer chess community bursts out enthusiastically due to its rapidly raising [[Playing Strength|playing strength]] with different networks trained using a mixture of [[Supervised Learning|supervised]] and [[Reinforcement Learning|reinforcement learning]] methods -
despite the approximately halved search speed, becoming stronger than its original <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=74484 Can the sardine! NNUE clobbers SF] by [[Henk Drost]], [[CCC]], July 16, 2020</ref>, finally responsible for the huge [[Playing Strength|strength]] improvement of '''Stockfish 12'''.
=NNUE Engines=
''see [[:Category:NNUE]]''
Being tempted by the success of [[Stockfish NNUE]] and attracted by how easy the method and small the code is, many engine developers have started testing and applying [[NNUE]]. For quick trials and evaluating before going into serious development, some of them borrowed and/or rewrote NNUE code and use networks from Stockfish NNUE. Most of them reported positive results, such as [[David Carteau]] with [[Orion]] <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=74828 Orion 0.7 : NNUE experiment] by [[David Carteau]], [[CCC]], August 19, 2020</ref>, [[Ehsan Rashid]] with [[DON]] <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=72613&start=320#p856640 Re: New engine releases 2020...Don NNUE 2020?] by supersharp77, [[CCC]], August 19, 2020</ref>, various [[Stockfish#Derivatives|Stockfish derivatives]] by [[Michael Byrne]] <ref>[http://talkchess.com/forum3/viewtopic.php?f=2&t=74825 ... the last shall be first ...] by [[Michael Byrne|MikeB]], [[CCC]], 19 Aug 2020</ref>, and [[Volodymyr Shcherbyna]] with [[Igel]] <ref>[http://talkchess.com/forum3/viewtopic.php?f=2&t=67890&start=10#p856742 Introducing Igel chess engine] by [[Volodymyr Shcherbyna]], [[CCC]], 20 Aug 2020</ref> using the ''Night Nurse'' NNUE net by [[Dietrich Kappe]] <ref>[http://talkchess.com/forum3/viewtopic.php?f=2&t=74837 Night Nurse 0.2] by [[Dietrich Kappe]], [[CCC]], August 19, 2020</ref>. [[Daniel Shawul]] added NNUE support à la [[CFish]] into his [[Scorpio#Bitbases|egbbdll]] probing library of [[Scorpio]] <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75400&start=22 Re: Hacking around CFish NNUE] by [[Daniel Shawul]], [[CCC]], October 15, 2020</ref> <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75415&start=3 Re: How to scale stockfish NNUE score?] by [[Daniel Shawul]], [[CCC]], October 17, 2020</ref>, making it even easier to use NNUE. The promising engines [[Halogen]] 7 and 8 by [[Kieren Pearson]], and [[Seer]] by [[Connor McMonigle]] came with their own, distinct NNUE implementations, and on November 10, 2020, the commercial [[Dragon by Komodo Chess]] aka [[Komodo]] NNUE appeared <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75748 Dragon by Komodo Chess] by [[Larry Kaufman]], [[CCC]], November 10, 2020</ref>, trying to close the gap to Stockfish NNUE.
=NN Structure=
The neural network of Stockfish NNUE consists of four layers, W1 through W4. The input layer W1 is heavily overparametrized, feeding in the [[Board Representation|board representation]] for various king configurations.
The efficiency of the net is due to [[Incremental Updates|incremental update]] of W1 in [[Make Move|make]] and [[Unmake Move|unmake move]],
where only a fraction of its neurons need to be recalculated. The remaining three layers with 32x2x256, 32x32 and 32x1 weights are computational less expensive, best calculated using appropriate [[SIMD and SWAR Techniques|SIMD instructions]] like [[AVX2]] on [[x86-64]], or if available, [[AVX-512]].
NNUE structure with [[Incremental Updates|incremental update]] <ref>Image from [[Yu Nasu]] ('''2018'''). ''&#398;U&#1048;&#1048; Efficiently Updatable Neural-Network based Evaluation Functions for Computer Shogi''. Ziosoft Computer Shogi Club, [https://github.com/ynasu87/nnue/blob/master/docs/nnue.pdf pdf] (Japanese with English abstract)</ref>
=See also=
* [[Cerebrum]]
* [[David E. Moriarty#SANE|SANE]]
=Publications=
* [[Yu Nasu]] ('''2018'''). ''&#398;U&#1048;&#1048; Efficiently Updatable Neural-Network based Evaluation Functions for Computer Shogi''. Ziosoft Computer Shogi Club, [https://github.com/ynasu87/nnue/blob/master/docs/nnue.pdf pdf], [https://www.apply.computer-shogi.org/wcsc28/appeal/the_end_of_genesis_T.N.K.evolution_turbo_type_D/nnue.pdf pdf] (Japanese with English abstract)[https://github.com/asdfjkl/nnue GitHub - asdfjkl/nnue translation] <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=76250 Translation of Yu Nasu's NNUE paper] by [[Dominik Klein]], [[CCC]], January 07, 2021</ref>
=Forum Posts=
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=74058 Stockfish NNUE] by [[Henk Drost]], [[CCC]], May 31, 2020 » [[Stockfish]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=74059 Stockfish NN release (NNUE)] by [[Henk Drost]], [[CCC]], May 31, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=74148 NNUE shared library and tools] by [[Adam Treat]], [[CCC]], June 10, 2020
===July===
* [http://talkchess.com/forum3/viewtopic.php?t=74480 Lizard-NNUE Experiment NOT bad with NNUE Net Evaluation...] by Nancy M Pichardo, [[CCC]], July 15, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=74484 Can the sardine! NNUE clobbers SF] by [[Henk Drost]], [[CCC]], July 16, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=74531 NNUE accessible explanation] by [[Martin Fierz]], [[CCC]], July 21, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=74611 What does NNUE actually mean] by Paloma, [[CCC]], July 29, 2020
===August===
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=74705 What happens with my hyperthreading?] by [[Kai Laskos]], [[CCC]], August 06, 2020 » [[Stockfish NNUE]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=73521&start=59 Re: Minic version 2] by [[Vivien Clauzon]], [[CCC]], August 08, 2020 » [[Minic]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=74777 Neural Networks weights type] by [[Fabio Gobbato]], [[CCC]], August 13, 2020 » [[Stockfish NNUE]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=74828 Orion 0.7 : NNUE experiment] by [[David Carteau]], [[CCC]], August 19, 2020 » [[Orion]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=74837 Night Nurse 0.2] by [[Dietrich Kappe]], [[CCC]], August 19, 2020 » [[A0lite]], [[Igel]]
===September ...===
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=74955 Train a neural network evaluation] by [[Fabio Gobbato]], [[CCC]], September 01, 2020 » [[Automated Tuning]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75016 RubiChess NNUE player implemented] by [[Andreas Matthies]], [[CCC]], September 06, 2020 » [[RubiChess]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75027 Toga III 0.4 NNUE] by [[Dietrich Kappe]], [[CCC]], September 07, 2020 » [[Toga]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75042 Neural network quantization] by [[Fabio Gobbato]], [[CCC]], September 08, 2020 » [[Neural Networks]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75049 AVX-512 and NNUE] by [[Gian-Carlo Pascutto]], [[CCC]], September 08, 2020 » [[AVX-512]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75190 First success with neural nets] by [[Jonathan Kreuzer]], [[CCC]], September 23, 2020 » [[Neural Networks]]
: [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75190&start=21 Re: First success with neural nets] by [[Jonathan Kreuzer]], [[CCC]], November 11, 2020 » [[Checkers]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75241 Nemorino 6 (NNUE)] by [[Christian Günther|Florentino]], [[CCC]], September 28, 2020 » [[Nemorino]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75247 A Crossroad in Computer Chess; Or Desperate Flailing for Relevance] by [[Andrew Grant]], [[CCC]], September 29, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75248 NNUE variation] by [[Ed Schroder|Ed Schröder]], [[CCC]], September 29, 2020
===October===
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75296 BONA_PIECE_ZERO] by [[Marco Belli|elcabesa]], [[CCC]], October 04, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75335&start=91 Re: Final Release of Ethereal, V12.75] by [[Andrew Grant]], [[CCC]], October 09, 2020 » [[Ethereal]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75345 Request for someone to train an NNUE for Ethereal] by [[Andrew Grant]], [[CCC]], October 09, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75350 Ethereal Tuning - Data Dump] by [[Andrew Grant]], [[CCC]], October 10, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75358 Dangerous turn] by [[Dann Corbit]], [[CCC]], October 10, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75393 Black crushing white, weird ?] by [[Vivien Clauzon]], [[CCC]], October 14, 2020 » [[Minic#MinicNNUE|MinicNNUE]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75400 Hacking around CFish NNUE] by [[Maksim Korzh]], [[CCC]], October 15, 2020 » [[CFish]]
: [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75400&start=22 Re: Hacking around CFish NNUE] by [[Daniel Shawul]], [[CCC]], October 15, 2020 » [[Scorpio]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75415 How to scale stockfish NNUE score?] by [[Maksim Korzh]], [[CCC]], October 17, 2020
: [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75415&start=3 Re: How to scale stockfish NNUE score?] by [[Daniel Shawul]], [[CCC]], October 17, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75418 Embedding Stockfish NNUE to ANY CHESS ENGINE: YouTube series] by [[Maksim Korzh]], [[CCC]], October 17, 2020 » [[BBC]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75433 Seer] by [[Gerd Isenberg]], [[CCC]], October 18, 2020 » [[Seer]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75482 BBC 1.3 + Stockfish NNUE released!] by [[Maksim Korzh]], [[CCC]], October 21, 2020 » [[BBC]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75500 Mayhem NNUE - New NN engine] by [[Toni Helminen|JohnWoe]], [[CCC]], October 22, 2020 » [[Mayhem NNUE]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75501 Centipawns vs Millipawns with NNUE] by Madeleine Birchfield, [[CCC]], October 23, 2020 » [[Centipawns]], [[Millipawns]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75506 NNUE Question - King Placements] by [[Andrew Grant]], [[CCC]], October 23, 2020 » [[Stockfish NNUE#NNUE Structure|Stockfish NNUE - NNUE Structure]]
===November===
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75651 Komodo 14.1 Release and Dragon Announcement] by [[Larry Kaufman]], [[CCC]], November 02, 2020 » [[Komodo]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75653 NNUE outer product vs tensor product] by Madeleine Birchfield, [[CCC]], November 02, 2020 <ref>[https://en.wikipedia.org/wiki/Outer_product Outer product from Wikipedia]</ref> <ref>[https://en.wikipedia.org/wiki/Tensor_product Tensor product from Wikipedia]</ref>
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75724 Pytorch NNUE training] by [[Gary Linscott]], [[CCC]], November 08, 2020 <ref>[https://en.wikipedia.org/wiki/PyTorch PyTorch from Wikipedia]</ref>
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75725 TucaNNo: neural network research] by [[Alcides Schulz]], [[CCC]], November 08, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75748 Dragon by Komodo Chess] by [[Larry Kaufman]], [[CCC]], November 10, 2020 » [[Dragon by Komodo Chess]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75751 Tensorflow NNUE training] by [[Daniel Shawul]], [[CCC]], November 10, 2020 <ref>[https://en.wikipedia.org/wiki/TensorFlow TensorFlow from Wikipedia]</ref>
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75890 Speculations about NNUE development (was New engine releases 2020)] by Madeleine Birchfield, [[CCC]], November 11, 2020
: [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75890&start=6 Re: Speculations about NNUE development (was New engine releases 2020)] by [[Connor McMonigle]], [[CCC]], November 12, 2020
: [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75890&start=9 Re: Speculations about NNUE development (was New engine releases 2020)] by [[Connor McMonigle]], [[CCC]], November 12, 2020 » [[Dragon by Komodo Chess]], [[Seer]], [[Halogen]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75335&start=134 Re: Final Release of Ethereal, V12.75] by [[Andrew Grant]], [[CCC]], November 12, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75797 Maybe not the best diversity of strongest chess engines under development] by [[Kai Laskos]], [[CCC]], November 14, 2020 » [[Engine Similarity]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75862 CPU Vector Unit, the new jam for NNs...] by [[Srdja Matovic]], [[CCC]], November 18, 2020 » [[SIMD and SWAR Techniques|SIMD]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75870 You've trained a brilliant NN(UE) King-Piece Network. Now what?] by [[Andrew Grant]], [[CCC]], November 19, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75925 Pawn King Neural Network] by [[Tamás Kuzmics]], [[CCC]], November 26, 2020
===December===
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75953 Orion 0.8 + The Cerebrum release] by [[David Carteau]], [[CCC]], December 01, 2020 » [[Orion]], [[Cerebrum]]
* [https://prodeo.actieforum.com/t104-the-nnue-split-programmers-are-in The NNUE split programmers are in] by [[Ed Schroder|Ed Schröder]], [[Computer Chess Forums|ProDeo Forum]], December 02, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=76006 Introducing the "Cerebrum" library (NNUE-like trainer and inference code)] by [[David Carteau]], [[CCC]], December 07, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=76190 Dispelling the Myth of NNUE with LazySMP: An Analysis] by [[Andrew Grant]], [[CCC]], December 30, 2020 » [[Lazy SMP]]
==2021==
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=76250 Translation of Yu Nasu's NNUE paper] by [[Dominik Klein]], [[CCC]], January 07, 2021
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75724&start=60 Re: Pytorch NNUE training] by [[Gary Linscott]], [[CCC]], January 09, 2021
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=76285 HalfKP Structure in NNUE] by Roger Stephenson, [[CCC]], January 12, 2021
=External Links=
==NNUE==
* [https://en.wikipedia.org/wiki/Efficiently_updatable_neural_network Efficiently updatable neural network | Wikipedia]
* [https://github.com/yaneurao/YaneuraOu GitHub - yaneurao/YaneuraOu: YaneuraOu is the World's Strongest Shogi engine(AI player), WCSC29 1st winner, educational and USI compliant engine]
* [https://github.com/Tama4649/Kristallweizen/ GitHub - Tama4649/Kristallweizen: 第29回世界コンピュータ将棋選手権 準優勝のKristallweizenです。]
* [http://qhapaq.hatenablog.com/entry/2018/06/02/221612 次世代の将棋思考エンジン、NNUE関数を学ぼう(その1.ネットワーク構造編) - コンピュータ将棋 Qhapaq], June 02, 2018 (Japanese)
: Learn Next Generation Shogi Thinking Engine, NNUE Function (Part 1. Network Structure) - Computer Shogi
: Let's Learn Next Generation Shogi Thinking Engine, NNUE Function (Part 2. Remodeling/Learning) - Computer Shogi
* [http://yaneuraou.yaneu.com/2020/06/19/stockfish-nnue-the-complete-guide/ Stockfish NNUE – The Complete Guide], June 19, 2020 (Japanese and English)
* [http://yaneuraou.yaneu.com/2020/08/21/3-technologies-in-shogi-ai-that-could-be-used-for-chess-ai/ 3 technologies in shogi AI that could be used for chess AI] by [[Motohiro Isozaki]], August 21, 2020 » [[Stockfish NNUE]]
* [https://www.qhapaq.org/shogi/shogiwiki/stockfish-nnue/ Stockfish NNUE Wiki]
==Source Code==
* [https://github.com/yaneurao/YaneuraOu GitHub - yaneurao/YaneuraOu: YaneuraOu is the World's Strongest Shogi engine(AI player), WCSC29 1st winner, educational and USI compliant engine]
* [https://github.com/Tama4649/Kristallweizen/ GitHub - Tama4649/Kristallweizen: 第29回世界コンピュータ将棋選手権 準優勝のKristallweizenです。]
* [https://github.com/nodchip/Stockfish GitHub - nodchip/Stockfish: UCI chess engine] ([[Stockfish NNUE]] by [[Hisayori Noda|Nodchip]])
* [https://wwwgithub.qhapaqcom/dkappe/leela-chess-weights/wiki/A-Leela-NNUE%3F-Night-Nurse-and-Others A Leela NNUE? Night Nurse and Others · dkappe/leela-chess-weights Wiki · GitHub] by [[Dietrich Kappe]]* [https://github.com/david-carteau/cerebrum GitHub - david-carteau/cerebrum: The Cerebrum library] by [[David Carteau]] » [[Cerebrum]]* [https://github.com/DanielUranga/TensorFlowNNUE GitHub - DanielUranga/TensorFlowNNUE] by [[Daniel Uranga]]* [https://github.orgcom/glinscott/nnue-pytorch GitHub - glinscott/nnue-pytorch: NNUE (Chess evaluation) trainer in Pytorch] by [[Gary Linscott]] * [https://shogigithub.com/shogiwikiconnormcmonigle/stockfishseer-nnueGitHub - connormcmonigle/seer-nnue: UCI chess engine using neural networks for position evaluation] by [[Connor McMonigle]] » [[Seer]]* [https://github.com/ Stockfish bmdanielsson/nnue-trainer GitHub - bmdanielsson/nnue-trainer: PyTorch trainer for NNUE Wikistyle neural networks] by [[Martin Danielsson]] » [[Marvin]]
==Misc==
* [https://en.wikipedia.org/wiki/Nue Nue from Wikipedia]

Navigation menu