PEFT完全ガイド|LoRA・QLoRAで家庭用GPUでもAIをカスタマイズ

PEFT完全ガイド|LoRA・QLoRAで家庭用GPUでもAIをカスタマイズ

published: 2026/07/16 · updated: 2026/07/16

「自分のデータでAIを育てたい。でも、GPUが足りない」「OpenAIのファインチューニングは高くつきそうで怖い」——そんな悩みを抱えたことはないでしょうか。

大規模AIモデルを自分好みに再学習(ファインチューニング)しようとすると、通常は数十GBのVRAMを持つサーバー級GPUが必要です。個人開発者がすぐに用意できるものではありません。

そこで注目されているのが PEFT(ペフト) です。Hugging Faceが開発・公開しているオープンソースライブラリで、LoRA・QLoRAなどの手法を使い、モデル全体ではなくごく一部のパラメータだけを学習し直すことで、家庭用GPUでも大型AIモデルのカスタマイズを実現します。完全無料・Apache 2.0ライセンスで商用利用も可能です。

この記事では次のことをすべて解説します。

  • PEFTで何ができるようになるか(具体的なユースケース)
  • LoRA・QLoRAなど主要手法の違い
  • インストールから動作確認までの手順とコード例
  • 全体ファインチューニング・OpenAIファインチューニングとの比較
  • どんな人に向く/向かないかの判断基準

---

PEFTで何ができるようになるか

peft ★ 21.4k Hugging Face製のOSSライブラリ。LoRA・QLoRAなど複数の手法で大規模AIモデルを少ないパラメータだけ学習し直すことができ、家庭用GPUでも大型モデルのカスタマイズを実現する。完全無料・Apache 2.0ライセンス。 詳細 →

PEFTを使うと、手持ちのNVIDIA GPU(VRAM 8〜24GB程度)で、数十億パラメータの大型言語モデルを自分のデータで追加学習できます。たとえば次のようなことが現実的になります。

  • 社内マニュアルや過去の問い合わせログを読ませて、自社専用のチャットボットを作る
  • 特定の文体・トーンで文章を生成するモデルを育てる
  • 医療・法律・専門業界の用語に強いモデルを作る
  • 音声認識モデル(Whisperなど)を特定の話者・方言に最適化する
  • 画像生成モデル(Stable Diffusionなど)を特定の画風でファインチューニングする

従来、こうした作業は「クラウドの高額GPU」か「数十万円のワークステーション」がないと難しいとされていました。PEFTはその壁を大幅に下げます。

> 関連: AIで音声認識モデルをカスタマイズしたい方は Whisper の記事もあわせてご覧ください。

---

PEFTの仕組み——なぜ少ないGPUで動くのか

通常のファインチューニングとの違い

普通のファインチューニングは、モデルの全パラメータを更新します。7Bパラメータのモデルなら70億個の数値をすべて書き換えるため、膨大なメモリと計算資源が必要です。

PEFTはこれを根本から変えます。

元のモデルの重みは凍結(固定)したまま、小さな「アダプター」と呼ばれる追加レイヤーだけを学習します。アダプターは元モデルに比べてごく小さく、学習が終わったら元のモデルと「合体」して使えます。

イメージとしては——

> 料理の例え:既存の料理人(元モデル)のすべてのレシピを書き換えるのではなく、「この店でだけ使う特製タレ(アダプター)」を追加で覚えさせるようなもの。タレを変えれば別の料理スタイルに素早く切り替えられます。

主な学習手法の一覧

PEFTライブラリは複数の手法をサポートしています。

手法概要特徴
LoRA重み行列を低ランク行列で近似して更新最も普及・バランスが良い
QLoRAモデルを4bit量子化した上でLoRAを適用VRAMをさらに削減。家庭用GPUに最適
AdaLoRAランク(学習の深さ)を自動調整重要な部分に集中して学習
IA³アテンション・MLPに小さなスケーラーを追加パラメータ数が極めて少ない
Prefix Tuning入力の先頭に学習済みトークンを付加モデル本体を一切変更しない
Prompt Tuningソフトプロンプト(仮想的な指示文)を学習非常に軽量
DoRA重みを「大きさ」と「方向」に分解して学習LoRAをさらに改良した新手法

初心者が最初に使うべきはほぼ LoRA または QLoRA です。VRAMが16GB以下なら QLoRA が特に有効です。

どれくらいパラメータが減るのか

PEFTでは、モデル全体のパラメータのうちごく一部だけを学習します。たとえば、

  • bigscience/mt0-large(12億パラメータ)の場合、LoRAで学習するのは全体の わずか0.19% だけです
  • チェックポイント(学習済みファイル)のサイズも、元モデルが11GBなのに対しLoRAアダプターは 19MB 程度になります

この小ささが、家庭用GPUでの学習と、複数タスクのアダプターを低コストで管理できる理由です。

---

既存ツール・手法との比較

PEFTをどのような場面で選ぶべきか、主な選択肢と比較します。

