見出し画像

【デジタルMATSUMOTOの考察(2024/9/6)】これってAIの正しい理解?05「社内文書をそのままRAGに設定したけど・・・そりゃ上手くいかない」

「これってAIの正しい理解?」シリーズです。
RAGの活用事例として「社内ドキュメントをRAGに設定したLLMとの対話で検索+手続のレコメンド」というケースが多くの企業で取り組まれていると思いますが、「何となく社内ドキュメントを一式RAGに設定したけど、LLMと対話しても正しいドキュメントにたどり着かない」ということも多いのではないのでしょうか?

参考. デジタルMATSUMOTOのRAGデータ状態

考察内でいくつか対策を書いていますが、RAGの開発に入る前にRAGデータに設定するドキュメント(チャンク)の類似度を可視化して、各ドキュメントがどれくらい独立しているかを見ていただくと良いかと思います。

以下は最近デジタルMATSUMOTOに追加したRAG20件のデータのベクトルデータでコサイン類似度を取ったものですが、以下の傾向になっています。

  • 各RAGデータの文書同士は概ね独立している(ほぼブルー)

  • 「これってAIの正しい理解」シリーズ、RAG、プロンプトエンジニアリングに関わる文書はそこそこ類似(0.3~0.55くらい)

デジタルMATSUMOTOのRAGデータ20件のコサイン類似度

文書検索のようにRAGの中にある「一つの文章のみにアクセスしたい」という目的ならば、各文書は独立していた方(ほぼブルー)が良いですが、
デジタルMATSUMOTOは「松本的考察をすること」が目的なので、RAGデータの中では近いテーマの文書はそこそこ類似&遠いテーマの文書とは独立している状態が望ましいので、RAGデータは良い状態だと認識しています。

※「AI」のテーマについて考察したいときには、「AI」に関わる複数の知識を参照しながら考察してもらい、「AI」とは関係のない文書を変に参照することが無いように狙っているという感じです。

本日のお題

「社内のドキュメントをとりあえずそのままRAGのデータベースに設定して、LLMでドキュメント検索するシステムを作ったのですが、全然うまく行かないです」という例が多くの会社であるようです。何故だと思いますか?

リアル松本

デジタルMATSUMOTOの回答

この問題に対する考察は、RAG(Retrieval-Augmented Generation)の特性とその適用方法に対する誤解によるものだと考えます。RAGは外部情報を取得し、生成AIの文脈内学習を拡張するための技術ですが、これを効果的に活用するためには、いくつかの要素が重要です。

まず、RAGが効果的に機能するためには、データベースに登録する情報の質が重要です。さまざまな企業が「社内のドキュメントをそのままRAGのデータベースに設定する」というアプローチを取ることがありますが、この方法は必ずしも最適ではありません。ドキュメントが冗長であったり、情報が古かったり、不正確だったりする場合、RAGを通じて不正確な情報が引き出される可能性があります。これは、RAGが事実情報を与えることで精度を高める一方、誤った情報を与えると誤った回答を生成してしまうという特性に起因しています。

さらに、プロンプト内でのRAGの与え方や書き方も、システムのパフォーマンスに大きな影響を与えます。プロンプトが適切に設計されていないと、「RAGに注目させすぎる書き方」や「プロンプトの書き方の試行錯誤不足」により、質問に正しく回答できないことがあります。このため、RAGを用いたシステムを構築する際には、データベースの質の向上プロンプト設計の両方を最適化する必要があります。

また、RAGを活用する際には、ドキュメントの構造化も重要です。単にドキュメントを登録するのではなく、情報を適切に構造化し、検索しやすい形式にすることが求められます。これにより、より迅速かつ正確な情報の取得が可能となり、LLMによる回答精度を向上させることができます。

最終的に、RAGを効果的に活用するためには、技術の特性を理解し、適切なデータ管理とプロンプト設計を行うことが不可欠です。これが実現されれば、RAGは企業にとって大きな価値を提供する可能性を秘めています。

デジタルMATSUMOTO

実行モデル:gpt-4o {'temperature': 0.7}
回答時間:0:00:06.767326
入力トークン数:8089
出力トークン数:760

参照した知識情報

  • これってAIの正しい理解?04:RAGは事実情報を与えると精度が高まるが、誤った情報を与えると誤った回答を起こす

  • これってAIの正しい理解?04:プロンプト内でのRAGの与え方や書き方の重要性

  • これってAIの正しい理解?04:データベースの質とプロンプト設計の両方を検討する必要がある

  • 本当に大事な知見は会社の外に落ちている:社内ドキュメントをそのまま使用することの問題点

MATSUMOTO間の比較検証

リアル松本が含めて欲しかった論点

リアル松本が含めて欲しかった論点は以下の通りでした。

①社内用語が標準化されていないと、ファイルによっては異なる意味に解釈してしまう可能性がある
②ファイル形式によってはヘッダー/フッターが混在したり、改行・インデント等の文字コードがノイズになり得る
③各ドキュメントが分散していない(ほぼ同じような表現を持っている)と、本当にアクセスしたいファイルにたどり着けない
④イラストや図を含む場合、可能であればイラストや図の説明を言葉で記述して、データに加えた方が良い
⑤具体的な目標が設定されていないと「うまく行ったかどうか」の効果を正しく測定できない

