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 проверяет локальный кэш Hugging Face на наличие модели. Если её там нет, он скачивает веса модели и конфигурации с Hub.
  2. VarBuilder выполняет ленивую загрузку файлов safetensor. Он сопоставляет имена ключей state-dict со структурами Rust, представляющими слои модели. Это отражает способ организации весов в Transformers.
  3. Candle анализирует config.json, чтобы извлечь метаданные модели, и создает соответствующий класс модели на Rust с весами из VarBuilder.

Ресурсы

  • Документация Candle
Update on GitHub