基于纯 Rust 的 LLM 推理引擎,由 Candle 框架提供支持。
Crane 专注于利用 candle 框架中内核的强大功能来加速 LLM 推理速度,同时减少开发开销,使其在 CPU 和 GPU 上都具有可移植性和快速运行模型。
背景:
很长一段时间以来,每当我想在本地运行 LLM 时,唯一的选择就是 llama.cpp 或其他具有神奇优化的工具。然而,llama.cpp 并不总是容易设置,尤其是当涉及到新模型和新架构时。如果没有社区的帮助,你很难将新模型转换为 GGUF。即使你可以,让它在 llama.cpp 中工作仍然非常困难。
现在,我们可以采用另一种方式在本地以最大速度推断 LLM。而且它是纯 Rust!不需要 C++。
使用 pyo3,您仍然可以使用 python 调用它,但 Rust 足够简单,对吧?
我做了一个和 llama.cpp chat cli 一样的最小示例,基于 Candle 框架,比使用 pytorch 快 6 倍。看看吧:
https://github.com/lucasjinreal/Crane
接下来我将添加 Spark-TTS 和Orpheus-TTS支持,如果您对 Rust 和快速推理感兴趣,请加入并一起开发 Rust!
为什么选择 Crane?
尽管传统方法面临局限性:
- PyTorch 的推理性能不佳
- llama.cpp 的复杂 C++ 代码库和模型集成
Crane 通过以下方式弥补了这一差距:
- Candle 框架:将 Rust 的效率与类似 PyTorch 的人体工程学相结合
- 跨平台加速:Metal GPU 支持比仅使用 CPU 实现 3-5 倍加速
- 简化部署:在大多数情况下,添加新模型的行数少于 100 行
对于 macOS 开发人员来说,Crane 提供与 llama.cpp 相当的性能,但维护开销却明显较低。您可以直接使用它,无需任何 GGUF 转换或安装 llama.cpp 等操作。
特点
Crane() -基于C andle 的Rust加速神经引擎一种高性能推理框架,利用 Rust 的 Candle 在 CPU/GPU 上实现最大速度。
支持的型号:
- ️ TTS 系统:Spark-TTS | Orpheus-TTS(正在开发中)
- 基础模型:Qwen2.5 系列 (Base/VL)、基础 LLM
- 多模式模型:Namo-R1、Qwen2.5-VL
主要优势:
- 极快的推理:通过 Candle 优化的内核,其表现优于原生 PyTorch;
- Rust-Powered:消除 C++ 复杂性,同时保持本机性能;
- 针对 Apple Silicon 优化:在 macOS 设备上通过 Metal 实现 GPU 加速;
- 与硬件无关:CPU/CUDA/Metal 执行的统一代码库;
使用方法
使用时crane请注意以下几点:
- crane-core:所有模型都进入核心,这是一个库;
- crane:所有应用程序(可运行的 AI 管道,例如 Qwen2-Chat、Spark-TTS、Qwen2.5-VL 等),您可以在其中构建您的应用程序,每个应用程序都是一个二进制文件,用于演示目的;
- crane-oai:OpenAI API 服务器,以 OpenAI 格式提供各种服务;
- 确保安装了最新的 Rust;
- 建造:cargo run --bin llmbench --release cargo run --bin qwenchat --release
就是这样!
现在您可以极快地运行 LLM(比 M1 上的 vanilla transformer 快约 6 倍)!