Discussion about this post

User's avatar
Samuel Lampa's avatar

Thanks for the nice writeup!

Although not strictly "AI in Go", I find Ollama [1] to be a great example of how Go is still very successful at least for AI *tooling*. It just hasn't got that much into the actual algorithms.

On the other hand, if Go continues to excel in tooling and infrastructure, I don't see anything preventing it from eventually starting to find its way into the algos too, given that the performance continues to improve, and innovation around the language continues.

I would be particularly interested in if LLM-based tools could help with automatic re-implementation of certain algorithms into Go, which would have huge benefits from the simplified deployment etc.

In my view Go could be an awesome platform to constitute the "WASM" of AI algorithms, for improved portability.

[1] https://ollama.com/

Expand full comment
Jan's avatar

I just bumped on the article and I missed the reference to GoMLX (https://github.com/gomlx/gomlx), currently the most developed ML framework for Go.

Gorgonia unfortunately didn't develop far enough to be viable to many applications: both in breadth of the ML library (many missing optimizers/layers) and lack of an efficient backend/engine for larger models (fine-tuning a small LLM, or image generation, etc.)

GoMLX leverages XLA (same engine used by Jax/TensorFlow) for efficient training and inference (on Linux only, support for CPUs with SIMD, GPUs and TPUs), but also has a pure Go backend (like Gorgonia) for portability (e.g: run on WASM or on an embedded device?), thought much slower.

Also GoMLX went much further into implementing various ML functionality, which I hope (I'm the author) covers some 90% of the ML use cases. Still far from the breadth of what PyTorch/Jax/TensorFlow offer, but at least it is not Python :)

Expand full comment
3 more comments...

No posts