How does this analogy work at all? LoRA is chosen by the modifier to be low ranked to accommodate some desktop/workstation memory constraint, not because the other weights are “very hard” to modify if you happens to have the necessary compute and I/O. The development in LoRA is also largely directed by storage reduction (hence not too many layers modified) and preservation of the generalizability (since training generalizable models is hard). The Kronecker product versions, in particular, has been first developed in the context of federated learning, and not for desktop/workstation fine-tuning (also LoRA is fully capable of modifying all weights, it is rather a technique to do it in a correlated fashion to reduce the size of the gradient update). And much development of LoRA happened in the context of otherwise fully open datasets (e.g. LAION), that are just not manageable in desktop/workstation settings.
This narrow perspective of “source” is taking away the actual usefulness of compute/training here. Datasets from e.g. LAION to Common Crawl have been available for some time, along with training code (sometimes independently reproduced) for the Imagen diffusion model or GPT. It is only when e.g. GPT-J came along that somebody invested into the compute (including how to scale it to their specific cluster) that the result became useful.
This is a very shallow analogy. Fine-tuning is rather the standard technical approach to reduce compute, even if you have access to the code and all training data. Hence there has always been a rich and established ecosystem for fine-tuning, regardless of “source.” Patching closed-source binaries is not the standard approach, since compilation is far less computational intensive than today’s large scale training.
Java byte codes are a far fetched example. JVM does assume a specific architecture that is particular to the CPU-dominant world when it was developed, and Java byte codes cannot be trivially executed (efficiently) on a GPU or FPGA, for instance.
And by the way, the issue of weight portability is far more relevant than the forced comparison to (simple) code can accomplish. Usually today’s large scale training code is very unique to a particular cluster (or TPU, WSE), as opposed to the resulting weight. Even if you got hold of somebody’s training code, you often have to reinvent the wheel to scale it to your own particular compute hardware, interconnect, I/O pipeline, etc… This is not commodity open source on your home PC or workstation.
The situation is somewhat different and nuanced. With weights there are tools for fine-tuning, LoRA/LoHa, PEFT, etc., which presents a different situation as with binaries for programs. You can see that despite e.g. LLaMA being “compiled”, others can significantly use it to make models that surpass the previous iteration (see e.g. recently WizardLM 2 in relation to LLaMA 2). Weights are also to a much larger degree architecturally independent than binaries (you can usually cross train/inference on GPU, Google TPU, Cerebras WSE, etc. with the same weights).
There is even a sentence in README.md
that makes it explicit:
The source files in this repo are for historical reference and will be kept static, so please don’t send Pull Requests suggesting any modifications to the source files […]
GIMP is a special case. GIMP is being getting outdeveloped by Krita these days. E.g.:
https://gitlab.gnome.org/GNOME/gimp/-/issues/9284
Or compare with:
https://www.phoronix.com/news/Krita-2024-GPUs-AI
GIMP had its share of self inflicted wounds starting with a toxic mailing list that drove away people from professional VFX and surrounding FilmGimp/CinePaint. When the GIMP people subsequently took over the GEGL development from Rhythm & Hues, it took literally 15 years until it barely worked.
Now we are past the era of simple GPU processing into diffusion models/“generative AI” and GIMP is barely keeping up with simple GPU processing (like resizing, see above).
AMD’s support for AI is just fine
This is quite untrue, especially if you do actual research and not just run other people’s models. For example, ROCm is missing in many sparse autograd frameworks, e.g. pytorch_sparse, or having a viable alternative to Nvidias MinkowskiEngine. This is needed if you do any state-of-the-art convnets with attention-like sparsity.
FSFE’s statement:
Some related personal blogs I noticed:
Germany traditionally is quite shocking in their practice of segregating children with disabilities into special Förderschulen. Whereas the U.S. has the Individual’s with Disabilities Education Act since the 1970s, Germany was basically forced into integration recently after the country signed the U.N. Convention on the Rights of Persons with Disabilities in 2009. And even then, they are taking their sweet time to integrate. See e.g. https://www.aktion-mensch.de/inklusion/bildung/hintergrund/zahlen-daten-und-fakten/inklusionsquoten-in-deutschland as how currently, slightly less than half of German students with disabilities go to a regular school (the Inklusionsanteil).
See: https://en.wikipedia.org/wiki/English-language_spelling_reform
English has been the total outlier among (originally) European language with no body of authority over its spelling. Even the “reform” by Noah Webster never really caught on outside North America, nearly 100 years later. And even more curious, the somewhat authoritative Oxford English Dictionary disagrees in their spelling with everybody (https://en.wikipedia.org/wiki/Oxford_spelling).
Nearly every single word in English that starts with a g followed by a soft ih/eh vowel is pronounced as a soft g, just a few:
That is patently not true and blatant cherry picking, e.g. already contradicted by the lexically matching word “gift” (and there are “giggle”, “gild”, “girl”, “git”, “give”, “gizmo”, etc.). See Wikipedia, which referenced linguists studying this:
An analysis of 269 words by linguist Michael Dow found near-tied results on whether a hard or soft g was more appropriate based on other English words; the results varied somewhat depending on what parameters were used.[11] Of the 105 words that contained gi somewhere in the word, 68 used the soft g while only 37 employed its counterpart. However, the hard g words were found to be significantly more common in everyday English; […]
https://en.wikipedia.org/wiki/Pronunciation_of_GIF#Cause
Michael Dow is an associate professor in linguistics with specialization in phonology, by the way.
and if you’re confused why others pronounce it with a soft G, they would seem to be simply more familiar with the English language 🤷♂️
Well, clearly you are already not as “familiar with the English language” as you might think.
Three side remarks about China, which can be a peculiar example to compare to for Russia, maybe even any other country: