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 とは?

Crane(Candle‑based Rust Accelerated Neural Engine)は、Rust で書かれたオープンソースの推論フレームワークで、Candle 機械学習ライブラリ上に構築されています。その目標は、大規模言語モデル(LLM)およびマルチモーダルモデルの推論を、CPU、NVIDIA CUDA、Apple Metal、さらには AMD ROCm など、さまざまなハードウェア上で高速かつポータブルに、そして使いやすくすることです。

中核となるアイデア

アイデア 意味
Rust + Candle Rust は安全性と単一バイナリ展開モデルを提供し、Candle は PyTorch に似た API と、Rust/CUDA/Metal で書かれた最適化されたカーネルを提供します。
GGUF ファースト モデルは GGUF 形式(llama.cpp で使用されるものと同じ)から直接読み込まれます。追加の変換手順は不要です。
ハードウェア非依存のバックエンド 実行時に、同じモデルをコードを変更せずに CPU、CUDA、Metal(macOS)、または ROCm(AMD)上で実行できます。
OpenAI 互換サーバー crane‑serve は OpenAI の chat/completions API(および SGLang)を実装しているため、既存のクライアントコードはそのまま動作します。
すぐに使える AI 機能 プレーンテキスト生成に加えて、OCR、音声認識(ASR)、音声合成(TTS)、音楽転写、視覚言語タスク用のパイプラインがすぐに使えます。

これでできること

  • 一般的なハードウェアで巨大なモデルを実行 – 例えば、27 B Bonsai 三元モデルは 16 GB の RAM に収まり、CPU または単一 GPU で実行できます。
  • API 経由でモデルを提供 – crane‑serve を起動し、/v1/chat/completions、/v1/audio/speech などを呼び出します。
  • 独自の Rust アプリを作成 – crane-core クレートは、クリーンな Rust API(ModelForCausalLM、GenerationConfig、トークナイザーなど)を公開しており、推論を任意の Rust バイナリに埋め込むことができます。
  • 量子化を試す – --quant q4_0 などのフラグは、読み込み中に in‑situ 量子化を実行し、VRAM/RAM 使用量を削減します。

📦 サポートされているモデル(README 時点)

  • Bonsai 2 Ternary 27B – ネイティブ Prism PTQ1_0 / PQ2_0 GGUF、CPU と CUDA をサポート。
  • Qwen 3.8‑Flash‑Next(177 B MoE)– SYCL 経由で Intel Arc GPU 上で実行。
  • Qwen 3.5 / 3.6 / 3.8(さまざまなサイズ、高密度および視覚言語バリアント)。
  • Ornith‑1.0‑9B – ツール呼び出しエージェント。
  • Gemma 4、Hunyuan Dense、Moonshine ASR、Silero VAD、Qwen3‑TTS、Voxtral‑4B‑TTS、KugelAudio、MuScriptor(音楽転写)、PaddleOCR‑VL など。
  • さらに多くのモデルが「近日公開」としてリストされています。

🛠️ はじめに(クイックスタート)

# クローンしてインストール
git clone https://github.com/lucasjinreal/Crane
./install.sh

# サーバーを実行(Bonsai 三元モデルの例)
./target/release/crane-serve \
    --model-path checkpoints/Ternary-Bonsai-2-27B-gguf/Ternary-Bonsai-2-27B-PTQ1_0.gguf \
    --ui

UI がブラウザで開き、コードを書かずにチャット、OCR、ASR などを実行できます。

簡単な Rust プログラムの実行

README には、Qwen2.5‑0.5B‑Instruct を読み込み、純粋な Rust で応答を生成する最小限の例が含まれています。わずか数十行のコードです。

⚡ パフォーマンスのハイライト(変更ログより)

ハードウェア モデル PyTorch / llama.cpp との速度比較
Apple M1/M2/M3(CPU) Qwen3‑VL 2B ネイティブ PyTorch より約 50 倍高速
NVIDIA RTX 3090(CUDA) Qwen 3.5‑2B‑Q8_0 llama.cpp より 3 倍高速(カーネル融合後)
AMD RX 7800 XT(ROCm) Qwen 3.5‑2B‑Q8_0 CPU より 5–7 倍高速、CUDA との差を縮小
Intel Arc Pro B70(SYCL) Qwen 3.8‑Flash‑Next 単一の 32 GB GPU で実行

主な最適化には以下が含まれます:

  • カーネル融合(正規化、GDN 再帰、top‑k サンプリング)。
  • In‑situ 量子化 – 全精度の重みを GPU メモリに読み込むことを回避。
  • カーネル起動オーバーヘッドの削減 – トークンあたりの送信時間が約 22 ms から約 7 ms に短縮。

📚 内部の仕組み

  1. モデルの読み込み – crane-core が GGUF ヘッダーを読み取り、アーキテクチャ(例:qwen3_5)を検出し、適切な dtype/device で Candle VarBuilder を構築します。
  2. バックエンドの選択 – 実行時にデバイス(cpu、cuda、metal、rocm)が選択され、同じ Rust コードが対応する Candle カーネルにディスパッチされます。
  3. 生成ループ – Candle の ModelForCausalLM トレイトを使用し、TextStreamer がトークンをクライアントにストリーミングします。
  4. サーバーレイヤー – crane-serve は生成ロジックを非同期 HTTP サーバーにラップし、OpenAI 互換のエンドポイントを提供します。

🛣️ ロードマップ / 今後の予定

  • より多くのマルチモーダルモデル(VLA、高度な視覚言語パイプライン)。
  • ROCm での本格的な MoE サポート。
  • スコア行列を除去するための、よりメモリ効率の高いアテンションカーネル(フラッシュスタイル)。
  • モデル変換と量子化のためのツールの拡張。

上記の情報はすべてリポジトリの README から直接取得したものであり、外部の仮定は追加されていません。

関連

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