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 백엔드용 고속 저수준 커널을 제공합니다.
  • 프로젝트는 세 가지 크레이트를 제공합니다:
    1. crane-core – 모델 로더, 토크나이저, 생성 로직 및 커스텀 커널을 구현하는 라이브러리.
    2. crane – core 라이브러리를 사용하는 방법을 보여주는 예제 바이너리(채팅, 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|…)로 로드 가능합니다.
  • 새 모델 추가가 쉬움 – 대부분의 모델은 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 백엔드는 실험적이며 밀집 모델에서만 테스트됨.
  • 다중 시퀀스 배치는 제한적(max_concurrent=1 일부 VLM 백엔드).
  • 일부 고급 기능(예: flash-style attention)은 아직 미구현(ToDo).

결론 Crane는 속도, 이식성, Rust 중심 개발자 경험에 초점을 맞춘 진정한 활발히 유지 관리되는 AI 추론 프레임워크입니다. llama.cpp와 같은 영역을 타겟으로 하지만, 더 깔끔하고 확장하기 쉬우며 순수 텍스트를 넘어서는 더 넓은 모달리티를 처리할 수 있도록 목표로 하고 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트