from dataclasses import dataclass @dataclass class PEFTConfig: method: str = "qlora" lora_r: int = 16 lora_alpha: int = 32 lora_dropout: float = 0.1 target_modules: tuple[str, ...] = ("q_proj", "k_proj", "v_proj", "o_proj") def describe_peft_stack() -> dict[str, str]: return { "QLoRA": "Memory-efficient low-bit adapter fine-tuning", "LoRA": "Low-rank adaptation for fast domain tuning", "PEFT": "Parameter-efficient framework for adapters", "DeepSpeed": "Distributed optimization and ZeRO partitioning", "FSDP": "Fully sharded data parallel training", }