DifyのRAG機能の精度をファイル形式別で比較してみる
便利なナレッジ機能
Difyを使っていると何かとお世話になるナレッジ。その正体は一般的にRAGと言われる機能なのですが、Difyではパワポ、PDF、エクセル、CSVなどあらゆるファイル形式からRAG(ナレッジ)を生成することができます。
他にも、NotionやWebサイトからも生成することができます。
浮かんだ疑問
そもそもナレッジはどの形式であげればいいんだろう??どれが精度高いのか?
今回は、ファイル形式(pptx, PDF, txt)ベースで作成した場合の精度を簡単に比較してみました。
そもそもRAGって??
RAGは、Retrieval Augmented Generationの略で、大規模言語モデル(LLM)の回答生成能力と、特定のデータセットからの情報検索を組み合わせた技術です。
簡単にいうと、LLMには当たり前ですが、特定の会社の社内文書などのプライベートな情報が学習されていません。それらを資料としてRAGを作成し、一緒に組み込んであげることで、社内規則や福利厚生などの質問に対して、回答させることができるのです!便利ですね。
各設定や条件について
早速検証してみます。
検証方法
①自社サービスの説明資料を、pptx, PDF, テキストベースにして、それぞれでナレッジ(RAG)を作成。
②それらをChatbotとしてDify上で組み込んで、回答精度を比較。(回答生成のLLMにはClaude3.5を使用)
前提
①ナレッジの設定は、各pptx, PDF, テキストベースの資料で全部同じとする。
②Chatbotのノード構成も以下のように同じとする。
つまり違うのは、ナレッジを作る際のデータの形式だけですね。それ以外は全部同じ条件にしています。
使う資料
今回は、弊社で提供しているChatGPT研修の説明資料をベースにします。以下からダウンロード可能です!
備考
上記の資料の元データはGoogleスライドなのですが、それをそのままGoogleスライド上から、pptx, PDF, テキストとして出力させてから、RAGとしてそれぞれ設定します。
ナレッジ設定条件
基本的に、Difyでおすすめとされているものをベースとして設定していきます。
- インデックス設定:高品質
- 埋め込みモデル:text-embedding-3-large
-
検索設定
- ハイブリッド検索
- リランクモデル:rekank-multilingual-v3.0
- トップK:3
- スコア閾値:オフ
結果
若干PDFでの回答は抽象度が高め。
パワポ、テキストベースでの回問は、実際の研修即した内容を返してくれる。
チャットボットにした質問
ChatGPT研修の特徴は?
と質問してみます。
パワポ(.pptx)でできたナレッジで回答
トークン数
回答
はい、ChatGPT研修の特徴についてご説明させていただきますね。
この研修は主に2つのコースに分かれています:
1. 基礎編
2. 応用編
それぞれの特徴を簡単にまとめますと:
基礎編:
• 業務におけるChatGPTの基本的な活用方法を学びます
• セキュリティリスクやプロンプトエンジニアリングなどの重要なトピックをカバー
• e-ラーニング形式で、2ヶ月間で約15時間の学習時間
応用編:
• ChatGPTの可能性を最大限に引き出す高度な使い方を学びます
• GPTs、API、iPaaSなどの先進的なトピックを扱います
• 同じくe-ラーニング形式で、2ヶ月間で約15時間の学習時間
特筆すべき点としては、オンラインでじっくり学べる点や、実践的なスキルが身につく構成になっている点が挙げられますね。基礎から応用まで幅広くカバーしているので、ChatGPTを業務で本格的に活用したい方にはぴったりだと思います。
ご不明な点がありましたら、遠慮なくおっしゃってくださいね。
研修がまず、基礎編、応用編があることを踏まえた上で、特徴について、それぞれリスト形式で回答してくれました。
PDFでできたナレッジで回答
トークン数
回答
はい、ChatGPT研修の特徴についてお話しさせていただきますね。
主な特徴としては以下のようなものが挙げられます:
1. 実践的なアプローチ:
研修では実際にChatGPTを使用しながら学ぶことができるので、理論だけでなく実践的なスキルも身につけられます。
2. 幅広い応用力の習得:
ChatGPTの様々な活用方法を学ぶことで、業務効率化やクリエイティブな問題解決など、幅広い分野での応用力が身につきます。
3. 最新技術への理解:
AI技術の最前線にあるChatGPTについて学ぶことで、最新のテクノロジーへの理解を深められます。
4. 倫理的配慮の重要性:
AIの使用に伴う倫理的な問題や配慮すべき点についても学ぶことができ、責任ある技術の活用方法を身につけられます。
5. チーム内でのスキル共有:
研修で得た知識やスキルを同僚と共有することで、組織全体のAI活用能力の向上につながります。
これらの特徴により、ChatGPT研修は個人のスキルアップだけでなく、組織全体の競争力向上にも寄与する可能性がありますね。何か具体的に知りたい点はありますか?
研修の全体の特徴について、リスト形式で回答してくれましたが、実際読み込ませた内容に沿って回答するというよりは、抽象度が高い。
テキスト(.txt)でできたナレッジで回答
トークン数(一番でかい!!)
回答
はい、喜んでChatGPT研修の特徴についてご説明させていただきます。
ChatGPT研修には以下のような特徴がございます:
1. 基礎編と応用編の2段階構成
* 基礎編では業務での基本的な活用方法を学びます
* 応用編ではより高度な活用テクニックを習得できます
2. e-ラーニング形式
* 自分のペースで学習を進められます
* 場所や時間を選ばず受講可能です
3. 実践的な内容
* セキュリティリスクやプロンプトエンジニアリングなど、実務で役立つスキルを習得できます
* GPTsやAPI連携など、最新のテクノロジーにも対応しています
4. 充実した学習時間
* 基礎編、応用編ともに15時間の標準学習時間を確保
* じっくりと理解を深められる構成になっています
5. 柔軟な契約期間
* 2ヶ月間の受講期間で、無理なく学習を進められます
これらの特徴により、ChatGPTを業務に効果的に活用するための知識とスキルを効率的に身につけることができます。ご不明な点がございましたら、お気軽にお尋ねください。
研修の全体の特徴について、リスト形式で回答してくれました。基礎編や応用編といった種類があることや、契約期間、時間など、わかりやすく答えてくれています。
考察
回答精度で言うと、
テキストベース ≒ パワポベース > PDFベース
ですかね。もちろんチャンク設定や、ベクトル設定を変えることで精度に違いは出るかと思います。
ちなみにこれは余談ですが、PDFのような非構造化データを、ある程度LLMで扱いやすい形に変換してくれるライブラリにUnstructured.ioというものがあるのですが、これを活用するとRAGがうまく使えるとこと。
調べてみると、すでにDifyのv0.3.34アップデートで、なんとUnstructured.ioがサポートされているとのこと、、!便利!! なので、非構造化のデータであっても、精度に変わりはないはず、、ですが、今回の検証で抽象度が高い回答をしてしまったかのは謎ですね。。
非構造化は、複雑なデータをシームレスに抽出して変換し、ベクター データベースや LLM フレームワークと互換性を持たせます。プロセスが簡素化され、データの取り扱いとクリーンアップが容易になります。
まとめ
今回はDifyのナレッジ機能のファイル形式ごとの精度について比較しました!
pptx,pdf,txtデータの3つの比較でしたが、他の形式(csv, マークダウン形式でも)でもどうなるか、RAGの各設定を変えたらどうなるのか、今後も引き続き研究していきます!!
Discussion