Run and adapt models in Go.

Inference, chat, serving, and training for Apple Silicon, built on mlx-go. Supported model families share a registry and a ModelIR generation pipeline.

Pre-1.0. Source private today, available for review on request. Working toward a first public v0.x tag.

mlx-go supplies arrays and autograd; mlx-go-lm adds model architectures, token generation, serving, evaluation, and training. Those training paths are intended to turn captured usage into an operator-owned model. mlx-go-vibethinker and mlx-go-fedistill both build on them.

Load a checkpoint from a local directory or Hugging Face model ID. Generate text, use it through an HTTP API, or fine-tune an adapter from your own dataset. The server exposes OpenAI- and Anthropic-compatible endpoints for supported requests.

mlx-lm-generate -model ./model -prompt "Summarize this change"
mlx-lm-serve -model ./model
mlx-lm-train -model ./model -train -data ./data -adapter-path ./adapters

Examples from a source build. Apple silicon is the primary host; selected Linux CPU and CUDA workflows are also supported. Model coverage and native runtime requirements depend on the chosen build.

Recent branches improve adapter loading and application before generation, add embedding-model work, and reject non-finite outputs in generation conformance checks. Work also tightens temporary-array cleanup on failed or interrupted generation.

For an integration review, bring the checkpoint, target machine, representative prompts, and any adapter. Those inputs define a useful check of loading, output quality, memory use, and latency.