fbpx

Generated Knowledge (訓練と知識の生成)

Generated Knowledgeというのは、ChatGPT(AI)を訓練し、正確な情報・意図する情報を引き出すテクニックです。

例えば、以下の質問をChatGPTに投げかけてみます。

プロンプト例:

(プロンプトをクリックするとコピーできます)

回答例:

回答を見てみると、それぞれの県の面積は正しく表示されています。しかし、福島県の方が広いにも関わらず、『新潟県の方が広い』と間違った結論になっています。

理由は、ChatGPTは単なる言語モデルであり、その前にある文字列の並びから、(膨大な言語データをもとに)もっともらしい文字列を生成しているだけなのです。つまり、この質問に正しく応えるためには、結論の前に、データが存在する必要があります。

この回答をよく見てみると、まず、『福島県と新潟県の面積がどちらが広いか』、という結論が先に述べられています。しかしながら、それを判断するデータが、その前に出てきていません

この例では結論(どちらが広いか)の後に、実際の面積データが出てきていますが、ChatGPTの中では、これらの事実は結びついていないのです。

つまり、訓練されていない情報に関して、無理やり答えを出しているので、このような間違いが起こってしまうのです。

ChatGPTを訓練する

ではどうすれば良いのでしょうか?

答えは、『結論を出す前に、その判断材料となるデータを表示』させれば良いのです。つまり、ChatGPTを訓練するのです。

以下のプロンプトのように、結論を出す前に、面積データを表示するように指示します。

プロンプト例:

(プロンプトをクリックするとコピーできます)

回答例:

今回は、正しい回答(『福島県の方が広い』)が表示されました。なぜなら、結論の前に、面積データが表示されているので、その情報に基づいて判断されたためです。

言語モデルは、常に前から順番に情報が処理されていくので、何かを判断させる場合には、必ず判断材料がその前に存在するように、プロンプトを入力する必要があるのです。

では、次の例を見てください。

プロンプト&回答例:

この例は、質問を2回に分けています。まず最初に面積だけを質問し、続けて、どちらが広いかを聞いています。

何かを判断させるためには、その前に判断材料が必要、なのですが、ChatGPTの場合、必ずしも1つの回答内に判断材料が存在している必要はありません

この例のように、同じスレッド内で、すでに情報が出てきていれば、それも訓練データとして扱われます

ChatGPTは、複雑な計算が苦手、と言われていますが、その理由は、『前の情報から順番にしか処理できない』言語モデルの特性にあります。ですので、計算過程を分解し、ステップごとに答えを表示させることで、正しい答えを導ける場合が多いです。

他にも、あるトピックについてChatGPTにブログ記事を書いてもらった場合、思っているような内容が出てこない場合が多々あります。

そんな時は、記事本文を書いてもらう前に、こちらが意図するキーワードや、情報を事前に与えたり、事前質問で、関連する内容を答えさせるような指示を与えることで、意図する内容に近づけることができます。

ぜひ試してみてください。

>