LLM+RAGでできること、RAGを導入するには?|自社データ活用による大規模言語モデルの拡張(RAG) | データサイエンスの専門集団「TDSE」

TDSE株式会社

LLM+RAGでできること、RAGを導入するには?|自社データ活用による大規模言語モデルの拡張(RAG)

LLMで自社固有の回答を得るには

LLMにRAG(Retrieval-Augmented Generation:検索拡張生成)を用いることで自社固有の回答の生成が可能になります。

RAG導入により自社データに基づく回答を生成するイメージ図

LLMの場合

LLMでは一般に公開されている既存の情報しか提供されません。

LLMのみの場合:公開情報からしか回答できない例

LLM+RAGの場合

RAGを用いたLLMでは社内情報や次のタスクについても提供されます。

LLM+RAGの場合:社内情報に基づいて回答できる例

そもそもLLM(大規模言語モデル)とはなにか

LLMとは、既存のデータを学習させた自然言語処理モデルです。

LLMにできること

テキストの抽出
ユーザの指定した重要な単語などに基づきながら、関連した
テキストを抽出することが可能です。

他言語への翻訳
テキストの他言語への翻訳や、他言語にしかない情報も翻訳
して日本語として提供することが可能です。


指定した粒度や体裁でのドキュメントの要約
「マークダウン形式でまとめて」、「100字でまとめて」
といった、粒度や形式を指定することが可能です。

LLMにできないこと

ハルシネーションによる誤答
LLMは誤った情報をさも事実かのように回答してしまうこと (ハルシネーション;幻覚) があります。

トレーニングカットオフ*による情報不足
トレーニングに用いられた時点以降に生じた情報について、LLMは回答することができません。
* GPT-4 Turboの場合、2023年4月までの情報に対応 (2024年1月時点)

独自情報なし
LLMのトレーニングには、一般公開されている情報しか利用されていません。LLMの学習データには自社情報がありません

LLMとRAG(検索拡張生成)の違い

RAGではLLMの不足知識を補うために外部のデータベースを参照します。

LLM単体の構成

LLM単体のシステム構成図

参照可能な外部DBがなく、トレーニング済みの知識に回答は留まります。

LLM+RAGシステムの構成

LLMとRAG(検索拡張生成)を組み合わせたシステム構成図

事前に資料をベクトル化してデータベースに保存します。ユーザからの命令文 (プロンプト) を実行する際には、その外部DBを参照して独自の回答を生成します。

RAGとファインチューニングの違い

RAGは外部文書を検索しながら回答を生成する技術で、社内情報や最新情報の活用に適しています。一方、ファインチューニングはLLMに追加学習を行い、専門知識や独自の回答スタイルを習得させる手法です。

比較項目RAG(検索拡張生成)ファインチューニング
仕組み外部データを検索して回答時に参照LLMに追加学習を行う
知識の追加方法文書を検索対象として登録モデル自体に知識や回答パターンを学習させる
最新情報への対応容易(文書更新のみ)再学習が必要
導入コスト比較的低い比較的高い
得意な用途社内FAQ、マニュアル検索、規程検索、ナレッジ活用特定業界の専門用語理解、独自の回答スタイル・判断基準の学習
メンテナンス性高い。文書を追加・更新するだけで知識を反映できる低い。知識更新や制度改定のたびに学習データの更新や再学習が必要
向いている業界・業務幅広い業界の社内検索・問い合わせ対応医療・法律・金融・製造など、高度な専門性や定型判断が求められる業務
企業利用での採用◎ 現在の企業向け生成AIの主流△ 特定用途で採用。RAGと組み合わせるケースが多い

RAGのメリット・デメリット

RAGは社内文書や最新情報を検索して回答する手法、ファインチューニングは業務データを追加学習してモデル自体を最適化する手法です。活用したい業務や求める精度、運用コストに応じて最適な手法を選択することが重要であり、企業では両者を組み合わせて利用するケースもあります。

