Azure OpenAI Studio の GPT-4 Turbo with Vision (プレビュー) を利用して Azure OpenAI に画像データを使用する
この記事では、Azure OpenAI Service のビジョン モデルである GPT-4 Turbo with Vision に独自の画像データを提供する方法について説明します。 独自のデータに基づく GPT-4 Turbo with Vision を使用すると、モデルは、独自の画像と画像メタデータに基づく取得拡張生成 (RAG) を使用して、よりカスタマイズされ、対象をさらに絞った回答を生成できます。
重要
GPT4-Turbo with Vision のプレビュー モデルが非推奨になると、画像データで Azure OpenAI を使用できなくなります。 画像データを使用して RAG ソリューションを実装する方法については、GitHub のサンプルを参照してください。
前提条件
- Azure サブスクリプション。無料で作成できます。
- GPT-4 Turbo with Vision モデルがデプロイされた Azure OpenAI リソース。 モデル デプロイの詳細については、リソース デプロイ ガイドを参照してください。
- 少なくとも Azure OpenAI リソースに対する Cognitive Services 共同作成者ロールが割り当てられている必要があります。
データ ソースを追加する
Azure OpenAI Studio にアクセスし、Azure OpenAI リソースにアクセスできる資格情報を使用してサインインします。 サインイン ワークフローの途中または後で、適切なディレクトリ、Azure サブスクリプション、Azure OpenAI リソースを選択します。
[アシスタントのセットアップ] タイルで、[Add your data (preview)] (データの追加 (プレビュー))>[+ Add a data source] (+ データ ソースの追加) の順に選択します。
[データ ソースの追加] の選択後に表示されるウィンドウには、データ ソースを選択するための 3 つの選択肢が表示されます。
3 つの選択肢ではいずれも、Azure AI 検索インデックスを使用して画像から画像の検索を行い、入力したプロンプト画像に対して上位の検索結果を取得します。 [Azure Blob Storage] か [ファイルのアップロード] を選択した場合、Azure OpenAI によって画像検索インデックスが自動生成されます。 [Azure AI 検索] の場合は、画像検索インデックスを用意しておく必要があります。 次のセクションには、検索インデックスの作成方法に関する詳細が含まれています。
CORS をオンにする
初めてデータ ソースを追加する場合、クロスオリジン リソース共有 (CORS) を有効にするように求める赤色の通知が表示されることがあります。 この警告を停止するには、[CORS を有効にする] を選択して、Azure OpenAI がデータ ソースにアクセスできるようにします。
ファイルをアップロードしてデータを追加する
手動で画像ファイルをアップロードし、Azure OpenAI を使ってそれらのメタデータを入力できます。 これは、小規模な画像セットで実験しているとき、データ ソースを構築する場合に特に便利な機能です。
上記の説明にあるように、Azure OpenAI の [データ ソースの追加] ボタンに移動し、選択します。 その後、[ファイルのアップロード] を選択します。
サブスクリプションを選択します。 アップロードしたイメージ ファイルを格納する Blob Storage アカウントを選択します。 新たに作成した画像検索インデックスが含まれる Azure AI 検索リソースを選択します。 任意の画像検索インデックス名を入力します。
すべての値を入力したら、下部にある 2 つのチェック ボックスをオンにして使用料金が発生することを認知し、[次へ] を選択します。
画像ファイルとしてサポートされているファイルの種類は次のとおりです。
- .jpg
- .png
- .gif
- .bmp
- .tiff
[ファイルを参照する] を選択し、使用する画像ファイルをローカル ディレクトリから選択します。
イメージ ファイルを選択すると、そのファイルがテーブルに表示されます。 [Upload files](ファイルのアップロード) を選択します。 ファイルをアップロードした後、それぞれの状態が [アップロード済み] であることを確認します。 [次へ] を選択します。
画像ファイルごとに、指定された説明ボックスにメタデータを入力します。 [次へ] を選択します。
すべての情報が正しいことを確認します。 次に、保存して終了 を選択します。
Azure AI 検索を使用してデータを追加する
既存の Azure AI 検索インデックスがある場合、それをデータ ソースとして使用できます。 画像に検索インデックスをまだ作成していない場合、GitHub の AI Search ベクトル検索リポジトリを利用して作成できます。 このリポジトリから、自分の画像ファイルでインデックスを作成するためのスクリプトが提供されます。
また、このオプションは、前のオプションのような独自のファイルを使ってデータ ソースを作成してから、プレイグラウンド エクスペリエンスに戻って、既に作成してまだ追加していないデータ ソースを選ぶ場合にも最適です。
上記の説明にあるように、Azure OpenAI の [データ ソースの追加] ボタンに移動し、選択します。 [Azure AI 検索] を選択します。
ヒント
[Azure Blob Storage] か [ファイルのアップロード] を選択して作成した画像検索インデックスを選択できます。
お使いのサブスクリプションと、画像検索インデックスの作成に使用した Azure AI 検索サービスを選択します。
自分の画像で作成した Azure AI 検索インデックスを選択します。
すべての値を記入したら、GPT-4 Turbo with Vision のベクトル埋め込みと Azure AI 検索の使用による料金発生を認知するチェックボックスが一番下に 2 つあるので選択します。 [次へ] を選択します。
詳細を確認し、[保存して閉じる] を選択します。
Azure Blob Storage を使用してデータを追加する
既存の Azure Blob Storage コンテナーがある場合、それを使用して画像検索インデックスを作成できます。 新しいコンテナーを作成する場合は、Blob Storage のクイックスタート ドキュメントを参照してください。
Blob Storage コンテナーを使用するオプションは、大量の画像ファイルがあり、それらを 1 つずつ手動でアップロードしたくない場合に特に便利です。
Blob Storage コンテナーにこれらのファイルをまだ入力していないとき、ファイルをひとつずつアップロードする場合、代わりに Azure OpenAI Studio を使用してファイルをアップロードできます。
Blob Storage コンテナーをデータ ソースとして追加する前に、取り込むすべてのイメージが含まれていることをご確認ください。 また、イメージ ファイルのパスとメタデータを含む JSON ファイルが含まれていることを確認します。
重要
メタデータ JSON ファイルは以下であることが必須となります。
- すべて小文字でスペースのない metadata という単語で始まるファイル名が与えられていること。
- 格納できる画像ファイルの数は最大 10,000 個です。 コンテナーに格納するファイルがこの数を超える場合、複数の JSON ファイルを作成し、それぞれに、この最大数までのファイルを格納できます。
[
{
"image_blob_path": "image1.jpg",
"description": "description of image1"
},
{
"image_blob_path": "image2.jpg",
"description": "description of image2"
},
...
{
"image_blob_path": "image50.jpg",
"description": "description of image50"
}
]
画像ファイルと少なくとも 1 つのメタデータ JSON ファイルを Blob Storage コンテナーに入力したら、データ ソースとしてコンテナーを追加する用意が整います。
上記の説明にあるように、Azure OpenAI の [データ ソースの追加] ボタンに移動し、選択します。 [Azure Blob Storage] を選択します。
サブスクリプション、Azure Blob Storage、ストレージ コンテナーを選択します。 新しい画像検索インデックスがこのリソース グループで作成されるため、Azure AI 検索リソースを選択する必要もあります。 Azure AI 検索リソースがない場合、ドロップダウン リストの下にあるリンクを使用し、新しいリソースを作成できます。
[インデックス名] ボックスに検索インデックスの名前を入力します。
Note
指定された画像から抽出された画像ベクトルを含むインデックスであることを示す目的で、インデックスの名前の末尾に
–v
が付きます。 metadata.json の説明フィールドは、インデックスにテキスト メタデータとして追加されます。すべての値を記入したら、GPT-4 Turbo with Vision のベクトル埋め込みと Azure AI 検索の使用による料金発生を認知するチェックボックスが一番下に 2 つあるので選択します。 [次へ] を選択します。
詳細を確認し、[保存して閉じる] を選択します。
取り込まれたデータを GPT-4 Turbo with Vision モデルで使用する
上記の 3 つの方法のいずれかを使ってデータ ソースを接続した後、データ インジェスト プロセスが完了するまでに時間がかかります。 プロセスの進捗にともない、アイコンとインジェスト進行中のメッセージが表示されます。
インジェストが完了したら、データ ソースが作成されていることを確認します。 データ ソースの詳細が、画像検索インデックスの名前と共に表示されます。
以上で、この取り込まれたデータは、デプロイされた GPT-4 Turbo with Vision モデルのグラウンディング データとして使う準備は完了です。 このモデルでは、画像検索インデックスの上位取得データを使い、取り込まれたデータに特に準拠した応答を生成します。
その他のヒント
データ ソースの追加と削除
現在、Azure OpenAI では、チャット セッションあたりに使用できるデータ ソースは 1 つのみです。 新しいデータ ソースを追加する場合は、まず、既存のデータ ソースを削除する必要があります。 データ ソース情報の下で [データ ソースの削除] を選択して削除します。
データ ソースを削除するとき、警告メッセージが表示されます。 データ ソースを削除すると、チャット セッションがクリアされ、すべてのプレイグラウンド設定がリセットされます。
重要
GPT-4 Turbo with Vision モデルを使用していないモデル デプロイに切り替えると、データ ソースの削除に関する警告メッセージが表示されます。 データ ソースを削除すると、チャット セッションがクリアされ、すべてのプレイグラウンド設定がリセットされます。