0Pricing
AI Agents · レッスン

コスト効率の高いチューニングのためのLoRAとQLoRA

量子化済みのベースモデル上で低ランクアダプターだけを学習し、70Bモデルのファインチューニングを1台のGPUに収めます。

「コスト効率の高いチューニングのためのLoRAとQLoRA」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

なぜPEFTなのか

Llama 70Bのフルファインチューニングには8台以上のH100が必要で、700億個のパラメータを更新します。PEFT(Parameter-Efficient Fine-Tuning)は、同程度の品質を保ちながら、パラメータの1%未満を更新します。コストを大幅に削減できます。

LoRA:低ランク適応

LoRA(Hu et al. 2021)は、凍結したベースの重みと並行して、小さな「アダプター」行列を学習します。

  • Aがdxr、Bがrxdで、rが小さい(8、16、64)A x B行列を追加する
  • 順伝播:y = Wx + (BA)x
  • AとBだけを学習するため、パラメータ数を桁違いに少なくできる

QLoRA:量子化LoRA

QLoRA(Dettmers et al. 2023)は、トレーニング中にベースモデルを4ビットに量子化することで、コストをさらに削減します。

  • ベースモデルはNF4(4ビット)
  • LoRAアダプターはより高い精度で保持
  • 1台のA100/H100で70Bモデルのファインチューニングが可能

Setup with peft + transformers

# pip install peft transformers bitsandbytes
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained(
    'meta-llama/Llama-3.1-8B-Instruct',
    load_in_4bit=True,        # QLoRA
    device_map='auto'
)

lora_config = LoraConfig(
    r=16,                     # rank
    lora_alpha=32,
    target_modules=['q_proj', 'v_proj'],
    lora_dropout=0.05,
    bias='none'
)
model = get_peft_model(model, lora_config)
model.print_trainable_parameters()
# trainable params: ~0.5% of total

Training Loop with TRL

from trl import SFTTrainer

trainer = SFTTrainer(
    model=model,
    train_dataset=dataset,
    tokenizer=tokenizer,
    args=TrainingArguments(
        per_device_train_batch_size=4,
        gradient_accumulation_steps=4,
        learning_rate=2e-4,
        num_train_epochs=3,
        output_dir='./lora-out'
    )
)
trainer.train()
model.save_pretrained('./adapter')

Unslothの使用

Unslothは最速のLoRAライブラリで、標準のpeftより2倍高速です。ドロップインで使えるAPIを提供します。

from unsloth import FastLanguageModel

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name='meta-llama/Llama-3.1-8B-Instruct',
    load_in_4bit=True
)
model = FastLanguageModel.get_peft_model(
    model,
    r=16,
    target_modules=['q_proj', 'k_proj', 'v_proj', 'o_proj', 'gate_proj', 'up_proj', 'down_proj']
)

コストの見積もり

10k個の例を使ってLlama 3.1 8BをQLoRAで学習する場合:

  • 1台のH100で約4時間
  • クラウドGPUのコストは約5~10ドル
  • アダプターファイルは100~300 MB

ランクrの選択

  • r = 8 — 最小限。形式やスタイルの変更向け
  • r = 16~32 — ほとんどのケース
  • r = 64以上 — 大幅な新しい振る舞い。より大きな容量

対象モジュール

デフォルトではアテンション射影(q、v)を対象にします。より大きな容量が必要な場合は、すべての線形層を含めます。品質は向上しますが、パラメータ数も増加します。

重要なハイパーパラメータ

  • 学習率 — 1e-4~5e-4が一般的です
  • エポック数 — SFTでは2~5です
  • バッチサイズ — VRAMに依存します。勾配累積を使って、より大きなバッチサイズを擬似的に実現します

アダプターのベースへのマージ

推論時には、LoRAをベースの重みにマージし直すことができます。

merged = model.merge_and_unload()
merged.save_pretrained('./full-model')

複数のLoRAの提供

vLLMは推論時のLoRAのホットスワップに対応しています。共有ベースモデル上で顧客ごとにファインチューニングする場合に便利です。

llm = LLM(model='base', enable_lora=True, max_lora_rank=64)
response = llm.generate(prompt, lora_request=LoRARequest('customer-a', 1, './customer-a-adapter'))

アダプターの評価

必ずご自身の評価セットをチューニング済みモデルで実行してください。エッジケースではチューニングによって性能が低下することもあるため、回帰を正直に確認しましょう。

LoRAの利点

フルファインチューニングと比べたLoRAの主な実用上の利点は何でしょうか。

まとめ

LoRA + QLoRAは、コスト効率の高いファインチューニングを実現します。速度にはUnsloth、幅広い機能にはpeft/TRLを使います。ほとんどのケースではランク16~32が適しています。正解データセットと比較して評価してください。

よくある質問

「コスト効率の高いチューニングのためのLoRAとQLoRA」レッスンは無料ですか?

はい。「コスト効率の高いチューニングのためのLoRAとQLoRA」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。

「コスト効率の高いチューニングのためのLoRAとQLoRA」で何を学びますか?

量子化済みのベースモデル上で低ランクアダプターだけを学習し、70Bモデルのファインチューニングを1台のGPUに収めます。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AI Agentsを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「コスト効率の高いチューニングのためのLoRAとQLoRA」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAI Agentsレッスンでコードを書いて実行できますか?

はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. プロンプトよりファインチューニングが有効な場合
  2. データ収集:軌跡とトレースの再生
  3. コスト効率の高いチューニングのためのLoRAとQLoRA
  4. チューニング済みモデルとベースモデルの評価
← AI Agentsに戻る