Show HN: ZigFormer – An LLM implemented in pure Zig

13 points by habedi0 17 hours ago

Hi everyone,

I've made an early version of ZigFormer, a small LLM implemented in Zig with no dependencies on external ML frameworks like PyTorch or JAX. ZigFormer is modelled after a textbook LLM (like GPT-2 from OpenAI) and can be used as a Zig library as well as a standalone application to train a model and chat with it.

This was mainly an educational project. I'm sharing it here in case others find it interesting or useful.

Link to the project: https://github.com/CogitatorTech/zigformer

jeffjeffbear 5 hours ago

Doesn't seem very bad, for any of the Zig code I looked at, it would maybe have been nicer to try starting from something like GGML and building on top so it was more extensible. Personally, aside from implementing all of BLAS in Zig, I would have just used OpenBLAS.

  • jeffjeffbear 5 hours ago

    I don't mean to be mean, or anything, but aside from educating yourself this isn't super useful for others, if it could run any Qwen3 model or something it might be more interesting. Maybe have some explanation of what you are wanting from this project?

    • habedi0 2 hours ago

      I wanted to get a sense of and intuition for how to build an LLM from scratch, and to learn more Zig by doing so.

      I avoided using external (linear algebra/tensor) libraries to keep the project's scope small and manageable. Adding them can be the next step, but they are usually very large dependencies that can make the project bloated. Anyway, Zig has great SIMD and multi-threading support, but I think there is a need for a native linalg/tensor library for Zig with a clean and mature API.

      I'm not sure about the usefulness, it depends TBH. I think there are a lot of people (like hobbyists, students, people learning Zig, etc.) who can find the project somewhat useful at its current stage.

    • n_kr 5 hours ago

      OP said in the submission that this is educational.

      Not everything has to be useful.