AIに関する多くの誤解の1つは、私たちの期待が次のようになっていることです。
graph TD
Question -->|"Expensive AI Magic"| Answer
Answer["The perfect answer"]
フラッグシップモデルに多額の費用をかけたのに、期待以下の結果しか得られないと、非常にフラストレーションがたまることがあります。
このトピックでは、期待値を調整し、より良い回答を得るためにDiscourse AIが提供するさまざまな機能に焦点を当てたいと思います。
Discourse AIは実際にどのように機能するか
現実はより複雑です。質問をすると、次のようになります。
graph TD
Question --> Consolidation[Question Consolidation]
Consolidation --> RAG[RAG System]
RAG --> ToolSelection[Tool Selection]
ToolSelection --> Search[Search]
ToolSelection --> Categories[Categories]
ToolSelection --> Tags[Tags]
Search --> Context[Gather Context]
Categories --> Context
Tags --> Context
Context --> Answer[Generate Answer]
- まず、質問が統合され、理解されます。
- 次に、RAGシステムが利用可能な知識を検索します(オプション)。
- 見つかったものに基づいて、どのツールを使用するかを決定します(オプション)。
- ツールが特定の情報を収集します。
- すべてが組み合わされて回答が生成されます。
コンテキストがすべて
AIシステムを使用して質問に回答する場合、コンテキストが重要です。
GPT-4やClaude 3.5 Sonnetなどの大規模言語モデル(LLM)は、膨大な量の公開データでトレーニングされています。しかし、ドメイン固有の質問に回答する際には理想的ではない2つの注意点があります。
- LLMは公開データでトレーニングされています。
- LLMにはトレーニングのカットオフ日があるため、数か月前の公開データはデータセットにない可能性が高いです。
クローズドフォーラムの場合、データセットには何も含まれていないため、コンテキストはさらに重要になります。
コンテキストとは、LLMが質問に正しく回答できるように、回答する前にLLMに提供する情報のことです。
コンテキストをどのように取得しますか?
コンテキストはいくつかの方法で提供できます。
- RAG(Retrieval-Augmented Generation)を使用した自動化 - ペルソナにドキュメントをアップロードすると、返信する前にドキュメントから回答を検索できます。まず質問を統合し、次にセマンティック検索を使用してコンテンツを検索します。これにより、どのツールを使用すべきかのガイドが得られます。
- ツールを使用した自動化 - LLMは、RAGガイダンスに基づいて追加情報を検索したりトピックを読み取ったりするなどのツールを使用できます。
- 手動 - 大量のテキストを貼り付けてから、LLMに質問することができます。
ツールベースのコンテキスト
Discourse Forum Helperは、検索、トピックや投稿の読み取り、カテゴリやタグのリスト表示などのツールを使用します。
Forum Helperに質問すると、モデルはまずRAGを使用して関連性のあるものを理解し、次にどのツールがより良い回答を得るのに役立つかを決定します。
この例では、フォーラムヘルパーに私が何をしているのか尋ねたところ、それは過去1週間に投稿されたSamのコンテンツを検索することを決定し、21件の結果を得ました。
この検索からモデルが得た新しいコンテキストを理解するには、AI bot debugging allowed groups設定を有効にすることができます。
これにより、すべての投稿の下部にデバッグボタンが追加され、クリックするとLLMに提供された正確なコンテキストが表示されます。
Discourse検索ツールはオプションが非常に豊富です。
これは祝福でもあり呪いでもあります。オプションが多すぎると、LLMは最適でない選択をすることがよくありますが、私たちはオプションの数をそれほど高くしないように努めましたが、ニーズによってはカスタムツールを使用した検索を好むかもしれません。
期待どおりの結果が得られない場合はどうすればよいですか?
コンテキストがすべてであることを考えると、最初に確認すべきことは次のとおりです。
- RAGシステムは、ツールをガイドするための関連コンテンツを見つけましたか?
- LLMはそのガイダンスに基づいて正しいツールを使用しましたか?
- ツールは期待どおりの結果を見つけましたか?
たとえば、この失敗を見てみましょう。
これは、RAGガイダンスとツールの使用の両方の典型的な失敗です。
LLMは次のように検索しました。
bug critical urgent broken order:latest status:open status:public
この検索のキーワードコンポーネントは非常に貧弱で、結果は1つしか得られません。セマンティック検索は、誰かが大声で叫ぶたびに緊急と見なすため、結果を見つけるのに非常に苦労します。
おそらくより良い結果が得られるのは次のとおりです。
過去2週間に報告された、op_likesで並べ替えられたすべてのオープンバグを見つけます。ただし、この特定の部分の情報は、現在の検索機能では利用できません。カスタムツールが必要になります。
ここに大きなばらつきとニュアンスがあるため、最初に行うべきことは、ユーザーがボットと行っている既存のやり取りを監視し、できるだけ多くの失敗を収集することです。
失敗したケースをどうすればよいですか?
失敗したやり取りがある場合、いくつかの選択肢があります。
- システムプロンプトを改善して、ボットをより良くヒントすることができます。
- ボットがより良い検索結果を得られるように、フォーラムに情報を文書化できます。ドキュメントカテゴリを優先することで、見つけやすくなります。
- より多くのコンテキストを含むドキュメントをアップロードできます。ドキュメントをフラグメントに分割し、統合された質問に最も近いフラグメントを提供して、ボットを接地するのに役立ちます。
- ペルソナが主に検索に関するものである場合は、検索ツールの使用を強制します。
- カスタムツールを開発して、ニーズをより良く満たすことができます。
- LLMに提供するコンテキストの量を増やすことができます(検索結果を増やすなど)。
AIは曖昧になる可能性があり、1つの問題を解決すると別の問題が発生する可能性があります
「完璧な」AI質問応答ボットを作成することは旅であることを忘れないでください。監視されたフィードバックループを作成し、定期的にパフォーマンスを評価することで、時間をかけて改善することができます。
テクノロジーがどのように構築されているかを意識してください。質問に答えるために10,000件の投稿のコンテキストにアクセスする必要がある場合、現在のコンテキストウィンドウで回答するために、投稿のリスト全体をコンテキストにフィードすることは現実的ではない可能性があります。
重要なのは、より良い結果を得ることは反復的なプロセスであることを理解することです。


