Azure OpenAIにデータを追加して利用する方法(AI Search作成からAI Foundryプロジェクトでの利用)

2023-09-09AI Search,AI Services,Azure,OpenAI

Azure OpenAIに独自データを追加して、チャットプレイグラウンドで利用するための手順です。
Azure AI Searchのリソース作成からデータ追加、チャットプレイグラウンドでの確認までの一連の手順を紹介します。

今回は、BLOB コンテナーにアップロードしたドキュメントを独自データとして追加しています。
Azure AI Foundryのプロジェクトで、独自データを追加する場合の手順についても確認しています。

※手順の確認には、Azure OpenAIのモデルであるGPT-4oを利用しています。
※Azure AI Foundry ポータルを使用した設定手順について紹介しています。
※追加するデータには、Zabbix7.0のドキュメントを利用しています。

スポンサーリンク

Azure OpenAIやAI Searchのリソース作成手順

Azure OpenAI On Your Dataとは?

モデルのトレーニングや微調整を行わずに、ドキュメントを使用してAzure OpenAIに質問に対する回答を生成させることができるものです。

Azure OpenAI On Your Data

対象となるドキュメントの形式は、txtファイルだけでなく、WordやPDFなども含まれます。

データ形式とファイルの種類

Azure OpenAI On Your Dataの価格

Azure OpenAI On Your Dataの利用自体には課金が発生しません。
Azure AI Searchなどのリソースに対する課金が発生します。

Azure AI Search の価格

※Azure OpenAIのリソースで利用する場合は、Basic以上のSKUが必要です。
※プロジェクトでデータを追加する場合、Freeの価格レベルのAzure AI Searchも利用できるようです。
※プロジェクトでデータを追加する場合、インデックス作成時に仮想マシンのリソースを利用します。ここにも課金が発生する事があるので注意が必要です。

Azure AI Searchの設定値

今回利用したAzure AI Searchの設定値です。
2つの価格レベルのリソースを作成しています。

価格レベルがFreeの場合の設定値です。
Azure AI Foundryのプロジェクトで独自データを追加する場合は、こちらのリソースを利用します。

区分 項目 設定値
基本 サービス名 srch-01
場所 Japan East
価格レベル Free

価格レベルがBasicの場合の設定値です。
Azure OpenAIのリソースに独自データを追加する場合は、こちらのリソースを利用します。

区分 項目 設定値
基本 サービス名 srch-02
場所 Japan East
価格レベル Basic
スケール レプリカ 1
パーティション 1
ネットワーク エンドポイントの接続 公開

※手順確認用の設定値です。環境や利用用途に応じて適切に設定してください。

Azure AI Searchのリソースを作成

公式サイトの情報を参考にして、Azure AI Searchのリソースを作成します。

Azure portal で Azure AI 検索サービスを作成する

Azure AI Searchのリソースを作成
Azure AI servicesでAI Searchを選択します。
作成を選択します。
Azure AI Searchのリソースを作成(Azure OpenAIに独自データを追加する手順)

検索サービスの作成画面が表示されます。
サービス名、価格レベル、場所を選択します。

 

Azure AI Searchの基本設定(Azure OpenAIに独自データを追加する手順)
Azure AI Searchの価格レベル選択(Azure OpenAIに独自データを追加する手順)

スケールのタブです。
レプリカ、パーティションを設定します。

※価格レベルがBasic以上の場合に、選択できます。

 

【価格レベルがBasicの場合】Azure AI Searchのスケール設定(Basicの場合)(Azure OpenAIに独自データを追加する手順)
【価格レベルがFreeの場合】Azure AI Searchのスケール設定(Freeの場合)(Azure OpenAIに独自データを追加する手順)

ネットワークのタブです。
エンドポイントの接続を選択します。
プライベートエンドポイントを利用する場合は、プライベートを選択します。

※価格レベルがBasic以上の場合に、選択できます。

【価格レベルがBasicの場合】Azure AI Searchのネットワーク設定(Basicの場合)(Azure OpenAIに独自データを追加する手順)
内容を確認し、問題がなければ作成を選択します。 Azure AI Searchのリソース作成時の確認画面(Azure OpenAIに独自データを追加する手順)

Azure OpenAIのリソースを作成

Azure OpenAIのリソースは、事前に作成済みのものを利用しています。
Azure OpenAIのリソース作成手順については、こちらで紹介しています。
Azure AI Foundryでの、プロジェクト作成手順も紹介しています。

—広告—

Azure OpenAIのチャットプレイグラウンドで独自データを追加

チャットプレイグラウンドで独自データを追加

Azure AI Foundry ポータルのチャットプレイグラウンドで、独自データを追加します。
公式サイトの手順を参考に設定を進めます。

クイック スタート: 独自のデータを使用して Azure OpenAI モデルとチャットする

