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

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

公開:
💡 魔法の前置きだけを学習する省エネ微調整
📌 このページのポイント
ソフトプロンプトチューニング 入力シーケンス 仮想 トークン1 仮想 トークン2 仮想 トークン3 実際の テキスト トークン 列... ソフトプロンプト(学習するベクトル) 通常のテキストトークン 凍結されたモデル(重みは変化しない) 🔒 全パラメータは固定 学習するのはソフトプロンプトベクトルのみ モデル全体のFine-tuningより圧倒的に少ないパラメータ
ソフトプロンプトチューニングのイメージ
ひよこ ひよこ
ペンギン先生、AIをタスクに合わせて調整するにはファインチューニングしかないの?
ペンギン先生 ペンギン先生
いや、もっと軽い方法があるよ。その一つがソフトプロンプトチューニングで、モデルの重みはまったく変えずに「学習可能なプロンプト」だけを訓練するんだよ。
ひよこ ひよこ
学習可能なプロンプト…?普通のプロンプトと何が違うの?
ペンギン先生 ペンギン先生
普通のプロンプトは「要約してください」みたいに人間が書く言葉(ハードプロンプト)だよね。ソフトプロンプトは意味のある言葉じゃなくて、数値ベクトルそのものを最適化するんだよ。
ひよこ ひよこ
意味のない数値がプロンプトになるんだね!それをどこに付けるの?
ペンギン先生 ペンギン先生
入力の先頭に付けるよ。例えば100次元のベクトルを20個、テキストの前に置いて、それをタスクに合わせて学習するんだ。モデルはそのベクトルを「隠れた指示書」として受け取るイメージだよ。
ひよこ ひよこ
それでうまく動くの? 不思議な気がするんだけど…
ペンギン先生 ペンギン先生
GPT-3で実験したところ、モデルが大きいほどハードプロンプトのファインチューニングに近い精度を出せることが分かったんだよ。しかも変えるパラメータがとても少ないから効率的なんだ。
ひよこ ひよこ
ペンギン先生 ペンギン先生
プレフィックスチューニングは各Transformer層すべてにベクトルを挿入するのに対し、ソフトプロンプトチューニングは入力層だけに付けるシンプルな形だよ。その分パラメータが少なくて済むんだよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ソフトプロンプトチューニング」って出てきたら「モデルを変えずに学習可能な仮想プロンプトだけ最適化するPEFT手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Soft Prompt Tuning」 = ソフトプロンプトチューニング
💬 人間が書く「ハードプロンプト」に対し、機械が学習する「柔らかい(soft)プロンプト」だよ
← 用語集にもどる