RAG（検索拡張生成）とは | 生成AIとの関係性や仕組み、活用事例を紹介

こんにちは。スキルアップAI編集部です。
近年、ビジネスや研究の分野で生成AIの活用が進んでいます。その生成AIにおいて欠かせない技術の一つが、大規模言語モデル（LLM）と情報検索を組み合わせた、RAG（検索拡張生成）です。

この記事では、RAGとは何かを説明した上で、RAGの仕組みや導入するメリット、活用事例などを紹介していきます。RAGについて詳しく知りたい方は、ぜひ最後までご覧ください。

<目次>
1. RAG（検索拡張生成）とは？
1. RAGの仕組み
1. 企業がRAGを導入するメリット
1. RAGを利用する際の注意点
1. RAGの性能を改善する方法
1. RAGの活用事例
1. まとめ

## RAG（検索拡張生成）とは？
RAGとは、Retrieval-Augmented Generation（検索拡張生成）の略称であり、**独自のドキュメントを踏まえた対話を実現する技術**です。具体的には、企業固有の情報や専門性の高い情報などをデータベースに格納し、それをもとに回答します。これにより、高精度で具体的な回答が得られます。

また、検索コンポーネントを用いれば、インターネット上の情報を収集することも可能です。これにより、LLMが学習していない最新の情報も取り入れることができます。

RAGは生成AIの精度向上に欠かせない技術であり、**RAGの導入は、生成AIの利便性を格段に向上させます**。また、RAGはローコードでも構築でき、エンジニアのみならずビジネスパーソンにとっても推奨のスキルとなりつつあります。

https://www.skillupai.com/blog/ai-knowledge/about-generative-ai/

## RAGの仕組み
RAGの仕組みは、以下の通りです。

1. ユーザがAIチャットに質問を入力する
1. AIチャットが外部情報を検索し、適したデータを収集する
1. AIチャットが検索結果を取得する
1. AIチャットが質問と検索結果を使い、LLMにプロンプトを入力する
1. LLMが回答を生成し、AIチャットに返答する
1. AIチャットがLLMから取得した回答をユーザに出力する

この仕組みは、「検索」と「生成」の2つのフェーズに分かれています。

1〜3は「検索」フェーズであり、データベースや特定のドキュメントを検索してデータを収集します。4〜6は「生成」フェーズであり、検索した情報をもとにLLMが回答を生成します。

なお、外部情報は事前にベクトル化しておくことが重要です。LLMはベクトルを利用することで、外部知識を取り入れやすくなります。

## 企業がRAGを導入するメリット
RAGを導入するメリットとして、以下の3つが挙げられます。

- より正確な回答を得られる
- 独自のデータを参照できる
- ファインチューニングを行う必要がない

それぞれのメリットについて具体的に説明していきます。

### より正確な回答を得られる
RAGを導入する大きなメリットは、より正確な回答を得られることです。

RAGの導入によって、外部情報の検索結果から回答を生成したり、外部データソースから結果を引用できます。結果を提示する際には、出典・引用元を含めることも可能です。
また、事前に学習していない情報を参照できるため、より包括的かつ専門的な情報にもとづいた回答を得ることができます。例えば、データベースに格納された最新の論文や自社の製品情報などを参照して、回答を出力できます。

また、LLMのみで運用している場合、推測によって事実と異なる回答が生成されることがあります。これを「ハルシネーション」といいますが、この現象も起きにくくなります。

### 独自のデータを参照できる
企業固有のデータをセットすれば、**自社独自のデータを参照でき、より実践的な生成AIを作成可能**です。

例えば、社内の就業規則を設定すれば、一般的な企業のルールではなく、自社独自のルールを検索して回答します。商品やサービスのガイドラインを設定すれば、自社独自のAIチャットボットを構築できます。

このように、企業のニーズに応じて生成AIモデルを利用できることは大きなメリットであり、業務の効率化や生産性の向上が期待されます。

また、公開環境の生成AIモデルに機密情報を学習させると情報漏洩のリスクがありますが、RAGはデータベースから情報を収集するだけなので、外部に情報が流出するリスクを最小限に抑えることが可能です。

### ファインチューニングを行う必要がない
RAGを導入することで、ファインチューニングを行う必要がなくなります。

ファインチューニングとは、事前に訓練されたモデルに新しいデータを追加して再学習させることです。ファインチューニングには手間とコストがかかりますが、RAGを導入すれば再学習は必ずしも行う必要がありません。

例えば、新製品の情報を反映させたい場合、AIモデルを再学習する代わりにRAGを使用すれば、最新の製品情報をインターネットから検索して回答に反映させることができます。

このように、RAGによって**ファインチューニングにかかる時間とコストを削減し、効率的に最新の情報を反映することができる**のです。

## RAGを利用する際の注意点
RAGを利用する際の注意点は、以下の2点です。

- 誤った回答が生成される可能性がある
- 実装が難しい

これらの注意点を把握した上で、RAGの導入を検討しましょう。

### 誤った回答が生成される可能性がある
RAGは外部情報を検索して回答を生成するため、情報源が不正確な場合や古い情報を使用するなど、そもそもの検索情報に不備がある場合、誤った回答が生成されることがあります。

このような問題を防ぐためには、**生成された回答のファクトチェックを行うことが不可欠**です。

### 実装が難しい
RAGは、生成AIと検索情報を組み合わせる高度な技術であり、実装には高度な技術力と専門知識が求められます。具体的には、適切なデータベースの選定や効果的な検索アルゴリズムの実装、生成AIとのシームレスな連携など、多岐にわたる知識が必要です。

