peft OSS
Hugging Face製のOSSライブラリ。LoRA・QLoRAなど複数の手法で大規模AIモデルを少ないパラメータだけ学習し直すことができ、家庭用GPUでも大型モデルのカスタマイズを実現する。完全無料・Apache 2.0ライセンス。
spec — 基本情報
| github_stars | 21.4k |
|---|---|
| pricing | 完全無料 / OSSライセンス(Apache 2.0)/ 商用利用可 |
| license | Apache-2.0 |
| japanese | 不明 |
概要
PEFT(Parameter-Efficient Fine-Tuning:パラメータ効率の良いファインチューニング)は、Hugging Faceが開発・公開しているOSSのPythonライブラリです。従来、GPT系やLlamaのような大規模AIモデルを「自社データ用にカスタマイズ(ファインチューニング)」しようとすると、モデル全体の数十億〜数千億のパラメータ(設定値)をすべて書き換える必要があり、高額なGPUサーバーを大量に用意しなければなりませんでした。PEFTはその問題を根本から解決します。モデルの大部分はそのまま凍結し、ごく一部の「追加アダプター(薄い差分レイヤー)」だけを学習させることで、フルファインチューニングに匹敵する性能を、はるかに少ないコストで実現します。
注目される理由は「コストの劇的な削減」と「手軽さの両立」にあります。公式GitHubによれば、学習するパラメータはモデル全体の0.1〜0.2%程度にとどまり、保存するファイルサイズも数GBではなく数MB〜数十MBで済みます。たとえばStable Diffusionをカスタマイズした場合のチェックポイントサイズはわずか8.8MBとされています。さらにPEFTはHugging FaceのTransformers・Diffusers・Accelerateと深く統合されており、既存のワークフローにほぼそのまま組み込めます。
主な機能
- LoRA(低ランク行列による効率的な学習)のサポート
モデルの重み行列を小さな2つの行列に分解して追加学習する手法(LoRA)を数行のコードで使える。学習パラメータを大幅に削減しながらフルファインチューニング相当の精度を達成する。
- QLoRA(4ビット量子化+LoRA)のサポート
ベースモデルを4ビット量子化(データを低精度で圧縮する技術)した上でLoRAを適用する手法。16GB程度の一般向けGPUでも大型モデルのファインチューニングが可能になる。
- 多彩なファインチューニング手法を一元管理
LoRA・QLoRA・AdaLoRA・IA3・Prefix Tuning・Prompt Tuning など複数の手法をサポート。設定ファイル(Config)を切り替えるだけで手法を変更できる。
- アダプターの保存・共有・切り替え
学習済みのアダプターはファイルサイズが小さいため、Hugging Face Hub(モデル共有サービス)に簡単にアップロード・共有できる。複数のアダプターをひとつのベースモデルに読み込んで動的に切り替えることも可能。
- 画像生成モデルへの対応
テキストAIだけでなく、Stable Diffusionなどの画像生成モデル(Diffusers連携)にもLoRAを適用でき、特定のキャラクターや画風への特化が実現できる。
- 量子化との組み合わせ
bitsandbytesライブラリと連携してモデルを量子化(圧縮)したままファインチューニングでき、さらなるメモリ削減が可能。
- Hugging Faceエコシステムとのシームレスな統合
Transformers・Diffusers・Accelerate・TRLと深く連携しており、分散学習(複数GPUを束ねての学習)にも対応。既存のTrainer APIにそのまま組み込める。
料金プラン
| プラン | 料金 | 内容 |
|---|---|---|
| OSSライブラリ(pip install) | 完全無料 | ライブラリ本体の利用・商用利用すべて無料。Apache 2.0ライセンス。 |
| GPU環境(自前) | 別途コスト | ローカルPC・クラウドGPU等は利用者が用意。Google ColabなどのフリーGPUも利用可能。 |
| Hugging Face Hub連携 | 無料枠あり | モデルのアップロード・共有はHugging Face Hubの料金体系に依存。詳細は公式サイト参照。 |
> 補足: PEFTライブラリそのものは完全無料のOSSです。ファインチューニングの実行には別途GPU環境が必要で、そのコストは利用するインフラ(自前PC・クラウドサービス等)に依存します。
導入方法
1. インストール
pip install peft
2. LoRAでモデルをファインチューニング準備(最小コード例)
import torch
from transformers import AutoModelForCausalLM
from peft import LoraConfig, TaskType, get_peft_model
# ベースモデルの読み込み
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-3B-Instruct")
# LoRAの設定
peft_config = LoraConfig(
r=16, # ランク(小さいほどパラメータ少)
lora_alpha=32,
task_type=TaskType.CAUSAL_LM, # テキスト生成タスク
)
# アダプターをモデルに適用
model = get_peft_model(model, peft_config)
model.print_trainable_parameters()
# 例: trainable params: 3,686,400 || all params: 3,089,625,088 || trainable%: 0.12
3. 学習後にアダプターを保存
# 学習(Trainerなどで実施)後
model.save_pretrained("my-custom-adapter")
4. 保存済みアダプターの読み込み
from peft import PeftModel
base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-3B-Instruct")
model = PeftModel.from_pretrained(base_model, "my-custom-adapter")
こんな人におすすめ
- 自社・自分のデータでAIをカスタマイズしたい個人開発者
「このAIに専門用語を覚えさせたい」「特定のキャラクター口調で話させたい」など、既存の大型モデルを自分好みにチューニングしたい人に最適。高スペックGPUがなくても始められる。
- 画像生成AIのスタイルや人物を固定したいクリエイター
Stable DiffusionへのLoRA適用にも対応しており、特定の画風・キャラクターを学習させた超軽量アダプターを作成・公開・配布できる。
- コストを抑えてLLMアプリを開発したいスタートアップ・チーム
フルファインチューニングに比べてGPUメモリ消費を大幅に削減できるため、クラウドGPUの費用を抑えながら業務特化型AIを構築できる。
- Hugging Faceのモデルを使っている既存ユーザー
TransformersやDiffusersとシームレスに統合されているため、既存コードへの追加が最小限で済む。Hub上のPEFTアダプターも簡単に読み込んで活用できる。
よくある質問
Q. LoRAと普通のファインチューニングは何が違うの? A. 通常のファインチューニングはモデルのすべての設定値(パラメータ)を書き換えます。LoRAは「小さな差分シート(アダプター)」だけを追加学習し、元のモデルはそのまま凍結します。学習するパラメータがモデル全体の0.1〜0.2%程度になるため、メモリ消費・時間・保存容量のすべてが大幅に削減されます。
Q. どのくらいのスペックのPCが必要? A. 手法と量子化の組み合わせ次第です。QLoRA(4ビット量子化+LoRA)を使えば16GBのGPUメモリでも大型モデルをファインチューニングできると公式ドキュメントに記載されています。Google ColabなどのクラウドGPU環境でも動作します。
Q. PEFTで学習したアダプターは商用利用できる? A. PEFTライブラリ自体はApache 2.0ライセンスで商用利用可能です。ただし、ベースモデル(LlamaやGemmaなど)にはそれぞれ独自のライセンスがあるため、ベースモデルのライセンスを必ず確認してください。
Q. テキストAI以外にも使える? A. はい。テキスト生成・分類・音声認識(WhisperへのLoRA適用)・画像分類・画像生成(Stable Diffusion)など、多様なタスクに対応したガイドが公式ドキュメントに用意されています。
glossary — わからない用語があったら
related — 同カテゴリの人気エンティティ
スクリーンショットを渡すとそっくりなHTML/Reactコードを生成するツール。デザイン→コード変換の代表的OSS。
ChatGPT風UIのセルフホスト型チャットプラットフォーム。マルチプロバイダ・エージェント・RAGを1つのUIで扱える。
Python数行でAIデモの画面が作れるライブラリ。Hugging Face傘下で、機械学習デモの世界標準になっている。
OpenAIの音声認識モデル。多言語の文字起こし・翻訳に対応し、日本語の精度も高い定番OSS。
LLMアプリ開発プラットフォームのOSS代表格。ワークフロー・RAG・エージェントをGUIで構築し、APIとして公開できる。