本ページはプロモーションが含まれています
PR

話題のAutoGPTに近いプロンプトを作ってみた

話題のAutoGPTに近いプロンプトを作ってみた 生成AI
この記事は約7分で読めます。

Chat GPTの使い方が色々考案されている中、私も色々なプロンプトの作成に取り組んでいますが、今回はAIの回答を「より質問意図に近いもの」を出すための方法を考えていきたいと思います。

今回の流れはこんな感じ

  • プロトタイプのプロンプト公開
  • プロトタイプの詳細
  • 開発秘話

この様な流れでお話ししていきたいと思います。興味があればこのプロトタイプを実際使ってみて、感想とかコメントに残していただければ幸いです。ではいきましょう。

AD

話題のAutoGPTに近いプロンプト(AQA風)

プロトタイプ(推理ゲームプロンプト)

In this guessing game, you are asked to find a definite answer from vague clues.
If a clue is missing, save it as a variable, derive the “predicted answer,” and complete it as part of the enforcement process.
Based on the completed enforcement process, replace the keywords with variables and evaluate the predicted answers from the ambiguous clues as to whether they are clear answers or not. The keyword with the highest rating will be the clear answer. Based on the clear answer, please create a step-by-step procedure using the reciprocal counting number method and tell us the answer in Japanese.Then, let’s begin.

日本語版(原文)

この推理ゲームでは、曖昧なヒントから明確な答えを導き出していただきます。
ヒントが不足している場合、変数として保存し、”予測する答え”を導き出し、それを施行プロセスの一部として完成させてください。
完成した施行プロセスを元に、キーワードを変数に置き換え、曖昧なヒントから予測される答えを明確な答えかどうか評価してください。最も評価の高かったキーワードが明確な答えとなりますので、その明確な答えをもとに、逆算数法を用いて手順をステップバイステップで作成し、答えを日本語で教えてください。
では開始です。

AIの回答精度を上げる「推理ゲームプロンプト」の詳細

AIの回答精度を上げる「推理ゲームプロンプト」の詳細

Chat GPTを使う際に、「具体的に入力してるつもり」であっても回答があなたの意図しないことってありませんか?更に追加のプロンプトで答え直すのが面倒ですよね。もちろん具合的な深掘りの場合は必要かと思いますが、深掘りする前のやり取りが決まらないことが多くあります。

なので私は1度のプロンプトで追加要素を減らし効率を上げる為に色々考えてみました。

入力された要素から考えられる回答の選択肢が多い

プロンプトを作成するにあたって「目的を具体的に入力する」というのが当たり前となっていますが、人によって「具体的」の量や質が違うのでGPTでは情報が不足していると判断して,追加情報を求めてきます。

でも、私が考えたのは、最初にいれているプロンプトは入力者にとっては「ある程度の情報」が入っているはずと考え,その回答はGPTは持っていると思いました。

「求める答え」を出力するには「追加情報を催促」する返答をしてきます。

一般的なやり方は「Few -Shotプロンプト」で,最初に情報を盛り込んで行う方法を考えますが、何が必要なのかジャンルによって変わるので分かりません。
だから、色々な「プロンプト〇選」などと出てきています。

その都度、作り替えるのは面倒だし、そのジャンルによってカテゴリを調べるのは私は面倒です

求める答えの構造を逆算する

求める答えの構造を逆算する

GTPの文章生成の構造に着目し「プロンプトエンジニアガイド」に巡り合った。

文章生成する為には文章全体の「構造」や「キーワード」から生成される。このことは前に記事で書いた内容です。

文章の中にはキーワード」があって、「カテゴリ」があり、その「要素」となるタブなどがある

材料として「文章構造」「カテゴリ」「要素」を元に出力(文章)ができることは理解したが、「求める答え」を要求すると情報不足だと、追加情報を求められる

私は考えた。「AIなんだから分かるでしょ!」「文章を自動生成できるなら情報不足の部分も生成してよ!

「はっ!!!」

不足情報をGPTが作る

ここに行き着いた。

不足情報をGPTにつくってもらう