そのため、RAGを実装する場合には専門スキルをもつ人材を確保し、慎重に進めることが重要です。

## RAGの性能を改善する方法
RAGの性能を向上させるためには、まず問題の要因を突き止める必要があります。検索フェーズと生成フェーズに分けて紹介するので、参考にしてください。

### 検索フェーズに問題がある場合
検索フェーズで想定される原因と改善策は、以下の通りです。

|原因	|改善策|
|--- |---|
|外部情報が少ない|	外部情報を追加する|
|外部情報の品質が低い|	ほかの外部情報を用いる|
|外部情報の加工方法に問題がある|	加工方法を改善する|
|利用する検索手法が不適切である|	高度な検索手法を利用する|
|検索結果をプロンプトに統合する際の加工方法が不適切である	|プロンプトに統合する際の加工方法を工夫する|

### 生成フェーズに問題がある場合
検索フェーズで想定される原因と改善策は、以下の通りです。

|原因	|改善策|
|--- |---|
|プロンプトの書き方が不適切|	プロンプトの書き方を改善する|
|利用するLLMの性能が低い|	性能のよいLLMを利用する|

スキルアップAIの「[Azure OpenAI Serviceを用いたRAG構築講座](https://www.skillupai.com/build-rag-with-azure-openai/)」では、RAGの性能改善の主なテクニックについての詳細も学べるので、ぜひチェックしてください。

![about-rag01.jpg.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/70e4966a-9d56-1431-1fb9-c1d6bff4a20c.png)

## RAGの活用事例
RAGを活用したユースケースを一覧で紹介します。

|ユースケース|	概要|
|--- |--- |
|ECサイトに配置される問い合わせ対応AI チャットボット	|ユーザから質問が入力されると、**商品データベースから関連情報を検索**し、その検索結果を用いて、回答を生成する。|
|カスタマーサポート支援	|カスタマーサポート担当者から質問が入力されると、**FAQデータベースから関連情報を検索**し、その検索結果を用いて、回答を生成する。|
|社内情報照会の支援	|社員から社内規定についての質問があると、**社内規定データベースから関連情報を検索**し、その検索結果を用いて、回答を生成する。社員から自社製品情報についての質問があると、**商品データベースから関連情報を検索**し、その検索結果を用いて、回答を生成する。|
|特許調査支援	|製品開発者から技術情報が入力されると、**特許データベースから関連特許を検索**し、その検索結果を用いて、既存特許の概要文を生成する。|
|製品マニュアル制作支援	|製品開発者から新製品の仕様が入力されると、**技術ドキュメントデータベースから関連情報を検索**し、その検索結果を用いて、製品マニュアルのドラフトを生成する。|
|法務支援|	弁護士から法的な質問が入力されると、**法令データベースから関連する法律や判例を検索**し、その検索結果を用いて、回答を生成する。|
|旅行のプランニング支援	|ユーザから旅行予定先の地名が入力されると、**観光情報データベースから関連情報を検索**し、その検索結果を用いて、旅行プランを生成する。|
|医療診断支援	|医師から患者の症状が入力されると、**医療データベースから関連情報を検索**し、その検索結果を用いて、可能性のある病名や治療法を提案する。|
|学術研究支援	|研究者から特定の研究テーマが入力されると、**論文データベースから関連論文を検索**し、その検索結果を用いて、既存論文の概要文を生成する。|
|コーディング支援	|開発者から開発したいプログラムの概要が入力されると、**コードリポジトリから関連コードを検索**し、その検索結果を用いて、サンプルコードを生成する。|

## まとめ
この記事では、RAGの概要や仕組み、導入するメリットや活用事例を紹介しました。RAGを導入することで、生成AIの実用性は大幅に向上します。これにより、ビジネスや研究の分野での活用も今後さらに増えていく見込みです。

RAGについてもっと詳しく知りたい方やビジネスで活用していきたい方には、**スキルアップAIが提供している講座や勉強会の受講がおすすめ**です。

「[Azure OpenAI Serviceを用いたRAG構築講座](https://www.skillupai.com/build-rag-with-azure-openai/)」では、Azure OpenAI Serviceを活用して、RAGを構築しカスタマイズする方法を学びます。RAG構築・活用の基本から応用までを学びつつ、実践的なハンズオンを通じて、生成AIがより正確な回答を返す仕組みを体験できます。ローコードでRAGを構築したい方やRAGの精度を向上させたい方に最適な講座です。

また、生成AIについて気軽に学んでみたい方には、[スキルアップAIキャンプ](https://www.skillupai.com/skillupai-camp/)がおすすめです。スキルアップAIキャンプとは、AI・データサイエンス領域について学べるオンラインの勉強会であり、無料で参加いただけます。生成AIについても多数のテーマを取り上げていますので、ぜひ興味のある回を見つけてお気軽にご参加ください。

☆☆☆
スキルアップAIのメールマガジンでは会社のお知らせや講座に関するお得な情報を配信しています。配信を希望される方は[こちら](https://share.hsforms.com/1_XlReV-4Te-zcxCl9lhffA2mtef)

また、SNSでも様々なコンテンツをお届けしています。興味を持った方は是非チェックしてください♪
Xは[こちら](https://twitter.com/SkillupAi)
Facebookは[こちら](https://www.facebook.com/skillupai)
スキルアップAI公式YouTube AIビジネスチャンネルは[こちら](https://www.youtube.com/AIBusinessChannel)