Subject: [bug#63088] [PATCH 3/3] gnu: Add neural networks from the Maia Chess project.

From: zamfofex <[email-masked]>
Date: Tue, 12 Sep 2023 08:58:13 -0300

* gnu/packages/lc0.scm (make-lc0-maia): New procedure.
* gnu/packages/lc0.scm (lc0-maia-1100, lc0-maia-1200, lc0-maia-1300)
(lc0-maia-1400, lc0-maia-1500, lc0-maia-1600, lc0-maia-1700)
(lc0-maia-1800, lc0-maia-1900): New variables.
---
 gnu/packages/lc0.scm | 55 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/gnu/packages/lc0.scm b/gnu/packages/lc0.scm
index 1cda2efd1c..495d93b110 100644
--- a/gnu/packages/lc0.scm
+++ b/gnu/packages/lc0.scm
@@ -18,6 +18,7 @@
 
 (define-module (gnu packages lc0)
   #:use-module (guix build utils)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system trivial)
   #:use-module (guix download)
@@ -145,3 +146,57 @@ (define-public lc0-815383
    "https://storage.lczero.org/files/networks/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."))
+
+(define (make-lc0-maia rating)
+  (package
+    (name (string-append "lc0-maia-" rating))
+    (version "1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/CSSLab/maia-chess")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name "maia" version))
+              (sha256
+               (base32
+                "0qjkp56pb5vvkr3j1vdsdzligvy7faza917z7vdfmf168pkvrxsr"))))
+    (build-system copy-build-system)
+    (arguments
+     `(#:install-plan '((,(string-append "model_files/" rating "/final_"
+                                         rating "-40.pb.gz") ,(string-append
+                                                               "share/lc0/maia-"
+                                                               rating ".pb.gz")))))
+    (synopsis "Human-like neural network for Leela Chess Zero")
+    (description
+     "Maia’s goal is to play the human move — not necessarily the best move.
+As a result, Maia has a more human-like style than previous engines, matching
+moves played by human players in online games over 50% of the time.")
+    (home-page "https://maiachess.com")
+    (license license:gpl3)))
+
+(define-public lc0-maia-1100
+  (make-lc0-maia "1100"))
+
+(define-public lc0-maia-1200
+  (make-lc0-maia "1200"))
+
+(define-public lc0-maia-1300
+  (make-lc0-maia "1300"))
+
+(define-public lc0-maia-1400
+  (make-lc0-maia "1400"))
+
+(define-public lc0-maia-1500
+  (make-lc0-maia "1500"))
+
+(define-public lc0-maia-1600
+  (make-lc0-maia "1600"))
+
+(define-public lc0-maia-1700
+  (make-lc0-maia "1700"))
+
+(define-public lc0-maia-1800
+  (make-lc0-maia "1800"))
+
+(define-public lc0-maia-1900
+  (make-lc0-maia "1900"))
-- 
2.41.0