Candle

Candle

Candle은 Transformers 모델의 네이티브 Rust 구현을 제공하는 머신러닝 프레임워크예요. safetensors를 네이티브로 지원해서 Transformers 모델을 직접 로드해요.

출처: 문서

본문

/// load model config
let config: Config = 
    serde_json::from_reader(std::fs::File::open(config_filename)?)?;

/// load safetensors and memory-maps them
let vb = unsafe {
    VarBuilder::from_mmaped_safetensors(&filenames, dtype, &device)?
};

/// materialize tensors from VarBuilder into model class
let model = Model::new(args.use_flash_attn, &config, vb)?;

Transformers 통합 (Transformers integration)

  1. hf-hub crate가 로컬 Hugging Face 캐시에서 모델을 확인해요. 없으면 Hub에서 모델 가중치와 config를 다운로드해요.
  2. VarBuilder는 safetensor 파일을 지연(lazily) 로드해요. state-dict 키 이름을 모델 레이어를 나타내는 Rust 구조체에 매핑해요. 이는 Transformers가 가중치를 구성하는 방식을 그대로 반영해요.
  3. Candle은 config.json을 파싱해서 모델 메타데이터를 추출하고, VarBuilder의 가중치로 일치하는 Rust 모델 클래스를 인스턴스화해요.

리소스 (Resources)

더 알아보기 (Learn more)