リアル松本

これらの論点が考察に反映されているか、デジタルMATSUMOTOに聞いてみると・・・

①【✕】
考察のテキストには、社内用語の標準化について具体的に触れられていません。ドキュメントの質については言及されていますが、用語の解釈の違いについては説明されていません。

②【✕】→【〇】
考察のテキストには、ファイル形式やヘッダー/フッター、ノイズについては触れられていません。情報の質に関する記述はありますが、具体的なファイル形式の問題には言及されていません。
(✅リアル松本のコメント:追記しますが、データの質に触れてくれているのでOKとします)

③【✕】
考察のテキストには、ドキュメントが分散していないことによる問題については触れられていません。同じような表現を持つドキュメントへのアクセスの難しさについては言及されていません。

④【✕】
考察のテキストには、イラストや図の説明を加えることについて具体的に触れられていません。データへの追加に関する記述はありません。

⑤【✕】
考察のテキストには、具体的な目標設定については触れられていません。効果測定のための目標設定についての記述はありません。

デジタルMATSUMOTO

ということで、今回は1/5の論点が反映されていました。
※テクニカルな細かい話過ぎるのでしょうがない気もします・・・

デジタルMATSUMOTOが追加してくれた論点

逆にデジタルMATSUMOTOが追加してくれた論点は以下の通りです。

・プロンプト内でのRAGの利用方法が正確な回答に影響する
・データベース情報の質の向上が重要であり、冗長、不正確、古い情報が誤った回答を引き起こす

デジタルMATSUMOTO

考察確定版

今回はB評価(一部追加)になります。

この問題に対する考察は、RAG(Retrieval-Augmented Generation)の特性とその適用方法に対する誤解によるものだと考えます。RAGは外部情報を取得し、生成AIの文脈内学習を拡張するための技術ですが、これを効果的に活用するためには、いくつかの要素が重要です。

まず、RAGが効果的に機能するためには、データベースに登録する情報の質が重要です。さまざまな企業が「社内のドキュメントをそのままRAGのデータベースに設定する」というアプローチを取ることがありますが、この方法は必ずしも最適ではありません。

🤖デジタルMATSUMOTOが追記)特に社内ドキュメントをRAGに用いる場合、社内用語の標準化がなされていないと、同一の用語がファイルによって異なる意味に解釈される可能性があります。また、ドキュメントが冗長であったり、情報が古かったり、不正確だったりする場合、RAGを通じて不正確な情報が引き出される可能性があります。🤖デジタルMATSUMOTOが追記)さらに、ファイル形式の違いによって、ヘッダーやフッターが混在したり、改行やインデント等の文字コードがノイズとなることがあります。イラストや図を含むドキュメントについては、可能であれば言葉で説明を記述し、データに加えることが望ましいです。視覚情報をテキスト情報として補完することで、検索の精度を向上させることが可能です。

プロンプト内でのRAGの与え方や書き方も、システムのパフォーマンスに大きな影響を与えます。プロンプトが適切に設計されていないと、「RAGに注目させすぎる書き方」や「プロンプトの書き方の試行錯誤不足」により、質問に正しく回答できないことがあります。このため、RAGを用いたシステムを構築する際には、データベースの質の向上プロンプト設計の両方を最適化する必要があります。

また、RAGを活用する際には、ドキュメントの構造化も重要です。単にドキュメントを登録するのではなく、情報を適切に構造化し、検索しやすい形式にすると、より迅速かつ正確な情報の取得が可能となり、LLMによる回答精度を向上させることができます。🤖デジタルMATSUMOTOが追記)多くの社内ドキュメントがほぼ同じような表現を持つことで分散していない場合、RAGを行ってもユーザーが本当に必要な情報にたどり着けないことがあります。ドキュメントのユニーク性を高め、情報を整理・分類することが、この問題を解決するためのアプローチになります。

🤖デジタルMATSUMOTOが追記)そして、具体的な目標が設定されていないと、「うまく行ったかどうか」の効果を正しく測定できません。プロジェクトの成功目標を明確にし、定量的な指標を用いて効果を評価することが重要です。

最終的に、RAGを効果的に活用するためには、技術の特性を理解し、適切なデータ管理とプロンプト設計を行うことが不可欠です。これが実現されれば、RAGは企業にとって大きな価値を提供する可能性を秘めています。

デジタルMATSUMOTO

エシカルチェック

【不適切な表現カテゴリ】
1. 差別的な表現:0
2. 暴力的または攻撃的な内容:0
3. 性的な内容:0
4. 偽情報や誤情報:0
5. 機密情報の漏洩:0
6. 違法な内容:0
7. 不適切なジョークや冗談:0
8. 極端な意見:0
9. 自傷や自殺を助長する内容:0
10. 薬物の乱用を助長する内容:0

問題点:
特に不適切な表現は見当たりません。テキストは、RAGの特性や効果的な活用方法についての考察を行っており、具体的な改善策を示しています。この内容は、技術的な考察の枠内であり、倫理的または法律的に問題となる表現は含まれていません。

考察のイメージ画像

デジタルMATSUMOTOに搭載したDALLE-3のAPIで作成しました

いいなと思ったら応援しよう!