今日を知り、明日を変えるシステム運用メディア

プログラミング知識不要! Azureを使ったRAG 構築入門

プログラミング知識不要!Azureを使ったRAG構築入門

Azureでは、OpenAI の「GPT-4o」 を利用できる Azure OpenAI Service をはじめ、Azure AI Search、Azure Storage Account といった、RAG 構築に必要なサービスが揃っています。

本記事では、これらのサービスを活用し、コードを一切書かずに RAG システムを構築する方法をステップバイステップで解説します。

『RAG』とは?

【Azureで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つのサービス

【AzureでRAG構築②】RAG構築に使用する3つのサービス

今回は企業用のチャットボットを例にRAGの構築手順を解説します。
以下の3つのAzureサービスを使用します。

  • Azure OpenAI Service
  • Azure AI Search
  • Azure Storage Account

ユーザーからの質問に対し、まず Azure AI SearchAzure 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を作ってみよう

【AzureでRAG構築③】実際にRAGを作ってみよう

前の章では、RAGの構築に必要な3つのAzureサービスについて解説しました。この章では、いよいよ実際にAzureを使ってRAGを構築する手順を、具体的に紹介していきます。今回は、プログラミング不要、ドラッグ&ドロップなどの簡単な操作で、任意のデータを検索して回答するRAGシステムを構築します。

まずは、RAG構築の全体像を、以下の6つのステップで確認しましょう。

  1. Azureアカウントを作成
  2. Azure OpenAI Serviceを作成
  3. モデルをデプロイ
  4. Azure AI Searchを作成
  5. Azure Blob Storageを作成
  6. RAGを動作確認

この手順ではコードを書き込む必要はありません。

①Azureアカウントを作成

まずは、Azureアカウントを作成します。すでにお持ちの方は、この手順はスキップしてください。

  1. Azure公式サイトのhttps://azure.microsoft.com/ja-jp/free/ にアクセスします。
  2. 画面の指示に従って、Microsoftアカウントでサインインするか、新しいアカウントを作成します。メールアドレス、生年月日、電話番号、住所などを入力してアカウントを作成します。
  3. 本人確認のために、クレジットカードまたはデビットカードの情報を入力します。
    ※従量課金制の価格に移行しない限り、料金を請求されることはありません。本検証では初回クレジットを消費するので費用は発生しません。
  4. すべて入力し終えると、Azureアカウントの作成が完了します。Azure Portalのホーム画面が開きます。

②Azure OpenAI Serviceを作成

Azureアカウントを作成したら、次にAzure OpenAI Serviceを作成します。

  1. Azureポータルのホーム画面上部の検索バーに「Azure OpenAI」と入力し、「Azure OpenAI」を選択します。
Azure OpenAI Serviceを作成
  1. 「+作成」ボタンをクリックします。
「+作成」ボタンをクリック。
  1. リソースグループを作成します。リソースグループ名には管理しやすい名前を付けましょう。
  2. 「リージョン」を選択します。リージョンによって利用できるモデルが異なりますが、今回は、gpt-4-turboが利用可能な「Japan East」を選択します。
  3. 「名前」には、リソースを識別しやすい任意の名前を入力します。
  4. 「価格レベル」は「Standard S0」を選択します。
  5. ネットワークタブでは、「インターネットを含むすべてのネットワークがこのリソースにアクセスできます。」を選択します。外部からURLへアクセスできるようにしますが、APIキーで保護されるため、不正利用の心配はありません。
  6. 「タグ」タブは、今回は設定不要です。
  7. 「確認および作成」をクリックし、設定内容を確認したら、「作成」をクリックします。

デプロイが完了するまで、数分待ちます。デプロイが完了したら、「リソースに移動」をクリックします。

③モデルをデプロイ

次に、Azure OpenAI Serviceで利用するAIモデルをデプロイします。

  1. Azure OpenAI Serviceリソースの画面で、「Azure AI Foundryに移動する」をクリックします。
  2. Azure AI Foundryの左メニューにある「モデルカタログ」を開きます。
  3. 埋め込みモデルとして、「text-embedding-ada-002」を選択し、デプロイをクリックします。
モデルをデプロイ

④Azure AI Searchを作成

続いて、Azure AI Searchを作成します。

  1. Azure AI Foundryの「チャットプレイグラウンド」画面で、「データを追加する」>「+新しいデータソースの追加」をクリックします。
