
プログラミング知識不要!Azureを使ったRAG構築入門
Azureでは、OpenAI の「GPT-4o」 を利用できる Azure OpenAI Service をはじめ、Azure AI Search、Azure Storage Account といった、RAG 構築に必要なサービスが揃っています。
本記事では、これらのサービスを活用し、コードを一切書かずに RAG システムを構築する方法をステップバイステップで解説します。
『RAG』とは?

RAG(Retrieval-Augmented Generation)は次世代の「AIチャットボット」
「RAG」の正式名称は、Retrieval-Augmented Generation、日本語にすれば「検索により強化された生成」といったところです。嚙み砕いて説明すると、RAGとは、膨大な情報の中から必要な知識を”見つけ出し”(Retrieval)、それらを紡ぎ合わせて新たな答えを創出する(Generation)、そんな能力を持った、進化したAIチャットボットと捉えると良いでしょう。
身近な例を挙げると、Microsoftが提供する「Copilot for Microsoft 365」は、RAG技術を活用した代表的なサービスです。WordやExcel、Teamsといったアプリケーション上で動作し、ユーザーの指示に応じて、議事録の要約やメールの返信文の作成、プレゼンテーション資料の生成などを行ってくれます。しかも、その回答には、組織内のドキュメントや過去のメール、チャット履歴といった内部情報が反映されるため、単なるテンプレートを超えた、個別最適化された応答を返してくれるのです。
これまでのチャットボットといえば、あらかじめ登録されたシナリオやFAQデータベースに基づいて、限定的な回答を返すものが主流でした。しかしRAGは違います。経験豊富なベテラン社員のように、社内の規約集や製品マニュアル、はたまた業界の最新動向といった、企業が持つあらゆる情報源を縦横無尽に渉猟し、そこから必要な情報を抽出。それらを基に、まるで人間が書いたかのような自然な文章で、的確に回答を返してくれます。
その能力は、金融機関における投資リスク分析や、製造業における製品開発プロセスの効率化など、様々な分野で活用が始まっています。
RAGの仕組み―「LLM」と「ベクトル検索」―
では、RAGはなぜ、高い情報処理能力を有しているのでしょうか。その秘密は、「大規模言語モデル(LLM)」と「ベクトル検索」という、二つの強力な技術を組み合わせた設計にあります。
「LLM」とは、人間が使う自然言語を理解し、操ることに長けたAIモデルのことです。その中でも有名なのが「GPT」シリーズですね。まるで人間のように滑らかで、文脈に即した文章を生成できる、驚異的な能力を備えています。一方、「ベクトル検索」とは、情報を「ベクトル」という数値表現に変換し、その類似性に基づいて検索する技術です。この技術により、従来のキーワード検索では見つけられなかった意味的に関連性の高い情報を、企業内のデータから見つけ出すことが可能になります。
RAGは、GPTのような「LLM」が持つ文章生成能力と、「ベクトル検索」が持つ、意味を解する高度な情報検索能力を組み合わせ、企業内のあらゆる情報に精通した「ベテラン社員」のような振る舞いを実現できます。この「LLM」と「ベクトル検索」を容易に利用できる環境を提供するのが、Microsoftのクラウドサービス「Azure」です。Azureはこれらの最新技術を企業が使いやすい形で提供し、RAG構築のハードルを大幅に下げています。Azure OpenAI Serviceでは、2024年5月14日からGPT-4oが利用可能になりました。
RAG構築に使用するAzureの3つのサービス

