「ChatGPTを使用してAI幻覚を回避する方法」

AI幻覚を回避するためのChatGPT活用術

Tageさんが数か月前にChatGPTの妄想を防ぐ方法について書きました。しかし、私はAIの幻覚を完全に避けるための特定の方法について深く掘り下げたいと思いました。幻覚を避ける方法を説明する前に、私たちがカスタムのChatGPTチャットボットを作成する際に行っていることについて少し説明します。

私たちが行っているのは、VSS機能を持つSQLデータベースに基づいたプロンプトエンジニアリングです。ChatGPTを完全に狂暴にさせることなく、ChatGPTを牢屋から出すと言えるかもしれませんが、その能力を大幅に制限して、SQLデータベース中のデータに関連する質問にのみ回答することができるようにしています。プロセスを理解するためには、以下でカスタムチャットボットを作成するということが役立ちます。

私たちのウェブサイトスクレーパー

チャットボットの作成プロセスを注意深く見ると、まずウェブサイトをクロールしてスクレイピングすることから始まることに気づくでしょう。以下は、私たちがHubSpotをクロールした際に作成されたスクリーンショットです。

URLをクロールすると、ウェブサイトが「トレーニングスニペット」に分割されます。これは、ページ上で見つかった画像ごとに1つ、およびページ上で見つかった「セクション」ごとに1つのトレーニングスニペットを作成することを意味します。セクションは通常、Hx要素とそれに続くすべての段落と組み合わせられます。これらのスニペットはすべてSQLデータベースに挿入されます。以下でスクレーパーについて詳しく読むことができます。

以下は、私たちのマジックダッシュボードからのスクリーンショットで、そのようなトレーニングスニペットが表示されています。注意してください、以下のトレーニングスニペットは「プレビューモード」で表示されていますが、各トレーニングスニペットの内容を編集できる「生のモード」もあります。トレーニングスニペットはマークダウンなので、画像やハイパーリンクを参照したり、リストを作成したりすることができます。このようにして作成された情報がチャットボットエクスペリエンスの一部となります。

注意してください、無料のデモチャットボットを作成する際に、クローラーは最大で25ページしかスクレイピングしません。ページがそれ以上ある場合、それらは無視され、URLの長さの順に並べ替えられた最初の25ページだけがスクレイピングされます。後者の場合、重要なページが優先される傾向があります。重要なページは通常、”/about”などのURLを持ち、それ以外のページは通常、はるかに長いURLを持ちます。

VSSデータベース

クローラーがすべてをスクレイピングした後、クローリングとスクレイピング中に作成された各トレーニングスニペットを「ベクトル化」します。トレーニングスニペットをベクトル化することは、OpenAIの埋め込みAPIを使用して、各トレーニングスニペットの「軌跡」を説明する1,520次元のベクトルを作成することです。これらのベクトルは後であなたのVSS/SQLデータベース内をAI検索する際に使用されます。

後でユーザーが質問を形にすると、質問の「ベクトル」を作成します。これにより、質問とSQLデータベース内の各トレーニングスニペットとの「距離」を計算できるようになります。バックエンドは、質問をトレーニングデータへのマッチングを試みるときに、質問と各トレーニングスニペットのベクトルを持っているということです。質問のベクトルとトレーニングスニペットのベクトルを得た後は、残りは単純な線形代数です。これは一般的に高校や大学で教えられるものです。これに関する大部分の数学はピタゴラスの時代から知られています…

これにより、トレーニングスニペットを質問とマッチングできるようになります。これにより、ユーザーが尋ねた質問に関連するトレーニングデータがわかります。マッチングされたトレーニングスニペットは再び1つの文字列に連結され、提供したトレーニングスニペットのみを使用して、OpenAIに送信されます。指定された質問に対する回答を「指示」するためチャットGPTにとって必要な文脈を提供します。このようなトレーニングスニペットの一括を「コンテキスト」と呼びます。なぜなら、それはChatGPTが尋ねられた質問に答えるために必要な文脈を提供するからです。

実際には、ChatGPTに質問に答えるように求めるのではなく、私たちはすでに答えを知っているのです。単にChatGPTに尋ねられた質問に合わせて、すでに持っている答えを文やフレーズに「変換」するように求めているだけです。

私は上記のセクションには複数の42のジョークがあると確信しています

AI 幻覚を回避する方法

経験豊富な読者の方は、私が話さなくても AI 幻覚を回避する方法を既に知っているかもしれませんが、実際には ChatGPT に以下のような命令を追加するだけで簡単に回避できます:

指定した文脈で私の質問の答えが見つからない場合、「申し訳ありませんが、答えを知りません。キーワードを提供していただけますか?」と回答してください。

それだけです。私たちはただ丁寧に ChatGPT に教えて、答えが私たちのトレーニングデータから生成された文脈に含まれている場合のみ回答するように伝えるのです。以下のスクリーンショットで質問した「スパゲッティの作り方」について、それが回答しないことがわかります。なぜなら私たちのトレーニングデータには料理に関連する情報が含まれていないからです。

上記のポイントは、もしも ChatGPT に「スパゲッティの作り方」について尋ねれば、何百もの異なるレシピを提供してくれると言えるでしょう。つまり、私たちの仕事は以下のようなものです。

ChatGPT を単純化し、追加の教育を行うことで、私たちが教えた範囲外の何も知らないようにする。

もちろん、この方法には、ChatGPT が知識を持つべき対象についてはどんなに細部まで知っているかという利点がありますが、他のことは何も知りません。これにより、AI の幻覚を 100% 完全に排除し、何を尋ねても理論上も幻覚を起こしません。

結論

AI 幻覚を排除するには、以下のものが必要です:

  1. 「トレーニングデータ」となる VSS データベース
  2. OpenAI のエンベディング API を使用してトレーニングスニペットに対する質問のマッチングを行う能力
  3. コンテキストが回答を提供する場合のみ回答しないよう ChatGPT を指示するプロンプトエンジニアリング

以上です。だから他の人が「AI 幻覚はおそらく解決不可能だろう」と言っても、私は笑ってしまいます。例えば Sam Altman とのインタビューでは、彼が AI 幻覚を修正できないという発言をしていますが、実際に私たちはそれを6か月前に修正しましたよ、Sam さん…

申し訳ありません、Sam さん、ここでは幻覚はありません

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more