John U. Balis

Open source AI enthusiast.

Maintainer of several generative AI open source projects on Github.

I post about AI and open source.

John U. Balisjohnubalis
2024-07-27

I'm pleased to announce localwriter, a libreoffice writer extension that allows local-inference language model editing using text-generation-webui as a backend.

Repository:
github.com/balisujohn/localwri
Demo:
youtube.com/watch?v=rassvcjpTA0

John U. Balisjohnubalis
2024-07-11

If anyone is interested in converting PyTorch models to GGML, I have a new blog post on the subject, complete with example code.

balisujohn.github.io/convertin

John U. Balisjohnubalis
2024-05-18

If you want to get GGML and C++ experience and work on a (hopefully) impactful FOSS project, feel free to join the tortoise.cpp discord. I have tasks to work on for all skill levels. If you see this after the link is expired you can also DM for an invite.

discord.gg/YtCfVu5r

John U. Balisjohnubalis
2024-04-28

@lana Very basic math textbooks seem like they would be incredibly valuable for this purpose. I'm confident you could could fully decipher an alien language if there were some math textbooks in the corpus.

John U. Balisjohnubalis
2024-04-26

tortoise.cpp (tortoise-tts ggml rewrite) is looking for open source contributors! Feel free to DM if you are interested. All C++ skill levels welcome.

github.com/balisujohn/tortoise

John U. Balisjohnubalis
2024-01-03

If anyone is looking to work on an (text to speech) project and have some C++ experience, here is a great first task to work on!

github.com/balisujohn/tortoise

John U. Balis boosted:
Chris 🌱 :verified_purple:brainblasted@crab.garden
2023-11-04

Does anyone know of a Linux app that will let me create forms in non-form PDFs? Because occasionally I get PDFs that definitely should be form-fillable but aren't

I am specifically talking about forms, not freeform editing/annotations.

John U. Balisjohnubalis
2023-11-04

@brainblasted I don't think Firefox supports this now, but this would be a great feature to add to it.

John U. Balis boosted:
2023-11-04

I keep being pleasantly surprised by how frequently just reporting an open source software bug or packaging issue with specific examples -- often not much more than I needed to do to figure out that it wasn't *me* causing the problem -- results in the thing being fixed.

Honestly, given how effective it is (and how good it feels!) I'm kind of shocked that more people don't report issues. Like how am I the first one to report this when the package has 1,000,000+ downloads?

John U. Balis boosted:
Vincent Cloutiervincent@r.town
2023-09-07

Turns out you on a #Librem5 you can install android in a container and it runs at native speed. The android window shows as an app, so I can just use an android app if I find a native version lacking, neat!

Screenshot of Android (the OS)The Android window is an app amongst others on the phone home screen
John U. Balisjohnubalis
2023-09-07

@vincent does this work w duo

John U. Balisjohnubalis
2023-09-03

If anyone is looking for low-stress opportunities to contribute to open source, getting minecraft-style automatic chicken farms to work in seems to be an unsolved problem that will need changes to mineclone2's mechanics to solve. Definitely a cool opportunity to get your feet wet with Lua programming and improve a free and open source video game.

git.minetest.land/MineClone2/M

git.minetest.land/MineClone2/M

John U. Balisjohnubalis
2023-09-02

@marcorobotics @Riedl I think it's a sound idea, elevators have this feature already.

John U. Balis boosted:
Sarah Jamie Lewissarahjamielewis
2023-09-01

@johnubalis 12 gigs, although it's only using ~8gigs of that for inference.

The backend is based on github.com/ggerganov/llama.cpp which can combine both cpu and graphics card inference

Right now, because I have other things running that need the GPU I only have 30/43 layers offloaded to the GPU, the rest are CPU.

I found 13b was the right balance speed/usefulness. But with this setup I can also run quantized 34b model with some gpu offloading at a few tokens per second.

John U. Balisjohnubalis
2023-09-01

@sarahjamielewis how much vram does it have? If you are managing it with 8 gigs of vram, I am very interested to hear how.

John U. Balis boosted:
Sarah Jamie Lewissarahjamielewis
2023-09-01

Integrated some fancy local llm magic into my custom IDE project and now I can request arbitrary code reviews.

Sometimes the reviews are not great, but they also don't tend to be terribly off base (and occasionally point towards an actual issue).

And this is without many of the techniques to squeeze even greater performance / context awareness (I am really interested in playing around with some ast-aware / grammar-driven sampling)

A screenshot of an IDE with a section of code highlighted and a panel displaying a conversation between the user and a local llm "Blodeuwedd" with blodeuwedd analyzing the section of code; providing a step by step breakdown.

The response from Blodeuwedd visible on screen is reproduced below:

The code snippet defines a function named `drw_create` that creates and initializes a data structure called `Drw`. The purpose of this function is to create a drawable window with the specified width and height, and return a pointer to the initialized `Drw` structure.

Here is a summarized step-by-step description of the code:

1. Allocate memory for the `Drw` structure using the `ecalloc` function.
2. Set the `dpy`, `screen`, `root`, `w`, and `h` fields of the `Drw` structure to the corresponding values passed as arguments to the function.
3. Create a drawable pixmap with the specified width and height using the `XCreatePixmap` function.
4. Create a graphics context (GC) for the drawable pixmap using the `XCreateGC` function.
5. Set the line attributes of the GC to 1, LineSolid, CapButt, and JoinMiter using the `XSetLineAttributes` function.
6. Return the initialized `Drw` structure.

Now, let's take a closer look at each step:
John U. Balisjohnubalis
2023-09-01

@sarahjamielewis is this local inference? And if so, what model are you using?

John U. Balis boosted:
2023-09-01

As an experiment, I asked #ChatGPT to write #Python code to compute, for each 𝑛, the length 𝑀(𝑛) of the longest subsequence of \(1,\dots,n\) on which the Euler totient function ϕ is non-decreasing. For instance, 𝑀(6)=5, because ϕ is non-decreasing on 1,2,3,4,5 (or 1,2,3,4,6) but not 1,2,3,4,5,6. Interestingly, it was able to produce an extremely clever routine to compute the totient function (that I had to stare at for a few minutes to see why it actually worked), but the code to compute \(M(n)\) was slightly off: it only considered subsequences of consecutive integers, rather than arbitrary subsequences. Nevertheless it was close enough that I was able to manually produce the code I wanted using the initial GPT-produced code as a starting point, probably saving me about half an hour of work. (and I now have the first 10,000 values of \(M\)). The results were good enough that I would likely turn to GPT again to provide initial code for similar calculations in the future. chat.openai.com/share/a022e1d6

John U. Balisjohnubalis
2023-09-01

@nomdeb I was pleasantly surprised to see their licensing page: meta.farm.bot/v2023/farmbot/in

They are telling the truth about being open source.

John U. Balisjohnubalis
2023-09-01

Another feature of localpilot is prompt-based selection editing, which can be quite powerful with a powerful underlying model. Here is what's already possible on CPU with a 13b parameter model:

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst