unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Maybe a way to get a few more developpers to work on Guix ?
@ 2023-06-22 13:13 Nicolas Graves via Development of GNU Guix and the GNU System distribution.
  2023-06-22 15:37 ` indieterminacy
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Nicolas Graves via Development of GNU Guix and the GNU System distribution. @ 2023-06-22 13:13 UTC (permalink / raw)
  To: guix-devel


https://www.bpifrance.fr/nos-appels-a-projets-concours/appel-a-projets-communs-numeriques-pour-lintelligence-artificielle-generative

Here's a call for proposal in French which could match a Guix project
with a focus on code generation through LLMs. This could itself help
Guix generate (and fix) package definitions.

-- 
Best regards,
Nicolas Graves


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Maybe a way to get a few more developpers to work on Guix ?
  2023-06-22 13:13 Maybe a way to get a few more developpers to work on Guix ? Nicolas Graves via Development of GNU Guix and the GNU System distribution.
@ 2023-06-22 15:37 ` indieterminacy
  2023-06-23  7:02 ` pinoaffe
  2023-06-24 11:08 ` Csepp
  2 siblings, 0 replies; 12+ messages in thread
From: indieterminacy @ 2023-06-22 15:37 UTC (permalink / raw)
  To: Nicolas Graves; +Cc: guix-devel

On 22-06-2023 15:13, Nicolas Graves via "Development of GNU Guix and the 
GNU System distribution." wrote:
> https://www.bpifrance.fr/nos-appels-a-projets-concours/appel-a-projets-communs-numeriques-pour-lintelligence-artificielle-generative
> 
> Here's a call for proposal in French which could match a Guix project
> with a focus on code generation through LLMs. This could itself help
> Guix generate (and fix) package definitions.

Well if you are wanting to claw at that rabbit-hole:

This is a small EU AI fund for civil society not-for-profit 
organisations (<=30kEUR):
https://europeanaifund.org/newspublications/our-ecosystem-grants-programme-is-now-open/

If only Guix had a not for profit based in Europe that could provide 
such functionality....
I heard about some hot new foundation however - perhaps somebody could 
reach out to them to see if they are interested?

Applications in for the end of July.


-- 
Jonathan McHugh
indieterminacy@libre.brussels


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Maybe a way to get a few more developpers to work on Guix ?
  2023-06-22 13:13 Maybe a way to get a few more developpers to work on Guix ? Nicolas Graves via Development of GNU Guix and the GNU System distribution.
  2023-06-22 15:37 ` indieterminacy
@ 2023-06-23  7:02 ` pinoaffe
  2023-06-23  8:04   ` Fannys
                     ` (2 more replies)
  2023-06-24 11:08 ` Csepp
  2 siblings, 3 replies; 12+ messages in thread
From: pinoaffe @ 2023-06-23  7:02 UTC (permalink / raw)
  To: Nicolas Graves; +Cc: guix-devel

Nicolas Graves via "Development of GNU Guix and the GNU System distribution." <guix-devel@gnu.org> writes:
> ... code generation through LLMs. This could itself help Guix generate
> (and fix) package definitions.

I really don't think that that'd be a good match for Guix.  Writing
package definitions is easy, can be assisted with a snippet (such as
provided in /path/to/guix/etc/snippets/yas/scheme-mode/guix-package) and
writing a package definition takes hardly more work than verifying that
an LLM-provided package definition is reasonable.

In other words, I don't think a LLM could make it easier/faster to write
package definitions.

Kind regards,
pinoaffe


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Maybe a way to get a few more developpers to work on Guix ?
  2023-06-23  7:02 ` pinoaffe
@ 2023-06-23  8:04   ` Fannys
  2023-06-23  8:07   ` MSavoritias
  2023-06-23  8:15   ` Nicolas Graves via Development of GNU Guix and the GNU System distribution.
  2 siblings, 0 replies; 12+ messages in thread
From: Fannys @ 2023-06-23  8:04 UTC (permalink / raw)
  To: guix-devel


pinoaffe <pinoaffe@gmail.com> writes:

> Nicolas Graves via "Development of GNU Guix and the GNU System distribution." <guix-devel@gnu.org> writes:
>> ... code generation through LLMs. This could itself help Guix generate
>> (and fix) package definitions.
>
> I really don't think that that'd be a good match for Guix.  Writing
> package definitions is easy, can be assisted with a snippet (such as
> provided in /path/to/guix/etc/snippets/yas/scheme-mode/guix-package) and
> writing a package definition takes hardly more work than verifying that
> an LLM-provided package definition is reasonable.
>
> In other words, I don't think a LLM could make it easier/faster to write
> package definitions.
>
> Kind regards,
> pinoaffe

Yeah agreed.

It just changes what we need from developers to people that verify that
the code makes sense from the LLM model. So doesn't really seem to solve
much for us.

Regards,
MSavoritias


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Maybe a way to get a few more developpers to work on Guix ?
  2023-06-23  7:02 ` pinoaffe
  2023-06-23  8:04   ` Fannys
@ 2023-06-23  8:07   ` MSavoritias
  2023-06-23  8:15   ` Nicolas Graves via Development of GNU Guix and the GNU System distribution.
  2 siblings, 0 replies; 12+ messages in thread
From: MSavoritias @ 2023-06-23  8:07 UTC (permalink / raw)
  To: guix-devel


pinoaffe <pinoaffe@gmail.com> writes:

> Nicolas Graves via "Development of GNU Guix and the GNU System distribution." <guix-devel@gnu.org> writes:
>> ... code generation through LLMs. This could itself help Guix generate
>> (and fix) package definitions.
>
> I really don't think that that'd be a good match for Guix.  Writing
> package definitions is easy, can be assisted with a snippet (such as
> provided in /path/to/guix/etc/snippets/yas/scheme-mode/guix-package) and
> writing a package definition takes hardly more work than verifying that
> an LLM-provided package definition is reasonable.
>
> In other words, I don't think a LLM could make it easier/faster to write
> package definitions.
>
> Kind regards,
> pinoaffe

Yeah Agreed.

It seems to just shift the problem from "We need developers" to "We need
people that verify the output of the LLM." So we are basically stuck
with the same problem.

Regards,
MSavoritias


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Maybe a way to get a few more developpers to work on Guix ?
  2023-06-23  7:02 ` pinoaffe
  2023-06-23  8:04   ` Fannys
  2023-06-23  8:07   ` MSavoritias
@ 2023-06-23  8:15   ` Nicolas Graves via Development of GNU Guix and the GNU System distribution.
  2 siblings, 0 replies; 12+ messages in thread
From: Nicolas Graves via Development of GNU Guix and the GNU System distribution. @ 2023-06-23  8:15 UTC (permalink / raw)
  To: pinoaffe; +Cc: guix-devel

On 2023-06-23 09:02, pinoaffe wrote:

> Nicolas Graves via "Development of GNU Guix and the GNU System distribution." <guix-devel@gnu.org> writes:
>
> In other words, I don't think a LLM could make it easier/faster to write
> package definitions.

I mostly agree, what might be useful however would be the capacity to
propose and re-test a patch series that fails on a very common / easy to
fix error (a forgotten input, a type of error which usually means the
test has to be disabled (network access... )) or that could
improve a patch series (fixing linting warnings, improving commit or
package description). In other words, helping the review process for
guix commits which I think is one of the points where it can be improved
substantially.

Maybe a workflow like "get the patch series to evaluate on
qa.guix.gnu.org" --> "if there are linting warnings or errors, process
the logs and make a useful default answer for the patch sender / or a
new patch series proposition" might help. 

I'm just suggesting because I've seen the opportunity ;)

-- 
Best regards,
Nicolas Graves


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Maybe a way to get a few more developpers to work on Guix ?
  2023-06-22 13:13 Maybe a way to get a few more developpers to work on Guix ? Nicolas Graves via Development of GNU Guix and the GNU System distribution.
  2023-06-22 15:37 ` indieterminacy
  2023-06-23  7:02 ` pinoaffe
@ 2023-06-24 11:08 ` Csepp
  2023-06-24 12:02   ` Nicolas Graves via Development of GNU Guix and the GNU System distribution.
  2 siblings, 1 reply; 12+ messages in thread
From: Csepp @ 2023-06-24 11:08 UTC (permalink / raw)
  To: Nicolas Graves; +Cc: guix-devel


Nicolas Graves via "Development of GNU Guix and the GNU System distribution." <guix-devel@gnu.org> writes:

> https://www.bpifrance.fr/nos-appels-a-projets-concours/appel-a-projets-communs-numeriques-pour-lintelligence-artificielle-generative
>
> Here's a call for proposal in French which could match a Guix project
> with a focus on code generation through LLMs. This could itself help
> Guix generate (and fix) package definitions.

Mandatory reading for anyone interested in this:
https://limited.systems/articles/climate-cost-of-ai-revolution/

IMHO LLMs for Guix are so damn not worth the effort.  It will not fix
any of the actual issues with Guix, like the huge performance gap
between it and traditional package managers.
But then again, wasteful software is the hot new trend thanks to AI and
crptocurrencies, so what do I know. :)


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Maybe a way to get a few more developpers to work on Guix ?
  2023-06-24 11:08 ` Csepp
@ 2023-06-24 12:02   ` Nicolas Graves via Development of GNU Guix and the GNU System distribution.
  2023-06-24 16:33     ` Vagrant Cascadian
  2023-06-25 15:53     ` Maybe a way to get a few more developpers to work on Guix ? Csepp
  0 siblings, 2 replies; 12+ messages in thread
From: Nicolas Graves via Development of GNU Guix and the GNU System distribution. @ 2023-06-24 12:02 UTC (permalink / raw)
  To: Csepp; +Cc: guix-devel

On 2023-06-24 13:08, Csepp wrote:

> Nicolas Graves via "Development of GNU Guix and the GNU System distribution." <guix-devel@gnu.org> writes:
>
>> https://www.bpifrance.fr/nos-appels-a-projets-concours/appel-a-projets-communs-numeriques-pour-lintelligence-artificielle-generative
>>
>> Here's a call for proposal in French which could match a Guix project
>> with a focus on code generation through LLMs. This could itself help
>> Guix generate (and fix) package definitions.
>
> Mandatory reading for anyone interested in this:
> https://limited.systems/articles/climate-cost-of-ai-revolution/

I fully agree on that as well. I don't think training a full-fetched LLM
is nowhere worth it, but I've heard that just fine-tuning an open model
with quantized weights might get the job done training and energy costs
down to a few hundred bucks.

> IMHO LLMs for Guix are so damn not worth the effort.  It will not fix
> any of the actual issues with Guix, like the huge performance gap
> between it and traditional package managers.

I've also opened another discussion on the subject on guix-devel
recently. Do you have any benchmark material to back this up?

-- 
Best regards,
Nicolas Graves


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Maybe a way to get a few more developpers to work on Guix ?
  2023-06-24 12:02   ` Nicolas Graves via Development of GNU Guix and the GNU System distribution.
@ 2023-06-24 16:33     ` Vagrant Cascadian
  2023-06-25 16:08       ` Csepp
  2023-08-23 13:48       ` Slow guix pull Simon Tournier
  2023-06-25 15:53     ` Maybe a way to get a few more developpers to work on Guix ? Csepp
  1 sibling, 2 replies; 12+ messages in thread
From: Vagrant Cascadian @ 2023-06-24 16:33 UTC (permalink / raw)
  To: Nicolas Graves, Csepp; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 2394 bytes --]

On 2023-06-24, Nicolas Graves via "Development of GNU Guix and the GNU System distribution." wrote:
> On 2023-06-24 13:08, Csepp wrote:
>> Nicolas Graves via "Development of GNU Guix and the GNU System distribution." <guix-devel@gnu.org> writes:
>> IMHO LLMs for Guix are so damn not worth the effort.  It will not fix
>> any of the actual issues with Guix, like the huge performance gap
>> between it and traditional package managers.
>
> I've also opened another discussion on the subject on guix-devel
> recently. Do you have any benchmark material to back this up?

Well, I just ran "apt update" on Debian, and it took approximately 7
seconds, which was mostly spent downloading moderately sized files from
Debian mirrors (~1MB).

A corresponding "guix pull" took 299 seconds, downloading at least 8MB
(from a quick eyeball calculation as guix does not summarize the results
for me), and compiling all the various guix-*.drv that make up guix
pull. The vast majority of the time was spent compiling
derivations. This was also using a local copy of guix.git, so having to
update guix.git over the network would take even longer... (and it did
even spend a fair amount of time copying from the local guix.git on a
fast NVMe device)

Obviously, guix pull is doing a lot more, but it is ... doing a lot
more!

"apt install hello" (~2.3 seconds) and "guix install hello" (~1.5
seconds) were actually in a similar ballpark, which honestly surprised
me. Guix is much faster with "guix remove hello" ... although arguably
"guix remove hello && guix gc --delete $(guix build hello)" would be a
more similar operation, and although I did not time it, it was
reasonably fast, too.

So, presuming substitutes are available, the main slowness with guix
seems to be guix pull?