今回は企業用のチャットボットを例にRAGの構築手順を解説します。
以下の3つのAzureサービスを使用します。
- Azure OpenAI Service
- Azure AI Search
- Azure Storage Account
ユーザーからの質問に対し、まず Azure AI Search が Azure Storage Account に格納されている企業データの中から関連する情報を検索します。そして、その検索結果を基に、Azure OpenAI Service が回答を生成し、ユーザーに提示する、という流れです。
Azure OpenAI Service は、OpenAI の開発した高性能な AI モデルを利用できるサービスです。具体的には、人間が書いたような自然な文章を生成する能力に長けた「GPT」シリーズなどのモデルが提供されています。RAGにおいては、ユーザーへの最終的な回答を生成する機能を担います。
Azure AI Search は、大量のデータから関連情報を高速に検索するサービスです。ユーザーの質問を解析し、その内容に関連する情報を、企業データの中から効率的に探し出します。RAGにおいて、Azure AI Searchは大規模言語モデルが応答を生成するための参考情報を抽出する、という重要な役割を果たしています。
Azure Storage Account は、様々な形式のデータを安全に保管できるストレージサービスです。RAGが参照する企業データ、例えば、社内ドキュメント、製品情報、FAQなど、あらゆるデータをここに格納します。
これら3つのサービス、すなわち、OpenAIのモデルを提供するAzure OpenAI Service、情報を高速で検索するAzure AI Search、そして、データを安全に保管するAzure Storage Accountを連携することで、ユーザーの質問に対して適した回答を返すチャットボットが構築できます。
Azureで実際にRAGを作ってみよう

前の章では、RAGの構築に必要な3つのAzureサービスについて解説しました。この章では、いよいよ実際にAzureを使ってRAGを構築する手順を、具体的に紹介していきます。今回は、プログラミング不要、ドラッグ&ドロップなどの簡単な操作で、任意のデータを検索して回答するRAGシステムを構築します。
まずは、RAG構築の全体像を、以下の6つのステップで確認しましょう。
- Azureアカウントを作成
- Azure OpenAI Serviceを作成
- モデルをデプロイ
- Azure AI Searchを作成
- Azure Blob Storageを作成
- RAGを動作確認
この手順ではコードを書き込む必要はありません。
①Azureアカウントを作成
まずは、Azureアカウントを作成します。すでにお持ちの方は、この手順はスキップしてください。
- Azure公式サイトのhttps://azure.microsoft.com/ja-jp/free/ にアクセスします。
- 画面の指示に従って、Microsoftアカウントでサインインするか、新しいアカウントを作成します。メールアドレス、生年月日、電話番号、住所などを入力してアカウントを作成します。
- 本人確認のために、クレジットカードまたはデビットカードの情報を入力します。
※従量課金制の価格に移行しない限り、料金を請求されることはありません。本検証では初回クレジットを消費するので費用は発生しません。 - すべて入力し終えると、Azureアカウントの作成が完了します。Azure Portalのホーム画面が開きます。
②Azure OpenAI Serviceを作成
Azureアカウントを作成したら、次にAzure OpenAI Serviceを作成します。
- Azureポータルのホーム画面上部の検索バーに「Azure OpenAI」と入力し、「Azure OpenAI」を選択します。

- 「+作成」ボタンをクリックします。

- リソースグループを作成します。リソースグループ名には管理しやすい名前を付けましょう。
- 「リージョン」を選択します。リージョンによって利用できるモデルが異なりますが、今回は、gpt-4-turboが利用可能な「Japan East」を選択します。
- 「名前」には、リソースを識別しやすい任意の名前を入力します。
- 「価格レベル」は「Standard S0」を選択します。
- ネットワークタブでは、「インターネットを含むすべてのネットワークがこのリソースにアクセスできます。」を選択します。外部からURLへアクセスできるようにしますが、APIキーで保護されるため、不正利用の心配はありません。
- 「タグ」タブは、今回は設定不要です。
- 「確認および作成」をクリックし、設定内容を確認したら、「作成」をクリックします。
デプロイが完了するまで、数分待ちます。デプロイが完了したら、「リソースに移動」をクリックします。
③モデルをデプロイ
次に、Azure OpenAI Serviceで利用するAIモデルをデプロイします。
- Azure OpenAI Serviceリソースの画面で、「Azure AI Foundryに移動する」をクリックします。
- Azure AI Foundryの左メニューにある「モデルカタログ」を開きます。
- 埋め込みモデルとして、「text-embedding-ada-002」を選択し、デプロイをクリックします。

④Azure AI Searchを作成
続いて、Azure AI Searchを作成します。
- Azure AI Foundryの「チャットプレイグラウンド」画面で、「データを追加する」>「+新しいデータソースの追加」をクリックします。

