
RAGとは
RAG(Retrieval-Augmented Generation)は、直訳すると、Retrieval=検索、Augmented=強化された、Generation=世代です。一般的には、検索拡張生成などと言われます。
今のモデル(LLM)に外部知識ソースからの情報検索と組み合わせることで回答精度を向上させる技術です。
ChatGPTやGeminiを皆さんが使用しているときに、質問によっては、不正確な情報に基づいた回答が生成されたり、最新の情報を反映していない回答を生成されたりすることがありせんでしょうか。これは、ChatGPT等が学習しているデータがある時期のもので、しかもインターネット上にあるデータに限定されているからこのようなことが起こってしまいます。
そこで、これを防ぐためにRAGを使用します。
RAGを使用することで、外部知識ソースから関連する情報を検索し、その情報をChatGPT等が回答に組み込むことで、回答の精度と信頼性を向上させます。
近年、RAGを用いて自社データから検索した結果をChatGPT等の回答生成の際に利用したりしています。このように、素のChatGPT等を実務上の仕様に耐え得るようにパワーアップすることで、生成AIを会社の業務に利用しようとしています。
ファインチューニングとは、学習済みのモデル(LLM)に対して、特定のタスクやデータセットに特化した新しいデータで再学習させることで、モデルを作り上げること。
簡単に言うと、RAGは、AIが知らないことがあると外から調べてくる。一方、ファインチューニングは、AIに新しい知識を教えて、特定のテーマに詳しくさせる感じ。
Azure AI Searchとは
生成AIを会社の業務に利用しようしている企業の中には、自社データや機密情報、個人情報が漏えいしてしまうセキュリティ上の懸念から、MicrosoftのAzureでChatGPT(Azure OpenAI)を用いるところも多くあります。
そのAzureで提供されているサービスがAzure AI Searchです。なお、数か月まではAzure Cognitive Searchと呼ばれていました。
Azure AI Searchは、従来の検索機能に加えて、RAG向けの主要な情報検索としても用いることができます。以下が、主要な機能です。
- 全文検索: テキストデータの中から、指定したキーワードを含むドキュメントを検索することができます。
- ファセット検索: 特定の属性値(著者名、カテゴリなど)に基づいて、検索結果を絞り込むことができます。
- 地理空間検索: 地図上の位置情報に基づいて、検索結果を絞り込むことができます。
- 自然言語検索: 複雑なクエリや、あいまいなクエリでも、意図に合致した検索結果を返すことができます。
- AI エンリッチメント: 画像ファイルからテキストや情報を抽出し、検索対象とすることや、機械翻訳や感情分析などのAI処理を検索結果に付加することができます。
Azure AI Searchを使用したRAG
Azure AI Searchを使用したRAGへのアプローチとして、例えば、以下のような使い方をMicrosoftのHPでは示されています。
①ユーザーがAPP UXからプロンプトを入力
②LangChain等のAPP ServerがAzure AI Searchに送信して、Data Sourcesから関連情報を検索して取得
③上位の検索結果をAzure OpenAI(ChatGPT)に送信
④Azure OpenAI(ChatGPT)の自然言語理解と推論機能を使用して、プロンプトに対する応答を生成
Azure OpenAI On Your Data
Azure OpenAI On Your Dataは、Azure Blob ストレージ コンテナーに自社のデータなど独自のデータをアップロードし、Azure AI Searchを用いてインデックス作成し、これをもとにAzure OpenAIに返答させる機能です(Azureのリソースのみで簡単に構築できるRAGともいえます)。

⓪Azure AI Searchがユーザーがアップロードしたデータ格納されたBlobStorageからインデックスを作成
①ユーザーがプロンプトを入力
②Azure AI SearchがBlobStorage内のデータをインデックスから必要な情報を検索した後、
③Azure OpenAI(ChatGPT)がプロンプトに対する応答を生成
まとめ
RAGとAzure AI SearchとAzure OpenAI On Your Dataの基本について今回まとめてみました。
Azure OpenAI On Your Dataは、Azureのリソースのみで簡単に構築できるRAGなので、自分で試しに構築する分には簡単にできます。
ただ、LangChain等+Azure AI SearchのRAGとAzure OpenAI On Your Dataのどちらの回答精度が高いかは正直わかりません。
Azure AI Searchの技術の進歩にその結果が左右されるのではないかと思っています。
最後に自分でAzure OpenAIを構築したい人向けの本を2冊紹介します。
「Azure OpenAI ServiceではじめるChatGPT/LLMシステム構築入門」
>>【書評】Azure OpenAI ServiceではじめるChatGPT/LLMシステム構築入門
「Azure OpenAI Service実践ガイド ~ LLMを組み込んだシステム構築」