I did not test "guix system reconfigure" ... but in a way, that may be a
more real comparison than "guix install" ... although we are starting to
get into fundemental differences between apt and guix here.

The other big factor in my mind is that even with a single generation of
guix with nothing for guix gc to do, there may be multiple copies of
some libraries at various versions left around in the store, which is
probably not terribly space efficient... there are usually reasons for
this (e.g. bootstrapping from a tiny seed, yay!) but nevertheless, those
reasons have some cost (and benefits!).


live well,
  vagrant

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Maybe a way to get a few more developpers to work on Guix ?
  2023-06-24 12:02   ` Nicolas Graves via Development of GNU Guix and the GNU System distribution.
  2023-06-24 16:33     ` Vagrant Cascadian
@ 2023-06-25 15:53     ` Csepp
  1 sibling, 0 replies; 12+ messages in thread
From: Csepp @ 2023-06-25 15:53 UTC (permalink / raw)
  To: Nicolas Graves; +Cc: Csepp, guix-devel


Nicolas Graves <ngraves@ngraves.fr> writes:

> On 2023-06-24 13:08, Csepp wrote:
>
>> Nicolas Graves via "Development of GNU Guix and the GNU System distribution." <guix-devel@gnu.org> writes:
>>
>>> https://www.bpifrance.fr/nos-appels-a-projets-concours/appel-a-projets-communs-numeriques-pour-lintelligence-artificielle-generative
>>>
>>> Here's a call for proposal in French which could match a Guix project
>>> with a focus on code generation through LLMs. This could itself help
>>> Guix generate (and fix) package definitions.
>>
>> Mandatory reading for anyone interested in this:
>> https://limited.systems/articles/climate-cost-of-ai-revolution/
>
> I fully agree on that as well. I don't think training a full-fetched LLM
> is nowhere worth it, but I've heard that just fine-tuning an open model
> with quantized weights might get the job done training and energy costs
> down to a few hundred bucks.

From the "Key points" section right at beginning of the linked article:
"Training of large AI models is not the problem"
"Large-scale use of large AI models would be unsustainable"

It's not the cost in money that I care about, it's the cost in
emissions, which is not included in the few hundred bucks.
(ie.: it's an externality)

However, using other machine learning models that can actually run
efficiently might make sense.
But really, what we need for package availability is more support code
in the form of better importers and updaters, better testing, better
coverage, more accessible workflows - the email workflow could certainly
be improved by *a lot* - better bug tracking, and so on.

There are also very well founded concerns about the quality of the code
that LLMs produce.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Maybe a way to get a few more developpers to work on Guix ?
  2023-06-24 16:33     ` Vagrant Cascadian
@ 2023-06-25 16:08       ` Csepp
  2023-08-23 13:48       ` Slow guix pull Simon Tournier
  1 sibling, 0 replies; 12+ messages in thread
From: Csepp @ 2023-06-25 16:08 UTC (permalink / raw)
  To: Vagrant Cascadian; +Cc: Nicolas Graves, Csepp, guix-devel


Vagrant Cascadian <vagrant@debian.org> writes:

> [[PGP Signed Part:Undecided]]
> On 2023-06-24, Nicolas Graves via "Development of GNU Guix and the GNU System distribution." wrote:
>> On 2023-06-24 13:08, Csepp wrote:
>>> Nicolas Graves via "Development of GNU Guix and the GNU System distribution." <guix-devel@gnu.org> writes:
>>> IMHO LLMs for Guix are so damn not worth the effort.  It will not fix
>>> any of the actual issues with Guix, like the huge performance gap
>>> between it and traditional package managers.
>>
>> I've also opened another discussion on the subject on guix-devel
>> recently. Do you have any benchmark material to back this up?
>
> Well, I just ran "apt update" on Debian, and it took approximately 7
> seconds, which was mostly spent downloading moderately sized files from
> Debian mirrors (~1MB).
>
> A corresponding "guix pull" took 299 seconds, downloading at least 8MB
> (from a quick eyeball calculation as guix does not summarize the results
> for me), and compiling all the various guix-*.drv that make up guix
> pull. The vast majority of the time was spent compiling
> derivations. This was also using a local copy of guix.git, so having to
> update guix.git over the network would take even longer... (and it did
> even spend a fair amount of time copying from the local guix.git on a
> fast NVMe device)
>
> Obviously, guix pull is doing a lot more, but it is ... doing a lot
> more!
>
> "apt install hello" (~2.3 seconds) and "guix install hello" (~1.5
> seconds) were actually in a similar ballpark, which honestly surprised
> me. Guix is much faster with "guix remove hello" ... although arguably
> "guix remove hello && guix gc --delete $(guix build hello)" would be a
> more similar operation, and although I did not time it, it was
> reasonably fast, too.
>
> So, presuming substitutes are available, the main slowness with guix
> seems to be guix pull?

