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 加速神經引擎)是一個開源框架,用於高速執行大型語言模型(LLMs)與多模態模型(視覺、OCR、語音轉文字、文字轉語音、音樂轉錄等)。
  • 它建立在用 Rust 寫成的 Candle 張量庫之上,提供 CPU、NVIDIA CUDA、Apple Metal 及實驗性 AMD ROCm 後端的快速底層內核。
  • 該專案提供三個 crate:
    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++ 的複雜性,同時仍提供原生效能。
  • 跨平台 – 一個程式碼路徑可在 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|…)。
  • 輕鬆新增新模型 – 多數模型只需不到 100 行 Rust 程式碼即可接入,因為架構可從 GGUF 標頭自動偵測。

典型工作流程

  1. 安裝 Rust(穩定工具鏈)。
  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 準備提示。
  • 設定生成參數(最大 token 數、溫度、top-p 等)。
  • 將生成的文本流式回傳至終端機。

為何選擇 Crane

  • 如果你已熟悉 Rust,並希望在推論中使用單一語言堆疊。
  • 如果你需要在 Apple Silicon 上實現快速推論,而無需煩惱 GGUF 轉換工具。
  • 如果你需要一個可直接取代的 OpenAI 兼容伺服器,同時支援視覺、OCR、ASR 與 TTS 端點。
  • 如果你正在實驗新的量化或自訂內核,並偏好以 Rust 為中心的程式碼庫。

目前限制(如所註明)

  • ROCm 後端為實驗性,僅在密集模型上測試過。
  • 多序列批次處理有限(某些 VLM 後端 max_concurrent=1)。
  • 某些進階功能(如 flash-style attention)仍為待辦事項(TODO)。

總結 Crane 是一個真正、活躍維護的 AI 推論框架,專注於速度、可移植性與 Rust 優先的開發體驗。它與 llama.cpp 面向相同領域,但目標是更乾淨、更易擴展,並能處理比純文字更廣泛的模態。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案