Transformers documentation

Candle

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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 통합

  1. hf-hub crate는 로컬 Hugging Face 캐시에서 모델을 확인합니다. 해당 모델이 없으면 Hub에서 모델 가중치와 설정을 다운로드합니다.
  2. VarBuilder는 safetensor 파일을 지연 로드합니다. state-dict 키 이름을 모델 레이어를 나타내는 Rust 구조체로 매핑합니다. 이는 Transformers가 가중치를 조직하는 방식과 일치합니다.
  3. Candle은 config.json을 파싱하여 모델 메타데이터를 추출하고, VarBuilder의 가중치를 사용하여 일치하는 Rust 모델 클래스를 생성합니다.

리소스

Update on GitHub