ChatGPTやInstructGPTが間違った答えを出すときには、解決の手順となる「思考の連鎖」と呼ばれる情報をプロンプトに含めることで、よりよい解答を得られることがあります。これを実際に試してみましょう。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
タイミングを考えると、プロンプトとか思考の連鎖をやっている場合じゃなくって、ChatGPT APIをやるべきだろ! となるのですが、それは次回のネタとさせてください(かわさき)。
OpenAI Cookbookの「Techniques to improve reliability」ページでは言語モデルからの信頼性を高めるためのノウハウが紹介されています。そこでは「明確な指示を与える」「複雑なタスクは幾つかのタスクに分割する」「モデルがタスクから逸脱することがないようにプロンプトを構造化する」といったことが書かれています。そして、その中には「答えを出す前に説明するようにモデルに指示する」(Prompt the model to explain before answering)という項目があります。
この中で出てくる概念に「思考の連鎖」(Chain of Thought、CoT)というものがあります。思考の連鎖とは「複雑なタスクを最終的に解決する過程における、中間的な推測ステップの連なり」といえます。こういう表現だと少し分かりにくいのですが、「リンゴが10個ありました。そのうちの5個を食べた後に、食べ過ぎたと思って3個を買い直しておきました。リンゴは今何個あるでしょうか」を考えるときに、「10−5=5個になったね」「5+3=8個になったね」「じゃあ今は8個あるよ」という風に問題を解くまでに頭の中で考えていることの過程を示すものだと考えてもよいでしょう。「AならB」「BならC」だから「AならC」のような論理記述を行う際にも思考の連鎖が使えますね。
「Chain-of-Thought Prompting Elicits Reasoning in Large Language Models」という論文では、このような思考の連鎖(以下、CoTとしましょう)をプロンプトに組み込むことで、言語モデルからよりよい答えを引き出せることが述べられています。こうしたプロンプトのことを「思考の連鎖プロンプト」「CoTプロンプト」などと呼びます。これに対してCoTを含まないプロンプトを「標準的プロンプト」(Standard Prompting)と呼ぶことがあります。
Copyright© Digital Advantage Corp. All Rights Reserved.