From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id AMV1KWT8omQtJgAASxT56A (envelope-from ) for ; Mon, 03 Jul 2023 18:50:44 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id CKLHKWT8omShHAAAauVa8A (envelope-from ) for ; Mon, 03 Jul 2023 18:50:44 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 34DCFDF30 for ; Mon, 3 Jul 2023 18:50:44 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qGMkg-0001cC-6o; Mon, 03 Jul 2023 12:50:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qGMkd-0001a2-A5 for guix-devel@gnu.org; Mon, 03 Jul 2023 12:50:11 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qGMka-0001mS-PZ; Mon, 03 Jul 2023 12:50:11 -0400 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-313f5f5c6c3so1442921f8f.1; Mon, 03 Jul 2023 09:50:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1688403006; x=1690995006; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id :reply-to; bh=dsPO/GvwM6Po6Fg2HEeOTQmOHVb9EUR3s/r+TI7Tt/c=; b=M4rOi/q4m0fIql0L1gYSnDxm0mb65SqNhfuWmJf9UfcKXjQ8kXHtwT/9OKvZPQUBbN +XofscFNx5conqebOp3EJt4XAzgZXP29Hm/xltG6GE8N/eKaJU4VFJBjDvNrQjNFzwQw E+2oevy8A6yYEWukNsCgesUeVFwJhdn8VHgeYv9UEfA+5FFc/OQ286JUrAQlQBdW7zp4 oQQRlwIOs3+ORc4Dm4Q4TFzvxZBLLOkKgqWNzOlelih0Iu7ilKdnznN6FPVCAOi5tNdr x4F+8KqL7LrPoHtUHf9MuQ6eXfiwu+C28hl8sq7NWJ4Kejk4+WP/hiPCb7K7TaKn9+J+ 3CdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688403006; x=1690995006; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dsPO/GvwM6Po6Fg2HEeOTQmOHVb9EUR3s/r+TI7Tt/c=; b=Rz/mTnlAEMV14fRnd0QqguWyvJQ2wGOizQFwzMS68+ySq1GmqBG3yC0GT2JSNpwDkL nCP+P9HBlza+f10OYmkG/bLHWM4MVArzFmQN4XnJHu7+3/4gSbnSPDrke9cXH4aYcUBH 4KeXcr0Ojct8wCjZNDTnhBSxF0kmIdCEZ9lbDiAYuUPrn15CVQuNNUOamVsR+0rDpff4 ZmiNHiULK7vOz57ekYHYIB1Aux8YaI/KH91+qq8DFEPcDFCR5xGlD60truA8N61+fjJW MokWTC4tUY6fnUyt0k81kFtmsrV0Wveq/cyo9hRWi38K6cEf5b5uKLzlo7Zwq9/gv2bC 0nHA== X-Gm-Message-State: ABy/qLYe4ltGPcdO+a5il5YcMHM67BXXbJns/ep4cjd9v6nyR30sXsQw CWL7YJVoOAq+6qlS2WkxETw= X-Google-Smtp-Source: APBJJlF+kz6HGZFj6FW/mmXElMdk9nXm1C1hpgyfe03SKSKpoWP5uSfy88GSXPK7TNZ4N5yPhGeC6g== X-Received: by 2002:a5d:420f:0:b0:314:c86:bee5 with SMTP id n15-20020a5d420f000000b003140c86bee5mr9550600wrq.2.1688403005586; Mon, 03 Jul 2023 09:50:05 -0700 (PDT) Received: from pfiuh07 ([193.48.40.241]) by smtp.gmail.com with ESMTPSA id t17-20020a5d42d1000000b003143867d2ebsm2487242wrr.63.2023.07.03.09.50.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jul 2023 09:50:05 -0700 (PDT) From: Simon Tournier To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: =?utf-8?B?5a6L5paH5q2m?= , Ryan Prior , Nicolas Graves , guix-devel@gnu.org, zamfofex Subject: Re: Guidelines for pre-trained ML model weight binaries (Was re: Where should we put machine learning model parameters?) In-Reply-To: <87cz1aum5j.fsf@gnu.org> References: <868rf5e71j.fsf@gmail.com> <87ilcweumh.fsf@envs.net> <87v8gtzvu3.fsf@gmail.com> <87r0r3je82.fsf@gnu.org> <87wn0qrmdx.fsf@gmail.com> <87cz1aum5j.fsf@gnu.org> Date: Mon, 03 Jul 2023 11:39:56 +0200 Message-ID: <87wmzh5o5v.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2a00:1450:4864:20::42d; envelope-from=zimon.toutoune@gmail.com; helo=mail-wr1-x42d.google.com X-Spam_score_int: -5 X-Spam_score: -0.6 X-Spam_bar: / X-Spam_report: (-0.6 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Seal: i=1; s=key1; d=yhetil.org; t=1688403044; a=rsa-sha256; cv=none; b=i3QxsIcyfRAn75bw63/iNxohOhxel/Qq3AsLYHWht+os7hdgIgnPl8Elfo9A13ba3Vb33Z n2Uz68xOfxulsVGchrFsTTAqaYz1UOSN4Bi+UKcV/KjcWrjTpk7m8OuiVsHc8X5o61d0Iv /GZnBqRelJxO0eWYGIjdBFIhYkSupJMifHdHL8xX1gsItB1EK1UhCP0JRcYMt0V8dEZ+iS t94QJcWe13LS2ehsoO54nSqP9yG9Cu2JtRbZtVESMl/mbKr4TlOpivli5ay1LqmWuDUFyh MNdWklD0vWV7luYnFCAO4SpnL9ZJWmQN+kxyvxWCHpu1rKTJCJg+4kipGgfHIg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b="M4rOi/q4"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1688403044; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=dsPO/GvwM6Po6Fg2HEeOTQmOHVb9EUR3s/r+TI7Tt/c=; b=lfFNXiMFmcHNWDHKTl5T4GUTkXqVjuSYcMN0IkxnMJXh0QkxQHDvD09b34AGcNchXSDp9M /E/H4h3r1yB80eSlBZmh+elLdd2K+KG2Y4aaxYIiivCwrCWH/ux532b07HDcVYfOBVbW3B cYaOIn2sPfQBJzh+YVDmhqDkW5A0SmcU/dZ1Esq2SRRs8xXMMMTMXtWS8rJ4DbinQ8aAN5 0sD90XC8vzm4x/ajjV4DR9lLLDzea6ZwODnK36FSdK15J8ymw31oyCTP8j4e8n8eN0x132 WFeFZso8wqSEjs0y0p8SCDz5IL8dv1UsHVRamcNgHxYEPzaxqEo6fck06zjW/g== Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b="M4rOi/q4"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Scanner: scn0.migadu.com X-Migadu-Spam-Score: -0.73 X-Spam-Score: -0.73 X-Migadu-Queue-Id: 34DCFDF30 X-TUID: Gw/SqtLmohyU Hi, On Sun, 02 Jul 2023 at 21:51, Ludovic Court=C3=A8s wrote: > Someone=E2=84=A2 has to invest time in studying this specific case, look = at what > others like Debian are doing, and seek consensus on a way forward. Hum, I am probably not this Someone=E2=84=A2 but here the result of my look= s. :-) First, please note that the Debian thread [1] is about, Concerns to software freedom when packaging deep-learning based appicat= ions and not about specifically Leela Zero. The thread asked the general question keeping in mind the packaging of leela-zero [2] =E2=80=93 now avai= lable with Debian [3]. Back on 2019, patch#36071 [4] also introduced leela-zero in Guix. The issues about Machine Learning that this package raises are not gone, although this specific package had been included, because we are lacking some guideline. :-) Quoting the Debian package description [3], it reads, Recomputing the AlphaGo Zero weights will take about 1700 years on commodity hardware. Upstream is running a public, distributed effort to repeat this work. Working together, and especially when starting on a smaller scale, it will take less than 1700 years to get a good network (which you can feed into this program, suddenly making it strong). To help with this effort, run the leelaz-autogtp binary provided in this package. The best-known network weights file is at http://zero.sjeng.org/best-network For instance, this message [5] from patch#36071, We need to ensure that the software necessary to train the networks is included. Is this the case? Back to this patch: I think it=E2=80=99s fine to accept it as long = as the software necessary for training is included. would suggest that the training software should be part of the package for inclusion although it would not be affordable to recompute this training. Well, applying this =E2=80=9Ccriteria=E2=80=9D, then GNU Backgam= on (package gnubg included since a while) should be rejected since there is no training software for the neural network weights. For the inclusion of leela-zero in Guix, the argument is from [6] quoting [7]: So this is basically a distributed computing client as well as a Go engine that runs with the results of that distributed computing effort. If that's true, there is no separate =E2=80=98training software=E2= =80=99 to worry about. which draws the line: free client vs the =E2=80=9Cdatabase=E2=80=9D; as poi= nted in [8]. Somehow, we have to distinguish cases depending on the weights. If the weights are clearly separated, as with leela-zero, then the code (neural network) itself can be included. Else if the weights are tangled with the code, then we distribute them only if their license is compliant with FSDG as any other data, as with GNU Backgamon, IIUC. Well, I do not see any difference between pre-trained weights and icons or sound or good fitted-parameters (e.g., the package python-scikit-learn has a lot ;-)). As I said elsewhere, I do not see the difference between pre-trained neural network weights and genomic references (e.g., the package r-bsgenome-hsapiens-1000genomes-hs37d5). The only question for inclusion or not is about the license, IMHO. For sure, it is far better if we are able to recompute the weights. However, similarly as debootstrapping is a strong recommendation, the ability to recompute the pre-trained neural network weights must just be a recommendation. Please note this message [11] from Nicolas about VOSK models and patch#62443 [12] already merged; the weights are separated as with the package leela-zero. All that said. Second, please note Debian thread dates from 2018, as well as the LWN article [13]; and I am not aware of something new since then. Third, I have never read something on this topic produced by GNU or related; and the fact that GNU Backgamon [14] distributes the weights without the way to reproduce them draws one line. Fourth, we =E2=80=93 at = least I =E2=80=93 are still waiting an answer from licensing@fsf.org; on FSF side= , I am only aware about this [15] and also these white papers [16] about the very specific case of Copilot. On Debian side, I am only aware of [16,17]: Unofficial Policy for Debian & Machine Learning 1: https://lists.debian.org/debian-devel/2018/07/msg00153.html 2: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D903634 3: https://packages.debian.org/trixie/leela-zero 4: https://issues.guix.gnu.org/36071 5: https://issues.guix.gnu.org/36071#5 6: https://issues.guix.gnu.org/36071#6 7: https://lwn.net/Articles/760483/ 8: https://issues.guix.gnu.org/36071#4-lineno34 9: https://yhetil.org/guix/87v8gtzvu3.fsf@gmail.com 11: https://yhetil.org/guix/87jzyshpyr.fsf@ngraves.fr 12: https://issues.guix.gnu.org/62443 10: https://lwn.net/Articles/760142/ 11: https://www.gnu.org/software/gnubg/ 12: https://www.fsf.org/bulletin/2022/spring/unjust-algorithms/ 13: https://www.fsf.org/news/publication-of-the-fsf-funded-white-papers-on-= questions-around-copilot 16: https://salsa.debian.org/deeplearning-team/ml-policy 17: https://people.debian.org/~lumin/debian-dl.html Cheers, simon