項目RAG(検索拡張生成)ファインチューニング
メリット
  • 社内文書や最新情報を参照できる
  • 文書更新だけで知識を反映できる
  • 専門情報や企業固有情報への回答精度を向上できる
  • モデルの再学習が不要
  • 専門用語や業界特有の表現を理解できる
  • 独自の回答スタイルや判断基準を学習できる
  • 特定業務に最適化された応答が可能
デメリット
  • 検索対象データの整備が必要
  • チャンキングや検索設計によって回答精度が左右される
  • 不適切な文書やノイズが混在すると性能が低下する
  • 学習データの準備に工数がかかる
  • 知識更新のたびに再学習が必要
  • 構築・運用コストが高くなりやすい

RAGで何ができるようになるのか

RAGを用いることで社内情報を参照し、自社固有の回答が生成可能です。

RAGでできるようになること

ハルシネーションの低減
独自情報を追加することでデータベースの精度が上がり、
ハルシネーションを低減することができます。

独自資料の参照
議事録や取引履歴などの独自資料を参照することが
できるため、自社固有の回答が可能になります。

社内データ利用
データベースの情報も取り込むことで、自社データを用いた
簡単な集計なども可能になります。

RAGの活用案

社内専用QAシステム
社内規定ドキュメントを読み込んでおけば、「有給申請の方法を教えて」などの質問にも回答可能です。

最適な社員エキスパートの選定
社員プロフィールを読み込んでおけば、タスクに行き詰まった際、最適な相談相手を探してもらえます。

Web会議の録画データの議事録化
Web会議を録画しておけば、自動で議事録の形に整形し、次の打合せ時に瞬時にアクセス可能です。

RAGの基本的な仕組み

RAGでは資料をベクトル化したデータベースとLLMを連携させます

RAGの仕組み:社内ドキュメントをベクトルDB化しLLMが参照して回答するフロー図

 

ドキュメント 抽出 チャンキング インデックス化
LLMに回答させたい内容を含むドキュメントを準備します。無益なデータが混在していると性能の低下を招くため、取捨選択します。 データクレンジングを行い、PDFやHTML、Markdownなど形式の異なるファイルをプレーンテキストに変換します。 情報を小さな単位 (チャンク) に分割します。チャンクは検索に利用されますが、適切なサイズの設定で回答精度が大きく向上します。 チャンクと埋め込むデータ (ベクトル) をキーと値のペアの形で保存できるようにし、将来的に素早く頻繁に検索できるようにします。
(単語)埋め込み ベクトルDB LLM(大規模言語モデル)
単語を多次元ベクトル化して割り当てます。これによって、文脈上意味が類似する単語がベクトル空間内で近いと判断できます。 埋め込みしたベクトルを、DBに格納します。ここの出力は、ユーザの質問に含まれる状況や文脈であり、これがLLMの入力になります。 ここまでで作成した外部のベクトルDBと連携することで、RAGを実装したLLMとなります。実装後、性能をテスト/調整を行います。

参考「Best Practices in Retrieval Augmented Generation」https://gradientflow.com/best-practices-in-retrieval-augmented-generation/

RAGを導入するにはどうすればよいか

「言語モデル」「ベクトルDB」「サーバ」の3つを用意する必要があります

RAGの導入には様々なパターンがあり、実現内容や工数によって変わります。ここでは3つの導入例を紹介します。

RAG導入3パターン(OpenAI・Azure OpenAI・LangChain)の比較図

TDSEでは、お客様のニーズに合わせた最適なソリューションを提供可能です。

導入例① OpenAIが提供するRAG ※2024年1月時点

Embeddings APIを利用することでドキュメントをベクトル化できます

OpenAI API導入のポイント

①埋め込み (Embeddings) APIを利用
GPT技術を用いた文章をベクトル化するためのモデルのAPIを利用し、RAGとして利用したいドキュメントを埋め込みます。

② 最新モデルの提供
OpenAI社が提供するモデルのうち、最新のモデル*が利用可能です。このため、常に最新の性能が得られます。* GPT-4、GPT-4 Turbo、GPT-3.5が利用可能 (24年1月現在)

