【ぷれふぃっくすちゅーにんぐ】

プレフィックスチューニング とは?

最終更新:
💡 モデル本体はそのまま、学ぶのは小さな補助ベクトル

元の言語モデルの重みを固定し、各層が参照するタスク用の学習可能なベクトル(プレフィックス)を調整する手法です。モデル全体を更新するより、タスクごとの学習・保存対象を小さくできます。

📌 このページのポイント
学ぶ場所の違い:入力と各層Prompt TuningPrefix Tuning入力へ補助を追加各層へ補助を追加層 1:本体は固定補助層 1:固定層 2:本体は固定補助層 2:固定層 3:本体は固定補助層 3:固定橙:学習する補助 青:固定した本体プレフィックスは文章ではなく数値
3層で模式化した比較です。入力や出力など一部を省略しています。各層に加えることだけで高精度は保証されません。
ひよこ ひよこ
プレフィックスチューニングは、指示文を書き直すこと?
ペンギン先生 ペンギン先生
人が読む文章を工夫するのとは違うよ。元のモデルの重みを固定して、タスクに合う小さな数値のベクトルをデータから学習するんだ。モデルはそれを仮想的なトークンのように参照して出力するよ。
ひよこ ひよこ
ペンギン先生 ペンギン先生
ここで比べるPrompt Tuningは、学習するベクトルを入力の埋め込みに加える方法だよ。Prefix Tuningはモデルの各層でもプレフィックスを使う。Transformerでは、注意機構が参照するキーとバリューの形で扱う実装があるんだ。
ひよこ ひよこ
各層に加えるなら、必ず精度がよくなる?
ペンギン先生 ペンギン先生
必ずではないよ。モデルやデータ、プレフィックスの長さなどで結果が変わる。元の論文はGPT-2で表から文章を生成し、BARTで要約する実験をしているけれど、その結果をすべてのモデルや用途へ広げてはいけないんだ。
ひよこ ひよこ
モデル全体を学習するより、何が便利なの?
ペンギン先生 ペンギン先生
タスクごとに更新・保存するパラメータを小さくできるよ。ただし元のモデルが不要になるわけではない。学習や実行にはモデル本体と対応するプレフィックスが必要で、計算やメモリの負担もゼロではないんだ。
ひよこ ひよこ
要約用と別のタスク用で切り替えられるの?
ペンギン先生 ペンギン先生
同じモデル本体に、タスク別のプレフィックスを組み合わせる使い方ができるよ。どの本体・設定に対応するかも一緒に管理しよう。少ない学習対象で適応できるPEFTの一種として、ほかの方法と実際の品質を比べるとよいね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「プレフィックスチューニング」って出てきたら「モデル本体を変えず、小さな補助ベクトルを学習する方法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Prefix Tuning」 = プレフィックス(前置き)の調整
💬 prefixは前に付けるものの意味。モデルが入力とともに参照する、仮想的な前置きのベクトルを学ぶんだ。

参考資料

← 用語集にもどる