チャットプレイグラウンドでデータを追加

チャットプレイグラウンドでデータソースの追加を選択します。

チャットプレイグラウンドでデータソースを追加(Azure OpenAIに独自データを追加する手順)

データソースの設定です。
データソースの選択では、Azure Blob Storageを選択します。
Azure AI Search、ストレージアカウント、Blob コンテナーのリソースを選択します。
Azure AI Searchに作成するインデックス名を設定します。
インデクサーのスケジュールで、インデックスの更新頻度を設定します。

※サポートされるデータソースの詳細については、公式サイトを参照してください。

サポートされるデータ ソース

 

 

データソースの追加設定(Azure OpenAIに独自データを追加する手順)
利用できるデータソースの選択肢(Azure OpenAIに独自データを追加する手順)
利用できるインデクサーのスケジュール(Azure OpenAIに独自データを追加する手順)
ベクトル検索追加時の設定(Azure OpenAIに独自データを追加する手順)

データ管理の設定です。
検索の種類やチャンクサイズを選択します。

※検索の種類やチャンクサイズの詳細については、公式サイトを参照してください。

種類の検索
チャンクサイズ

データ管理の設定(Azure OpenAIに独自データを追加する手順)

データ接続の設定です。
リソース間の認証方法を選択します。

※認証の種類の詳細については、公式サイトを参照してください。

データ接続

※今回はAPIキーを選択しています。

データ接続の設定(Azure OpenAIに独自データを追加する手順)
確認画面です。
内容を確認し、問題がなければ保存して閉じるを選択します。
データの追加設定の確認(Azure OpenAIに独自データを追加する手順)

独自データを利用してチャット

追加したデータを利用して、チャットします。
追加したデータに関する質問をして確認します。

独自データを利用してチャット

追加したZabbix 7.0のドキュメントに関する質問をします。
追加したデータに基づいて回答されます。
データを追加した場合は、参照に追加したドキュメントが表示されています。

【データを追加した場合】
データ追加した場合のチャットプレイグラウンド例(追加したデータを利用する場合)(Azure OpenAIに独自データを追加する手順)
【データを追加していない場合】データ追加した場合のチャットプレイグラウンド例(追加したデータを利用しない場合)(Azure OpenAIに独自データを追加する手順)

追加したデータからのみ回答させる場合は、データコンテンツへの応答を制限するにチェック

データコンテンツへの応答を制限するにチェックを入れると、追加したデータからのみ回答させることができます。

独自のデータに応答を制限する

デフォルトではチェックが入った状態になっています。
この状態で、追加したデータにない質問をすると、データに含まれていませんというメッセージが表示されます。

データコンテンツへの応答を制限するの設定
データコンテンツへの応答を制限するにチェックを入れた状態で質問します。
データに含まれていない質問をすると、The requested information is not available in the retrieved data. Please try another query or topic.と表示されます。
データコンテンツへの応答を制限にチェックを入れる(Azure OpenAIに独自データを追加する手順)
データコンテンツへの応答を制限にチェックを入れた場合のチャット例(Azure OpenAIに独自データを追加する手順)
データコンテンツへの応答を制限するのチェックを外した状態で質問します。
データに含まれていない質問をしても回答が表示されます。
データコンテンツへの応答を制限にチェックを入れない場合(Azure OpenAIに独自データを追加する手順)
データコンテンツへの応答を制限にチェックを入れてない場合のチャット例(Azure OpenAIに独自データを追加する手順)

Azure AI Searchのインデックスを確認

Azure AI Searchに、インデックスが作成されます。

Azure AI Searchでインデックスを確認
作成されたインデックスが表示されます。 Azure AI Searchのインデックスを表示(Azure OpenAIに独自データを追加する手順)

※画面例は、ベクトル検索を追加した場合の例です。

Azure AI Searchのインデクサーを確認

インデクサーのスケジュールで、Once以外を選択すると同時にインデクサーも作成されます。

Azure AI Searchでインデクサーを確認
作成されたインデクサーが表示されます。
インデクサーの設定でスケジュールなども確認、変更ができます。
Azure AI Searchのインデクサーを表示(Azure OpenAIに独自データを追加する手順)
Azure AI Searchのインデクサーの詳細(Azure OpenAIに独自データを追加する手順)
Azure AI Searchのインデクサーで選択可能なスケジュール(Azure OpenAIに独自データを追加する手順)

—広告—

Azure AI Foundryのプロジェクトで独自データを追加

Azure AI Foundryのプロジェクトで独自データを追加

Azure AI Foundry ポータルのプロジェクトで、独自データを追加します。
公式サイトの手順を参考に設定を進めます。

Azure AI Foundry でベクトル インデックスを構築して使用する方法
Azure AI Foundry プロジェクトでデータを追加および管理する方法

