見出し画像

Step-Back Promptingというのがあるらしい

LangChainのLangSmithのWaitingListに登録してから、「LangChain Release Notes」なるメールが届くようになった。
その中で、「Step-Back Prompting」というキーワードが目に入り、なんだろうと思って、リンク先の記事を読んでみました。

Step-Back Prompting

ステップバック・プロンプティングという名前からすると、「1歩戻るプロンプト手法」ってことなんだろうけど、、どういうこと??

・・・ってことで、リンク先を読んでみました。

なるほど。
ユーザがある質問をする場合、たいていのケースで詳細なレベルでの質問に陥りがちで、部分的な詳細情報に引っ張られて、とんちんかんな回答になることがある。
これを回避する手法がステップバック・プロンプティングってことかな。

簡単に読み解いた内容を記すと、こんな感じかな。

  • ユーザが何か質問をする。

  • その質問をより高いレベルの概念や原理に抽象化する。

  • その抽象化レベルでの質問に回答する。

  • それらを用いて、当初の質問に回答する。


以下は、Google Deepmindの論文からの抜粋です。

出典:https://arxiv.org/pdf/2310.06117.pdf

真ん中のOriginal Questionに対して、そのまま回答しているのが左下のOriginal Anwer、思考の連鎖を利用しているのが、左上のChain-of-Thoughtですが、どちらも回答は誤りのようです。
それに対して、Step-Back Promtingでは、Step1:Abstractionで、質問内容を抽象化し、1歩戻った視点の質問を考えます。(これをStep-Back Questionと呼んでいます。)
次に、このStep-Back Questionに対する回答を生成します。(これをStep-Back Answerと呼びます。
このStep-BackのQAも含めて、元の質問に対する回答を生成する(これがFinal Answer)と、質問の詳細な情報に引っ張られずに、概念的に聞きたいことを把握したうえで、回答するという動きをするようです。

上記の論文の例では、1つは、物理現象に関する質問に対して、その原理に関する問いに1歩戻り、原理を把握して、最終回答を導いている。もう一つは、経歴について、その人の経歴全体を把握してから回答しています。

なんか、LangChainのAgentっぽい流れだなと思ったら、どうやら、このプロンプティングをLangChainに実装しまたというのが、もともともリリースノートにつながっているようでした。(そりゃそうか・・・^^;;;


とりあえず、初投稿なので、いったんここまでで終わります。
(テスト投稿的な意味合いもあるので・・・)

この記事が気に入ったらサポートをしてみませんか?