The inference code is quite simple, since you understood what you have to do. It took me only few days (back in August) to have my own C implementation. At the opposite, the training part is highly more difficult to write from scratch... I finally managed to do it a few days ago, with great results (I'm very happy about that : I learned something new and very challenging !).
I'm not familiar at all with licenses (that's one of the reason why Orion's source code is not available, the others being that the engine is too weak to be helpful, and code is maybe not so "elegant" ), but if people are interested in and if it is possible to find the most "public domain" license possible, I would be happy to share my work (both inference code in C, with incremental updates, and training code in Python, using Pytorch).
Two attention points :
* the training code produces networks that are very similar to SF's ones, but not compatible (strength seems very good, but I haven't tested intensively so far) ;
* the networks produce floats, which means 40 MB for the "standard" NNUE architecture. But this leaves a lot of interesting enhancement possibilities : quantization, smaller architectures, etc.
Finally, I wonder what the community would thought about releasing an "official" version of Orion, using my own implementation of inference code, using a net trained with my own (home-made) trainer, but... using SF's eval to train the all thing I think some people would highly "disapprove", but on the other hand, a lot of work has been done and, as humans, to learn, we need a teacher. I think it's the same for engines : they need to be trained by the best experts
You've trained a brilliant NN(UE) King-Piece Network. Now what?
Moderators: hgm, Rebel, chrisw
-
- Posts: 121
- Joined: Sat May 24, 2014 9:09 am
- Location: France
- Full name: David Carteau
-
- Posts: 4367
- Joined: Fri Mar 10, 2006 5:23 am
- Location: http://www.arasanchess.org
Re: You've trained a brilliant NN(UE) King-Piece Network. Now what?
Arasan is MIT-licensed:David Carteau wrote: ↑Thu Nov 19, 2020 8:24 pm I'm not familiar at all with licenses (that's one of the reason why Orion's source code is not available, the others being that the engine is too weak to be helpful, and code is maybe not so "elegant" ), but if people are interested in and if it is possible to find the most "public domain" license possible, I would be happy to share my work (both inference code in C, with incremental updates, and training code in Python, using Pytorch).
https://en.wikipedia.org/wiki/MIT_License
It is a simple but not copyleft license.
It has been known for some time that in effect "reverse-engineering" an eval function is possible by using learning, even when the engine used for training is not open source. It isn't a license violation per se as I understand it. It wasn't even an issue before supervised eval learning became widely prevalent a few years ago. Training NNs raises similar issues. I am not highly exercised about it myself: it is not so very different in principle from a strong human learning from that human's opponents.Finally, I wonder what the community would thought about releasing an "official" version of Orion, using my own implementation of inference code, using a net trained with my own (home-made) trainer, but... using SF's eval to train the all thing I think some people would highly "disapprove", but on the other hand, a lot of work has been done and, as humans, to learn, we need a teacher. I think it's the same for engines : they need to be trained by the best experts
-
- Posts: 121
- Joined: Sat May 24, 2014 9:09 am
- Location: France
- Full name: David Carteau
Re: You've trained a brilliant NN(UE) King-Piece Network. Now what?
Thanks Jon for your reply. I was wondering what was the most appropriate license to share my work without implying any restriction on usage by others (I didn't have the NNUE idea, I just implemented a piece of code that can reuse the idea). If it can help others to understand the concept, that would be great (if needed). I should take time to study the different choices (MIT, GPL 2/3, BSD, etc.), all this doesn't seem easyjdart wrote: ↑Thu Nov 19, 2020 9:31 pm Arasan is MIT-licensed:
https://en.wikipedia.org/wiki/MIT_License
It is a simple but not copyleft license.
To avoid any misleading, my work is only based on the use of nn-82215d0fd0df.nnue network, provided by Sergio Vieri under the CC0 license which, as I understand, is the license which is the closest possible one of a public domain reuse. I haven't hacked or reverse engineered StockFishjdart wrote: ↑Thu Nov 19, 2020 9:31 pm It has been known for some time that in effect "reverse-engineering" an eval function is possible by using learning, even when the engine used for training is not open source. It isn't a license violation per se as I understand it. It wasn't even an issue before supervised eval learning became widely prevalent a few years ago. Training NNs raises similar issues. I am not highly exercised about it myself: it is not so very different in principle from a strong human learning from that human's opponents.
Download Orion :
https://www.orionchess.com/
https://www.orionchess.com/
-
- Posts: 491
- Joined: Sat Mar 02, 2013 11:31 pm
Re: You've trained a brilliant NN(UE) King-Piece Network. Now what?
I proved the Riemann hypothesis but this message box is too narrow for the solution.