比較項目PEFT(LoRA/QLoRA)フルファインチューニングOpenAI ファインチューニング
コスト無料(OSS)無料(OSS)だがGPU費用大従量課金(公式サイト参照)
必要VRAM8〜24GB(QLoRAなら少なめ)100GB以上(7Bモデル)不要(クラウド処理)
精度フルFTと同等〜やや劣る最高GPT系モデル限定で高精度
データのプライバシーローカル完結ローカル完結データがOpenAIに送られる
使えるモデルLlama・Mistral・Qwen等多数同左GPT-4o mini等に限定
ライセンスApache 2.0(商用可)モデルによるOpenAI利用規約に従う
学習ファイルサイズ数MB〜数十MB元モデルと同サイズ(数GB〜)クラウド管理(ユーザー不要)
セットアップ難易度中(Pythonの基礎が必要)低(APIのみ)

PEFTが優位な場面は「プライバシー重視」「複数タスクのアダプターを管理したい」「コストを抑えたい」「OpenAI以外のオープンモデルを使いたい」です。

> 関連: ローカルでLLMを動かす環境構築には llama.cpp も参照してください。

peft ★ 21.4k Hugging Face製のOSSライブラリ。LoRA・QLoRAなど複数の手法で大規模AIモデルを少ないパラメータだけ学習し直すことができ、家庭用GPUでも大型モデルのカスタマイズを実現する。完全無料・Apache 2.0ライセンス。 詳細 →

---

どんな人に向く?向かない?

PEFTが向いている人

  • 個人開発者・スモールチームで、クラウドGPU費用をかけたくない人
  • NVIDIA GPU(VRAM 8GB以上)をすでに持っている、または入手できる人
  • 自社・自分のデータを外部サービスに送りたくない人
  • Llama、Mistral、Qwen、Gemmaなどオープンウェイトモデルをカスタマイズしたい人
  • Pythonの基礎(pipインストール、スクリプト実行)ができる人
  • 複数の用途ごとにアダプターを切り替えて使いたい人

PEFTが向いていない人

  • Pythonをまったく触ったことがなく、セットアップに時間をかけたくない人 → Dify などのノーコードAI構築ツールから始める方が現実的です(DifyFlowise を参照)
  • GPUを持っておらず、Google Colab等のクラウド環境も使いたくない人
  • 「とにかく今すぐAPIで使いたい」という人 → OpenAI ファインチューニングの方が速い
  • モデルをゼロから事前学習(プレトレーニング)したい人 → PEFTはあくまで「追加学習」に特化しています

---

インストールから動作確認まで(手順付き)

前提条件

以下を事前に確認・準備してください。

  • OS: Linux 推奨(Windows は WSL2 経由でも可)
  • Python: 3.10以上(最新リリースのPEFTはPython 3.9のサポートを終了しています)
  • GPU: NVIDIA GPU(VRAM 8GB以上推奨)。CPUのみでも動きますが学習は非常に低速です
  • CUDA: NVIDIAドライバーがインストール済みであること(nvidia-smi コマンドで確認可能)

ステップ1:仮想環境の作成

ライブラリの競合を防ぐため、プロジェクト専用の仮想環境を作ります。

# 仮想環境を作成(名前は任意)
python -m venv peft-env

# 仮想環境を有効化(Linux/Mac)
source peft-env/bin/activate

# 仮想環境を有効化(Windows)
peft-env\Scripts\activate

ステップ2:PyTorchのインストール

PEFTはPyTorchの上で動きます。まずPyTorchをインストールしてください(CUDA対応版を推奨)。

# CUDA 12.1対応版の例(自分のCUDAバージョンに合わせて変更してください)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

> 自分のCUDAバージョンは nvidia-smi コマンドの出力で確認できます。PyTorchの公式サイト(pytorch.org)でバージョンに合ったコマンドを生成してください。

ステップ3:PEFTと関連ライブラリのインストール

# PEFTとHugging Face関連ライブラリをインストール
pip install peft transformers accelerate

# QLoRA(4bit量子化)を使う場合はbitsandbytesも追加
pip install bitsandbytes

ステップ4:LoRAの動作確認(最小コード例)

以下のコードは、Qwen2.5-3Bモデルに対してLoRAアダプターを設定し、学習対象パラメータ数を確認する最小サンプルです。実際の学習前の「設定確認」として使えます。

import torch
from transformers import AutoModelForCausalLM
from peft import LoraConfig, TaskType, get_peft_model

# 使用するベースモデル(Hugging Face Hub上の任意のモデルID)
model_id = "Qwen/Qwen2.5-3B-Instruct"

# ベースモデルを読み込む
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    device_map="auto"  # GPUが複数あれば自動で分散
)

# LoRAの設定
# r: ランク(低いほど軽量、高いほど表現力UP。8〜32が一般的)
# lora_alpha: スケーリング係数(通常はr×2程度)
peft_config = LoraConfig(
    r=16,
    lora_alpha=32,
    task_type=TaskType.CAUSAL_LM,
)

# LoRAをモデルに適用
model = get_peft_model(model, peft_config)

# 学習対象パラメータ数を確認
model.print_trainable_parameters()
# 出力例: trainable params: 3,686,400 || all params: 3,089,625,088 || trainable%: 0.1193

