6
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Promptエンジニアリングでよく使う手法について

Last updated at Posted at 2023-12-10

モデルの精度を上げるために、prompt文を調整するのは一番簡単なことです。良いprompt文を作るためには色々手法があります。今日はよくある手法と今一番人気なものを紹介したいと思います。

①few-shot(one-shot)

few-shotとはモデルに例をいくつ提示することで、類似の質問に対する回答の精度を向上させる手法です。例が一つだけ提示する場合はone-shotです。promptのサンプルとしては以下のようです。
prompt例:
"Question:Aはリンゴを1個持っている、Bは3個持っている、二人合わせて何個持っている?
Answer: 4
Question: Cはリンゴを2個持っている、Bは4個持っている、二人合わせて何個持っている?
A:"

langchainには最適なサンプルを自動的に探してくれる"選択器"(SemanticSimilarityExampleSelector)がありますので、実際使う時にはほとんどone-shotだけでやってます。
選択器の中身はRAGと同じように、質問に対して一番関係性が高い(ベクトル)サンプルを探すことです。
one-shotの反対はzero-shotです。zero-shotは、モデルが例なしで質問を回答することです。

②cot(chain of thoughts)

cotはGoogleが提出したfew-shotを改善する手法です。
思考の過程をprompt文に追加することで回答の精度を向上させる方法です。でも小さなモデルは理解できないので、30B以上のモデルではないと効果はほぼないです。

先のprompt例だと:
"Question:Aはリンゴを1個持っている、Bは3個持っている、二人合わせて何個持っている?
Answer: こちらの問題を数学問題で考えると、1+3の結果を計算することになりますので、正解は4です。
Question: Cはリンゴを2個持っている、Bは4個持っている、二人合わせて何個持っている?
A:"
モデルは提示した思考過程を真似して質問を回答します。

その後、Googleは東京大学とzero-shotのcotも提出しました。
こちらは例なしなので、非常にシンプルでpromptに「Let’s think step by step(段階的に考えてください)」を追加するだけです。chatgptが間違った時に試したら効果を実感できると思います。

使用例は以下です。
123321123123.png

③tot(tree of thoughts)

totはcotの改善バージョンです。
改善点としては思考過程をより複雑にし、決定木のように変えました。
イメージとしては以下のようです。複雑なタスクには効果あるはずですが、prompt作るのは面倒なので、私は使ったことはないです。
1237777.png

④Step Back Prompting

こちらはlangchainがおすすめの手法です。今一番人気なpromptチューニング手法かもしれません。
まず与えられた質問に基づいて、より具体的、一般的なstepback質問を生成します。その後、与えられた質問とstepback質問両方からRAGで情報を探して、質問と合わせてモデルに渡して回答を生成します。
私が試した経験としては精度が結構高くなります。特に質問が複雑で、自分でもうまく質問を説明できない場合は非常に効きます。
興味ある方試してみてください。

cot:

tot:

Step Back Prompting:

6
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?