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 FT | 3,000M | 100% |
| LoRA r=4 | 3.8M | 0.13% |
| IA³ | 0.3M | 0.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³の使い分け
| 観点 | LoRA | IA³ |
|---|---|---|
| パラメータ数 | 0.1〜1% | 0.01% |
| 表現力 | 高(行列近似) | 中(スケーリングのみ) |
| 収束速度 | 中 | 速い |
| 推薦用途 | 強い特化が必要なFT | Few-Shot・軽量適応 |