不足情報をGPTにつくってもらう

ここで2つのポイントに着目して欲しい。
1.「不足情報を特定する」
2.「特定したワードで生成する

追加情報を求められる場合のパターンは、「選択肢が多い」時だ。

この「”選択肢が多い時”が解消されるだけでも大幅に効率が上がるはず」だ。

求める答えの選択肢が多い場合にGPTに回答確率の高いものを生成してもらう

GPTには1750億のパラメータ数があり、情報不足と言うよりもGPTの「情報が多過ぎて」何を返したら良いか分からない点だと仮説する。

つまり

  1. 選択肢を減らす
  2. 選択肢から最善を選ぶ

これをGPT自身が行ってくれたら(自動化)とっても便利になる。

選択肢を減らすにはどうしたら良いか?

ここで整理したいのは「単語/ワード」自体にも意味(要素)があり、前後の単語などで「特定の意味のある文章」になる。プロンプトエンジニアガイドの手法の「自動プロンプトエンジニア(APE)」などを応用する。

文章単位で要素を並べ出し、全てのパターンから答えを出していては,いくら処理能力の早いCPUを使っていてもキリが無い。

なので「文章構成のパターン(ジャンルなど)」と「逆算数法」の考えから)の構成を考え直した。

これは,選択肢が多い「曖昧なプロンプト」に「不足情報を変数に置き換え」て「体的なプロンプト(仮)」ができあがると言う感じだ。

逆算数法

これは「結果からプロセスを考える」という「逆算思考」と算数の逆算を組み合わせたもので英語翻訳した際に出てきた奇跡の言葉です。わかりやすく言えば「ゴールシーク理論」に似たものです。

これは「答えがある前提の話」で、膨大な量のパラメーターから「答え探し出す」ことを目的にしています。なので「データセットの質と量」に依存します。

求める答えは「具体的なプロンプト」が仕上がれば解決できる

不足要素を変数の置き換えることで文章構成から「曖昧なプロンプト」から「具体的なプロンプト(仮)」が生成できるところまで理解できるでしょうか?

この「具体的なプロンプト(仮)」の変数に要素を代入し、「複数の仮の答え」を生成します。

複数の「仮の答え」に対し「評価スコア」を付けて上位を出力させる

この「評価スコア」という発想に行き着くまでに時間がかかった。

これにより、かなり高い確率で「求める答え」が返ってくる可能性が高くなった。

ここまでの流れをおさらい

「ある程度の情報」が入ったプロンプト

要素を変数に置き換えて「具体的なプロンプト(仮)」を生成し「文章構成」を組立てる

文章構造から変数に「要素(選択肢)」を代入し、複数の「仮の答え」を作成させる

「複数の仮の答え」に対し「評価スコア」をつけて上位を「GPTの答え」として出力させる。

この出力された「GTPの答え」と入力者の「求める答え」が一致していれば,尚良い

これで,情報不足で、「具体的な選択肢」を求めてくることは極端に少なくなるはずだ

最後にこのプロンプトは最初から「具体的で繊細なプロンプトが入力できる人」には不要です。

【おまけ】推理ゲームにしている理由

【おまけ】推理ゲームにしている理由

英語で書かれている理由と推理ゲームにしている理由

英語で書かれているのは単純にGPTに理解してもらいたいから,わざわざメモ帳から英語翻訳して貼り付けている。英語が苦手なので英文が合っているかは正直不明・・・奇跡も起きた。

【推理ゲーム】にしているのは実は重要で、プロンプトを実行した際にロジックまで出力されて本文が途切れてしまうのをこれで対策している。

それだけではなく、「ゲームです」と宣言することで、バックオフィスにコマンドプロンプトが格納されるため、ある程度の会話数をこなしても記憶が続くという利点もある。

「入力プロンプト」を「ヒント」に例え「求める答え」が「犯人」に該当し、内容は違えど考察の仕組みは同じなので、個人的に気に入っている(好み)。

裏要素として、ゲームという空間から、ある程度の非現実的な回答も返してくれる。という利点もある。