gnu: lc0: Add neural networks for Leela Chess Zero.

* gnu/packages/lc0.scm (make-lc0-net, make-lc0-official-net)
(make-lc0-contrib-net): New procedures.
* gnu/packages/lc0.scm (lc0-t2, lc0-t1, lc0-t1-512, lc0-t1-256)
(lc0-611246, lc0-791556, lc0-815383): New variables.

Change-Id: I6ea23b353034de42a11f7944bb4de179c395fb62
Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
This commit is contained in:
zamfofex 2025-02-23 10:33:45 +01:00 committed by Nicolas Goaziou
parent 2ae74fb0b7
commit 9a0e97c494
No known key found for this signature in database
GPG key ID: DA00B4F048E92F2D

View file

@ -17,7 +17,10 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages lc0)
#:use-module (guix build utils)
#:use-module (guix build-system meson)
#:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
@ -70,3 +73,87 @@ using neural networks. This package does not provide a neural network, which
is necessary to use Leela Chess Zero and should be installed separately.")
(home-page "https://lczero.org")
(license license:gpl3+)))
(define (make-lc0-net name file-name url hash description)
(package
(name (string-append "lc0-" name))
(version "0")
(source (origin
(method url-fetch)
(uri url)
(file-name (string-append "lc0-" file-name))
(sha256
(base32 hash))))
(build-system trivial-build-system)
(arguments
(list #:builder
(with-imported-modules '((guix build utils))
#~(let ((share (string-append #$output "/share/lc0/")))
(use-modules (guix build utils))
(mkdir-p share)
(copy-file (assoc-ref %build-inputs "source")
(string-append share #$file-name))))))
(synopsis "Pre-trained neural network for Leela Chess Zero")
(description description)
(home-page "https://lczero.org")
(license license:gpl3+)))
(define-public (make-lc0-official-net name url-hash hash description)
(make-lc0-net
name
(string-append name ".pb.gz")
(string-append "https://storage.lczero.org/files/networks/" url-hash)
hash
description))
(define-public (make-lc0-contrib-net name file-name hash description)
(make-lc0-net name file-name
(string-append
"https://storage.lczero.org/files/networks-contrib/"
file-name)
hash description))
(define-public lc0-t2
(make-lc0-contrib-net "t2" "t2-768x15x24h-swa-5230000.pb.gz"
"126305hby24k5agxiixadp1lcgmv8drm1dkpb4jf5jzq7k4m855w"
"T2 is currently one of the best neural networks for Leela Chess Zero,
superseding the neural network T1."))
(define-public lc0-t1
(make-lc0-contrib-net "t1" "t1-768x15x24h-swa-4000000.pb.gz"
"0zm9v91gfnm69n4x2fckair24fypjrwiip3j86ylsqncsi1sh5nq"
"T1 is currently one of the best neural networks for Leela Chess Zero,
however, it was superseded by the neural network T2."))
(define-public lc0-t1-512
(make-lc0-contrib-net "t1-512" "t1-512x15x8h-distilled-swa-3395000.pb.gz"
"1s4pq06qkdpaq0a4z6j5qqnf6h7njpmwh7i0v7qh6bmhwlcibnqz"
"This is a smaller version of the T1 neural network, which is currently one
of the best neural networks for Leela Chess Zero."))
(define-public lc0-t1-256
(make-lc0-contrib-net "t1-256" "t1-256x10-distilled-swa-2432500.pb.gz"
"01ilar7y2nf3kfkq3x77n4jxlvqdpgddjsham2wz4dmdx35ac9xw"
"This is a smaller version of the T1 neural network, which is currently one
of the best neural networks for Leela Chess Zero."))
(define-public lc0-611246
(make-lc0-official-net "611246"
"7ca2381cfeac5c280f304e7027ffbea1b7d87474672e5d6fb16d5cd881640e04"
"0rapfvjqqrhydhp8a6r3skmjci2dc2yxz912bglv9yd9k00l9rww"
"This is an official neural network of a ``main run'' of the Leela Chess
Zero project that was finished being trained in January of 2022."))
(define-public lc0-791556
(make-lc0-official-net "791556"
"f404e156ceb2882470fd8c032b8754af0fa0b71168328912eaef14671a256e34"
"03b9xl9vkiihdilz5dzcpg6g4inb6n4k5gs911i3gbd8h9sh9ixi"
"This is an official neural network of the Leela Chess Zero project that
was finished being trained in April of 2022."))
(define-public lc0-815383
(make-lc0-official-net "815383"
"8af6098d6fb76e2bef6ef9ee87e61fadcb99f0b789013a72953a95ad10a9e933"
"09gm8lgaick60rn4x9h9w5sxdqivr4ign73viviadw1gj7wsbnsg"
"This is an official neural network of a ``main run'' of the Leela Chess
Zero project. The network was finished being trained in September of 2023."))