③ ベクトルデータベースは別途用意が必要
APIはあくまで文書をベクトル化するためのAPIのため、別途、ベクトル化したデータを保存するDB*と組合わせる必要があります。* PineconeやChroma、Weaviateなど

 

RAG導入例①:OpenAI Embeddings APIを利用した構成図

参考「Embeddings – OpenAI API」https://platform.openai.com/docs/guides/embeddings

導入例② Azure OpenAIが提供するRAG ※2024年1月時点

Azureを利用することで様々なユースケースに適したRAGを実装可能に

Azure OpenAI導入のポイント

①クラウド環境で利用可能
Microsoft社の提供するクラウドサービスで、別途ハードウェアやソフトウェアを用意する必要なくすぐに始められます。

② Azure内に言語モデルがあり環境や請求を一元化
UX・アプリサーバ・Azure AI Search (情報取得システム)、Azure OpenAI (生成AI用LLM*) からなり、構成を完結できます。* 主にOpenAI社が提供するGPTシリーズが利用可能ですが、最新バージョンの対応までには時差有

③ 多様なチャネルと連携可能
様々なチャネルに対応しており、RAGを利用した社内QAボットなどを外部プラットフォーム*に連携して実装することが可能です。* Facebook、LINE、Messenger、Outlook、Slack、Teamsなど

 

RAG導入例②:Azure OpenAI Serviceを利用した構成図

参考「Azure OpenAI Service – 高度な言語モデル」https://azure.microsoft.com/ja-jp/products/ai-services/openai-service

導入例③ LangChainライブラリでの実装 ※2024年1月時点

ライブラリ利用でLLM活用サービス開発時に高度な機能を実装できます

LangChainライブラリ導入のポイント

①ライブラリの連携で高度な実装を実現
ライブラリを利用することで、必要なモジュールを組合せ、プログラミング言語*を通じて高度な機能を実装できます。* Python、JavaScript (TypeScript) に対応 (24年1月時点)

② 使用する言語モデルの選択から可能
言語モデルAPIを使用して利用する場合は、提供元のモデルしか使用できませんが、様々な言語モデル*から選択し使用できます。* GPT (Open AI) 以外にも、Palm (Google) やLLaMA (Meta)、AlexaTM (Amazon) など

③ “Retrieval”モジュールでRAGを実現
外部のドキュメントをベクトルデータベースに格納し、必要に応じて抽出や検索を行うモジュールで、RAGを実現します。

弊社へのRAG導入依頼後のフロー

RAG用のドキュメント抽出から実装まで、TDSEにご依頼いただけます。

TDSEへのRAG導入依頼後の支援フロー
活用アセスメント
期間:1か月~
ソリューション
期間:2か月~
運用・活用支援
期間:応相談
「どのような利用を想定しているのか」「ユースケースは適切であるか」「利用可能な情報や環境は何か」などの観点から、導入するRAGの方向性を明確化します。 業務要件の詳細なヒアリングに基づき、ベクトルDBの構築・RAGを実装したLLMの貴社環境への導入を行います。
なお、開発後にシステムの性能評価を行いますが、精度目標は定量的な基準設定が困難なため、事前の擦り合せが必要です。
実装後の運用に関しても、必要に応じたチューニングの改善、データベースへの資料の追加、使用に際するエラーの対応など、支援を可能です。

サービス資料・お問合せ

ダウンロード資料では、RAGの精度評価、精度改善の手法やRAG導入時のサービス比較表を掲載しています。
続きはぜひ資料でご確認ください!

RAG解説資料『自社データ活用による大規模言語モデルの拡張』の表紙

LLM活用支援サービス資料のダウンロードはこちら

LLM活用支援サービス資料の表紙

LLMのビジネス活用に関するご相談も随時受け付けております。是非お気軽にお問い合わせください!

CONTACTお問合せ

お電話でも承ります。お気軽にご連絡ください。
TEL. 03-6383-3261 平日9:00 〜 18:00

お問合せ

上へ戻る