lucasjinreal/Crane

A Pure Rust based LLM, VLM, VLA, TTS, OCR Inference Engine, powering by Candle & Rust. Alternate to your llama.cpp but much more simpler and cleaner..

Crane – Rustベース、Candle駆動の推論エンジン

何であるか

  • Crane(CandleベースのRust加速ニューラルエンジン)は、大規模言語モデル(LLM)およびマルチモーダルモデル(視覚、OCR、音声認識、音声合成、音楽変換など)を高速で実行するオープンソースフレームワークです。
  • これはRustで書かれたCandleテンソルライブラリに基づいており、CPU、NVIDIA CUDA、Apple Metal、実験的AMD ROCmバックエンド向けの高速で低レベルのカーネルを提供します。
  • プロジェクトは3つのクレートを提供します:
    1. crane-core – モデルローダー、トークナイザー、生成ロジック、カスタムカーネルを実装するライブラリ。
    2. crane – カーネルライブラリの使い方を示す例バイナリ(チャット、VLM、OCR、TTSなど)のコレクション。
    3. crane-serve – OpenAI互換HTTPサーバー(SGLangもサポート)で、チャット、コンプリーション、音声認識、その他のエンドポイントを公開します。

主な特徴(READMEに記載)

  • 高速性 – Apple SiliconではネイティブPyTorchの50倍速、GPUではllama.cppより数倍速。融合カーネル、KVキャッシュ量子化、カーネル起動回数削減により実現。
  • Rustのみのコードベース – C++の複雑さを避けつつ、ネイティブパフォーマンスを維持。
  • クロスプラットフォーム – 1つのコードパスでCPU、CUDA GPU、Metal GPU(macOS)、実験的ROCm GPUに対応。
  • OpenAI互換API/v1/chat/completions/v1/completions/v1/audio/speech、トークン化エンドポイント、SGLang固有ルートを実装。既存のクライアントライブラリは変更なしで接続可能。
  • モデル対応 – Qwen 3.5/3.6/3.8(最大27B)、Qwen 2.5、Gemma 4、PaddleOCR-VL、MuScriptor(音楽変換)、さまざまなTTSモデル、ASR、VADなど、多数の最新モデルをそのままサポート。モデルはGGUFファイルから直接読み込み、またはsafetensorsチェックポイントからオンザフライ量子化(--quant q4k|q8_0|…)でロード可能。
  • 新しいモデルの追加が簡単 – GGUFヘッダーからアーキテクチャを検出できるため、ほとんどのモデルはRustで100行未満で統合可能。

一般的なワークフロー

  1. Rustをインストール(stableツールチェイン)。
  2. 適切な機能フラグで目的のバイナリをビルド:
    # CPUのみ
    cargo build --release
    # macOS Metal + Accelerate
    cargo build --release --features "metal,accelerate"
    # NVIDIA CUDA
    cargo build --release --features cuda
    # AMD ROCm(実験的)
    cargo build --release --features rocm
    
  3. huggingface-cliでモデル(例:Qwen2.5-0.5B-Instruct)をダウンロード、またはGGUFファイルをフォルダに配置。
  4. デモを実行 – 例:チャットバイナリを起動:
    cargo run --bin qwenchat --release
    
  5. サーバーを起動する場合:
    ./target/release/crane --model-path /path/to/model
    # その後、Python、curl、または任意のOpenAI互換SDKから呼び出し可能
    

Rustスニペットの例(READMEより)は、Qwen2.5モデルを使った最小限のエンドツーエンドチャットを示しており、以下の操作を実証しています:

  • トークナイザーとモデルの読み込み。
  • apply_chat_templateでプロンプトを準備。
  • 生成パラメータ(最大トークン数、温度、top-pなど)の設定。
  • 生成されたテキストをコンソールにストリーム出力。

なぜCraneを選ぶべきか

  • Rustに慣れており、推論用の単一言語スタックを望む場合。
  • GGUF変換ツールの調整なしでApple Silicon上で高速推論が必要な場合。
  • 視覚、OCR、ASR、TTSエンドポイントも提供する、OpenAI互換のドロップインサーバーが必要な場合。
  • 新しい量子化やカスタムカーネルの実験をRust中心のコードベースで行いたい場合。

現在の制限(記載済み)

  • ROCmバックエンドは実験的で、密行列モデルでのみテスト済み。
  • マルチシーケンスバッチ処理は制限あり(一部のVLMバックエンドではmax_concurrent=1)。
  • 機能(例:flash-style attention)はまだ未実装(TODO)。

結論 Craneは、速度、ポータビリティ、Rust第一の開発体験に焦点を当てた本格的で活発にメンテナンスされているAI推論フレームワークです。llama.cppと同様のニッチをターゲットとしていますが、より洗練され、拡張しやすく、純粋なテキスト以外の多様なモダリティも扱えることを目指しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト