【生成AI】私が考えるRAGシステムに必要な機能について2024-01-26【生成AI】私が考えるRAGシステムに必要な機能について記事タイトルとURLをコピーするこんにちは。CLIが好きな福島です。今回はRAGシステムを実装する上で必要な機能について、私の考えを書いてみます。重要度は参考程度にしていただければ幸いです。★★★ストリーミング出力機能まずは、ストリーミング出力機能になります。これはChatGPTなどを使っていると想像が付くかと思いますが、文字が断続的に表示される機能のことを指しています。全ての回答が生成されてから表示されるのは、待ち時間が長くなり、ユーザーにとってもストレスになります。そのストレスを緩和するためにこのストリーミング出力機能は非常に重要な機能であると考えております。文字だけだと寂しいので、ストリーミングのイメージ動画を載せておきます。フロントとバックエンドを分離する構成では、実装が中々難しいと感じます。実装の詳細については、また別のブログにでまとめたいと思います。続いて参考URLの表示になります。前提として、LLMはハルシネーションと言い、間違った回答を生成することがあります。そのため、LLMの回答は参考程度にとどめ、一次ソースを確認するのが重要と考えております。そこで一次ソースの参考URLを表示する機能が必要になります。イメージまたここで重要になるのが検索システム(ベクターストアなど)には一次ソースのURLを保持しておくことです。S3にアップロードする必要があります。baseは一次ソースのURLの情報を把握していなく、S3のパスしか情報を保持していません。基本的にはRAGシステムの利用者は回答の参考になったデータを確認することができません。これを防ぐために検索システム(ベクターストアなど)には一次ソースのURLを保持しておくことが重要です。一次ソースのURLではなく、LLMが回答の参考にしたチャンクを表示させる方法が考えられます。UIの設計を合わせて考える必要があると思います。会話履歴を踏まえたやりとり次に会話履歴を踏まえたやりとりができる機能になります。以下にイメージを載せておりますが、はじめに都道府県を1つ教えてと質問した後にそれ以外は?と質問した際に正しく過去のやりとりを理解して回答を生成していることが分かります。LLMを使ったシステムを実装する上では、この点を考慮する必要があります。会話履歴を踏まえてLLMに回答してもらうように実装します。利便性が下がると思うため、この機能も重要と考えます。文章検索機能RAGはLLMが知らないことを回答させるためにユーザーの質問に合わせ、検索システムから参考情報を検索します。調査したくなるケースがあると考えます。ユーザー側で確認できる範囲を増やすことで運用負荷の軽減やRAGシステムの活用を推進できると考えます。フィードバック機能RAGシステムは精度を評価したくなるかと思います。LLMが正しい回答を生成できているのかなどを確認する必要があり大変です。(私が知らないだけかもしれませんが)その仕組みを実装するのは中々大変と感じます。RAGの評価をしたいと考えた際に手軽にできるのが、フィードバック機能と考えています。これはユーザーの協力も必要になりますが、比較的簡単に評価できるのでは?と考えます。ChatGPTにおけるフィードバック機能ログの取得RAGシステムを改善するためにもログの取得は大切かと思います。改善に活かすことができるかと思います。ログを取得することが大切かと思います。参考ドキュメントごとの権限制御(要件に応じて)上述した通り、RAGはLLMが知らないことを回答させるためにユーザーの質問に合わせ、検索システムから参考情報を検索します。この検索の際に、ユーザーごとに閲覧できるドキュメントが違うケースもあります。その場合、どのようにドキュメントの権限分離をするか検討する必要があります。過去の会話履歴の表示です。この機能はそこまで重要ではないと感じ、重要度を1つ下げました。利用者にとっては利用する上での判断を増やすことになるため、特に不要なのかなと考え、重要度を1つにしました。このような機能が欲しい利用者が多い場合は、実装するべきだと考えます。終わり今回は私が考えるRAGシステムに必要な機能について、重要度別に書いてみました。どなたかのお役に立てれば幸いです。2009-引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。