今回はプレイグラウンドのメニューから、データを追加しています。

 
チャットプレイグラウンドで新しいデータソースを追加するを選択します。 プレイグラウンドで新しいデータソースを追加(Azure AI Foundryのプロジェクトに独自データを追加する手順)

ソースデータの設定です。
データソースの選択では、Azure Blob Storageを選択します。
Azure Blob Storageリソースへの新しい接続を作成するを選択します。

ソースデータを選択(Azure AI Foundryのプロジェクトに独自データを追加する手順)
データソースの選択肢(Azure AI Foundryのプロジェクトに独自データを追加する手順)

Azure Blob Storageリソースへの接続を作成します。
追加するデータを保管している、ストレージアカウント名、BLOB コンテナーを選択します。
ストレージアカウントへの認証方法を設定します。
アカウントキーは、ストレージアカウントのアクセスキーを設定します。
接続名を設定します。

※接続名は、srch_blob_01としています。

データソースでAzure BLOB ストレージを選択した場合の接続追加設定(Azure AI Foundryのプロジェクトに独自データを追加する手順)
追加するデータのファイルもしくはディレクトリを選択します。 Azure BLOB ストレージで追加するデータを選択(Azure AI Foundryのプロジェクトに独自データを追加する手順)

Azure AI Searchのリソースの選択します。
ベクターインデックス名やインデックス更新スケジュールを選択します。
インデックス作成のジョブに利用する、仮想マシンを選択します。

※Azure AI Searchのリソースの選択時には、接続追加の設定が必要になります。

インデックスの設定でAzure AI Searchのリソースを選択(Azure AI Foundryのプロジェクトに独自データを追加する手順)
インデックスの設定でAzure AI Searchのリソースへの接続を追加(Azure AI Foundryのプロジェクトに独自データを追加する手順)
インデックスの更新スケジュールの設定(Azure AI Foundryのプロジェクトに独自データを追加する手順)

検索設定です。
ベクトル検索を追加するかどうかを設定します。

※ベクトル検索を追加する場合は、指定したAzure OpenAIのリソースにtext-embedding-3-largeのモデルがデプロイされます。

検索設定(Azure AI Foundryのプロジェクトに独自データを追加する手順)
確認画面です。
内容を確認し、問題がなければベクターインデックスを作成するを選択します。
データ追加のベクターインデックスを作成(Azure AI Foundryのプロジェクトに独自データを追加する手順)

インデックスの作成状況を確認

データとインデックスのメニューから、インデックスの作成状況を確認できます。

インデックスの作成状況を確認
データとインデックスのメニューを選択します。
インデックスのタブでインデックスの作成状況を確認できます。
インデックスを選択して、詳細情報を確認できます。

Azure AI Foundry ポータルで作成したインデックスを確認(Azure AI Foundryのプロジェクトに独自データを追加する手順)
インデックスの詳細を確認(Azure AI Foundryのプロジェクトに独自データを追加する手順)
インデックスの画面でジョブの詳細を選択すると、Machine Learning Studioが表示されます。
ジョブの作成状況を、Machine Learning Studioでも確認できます。
Machine Learning Studioでインデックスの作成ジョブを確認(Azure AI Foundryのプロジェクトに独自データを追加する手順)

追加したデータを利用してチャット

追加したデータを利用して、チャットします。
追加したZabbix 7.0のドキュメントに関する質問をして確認します。

height: 10px;

独自データを利用してチャット
追加したデータに基づいて回答されます。
参照に追加したドキュメントが表示されています。
追加したデータを使ってチャット(Azure AI Foundryのプロジェクトに独自データを追加する手順)
追加したデータを使ってチャット(参照データを表示)(Azure AI Foundryのプロジェクトに独自データを追加する手順)

—広告—

最後に

Azure OpenAIにデータを追加してチャットで利用する手順を確認しました。
BLOB コンテナーにアップロードしたドキュメントをチャットで利用できるかを確認しました。

Azure AI Searchのリソースを作成して、設定するだけで簡単に利用できてとても便利かと思います。
Azure OpenAIのチャットプレイグラウンドでデータを追加した場合と、Azure AI Foundryのプロジェクトで追加する場合の手順が少し異なりますが、どちらの場合も簡単に設定できましrた。

今回は手順の確認でしたが、追加したデータを利用する場合の精度を上げるために、考慮すべき点は色々あるかと思います。
引き続き、いろいろ試してみたいと思います。

Azure OpenAIのリソース作成からモデルのデプロイなどの手順は、こちらで紹介しています。
Azure AI Foundryのプロジェクトの作成手順も、紹介しています。

Logic AppsでAzure AI servicesの翻訳を利用する場合の手順については、こちらで紹介しています。

スポンサーリンク