見出し画像

LangChain の Research Assistant - チャット以外のUXの模索

以下の記事が面白かったので、かるくまとめました。

"Research Assistant": Exploring UXs Besides Chat


1. チャットの欠点

これまでの多くのLLMアプリはチャットベースです。「ChatGPT」は最も急成長しているコンシューマ向けアプリであり、チャットは合理的な UXです。ただし、UX としてのチャットにはいくつか欠点もあり、多くの場合、高パフォーマンスなアプリの作成が困難になる可能性があります。

1-1. 待ち時間

主な欠点は、チャットに伴う遅延が予想されることです。チャットでは、ユーザーとしては迅速な応答を期待します。これが、LLMアプリにおいてストリーミングが非常に重要である理由です。高速応答のような錯覚が得られ、進行状況が可視化されます。

この待ち時間の予想は、バックグラウンドで多くの作業を行うのが困難であることを意味します。作業が増えれば増えるほど、応答を生成するまでにかかる時間が長くなります。LLM アプリの主な問題はその精度であり、向上させるための主な方法の1つは、プロセスを個々のステップに分割し、より多くのチェックを実行するなど、より多くの時間を費やすことです。しかし、これら追加ステップは大幅に待ち時間を増加させます。

 1-2. 出力フォーマット

チャットはメッセージに最適ですが、長い論文、コードファイル、複数のファイルなど、メッセージに属さないものにはあまり適していません。チャットを使用する場合、結果をメッセージとして出力すると、結果を確認したり利用したりすることが難しくなることがあります。

1-3. Human in the Loop

LLM は (まだ) 精度が高くないため、多くのアプリでは人間が関与することが必要です。LLMは小規模なバーストでのみ使用し、その後人間がその出力を検証し、フォローアップを求めます。

ただし、ここではバランスをとる必要があります。人間が常に最新情報を把握する必要がある場合、実際には時間の節約にはなりません。しかし、LLMは十分な信頼性がないため、人間を外すこともできません。

重要なのは、LLMに大量の作業を依頼できるものの、その結果、まだ完璧な出力が期待されないようなUXを見つけることです。

 2. 非チャットプロジェクト

チャットを主な媒体として使用しないプロジェクトもたくさんあります。

2-1. GPT-Engineer

「GPT-Engineer」には、小さなチャットコンポーネント (明確な質問をする) があり、後から自律的に実行され、コードファイルが生成されます。これには、重要なポイントで人間が関与します。

・明確な質問
・コードを検査

最終的に生成されたコードはユーザーが簡単に変更できるため、どちらかというとドラフトのようなものです。出力はPythonファイルです。チャットで出力するよりもはるかに自然です。

同僚にコードを書くように頼んだとしても、進捗状況を継続的にメッセージで送ってくるとは期待しないでしょう。いくつかの作業を進めてからメッセージを送ってくることを期待します。まさにここでのUXです。

GPT-Engineer

2-2. DosuBot

「DosuBot」はGitHubリポジトリを巡回し、Issueに対応します。ユーザーはチャットを通じてではなく、GitHubのIssueを通じて対話します。GitHubのIssueの応答時間はチャットの応答時間よりもはるかに高く、「DosuBot」が本来の業務を遂行するのに十分な時間が与えられます。その出力も完璧な成果物であることは期待されていません。それらは単なるユーザーへの応答です。ユーザーは、それらを取り入れて、適切と思われるように実装することに大いに関心を持っています。

DosuBot

2-3. GPT-Researcher

「GPT-Researcher」では完全な調査レポートを作成します。研究レポートを保存するのと同じように、生成されたファイルも保存されます。チャットでレポートをお互いに送信することはありません。実行には時間がかかりますが、まったく問題ありません。同僚に研究レポートを書いてほしいと頼んだとしても、即座に返事が返ってくるとは期待できません。その出力は簡単に検査および変更でき、最初のドラフトとして使用できます。

GPT-Researcher

3. Research Assistant

「LangChain」では「GPT-Researcher」チームの協力のもと、「LangChain Templates」に「Research Assistant」テンプレートを追加しました。

「Research Assistant」の内部処理は、いくつかのステップに分類できます。

・質問・トピックの入力
・たくさんのサブ質問の生成
・サブ質問を調査して関連文書を入手して要約
・各サブ質問の要約を最終レポートに結合
・最終レポートの出力

これらはモジュール式であるため、LangChainエコシステムに最適です。

・サブ質問の生成に使用されるプロンプトや LLM を交換
・関連するドキュメントを取得するために使用するRetrieverを交換
・最終レポートの生成に使用されるプロンプトや LLM を交換

デフォルトでは、LLMに「OpenAI」、検索エンジンに「Tavily」を使用します。「Tavily」は「GPT-Researcher」チームによって作成された検索エンジンで、AIワークロード向けに最適化されています。 具体的には、「Tavily API 」はRAG用に最適化されます。これらは、LLM推論と出力を最大化する、RAGパイプラインに挿入する最も事実に基づいた関連情報を取得するために最適化されます。これにより、Web 検索を簡単に行うことができます。



この記事が気に入ったらサポートをしてみませんか?