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 백엔드용 고속 저수준 커널을 제공합니다.
- 프로젝트는 세 가지 크레이트를 제공합니다:
- crane-core – 모델 로더, 토크나이저, 생성 로직 및 커스텀 커널을 구현하는 라이브러리.
- crane – core 라이브러리를 사용하는 방법을 보여주는 예제 바이너리(채팅, VLM, OCR, TTS 등) 모음.
- 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|…)로 로드 가능합니다. - 새 모델 추가가 쉬움 – 대부분의 모델은 GGUF 헤더에서 아키텍처를 감지할 수 있어, Rust로 100줄 미만으로 통합 가능합니다.
일반적인 워크플로우
- Rust 설치(stable 툴체인).
- 적절한 기능 플래그로 원하는 바이너리 빌드:
# 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 huggingface-cli로 모델(예: Qwen2.5-0.5B-Instruct) 다운로드 또는 GGUF 파일을 폴더에 배치.- 데모 실행 – 예: 채팅 바이너리:
cargo run --bin qwenchat --release - 또는 서버 시작:
./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 백엔드는 실험적이며 밀집 모델에서만 테스트됨.
- 다중 시퀀스 배치는 제한적(
max_concurrent=1일부 VLM 백엔드). - 일부 고급 기능(예: flash-style attention)은 아직 미구현(ToDo).
결론 Crane는 속도, 이식성, Rust 중심 개발자 경험에 초점을 맞춘 진정한 활발히 유지 관리되는 AI 추론 프레임워크입니다. llama.cpp와 같은 영역을 타겟으로 하지만, 더 깔끔하고 확장하기 쉬우며 순수 텍스트를 넘어서는 더 넓은 모달리티를 처리할 수 있도록 목표로 하고 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트