【そふとぷろんぷとちゅーにんぐ】

ソフトプロンプトチューニング とは?

最終更新:
💡 モデル本体を固定し、入力に足す数値を学習

モデル本体の重みを固定し、入力へ加える数値ベクトルのプロンプトを学習する方法。文章の工夫やプレフィックスチューニングとの違いを説明します。

📌 このページのポイント
ソフトプロンプト:入力に足す数値を学習ソフトプロンプト学習するベクトルv₁v₂…入力テキスト埋め込みへ変換プロンプト + 入力の埋め込み入力の前に数値のプロンプトを加える事前学習したモデルモデル本体の重みは固定学習対象は左上。指示文の書き換えとは別各層へ加えるprefix tuningとも区別
矢印はモデルへ渡す入力の構成です。v₁などは学習対象を表す記号で、人が読む単語ではありません。学習の反復や勾配は省略しています。
ひよこ ひよこ
AIの指示文を、上手に書く方法?
ペンギン先生 ペンギン先生
人が文章を工夫することとは違うよ。入力に加える学習可能な数値ベクトルを、データに合わせて調整する方法なんだ。モデル本体の重みは固定しておく。
ひよこ ひよこ
数値は、人が読める指示になる?
ペンギン先生 ペンギン先生
通常の単語と一対一で対応させるものではないので、そのまま指示文として読むことはできないよ。「仮想トークン」と呼ぶこともあるけれど、覚えた日本語の命令文が増えるという説明ではないんだ。
ひよこ ひよこ
どこへ、加えるの?
ペンギン先生 ペンギン先生
このprompt tuningでは、入力テキストを数値にした埋め込みの前へ、学習したプロンプトのベクトルを加える。元のモデルへ、その組み合わせを渡して出力を得るんだ。
ひよこ ひよこ
モデルが固定なら、学習はしない?
ペンギン先生 ペンギン先生
プロンプトのパラメータは学習するよ。2021年のLesterらの論文は、T5を使い、モデルの大きさによって通常のモデル調整に近い成績を得たと報告している。全モデル・全タスクで同じ成績になるという保証ではないんだ。
ペンギン先生 ペンギン先生
関連する方法だけれど、加える位置が違うよ。Hugging Faceの説明では、prompt tuningは入力の埋め込みへ加え、prefix tuningは各モデル層に関わるプレフィックスを使う。名前が似ていても、同じ実装ではないんだ。
もっと詳しく知りたい人へ

学習するパラメータが少なければ、計算も不要?

モデルを通して出力を求め、プロンプトを学習する処理は必要です。論文が示す学習・保存するパラメータの削減と、計算が全く要らなくなることは別です。

学習済みの数値を、チャット欄へ貼れば使える?

この手法は数値の埋め込みをモデル入力へ加える仕組みです。文章だけを受け取るチャット欄へ、ベクトルの数字を文字として貼る操作とは異なります。対応するモデルと実装が必要です。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ソフトプロンプトチューニング」って出てきたら「モデル本体を固定して、入力に加える数値のプロンプトを学習する方法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Soft prompt tuning」 = 学習可能な数値のプロンプトを調整する方法
💬 ここでは入力の埋め込みにソフトプロンプトを加えるprompt tuningを説明します。soft prompt methodsには、prefix tuningなどの関連手法も含まれます。

参考資料

← 用語集にもどる