# 学習後、アダプターを保存
# model.save_pretrained("my-lora-adapter")

trainable% の数値を確認してください。全パラメータの 0.1〜1%程度 になっていれば正常です。これだけで学習するパラメータが劇的に減っていることがわかります。

ステップ5:保存したアダプターを読み込む

from transformers import AutoModelForCausalLM
from peft import PeftModel

# ベースモデルを読み込み
base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-3B-Instruct")

# 学習済みLoRAアダプターを重ねる
model = PeftModel.from_pretrained(base_model, "my-lora-adapter")

# アダプターとベースモデルを統合して推論速度を上げる(任意)
model = model.merge_and_unload()

> 関連: 学習したモデルのUIを素早く作りたい場合は Gradio が便利です。

---

PEFTと組み合わせると便利なツール・エコシステム

PEFTは単体でも使えますが、以下と組み合わせるとさらに強力になります。

Hugging Face TRL:強化学習(RLHF)を使った指示チューニングに対応。PEFTと統合されており、--use_peft フラグ一つでLoRA/QLoRAでの学習が可能です。

bitsandbytes:QLoRAを実現するための量子化ライブラリ。これを使うと、7Bモデルを4bitに圧縮してからLoRAで学習できます。

Hugging Face Diffusers:画像生成モデルのLoRAファインチューニングに対応。特定の画風・キャラクターのLoRAを作成できます。

Gradio / Streamlit:学習済みモデルのデモUIを素早く構築できます(Gradio 参照)。

RAGFlow・Dify:ファインチューニングではなく「手持ちの資料をAIに読ませて答えさせる仕組み(RAG)」を作りたい場合は、RAGFlowDify の方が適しています。用途によって使い分けましょう。

peft ★ 21.4k Hugging Face製のOSSライブラリ。LoRA・QLoRAなど複数の手法で大規模AIモデルを少ないパラメータだけ学習し直すことができ、家庭用GPUでも大型モデルのカスタマイズを実現する。完全無料・Apache 2.0ライセンス。 詳細 →

---

よくある質問(FAQ)

Q1. PEFTは完全無料で使えますか?商用利用は可能ですか?

A. PEFTライブラリ自体は完全無料のOSS(Apache 2.0ライセンス)です。商用利用も可能です。ただし、ベースモデルのライセンスは別途確認が必要です。たとえばMeta LlamaはLlamaライセンス、Qwenは独自ライセンスが適用されます。商用プロダクトに組み込む場合は、使用するベースモデルの利用規約を必ず確認してください。

Q2. GPUなしで(CPUのみで)動きますか?

A. 技術的には動きますが、現実的な時間では学習が完了しません。たとえば7Bモデルの場合、GPUなら数時間かかる学習がCPUだと数週間かかることもあります。軽い動作確認程度であればCPUでも試せますが、実用的な学習にはGPU(最低でもVRAM 8GB)を用意することを強く推奨します。Google ColabのT4 GPU(無料枠あり)を活用するのも選択肢の一つです。

Q3. LoRAとQLoRAはどちらを使えばいいですか?

A. 基本的にはVRAMの量で選んでください

  • VRAM 16GB以上 → LoRAで十分
  • VRAM 8〜15GB → QLoRAを検討(4bit量子化でメモリを節約)
  • VRAM 24GB(RTX 4090等) → QLoRAで7Bモデルのファインチューニングが比較的快適に動く

QLoRAはLoRAと比べて量子化のオーバーヘッドがあるため、学習速度はやや落ちますが、精度は多くのタスクでLoRAと遜色ないレベルに収まります。

Q4. フルファインチューニングと比べて、精度は落ちますか?

A. 多くの用途では同等の精度が出ますが、場合によっては劣ります。指示追従(インストラクションチューニング)や文体の変更など「行動を変える」タスクではLoRAは非常に優秀です。一方、「大量の新しい専門知識を一から覚えさせる」ような場合は、フルファインチューニングの方が有利なことがあります。また、PEFTには「学習前の知識(元の能力)を保持しやすい」という副次的なメリットもあります。フルファインチューニングでは元の能力を忘れてしまう「壊滅的忘却(Catastrophic Forgetting)」が起きやすいためです。

---

まとめ——次のアクション

PEFTは、家庭用GPUでも大型AIモデルのカスタマイズを現実的にする、個人開発者にとって強力な選択肢です。

あなたの状況次のアクション
まず試してみたいGoogle ColabのGPU環境でLoRAの最小コードを動かす
NVIDIAのGPU(8GB以上)があるローカルにPEFTをインストールし、好きなオープンモデルでQLoRAを試す
GPUがなく、コードも書きたくないDifyRAGFlow などノーコードのRAGツールを検討する
画像生成モデルをカスタマイズしたいPEFTとDiffusersを組み合わせたLoRAを試す(ComfyUI も参照)
AIアシスタント環境を整えたいLibreChat でローカルモデルを使う環境を整備する

公式リソース

まずは公式ドキュメントのQuick Tourを眺めながら、Google ColabでLoRAの最小コードを動かすことから始めてみてください。動く体験を1回積むと、その後の理解がぐっと深まります。