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