私は自分のウェブサイトでデジタルツインを運用しています。それは私の人生やスキルに関する質問に答えてくれます。私は一つ、厳格なルールを与えました。「決して嘘をつかないこと」です。もし誰かが私が持っていないスキルについて尋ねたら、知らないと認めなければなりません。数ヶ月間、私はシステムが機能していると信じていました。時々手動でテストしていましたが、回答はしっかりしているように見えました。しかし、適切な評価用ハーネスを構築したところ、数字は残酷なものでした。35の質問のうち、9つに明らかな嘘が含まれていました。答えられないように設計された8つの質問のうち、モデルが拒否したのはわずか4つでした。私のハルシネーション防止プロンプトは、およそ4回に1回の割合で失敗していたのです。私は、ユーザーに嘘をつく製品をリリースしていました。

極めてシンプルな検索設定

Pineconeや重量級のベクトルデータベースを立ち上げたわけではありません。設定全体は、ただのJSONファイル上にあります。私のコードは、プロフィールを個別のセクションに分割します。質問が届くと、システムはクエリと各テキストチャンクの間のコサイン類似度を計算し、最も近い一致するものを選び出し、それらをコンテキストとしてプロンプトに詰め込みます。その後、モデルはそのウィンドウ内にあるものに厳密に基づいた回答を生成します。

限定的な事実を扱う小規模な個人サイトにとって、このアプローチは高速で、コストもほとんどかかりません。リモートのベクトルストアへの

評価ループに欠陥がありました。 私を危うく陥らせそうになった、巧妙な罠を紹介します。私が最初に作成したテストツールは、検索プロセスを2回実行していました。1回目の実行では、正解データと比較するためのコンテキストを取得していました。2回目の実行では、実際の回答生成のためのコンテキストを取得していました。実際には、これは評価者(judge)が見ているチャンクと、モデルが見ているチャンクが異なる可能性があることを意味していました。評価者は、AIが実際には受け取っていないデータに基づいて回答を採点していたのです。間違った入力に対して採点を行う評価は、評価を行わないことよりも質が悪いです。それは偽りの安心感を与えてしまいます。スコアを見て、合格率が高いことを確認し、安心してしまうのです。その一方で、ユーザーは