軽量なローカルAI推論サーバー。わずか5MBの単一バイナリファイルで、OpenAI API互換インターフェースを提供し、GGUFモデルとLoRAアダプターをサポートします。

MITRustshimmyMichael-A-Kuykendall 2.8k Last Updated: October 04, 2025

Shimmy - 軽量なローカルAI推論サーバー

プロジェクト概要

Shimmyは、GGUFモデル向けにOpenAI API互換のエンドポイントを提供する、5.1MBの単一バイナリローカル推論サーバーです。「見えないインフラストラクチャ」として設計されており、ローカルAI開発を摩擦なく進めることができます。

コア特性

🚀 究極の軽量性

  • バイナリサイズ: わずか5.1MB(Ollamaの680MBと比較)
  • 起動時間: 100ms未満(Ollamaの5-10秒と比較)
  • メモリオーバーヘッド: 50MB未満(Ollamaの200MB以上と比較)

🔧 ゼロコンフィグレーションで実行

  • 自動ポート割り当て: ポート競合を回避
  • モデル自動検出: 複数のモデルソースをサポート
    • Hugging Faceキャッシュ: ~/.cache/huggingface/hub/
    • Ollamaモデル: ~/.ollama/models/
    • ローカルディレクトリ: ./models/
    • 環境変数: SHIMMY_BASE_GGUF=path/to/model.gguf

🎯 完璧な互換性

  • 100% OpenAI API互換: 既存ツールを直接置き換え可能
  • すぐに使える: VSCode、Cursor、Continue.devなどのツールは変更不要
  • クロスプラットフォーム対応: Linux、macOS、Windows

技術アーキテクチャ

コア技術スタック

  • 言語: Rust + Tokio(メモリ安全性、非同期パフォーマンス)
  • 推論エンジン: llama.cppバックエンド(業界標準のGGUF推論)
  • API設計: OpenAI互換(プラグアンドプレイで置き換え可能)

サポートされるモデル形式

  • GGUFモデル: 主要なサポート形式
  • SafeTensors: ネイティブサポート、ロード速度が2倍向上
  • LoRAアダプター: 一流のサポート、トレーニングから本番APIまでわずか30秒

インストールと使用

クイックインストール

方法1: Cargo経由でインストール

cargo install shimmy

方法2: プリビルド済みバイナリをダウンロード(Windows)

curl -L https://github.com/Michael-A-Kuykendall/shimmy/releases/latest/download/shimmy.exe

方法3: macOSインストール

# 依存関係をインストール
brew install cmake rust
# shimmyをインストール
cargo install shimmy

基本使用法

1. モデルをダウンロード

# 互換性のあるモデルをダウンロード
huggingface-cli download microsoft/Phi-3-mini-4k-instruct-gguf --local-dir ./models/
huggingface-cli download bartowski/Llama-3.2-1B-Instruct-GGUF --local-dir ./models/

2. サーバーを起動

# ポートを自動割り当て
shimmy serve

# ポートを手動で指定
shimmy serve --bind 127.0.0.1:11435

3. AIツールの設定

VSCode設定:

{
  "github.copilot.advanced": {
    "serverUrl": "http://localhost:11435"
  }
}

Continue.dev設定:

{
  "models": [{
    "title": "Local Shimmy",
    "provider": "openai", 
    "model": "your-model-name",
    "apiBase": "http://localhost:11435/v1"
  }]
}

コマンドラインツール

基本コマンド

shimmy serve                        # サーバーを起動(自動ポート割り当て)
shimmy serve --bind 127.0.0.1:8080 # ポートを手動でバインド
shimmy list                         # 利用可能なモデルを表示
shimmy discover                     # モデル検出を更新
shimmy generate --name X --prompt "Hi" # 生成をテスト
shimmy probe model-name             # モデルのロードを検証

APIエンドポイント

コアエンドポイント

  • GET /health - ヘルスチェック
  • POST /v1/chat/completions - OpenAI互換チャット
  • GET /v1/models - 利用可能なモデルをリスト
  • POST /api/generate - ShimmyネイティブAPI
  • GET /ws/generate - WebSocketストリーミング

使用例

# APIをテスト
curl -X POST http://localhost:11435/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "your-model",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

パフォーマンス比較

指標 Shimmy Ollama llama.cpp
バイナリサイズ 5.1MB 🏆 680MB 89MB
起動時間 <100ms 🏆 5-10秒 1-2秒
メモリ使用量 50MB 🏆 200MB以上 100MB
OpenAI API 100% 🏆 部分的にサポート なし

優位性

🔒 プライバシー優先

  • コードはローカルマシンに保持
  • データ漏洩のリスクなし
  • 完全オフラインで動作

💰 コスト効率

  • トークンごとの課金なし
  • 無制限のクエリ回数
  • 一度インストールすれば永続的に使用可能

⚡ 性能優位

  • ローカル推論、サブ秒応答
  • 低メモリ使用量
  • 高速起動

🔄 柔軟なデプロイ

  • 単一バイナリファイル
  • 外部依存なし
  • クロスプラットフォーム互換

拡張機能

LoRAアダプターサポート

Shimmyは一流のLoRAアダプターサポートを提供し、トレーニング済みモデルから本番APIへのデプロイを迅速に行えます。

# LoRAアダプターをロード
shimmy serve --lora-adapter path/to/adapter

ホットモデル切り替え

サーバーを再起動することなく、実行時にモデルを動的に切り替えることをサポートします。

GPUアクセラレーション

  • macOS: 自動Metal GPUアクセラレーション
  • クロスプラットフォーム: さまざまなGPUバックエンドをサポート

コミュニティとサポート

コミュニティリソース

まとめ

Shimmyは、ローカルAI推論の革新的なソリューションであり、「少ないことは豊かなこと」を証明しています。究極の軽量設計とゼロコンフィグレーションの理念により、Shimmyは開発者に真の「すぐに使える」ローカルAIインフラストラクチャを提供し、同時にエンタープライズレベルのパフォーマンスと互換性を維持します。AIアプリケーション開発者、研究者、またはプライバシーを重視するユーザーのいずれであっても、Shimmyは検討に値する優れた選択肢です。

Star History Chart