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.