PEFT库介绍
PEFT(Parameter-Efficient Fine-Tuning,参数高效微调)是由 Hugging Face 开源的一个高效微调库,旨在通过少量可训练参数实现对大型预训练模型的快速适应,从而显著降低计算和存储成本。
核心功能与优势
-
多种高效微调方法:
- LoRA(Low-Rank Adaptation):通过引入低秩矩阵来微调模型权重,仅需训练少量参数即可达到与全参数微调相当的性能。
- Prefix Tuning:通过优化输入提示(prompt)来调整模型,不改变模型权重,适应性强。
- Prompt Tuning:通过优化连续提示来微调模型,适用于零样本和少样本学习。
- BitFit:仅对模型的偏置项进行微调,极大地减少了需要优化的参数数量。
-
显著降低资源消耗:
- PEFT 方法仅需训练模型中极小部分参数(如 0.1%),显著降低了计算和存储成本。
- 例如,使用 LoRA 微调一个 3B 参数的模型,仅需 14.4GB GPU 内存,而全参数微调则需要 47.14GB。
-
与 Hugging Face 生态系统无缝集成:
- PEFT 与 Transformers 和 Accelerate 库深度集成,支持多种模型(如 BERT、GPT、T5)和任务(如序列分类、因果语言建模、图像生成等)。
-
应用场景:
- 大语言模型微调:在消费级硬件上高效微调大型语言模型。
- 图像生成:与 Diffusers 集成,用于微调 Stable Diffusion 等模型。
- 强化学习:与 TRL 库结合,用于基于人类反馈的强化学习(RLHF)。
- 多任务学习:支持多任务提示调优,使模型能够适应多个下游任务。
安装与使用
-
安装:
- 使用 PyPI 安装:
pip install peft
- 使用源码安装(获取最新功能):
pip install git+https://github.com/huggingface/peft
- 本地克隆并安装可编辑版本:
git clone https://github.com/huggingface/peft cd peft pip install -e
- 使用 PyPI 安装: