Crate peft_rs

Crate peft_rs 

Source
Expand description

§peft-rs

Comprehensive PEFT (Parameter-Efficient Fine-Tuning) adapter library for Rust.

This crate provides modular implementations of various PEFT methods:

  • LoRA (Low-Rank Adaptation)
  • DoRA (Weight-Decomposed Low-Rank Adaptation)
  • AdaLoRA (Adaptive Low-Rank Adaptation)
  • IA³ (Infused Adapter by Inhibiting and Amplifying Inner Activations)
  • LoHa (Low-Rank Hadamard Product)
  • LoKr (Low-Rank Kronecker Product)
  • OFT (Orthogonal Fine-Tuning)
  • BOFT (Butterfly Orthogonal Fine-Tuning)
  • VeRA (Vector-based Random Matrix Adaptation)
  • Prefix Tuning
  • Prompt Tuning

§Quick Start

use peft_rs::{LoraConfig, LoraLayer};
use candle_core::{Device, Tensor};

// Create a LoRA layer
let config = LoraConfig {
    r: 8,
    alpha: 16,
    dropout: 0.0,
};
let layer = LoraLayer::new(768, 768, config, &Device::Cpu)?;

// Apply to input
let input = Tensor::zeros(&[1, 10, 768], candle_core::DType::F32, &Device::Cpu)?;
let output = layer.forward(&input)?;

§Architecture

All adapters implement the Adapter trait, which provides a common interface for forward passes and weight merging.

Re-exports§

pub use adapters::adalora::AdaLoraConfig;
pub use adapters::adalora::AdaLoraLayer;
pub use adapters::boft::BoftConfig;
pub use adapters::boft::BoftLayer;
pub use adapters::ia3::Ia3Config;
pub use adapters::ia3::Ia3Layer;
pub use adapters::loha::LoHaConfig;
pub use adapters::loha::LoHaLayer;
pub use adapters::lokr::LoKrConfig;
pub use adapters::lokr::LoKrLayer;
pub use adapters::lora::DoraLayer;
pub use adapters::lora::LoraConfig;
pub use adapters::lora::LoraLayer;
pub use adapters::oft::OftConfig;
pub use adapters::oft::OftLayer;
pub use adapters::prefix_tuning::PrefixTuningConfig;
pub use adapters::prefix_tuning::PrefixTuningLayer;
pub use adapters::prompt_tuning::PromptTuningConfig;
pub use adapters::prompt_tuning::PromptTuningLayer;
pub use adapters::vera::VeraConfig;
pub use adapters::vera::VeraLayer;
pub use error::PeftError;
pub use error::Result;
pub use io::load_adapter_config;
pub use io::load_adapter_weights;
pub use io::load_pretrained;
pub use io::save_adapter_config;
pub use io::save_adapter_weights;
pub use io::save_pretrained;
pub use io::SaveLoad;
pub use io::ADAPTER_CONFIG_FILENAME;
pub use io::ADAPTER_WEIGHTS_FILENAME;
pub use model::get_peft_model;
pub use model::ModulePattern;
pub use model::PeftModel;
pub use registry::AdapterRegistry;
pub use training::count_trainable_parameters;
pub use training::format_parameter_count;
pub use training::AdapterTrainingConfig;
pub use training::AdapterTrainingState;
pub use training::LrSchedule;
pub use traits::Adapter;
pub use traits::AdapterConfig;
pub use traits::Mergeable;
pub use traits::Trainable;

Modules§

adapters
PEFT adapter implementations.
config
Configuration types for PEFT adapters.
error
Error types for peft-rs.
io
I/O utilities for saving and loading adapter weights and configurations.
model
Model integration for PEFT adapters.
registry
Multi-adapter registry for managing multiple PEFT adapters.
training
Training utilities for PEFT adapters.
traits
Core traits for PEFT adapters.