Azure AI Searchを作成
  1. 「データ ソースの選択または追加」で、「新しい Azure AI Search リソースを作成する」のリンクを新しいタブで開きます。
  2. Azure AI Searchの作成画面で、以下のように設定します。
    • リソースグループ:Azure OpenAI Serviceと同じリソースグループを選択
    • サービス名:任意の名前を入力
    • 場所:Azure OpenAI Serviceと同じリージョンを選択
    • 価格レベル:「Standard」を選択(Azure OpenAIと組み合わせて使用するには「Standard」以上が必要)
  3. 「確認および作成」をクリックし、設定内容を確認したら、「作成」をクリックします。

⑤Azure Blob Storageを作成

次に、データを格納するためのAzure Blob Storageを作成します。

  1. Azure AI Foundryの「チャットプレイグラウンド」画面で、「データを追加する」>「+データソースの追加」をクリックします。
  2. 「データ ソースの選択または追加」で、「新しいBlobストレージリソースを作成する」のリンクを新しいタブで開きます。
  3. Azure Blob Storageの作成画面で、以下のように設定します。
    • リソースグループ:Azure OpenAI Serviceと同じリソースグループを選択
    • ストレージアカウント名:任意の名前を入力
    • 地域:Azure OpenAI Serviceと同じリージョンを選択
    • 冗長性:「ローカル冗長ストレージ (LRS)」を選択(今回はテスト用のため、最も安価な設定)
  4. 「確認と作成」をクリックし、設定内容を確認したら、「作成」をクリックします。

⑥データをAzure Blob Storageにアップロード

RAGで探索したいファイルをアップロードします。

  1. 探索したいファイルを、先ほど作成したAzure Blob Storageにアップロードします。Azure AI Foundryの「チャットプレイグラウンド」画面で、「データを追加する」>「+データソースの追加」をクリックし、「データ ソースの選択または追加」で以下のように設定します。
  • データソース:「Upload files」を選択
  • サブスクリプション:お使いのAzureサブスクリプションを選択
  • ストレージリソース:先ほど作成したAzure Blob Storageを選択
  • Azure AI Searchリソース:先ほど作成したAzure AI Searchリソースを選択
  • インデックス名:任意の名前を入力
  • ベクトル検索をこの検索リソースに追加します。→チェックを入れる。
  • 埋め込みモデルを選択する:Azure OpenAI – text-embedding-ada-002を選択
  1. 「ファイルのアップロード」をクリックし、探索対象のファイルを選択します。
  2. 「保存して閉じる」をクリックします。
  3. 「インジェストが進行中です」と表示されるので、数分待ちます。

⑦RAGを動作確認

いよいよRAGを動作させてみましょう。

インジェストが完了すると、チャット画面で質問を入力できるようになります。先ほどアップロードしたファイルの内容に関して質問してみましょう。。RAGシステムが、アップロードしたCSVファイルから関連する情報を探し出し、回答を生成してくれます。

RAGを動作確認

色々試して、動作を確認してみましょう。

もし、回答が得られない場合は、「4-5. モデルをデプロイする」から、gpt-4のturbo-2024-04-09バージョンをデプロイしてから、チャットプレイグラウンドのモデルを変更してください。

【重要】検証が終わったらリソースを削除する

作成したRAGの検証を終えたら、無償クレジットを消費されないよう、Azure AI Searchなどのリソースを削除しておきましょう。

  1. Azureポータルで、画面上部の検索バーから「AI Search」と検索して、出てきた「Azure AI Search」を選択します。
  2. 作成したAzure AI Searchのリソースを選択します。
  3. 概要ページの「削除」ボタンをクリックします。
  4. 確認画面で「削除」をクリックします。

これでAzure AI Searchリソースが削除されます。Azure OpenAI Serviceや、Azure Storage Accountについては消す必要がありませんが、気になる方は同様の手順でそれらのリソースを削除できます。

まとめ

Azure を使ったRAGの構築は、今回紹介した統計データ検索だけでなく、様々な分野で活用できます。例えば、社内FAQシステム、製品マニュアルの検索、顧客サポートの自動化など、アイデア次第で活用の幅は無限に広がります。

RAGは技術的にも更なる発展が期待されており、LangChainなどと組み合わせることで、より高度なシステムを構築することも可能です。まずは今回紹介した手順で、サンプルデータを活用したRAG構築を体験してみましょう。

AI、クラウドコンピューティング、サイバーセキュリティが得意ジャンル。趣味は読書。ミステリー小説と少年漫画が好きです。

人気の記事

最新情報をお届けします!

最新のITトレンドやセキュリティ対策の情報を、メルマガでいち早く受け取りませんか?ぜひご登録ください

メルマガ登録