AI・機械学習
上級

IA³(インジェクテッドアダプタ)(アイエーキュービック インジェクテッドアダプタ)

LoRAより少ないパラメータでLLMを適応させるPEFT手法。Attention層のキー・値・FFN層の活性化にスケーリングベクトル(要素積)を乗算するのみで、学習パラメータ数をLoRAの数分の一に抑える。

0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
PEFT
ファインチューニング
IA3
スケーリング
少パラメータ

IA³(インジェクテッドアダプタ)

概要

IA³(Infused Adapter by Inhibiting and Amplifying Inner Activations)は、LoRAよりさらに少ないパラメータでLLMを特定タスクに適応させるPEFT手法だ。Liu et al.(2022)が発表し、スケーリングベクトルを各層に追加するだけという極めてシンプルな設計が特徴。

核心アイデア:スケーリングベクトルの注入

IA³が学習するのはスケーリングベクトルのみ:

Attention層:
  Key行列の出力:   h_k = l_k ⊙ W_k x   (l_k: 学習可能なスケール)
  Value行列の出力: h_v = l_v ⊙ W_v x   (l_v: 学習可能なスケール)

FFN層:
  活性化関数の出力: h_ff = l_ff ⊙ γ(W_1 x)  (l_ff: 学習可能なスケール)

⊙ = 要素積(Hadamard積)

モデルの重みは全て凍結。追加するのはベクトル(行列ではない)のみ。

LoRAとのパラメータ数比較

T0-3B(30億パラメータ)での比較:

手法学習パラメータ数比率
Full FT3,000M100%
LoRA r=43.8M0.13%
IA³0.3M0.01%

IA³の学習パラメータはLoRA r=4の約1/13。

実装の単純さ

# IA³の本質的な実装(概念コード)
class IA3Attention(nn.Module):
    def __init__(self, base_attention, d_k, d_v):
        super().__init__()
        self.attn = base_attention
        self.l_k = nn.Parameter(torch.ones(d_k))
        self.l_v = nn.Parameter(torch.ones(d_v))
    
    def forward(self, x):
        K = self.attn.key(x) * self.l_k
        V = self.attn.value(x) * self.l_v
        Q = self.attn.query(x)
        return self.attn.attention(Q, K, V)

初期値は1(恒等変換)なので、学習開始時はベースモデルと同じ挙動。

T-Few フレームワークとの関係

IA³はT-Few(T0ベースのFew-Shotファインチューニング)の核心コンポーネントとして設計された:

  • T0-3B + IA³: 11Bパラメータの完全FTモデルと同等性能
  • Few-Shot適応: 新タスクへの適応が数百サンプルで完了
  • 多タスク汎化: 複数タスクのIA³ベクトルを独立管理・切り替え可能

LoRAとIA³の使い分け

観点LoRAIA³
パラメータ数0.1〜1%0.01%
表現力高(行列近似)中(スケーリングのみ)
収束速度中速い
推薦用途強い特化が必要なFTFew-Shot・軽量適応
この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/6/7