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.
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?
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.
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.
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?
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.
OP said in the submission that this is educational.
Not everything has to be useful.