VeRA(ベクトルランダム行列適応)(ベラ)
共有ランダム凍結行列と層ごとのスケーリングベクトルのみを学習するPEFT手法。Dalal et al.(2024)提案。LoRAより学習可能パラメータ数を大幅削減(最大99%削減)しながら同等性能を実現。
VeRA(ベクトルランダム行列適応)
VeRA(Vector-based Random Matrix Adaptation)は2024年にAmsterdam大学のDalal et al.が提案したパラメータ効率的ファインチューニング(PEFT)手法です。LoRAのパラメータ効率をさらに極限まで高めることを目指しています。
LoRAとの違い
LoRAでは各Transformer層に対して独立した低ランク行列A・Bを学習します。モデルの層数が多いほど学習可能パラメータが増加します。VeRAはこの問題を根本的に解決します。
VeRAのアーキテクチャ:
- 共有ランダム行列A・B: すべての層で同一のランダム初期化行列を使用(凍結、更新なし)
- 層ごとのスケーリングベクトル d・b: 各層に対して独立した小さなベクトル(これのみ学習)
出力は h = W₀x + Λ_b B Λ_d A x と表現されます。ここでΛ_b・Λ_dは対角スケーリング行列です。
パラメータ削減効果
RoBERTa-large(355Mパラメータ)での比較:
- LoRA (r=16): 約800,000学習可能パラメータ
- VeRA: 約6,500学習可能パラメータ(99.2%削減)
これはフルファインチューニングの0.002%未満です。
性能評価
GLUEベンチマーク(NLP標準タスク群)でVeRAはLoRAと同等またはそれ以上の性能を示しました。特に分類タスク(SST-2、MNLI、QQP等)では顕著な性能維持が確認されています。
実用的な利点
- エッジデバイスへの展開: 学習可能パラメータが少ないため、低スペックデバイスでもファインチューニング可能
- フェデレーテッドラーニング: 通信コスト削減(更新差分が極小)
- 複数タスク対応: ベース行列共有でマルチタスク拡張が容易
- 継続学習: タスクごとにスケールベクトルのみ保存・切替可能
実装状況
HuggingFaceのPEFTライブラリではVeraConfigクラスとして実装されています。LoRAと同様のAPIで利用でき、移行コストは低いです。
限界と課題
ランダム行列の品質が全層に影響するため、初期化の安定性が重要です。非常に専門的なドメイン(医療・法律等)では、LoRAより性能差が出る可能性があります。また、ランダム行列の次元数(r値)の選択もハイパーパラメータチューニングが必要です。