NVMe (or even an SSD) helps a lot.  And I suspect your system also has a
good amount of RAM for IO caching and at least 4 modern 64 bit cores.
Try running guix pull on a 32 bit machine with 1 GB of RAM and an HDD
with LUKS for storage (and a lot of swap), you'll see a waaaay wider
performance gap.
Even simple operations like guix edit take much longer than they should.
Yes, Guix does more, but a lot of what it does could be sped up.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Slow guix pull
  2023-06-24 16:33     ` Vagrant Cascadian
  2023-06-25 16:08       ` Csepp
@ 2023-08-23 13:48       ` Simon Tournier
  1 sibling, 0 replies; 12+ messages in thread
From: Simon Tournier @ 2023-08-23 13:48 UTC (permalink / raw)
  To: Vagrant Cascadian, Nicolas Graves, Csepp; +Cc: guix-devel

Hi,

On Sat, 24 Jun 2023 at 09:33, Vagrant Cascadian <vagrant@debian.org> wrote:

> So, presuming substitutes are available, the main slowness with guix
> seems to be guix pull?

I agree (and for the record, I would add in addition “guix search” too,
another story :-)).


Well, from my understanding about “guix pull”, the first bottleneck is
about “Computing Guix derivation for ...” from build-aux/build-self.scm.

Maybe I misread something and for sure I am probably missing some
details.  On my desktop machine, that part takes 84 seconds, roughly.
From my understanding, it’s because of this procedure,

--8<---------------cut here---------------start------------->8---
(define (proxy input output)
  "Dump the contents of INPUT to OUTPUT until EOF is reached on INPUT.
Display a spinner when nothing happens."
  (define spin
    (circular-list "-" "\\" "|" "/" "-" "\\" "|" "/"))

  (setvbuf input 'block 16384)
  (let loop ((spin spin))
    (match (select (list input) '() '() 1)
      ((() () ())
       (when (isatty? (current-error-port))
         (display (string-append "\b" (car spin))
                  (current-error-port))
         (force-output (current-error-port)))
       (loop (cdr spin)))
      (((_) () ())
       ;; Read from INPUT as much as can be read without blocking.
       (let ((bv (get-bytevector-some input)))
         (unless (eof-object? bv)
           (put-bytevector output bv)
           (loop spin)))))))
--8<---------------cut here---------------end--------------->8---

that is called by,

        ;; Wait for a connection on SOCK and proxy build output so it can be
        ;; processed according to the settings currently in effect (build
        ;; traces, verbosity level, and so on).
        (match (accept sock)
          ((port . _)
           (close-port sock)
           (delete-file node)
           (proxy port (current-build-output-port))))

And that dump is currently on strong annoyance, IMHO.  Because most of
the other derivations can be substituted but this part cannot, again
from my poor understanding.

Note that this part can be very painful.  For example, on my laptop from
2016, it takes ~180 seconds.  Well, 3 minutes for “dumping content”…
that’s a piece of content! :-)

Well, I do not know exactly which kind of content is living at ’port’
and then if ’(current-build-output-port)’ needs all this content.
Therefore, I do not know if something could be trimmed… but I guess
something could be improved here.


Cheers,
simon




^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2023-08-23 16:41 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-22 13:13 Maybe a way to get a few more developpers to work on Guix ? Nicolas Graves via Development of GNU Guix and the GNU System distribution.
2023-06-22 15:37 ` indieterminacy
2023-06-23  7:02 ` pinoaffe
2023-06-23  8:04   ` Fannys
2023-06-23  8:07   ` MSavoritias
2023-06-23  8:15   ` Nicolas Graves via Development of GNU Guix and the GNU System distribution.
2023-06-24 11:08 ` Csepp
2023-06-24 12:02   ` Nicolas Graves via Development of GNU Guix and the GNU System distribution.
2023-06-24 16:33     ` Vagrant Cascadian
2023-06-25 16:08       ` Csepp
2023-08-23 13:48       ` Slow guix pull Simon Tournier
2023-06-25 15:53     ` Maybe a way to get a few more developpers to work on Guix ? Csepp

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).