把模型和运行时打成一个文件:goinfer 用纯 Go 跑 LLM 推理
- 项目地址:
- 文档站:
- 协议:MIT | 语言:Go | Star:12(2026-09-09)| 状态:Pre-1.0
goinfer 是纯 Go 的推理运行时:不需要 Python、不需要 llama.cpp、不需要 CUDA 工具链。运行时和模型权重打在同一个文件里,goinfer-chat 约 1.5GB / 1.1GB,内含一个 1.5B 编码模型,下载即跑。
构建与服务端
从源码构建要求 Go 1.27+:
go install github.com/townsendmerino/goinfer/cmd/serve@latest
go install -tags cuda github.com/townsendmerino/goinfer/cuda/cmd/serve@latest # Linux + NVIDIA
Release 里下载的 goinfer-serve 已带好后端:macOS 带 Metal,Linux 带 CUDA。goinfer-serve --version 会打印当前二进制编进了哪些后端,这是确认 GPU 支持是否就位最快的方式。
服务端支持 OpenAI 和 Anthropic 端点、自带 Web UI、内建 GPU,模型指向你自己的 GGUF。
能力清单
- 模型:27 个,覆盖 Gemma 3、Qwen、Llama、Mistral、Phi、MLA、GLM、Kimi、Granite、Nemotron、Mellum 等
- 序列混合家族:softmax·GQA、门控线性(DeltaNet)、状态空间(Mamba-2)、隐式 KV(MLA)四类全覆盖,外加稠密与稀疏 MoE
- 加载器:GGUF、safetensors、GPTQ、AWQ,以及预量化的 .giw 包
- 量化:f32、int8、int8int8、int4(W4A8),每个家族都有 HuggingFace logit 对齐门禁
- GPU:WebGPU 全平台,另有无 cgo 的 CUDA 与 Metal
- 服务:OpenAI 兼容 + Anthropic Messages 端点,多模型、视觉、嵌入
状态与限制
Pre-1.0。前向传播与量化契约有对齐门禁,接口稳定;加载器和架构描述符表面仍在变动,升级时这两块要留意。哪些接口会在 v1.0 被 semver 绑定已经确定,见 docs/api-tiers.md(2026-08-18 签署),但在 v1.0 tag 之前不生效。
Star 数 12,意味着踩坑时能搜到的外部经验很少,遇到问题大概率要直接读源码或文档站。
适合的场景:把 LLM 嵌进 Go 程序、气隙或离线部署、需要结构化输出强保证。如果只是想在笔记本上跑个 demo,现成的 Python 生态工具链更多。