peft

用极低成本微调大模型,省显存省时间,效果不打折。

PEFT 是一个专注于参数高效微调(Parameter-Efficient Fine-Tuning)的 Python 库,由 Hugging Face 团队维护。它解决了在大规模预训练模型(如 Transformer 架构)上进行全量微调时计算资源消耗巨大、训练成本高昂的问题。PEFT 提供了多种前沿的微调方法,包括 LoRA、Prefix Tuning、P-Tuning、Prompt Tuning、AdaLoRA 等,这些方法通过冻结大部分预训练参数,仅训练少量新增或选定的参数,从而在保持甚至提升模型性能的同时,大幅降低显存占用和训练时间。其核心能力包括:统一的 API 设计,支持与 Transformers、Diffusers 等主流库无缝集成;支持多种模型类型(LLM、扩散模型、多模态模型);提供模型保存与加载的便捷接口,微调后的模型体积小,便于部署。PEFT 已成为 Hugging Face 生态中微调大模型的标准工具之一,广泛应用于 NLP、CV 和生成式 AI 领域。

开源 free 开源模型
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 21714
维护状态 活跃
是否开源 是
定价模式 free

项目数据

分类开源模型
开发团队huggingface
所属国家
官网地址
定价模式free
价格说明开源库,Apache-2.0许可证,完全免费,可自行部署使用。
访问状态
是否开源是
开源协议Apache-2.0
主要语言Python
技术栈/模型adapter,diffusion,fine-tuning,llm,lora,parameter-efficient-learning,peft,python,pytorch,transformers
GitHub 星标★ 21714
30天Star增速
HF 下载量
上线时间2022-11-25 00:00:00
最近更新2026-09-22 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数5

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 4 步

环境要求

  • Python 环境并可使用 pip(README 未指定最低版本)
  • 已安装 PyTorch(示例代码 import torch)
  • 已安装 transformers(示例代码 import transformers)
  • 可选:Accelerate,用于超大模型的分布式训练与推理

安装与启动步骤

  1. 1安装 PEFT

    使用 pip 从 PyPI 安装 PEFT 库本体,这是 README Quickstart 给出的唯一安装命令。

    pip install peft
  2. 2加载基础模型

    导入 torch 与 transformers,按 README 示例选择设备并加载 Qwen2.5-3B-Instruct 作为待微调基础模型。

    import torch
    from transformers import AutoModelForCausalLM
    
    device = torch.accelerator.current_accelerator().type if hasattr(torch, "accelerator") else "cuda"
    model_id = "Qwen/Qwen2.5-3B-Instruct"
    model = AutoModelForCausalLM.from_pretrained(model_id, device_map=device)
  3. 3包装为 LoRA 模型

    用 LoraConfig 配置 r、lora_alpha、task_type,再通过 get_peft_model 把基础模型包装成 PEFT 模型。

    from peft import LoraConfig, TaskType, get_peft_model
    
    peft_config = LoraConfig(
        r=16,
        lora_alpha=32,
        task_type=TaskType.CAUSAL_LM,
    )
    model = get_peft_model(model, peft_config)
  4. 4查看可训练参数

    调用 print_trainable_parameters 打印被训练的参数量与占比,README 示例中仅为全部参数的 0.19%。

    model.print_trainable_parameters()

关键配置

配置项必填说明示例
r是LoRA 低秩矩阵的秩,示例取 1616
lora_alpha是LoRA 缩放系数,示例取 3232
task_type是任务类型,示例为因果语言模型TaskType.CAUSAL_LM
target_modules否指定要加 LoRA 的模块,README 中该行为注释状态["q_proj", "v_proj"]
model_id否基础模型标识,README 示例使用 Qwen2.5-3B-InstructQwen/Qwen2.5-3B-Instruct

如何确认成功

运行 model.print_trainable_parameters(),若正常输出可训练参数量及占比(示例为 0.19%)即说明 PEFT 配置生效。

常见问题

Q:需要微调模型全部参数吗?

A:不需要。PEFT 冻结大部分预训练参数,只训练少量新增或选定参数,README 示例中仅训练 0.19% 的参数,可大幅降低计算与存储成本。

Q:支持哪些参数高效微调方法?

A:README 示例演示了 LoRA;项目介绍中还提到 Prefix Tuning、P-Tuning、Prompt Tuning、AdaLoRA 等方法。

Q:怎么指定要微调的模块?

A:在 LoraConfig 中传入 target_modules 参数,例如 ["q_proj", "v_proj"];README 示例中该行是可选的,默认被注释掉。

Q:超大模型怎么做分布式训练?

A:PEFT 与 Accelerate 集成,可用于超大模型的分布式训练与推理;同时与 Transformers、Diffusers 集成。

Q:pip install peft 会一并装好 torch 和 transformers 吗?

A:README 只给出 pip install peft,未说明会附带 torch、transformers,示例代码额外导入了这两个库,请自行确认环境可用。

注意事项

  • README 未给出显存、GPU 型号等硬件最低要求,实际需求取决于所选基础模型规模。
  • 示例默认加载 Qwen/Qwen2.5-3B-Instruct,首次运行会从 Hugging Face 下载模型权重,需保证网络与磁盘空间。
  • README 未提供 git clone、Docker 或云服务部署方式,本教程按库/依赖方式安装使用。
  • 务必执行 model.print_trainable_parameters() 确认可训练参数占比,避免误做了全量微调。

核心亮点

  • 支持 LoRA、Prefix Tuning 等多种主流高效微调方法,选择灵活
  • 与 Hugging Face Transformers 深度集成,几行代码即可切换微调策略
  • 微调后模型文件小,便于存储和分发,显存占用显著降低

不足之处

  • 文档偏重 API 使用,对方法原理和适用场景的深入讲解不足
  • 部分新方法(如 AdaLoRA)的成熟度和社区支持不如 LoRA

适用场景

  • 在单卡或低显存环境下微调 7B 以上大语言模型
  • 针对特定领域(如法律、医疗)快速定制 LLM 的对话风格
  • 为扩散模型(如 Stable Diffusion)进行个性化微调

替代项目

LoRA、Adapters、OpenDelta

项目介绍

peft 是模型训练领域的开源项目,由 huggingface 开发,2022 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(21,714)位列前 3%,在模型训练分类的 518 个项目里位列前 2%。

近 41 天,它的 GitHub 星标从 21,537 增加到 21,714,净增 177。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-22。开源库,Apache-2.0许可证,完全免费,可自行部署使用。

它主要面向的使用场景是:在单卡或低显存环境下微调7B以上大语言模型。同类可对比的替代方案包括 LoRA、Adapters、OpenDelta。

上一篇:self-llm

下一篇:ms-swift

同类项目推荐

Long-RL 开源

让强化学习轻松驾驭超长序列,训练更稳更快

Long-RL: Scaling RL to Long Sequences (NeurIPS 2025)

★ 729 2026-08-09
TPA 开源

把注意力复杂度从平方降到线性,长序列不再卡顿

[NeurIPS 2025 Spotlight] TPA: Tensor ProducT ATTenTion Transformer (https://arxiv.or···

★ 463 2026-08-09
minimind 开源

两小时造出你的小模型,练手入门不求人

Train a 64M-parameter LLM from scratch in just 2h!

★ 62178 2026-08-09
pruna 开源

一键优化 AI 模型,推理提速又省资源。

Pruna is a model optimization framework built for developers, enabling you to delive···

★ 1286 2026-08-13