このプロジェクトについて
goinferは、オープンウェイトのLLMをローカルで実行するためのpure-Go、cgo不要のライブラリおよびバイナリ群です。単一ユーザー推論を対象としています。つまり、1プロセス、1マシンで、ファイルをコピーするだけでデプロイできます。これはサービングエンジン(continuous batchingやpaged attentionなし)ではなく、プロバイダーオーケストレーション層でもありません。
主な機能:
- **ライブラリとしての利用**: decoderおよびtokenizerパッケージを`go get`し、インポートして、`decoder.Model.Generate`でテキストを生成します。40行の例が`examples/embed/main.go`にあります。
- **出力型の保証**: Go構造体からJSON Schemaを導出し、インクリメンタルなバイトレベルの文法に対するlogitマスクを介して生成を制約し、結果を`json.Unmarshal`します。無効なトークンは到達不能であり、リトライされません。任意のJSON Schemaから、またコマンドラインから動作します。ツール呼び出しもQwen、Nemotron-3-Nano、Mellum2、Granite 4.2ファミリーで同様に扱われます。
- **信頼度の取得**: `.CaptureConfidence(...)`は、enum、boolean、integerフィールドの決定位置において、許可された値に対するモデルの確率を報告します。ルーティングに有用ですが、キャリブレーション済みではありません。
- **バイナリ**: `goinfer-serve`(OpenAI + Anthropic API、Web UI、GPU内蔵)、`goinfer-chat`(単発ランタイム)、およびモデル同梱版(0.5Bと1.5B)は、100 MB未満のヒープで約0.4秒で起動します。
- **モデル取得**: `pull`でHuggingFaceからGGUFを直接取得します。中断された転送は再開され、匿名アクセスのみです。
- **バックエンド**: CPU、CUDA、Metal、WebGPU、すべてcgo不要です。GPUバックエンドには別個のエントリポイントがあります(`-tags metal`、`-tags cuda`)。
- **量子化**: f32、int8、int8int8、int4(W4A8)、int4mix。15種類のGGUFタイプを読み込み、5つの精度で計算します。`--quant int4`がデフォルトです。
- **大規模モデル**: `-stream-weights`はルーティングされたエキスパートのみを常駐させます(MoE向け)。`-moe-cache-experts`はエキスパートをホストからVRAMへオンデマンドでストリーミングします。
- **小型デバイス**: `CGO_ENABLED=0`で64ビットARM Linux(例: Raspberry Pi)へクロスコンパイルします。512 MBのボードが下限です。
- **モデルファミリー**: Gemma 1/2/3/4、Qwen 2.5/3、Llama、Mistral、Mixtral、Phi-3、DeepSeek/MLA、GLM、Kimi、Granite、Nemotron、Mellumを含む39ファミリー。それぞれがHuggingFace logit-parityゲートの背後にあります。
- **シーケンスミキシング**: softmax·GQA、gated-linear(DeltaNet)、state-space(Mamba-2)、latent-KV(MLA)、およびdenseとsparse-MoE。
- **ローダー**: GGUF、safetensors、GPTQ、AWQ、および事前量子化された`.giw`バンドル。
- **サービング**: OpenAI互換およびAnthropic Messagesエンドポイント、マルチモデル、vision、embeddings。`POST /v1/systemone`はTypeSafeのdecisions wire shapeに応答します。
- **パフォーマンス**: Ollamaとのベンチマークでは、コールドスタートが高速(M1 Proで25秒対33秒)、CUDA(1.05~1.47倍)およびMetal(1.5B/7Bで1.03~1.19倍)でのgreedy decodeが高速ですが、Metalでの長いプロンプトのprefillとMacでのCPU decodeはllama.cppより遅いです。すべての数値はマシン、チェックポイント、量子化、日付とともに文書化されています。
ステータス: Pre-1.0。forward-passと量子化の契約はparity-gatedで安定していますが、ローダーとアーキテクチャ記述子のサーフェスはまだ流動的です。MITライセンス。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.