【あだぷたーれいやー】

アダプターレイヤー とは?

最終更新:
💡 小さな追加モジュールで、モデルを適応させる

事前学習モデルに小さな学習用モジュールを加えて、少ないパラメータでタスクへ適応させる手法。ボトルネック構造、残差接続、学習対象、LoRAとの違いを解説します。

📌 このページのポイント
アダプター:小さな変換を追加入力 h(d次元)小さい m次元へm は d より小さい非線形変換d次元へ戻す+入力 h出力:d次元入力を足す残差接続。戻る処理ではない
ボトルネック型の一例。橙の変換部分を学習し、挿入位置やほかの学習対象は方式によって異なります。
ひよこ ひよこ
アダプターレイヤーは、大きなAIモデルをもう一度全部学習するもの?
ペンギン先生 ペンギン先生
小さなモジュールを追加して、タスクに適応させる方法だよ。基盤モデルの多くの重みを保ったまま、比較的少ないパラメータを学習する。PEFTという、パラメータ効率を重視する学習方法の一つなんだ。
ひよこ ひよこ
小さなモジュールの中は、どうなっている?
ペンギン先生 ペンギン先生
代表的なボトルネック型では、入力の次元を小さくする変換、非線形変換、元の次元へ戻す変換を行うよ。さらに入力を出力へ足す残差接続がある。小さい次元を使って、追加のパラメータ数を抑えるんだ。
ひよこ ひよこ
Transformerの層と層の間に、必ず一つずつ置く?
ペンギン先生 ペンギン先生
配置は方式によるよ。Houlsbyらの構成では、各Transformer層内の注意機構やフィードフォワード処理の後に挿入する。層と層の間だけに置く、と固定して覚えないようにしよう。
ひよこ ひよこ
学習するのは、アダプターだけ?
ペンギン先生 ペンギン先生
方式によるよ。元の論文の構成では、アダプターに加えてLayer Normalizationのパラメータや最終の分類層も学習する。基盤モデルのどの重みを凍結し、何を学習するかを確認することが大切だ。
ひよこ ひよこ
LoRAは、そのアダプターを新しくしたもの?
ペンギン先生 ペンギン先生
同じ構造ではないよ。LoRAは低ランクの行列を使って重みの更新を表す方式だ。どちらも少ないパラメータで適応させる方法だけれど、追加モジュールの配置や推論時の扱いなどが違うんだ。
もっと詳しく知りたい人へ

追加パラメータは、必ずモデル全体の数%?

固定の割合ではありません。ボトルネックの幅、挿入する場所と数、追加で学習する層などで変わります。論文の特定の実験結果を、すべてのモデルやタスクに共通する数値として扱わないようにします。

アダプターだけ保存すれば、どんなモデルでも使える?

通常は対応する基盤モデルと構成が必要です。モデルの種類や版、層の形、挿入位置、前処理などを合わせて利用します。アダプターの差し替えによるタスク切り替えも、対応する構成で成り立つ仕組みです。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「アダプターレイヤー」って出てきたら「基盤モデルの多くの重みを保ちながら適応させる追加モジュール」と思えばだいたいOK!
📖 おまけ:英語の意味
「Adapter Layer」 = 適応のための層
💬 Houlsbyらの2019年の論文は、NLP向けのパラメータ効率のよい転移学習としてアダプターを提案しています。ここでは、システム間の接続を合わせる一般的なアダプターとは文脈を分けて説明します。

参考資料

← 用語集にもどる