peft

🤗 PEFT: State-of-the-art Parameter-Efficient Fine-Tuning.

open-sourceagent-frameworks
Visit WebsiteView on GitHub
20.9k
Stars
+1738
Stars/month
2
Releases (6m)

Overview

PEFT(Parameter-Efficient Fine-Tuning)是HuggingFace开发的参数高效微调库,专门解决大型预训练模型微调成本过高的问题。该库实现了多种最先进的PEFT方法,包括LoRA、Adapters、Soft prompts、IA3等技术,允许用户只微调模型的少量参数(通常不到1%)来适应下游任务,而不是微调整个模型的所有参数。PEFT与Transformers、Diffusers和Accelerate等流行库深度集成,为模型训练、推理和分布式计算提供无缝支持。该库的核心优势在于大幅降低计算和存储成本,同时保持与全量微调相当的性能表现。PEFT特别适用于资源受限的环境和需要快速适应多个任务的场景,已成为大模型微调的标准解决方案,在学术界和工业界广泛应用。

Pros

  • + 显著降低微调成本:只需训练0.1-1%的参数,大幅减少计算和存储需求
  • + 与主流库深度集成:无缝支持Transformers、Diffusers、Accelerate等生态
  • + 性能卓越:在多个基准测试中达到与全量微调相当的效果

Cons

  • - 学习曲线较陡:需要理解不同PEFT方法的原理和适用场景
  • - 方法选择复杂:面对多种PEFT技术(LoRA、AdaLoRA、IA3等)需要根据任务特点选择
  • - 依赖特定框架:主要针对HuggingFace生态优化,其他框架支持有限

Use Cases

Getting Started

1. 安装库:pip install peft 2. 准备配置:创建PEFT配置对象(如LoraConfig)并设置参数 3. 包装模型:使用get_peft_model将基础模型和配置包装成可微调模型