- 「データ ソースの選択または追加」で、「新しい Azure AI Search リソースを作成する」のリンクを新しいタブで開きます。
- Azure AI Searchの作成画面で、以下のように設定します。
- リソースグループ:Azure OpenAI Serviceと同じリソースグループを選択
- サービス名:任意の名前を入力
- 場所:Azure OpenAI Serviceと同じリージョンを選択
- 価格レベル:「Standard」を選択(Azure OpenAIと組み合わせて使用するには「Standard」以上が必要)
- 「確認および作成」をクリックし、設定内容を確認したら、「作成」をクリックします。
⑤Azure Blob Storageを作成
次に、データを格納するためのAzure Blob Storageを作成します。
- Azure AI Foundryの「チャットプレイグラウンド」画面で、「データを追加する」>「+データソースの追加」をクリックします。
- 「データ ソースの選択または追加」で、「新しいBlobストレージリソースを作成する」のリンクを新しいタブで開きます。
- Azure Blob Storageの作成画面で、以下のように設定します。
- リソースグループ:Azure OpenAI Serviceと同じリソースグループを選択
- ストレージアカウント名:任意の名前を入力
- 地域:Azure OpenAI Serviceと同じリージョンを選択
- 冗長性:「ローカル冗長ストレージ (LRS)」を選択(今回はテスト用のため、最も安価な設定)
- 「確認と作成」をクリックし、設定内容を確認したら、「作成」をクリックします。
⑥データをAzure Blob Storageにアップロード
RAGで探索したいファイルをアップロードします。
- 探索したいファイルを、先ほど作成したAzure Blob Storageにアップロードします。Azure AI Foundryの「チャットプレイグラウンド」画面で、「データを追加する」>「+データソースの追加」をクリックし、「データ ソースの選択または追加」で以下のように設定します。
- データソース:「Upload files」を選択
- サブスクリプション:お使いのAzureサブスクリプションを選択
- ストレージリソース:先ほど作成したAzure Blob Storageを選択
- Azure AI Searchリソース:先ほど作成したAzure AI Searchリソースを選択
- インデックス名:任意の名前を入力
- ベクトル検索をこの検索リソースに追加します。→チェックを入れる。
- 埋め込みモデルを選択する:Azure OpenAI – text-embedding-ada-002を選択
- 「ファイルのアップロード」をクリックし、探索対象のファイルを選択します。
- 「保存して閉じる」をクリックします。
- 「インジェストが進行中です」と表示されるので、数分待ちます。
⑦RAGを動作確認
いよいよRAGを動作させてみましょう。
インジェストが完了すると、チャット画面で質問を入力できるようになります。先ほどアップロードしたファイルの内容に関して質問してみましょう。。RAGシステムが、アップロードしたCSVファイルから関連する情報を探し出し、回答を生成してくれます。

色々試して、動作を確認してみましょう。
もし、回答が得られない場合は、「4-5. モデルをデプロイする」から、gpt-4のturbo-2024-04-09バージョンをデプロイしてから、チャットプレイグラウンドのモデルを変更してください。
【重要】検証が終わったらリソースを削除する
作成したRAGの検証を終えたら、無償クレジットを消費されないよう、Azure AI Searchなどのリソースを削除しておきましょう。
- Azureポータルで、画面上部の検索バーから「AI Search」と検索して、出てきた「Azure AI Search」を選択します。
- 作成したAzure AI Searchのリソースを選択します。
- 概要ページの「削除」ボタンをクリックします。
- 確認画面で「削除」をクリックします。
これでAzure AI Searchリソースが削除されます。Azure OpenAI Serviceや、Azure Storage Accountについては消す必要がありませんが、気になる方は同様の手順でそれらのリソースを削除できます。
まとめ
Azure を使ったRAGの構築は、今回紹介した統計データ検索だけでなく、様々な分野で活用できます。例えば、社内FAQシステム、製品マニュアルの検索、顧客サポートの自動化など、アイデア次第で活用の幅は無限に広がります。
RAGは技術的にも更なる発展が期待されており、LangChainなどと組み合わせることで、より高度なシステムを構築することも可能です。まずは今回紹介した手順で、サンプルデータを活用したRAG構築を体験してみましょう。