セキュリティチームの ぐっちー です。Azure OpenAI Serviceはご存知の通り、OpenAI社のモデルをAzure上で使えるようにしたものですが、それにとどまらず本家にない周辺機能を搭載したりすることもあります。 今回は、本家GPT-4 Turbo with Vision(以下、GPT-4V)にない動画のアップロードに対応している?という話を聞いたので試してみまいた。
本ブログの内容は、2023年12月20日時点までの情報を元に作成しております。
Azure OpenAI GPT-4V だと動画をインプットできるらしいと聞きまして
前提となるGPT-4 Turbo with VisionはChatGPTへの入力をテキストだけではなく、画像入力にも拡張したもので、2023年11月6日のOpenAI DevDayで発表されていました。そんなGPT-4 Turbo with VisionがAzureでも使えるようになったのですが、「Azure OpenAI 版の GPT-4V では、本家 OpenAI の GPT-4V にはない動画のアップロードができる?」という話を聞きました。(本家でも別途画像に変換するようなアプリを作ればいけます。)
個人的には本家OpenAIのGPT-4Vは試していたのですが、てっきりAzureでも全く同じものが出てきたと思い込んでまだ試してませんでした。「本家は動画に対応してなかったはず!どういうこと?」と思ったのでとにかく試してみました。
実際にやってみた
最初に、Azure AI Custom Vision のリソースを作成しておきます。このリソースはFree版もありますが、Free版だとAzure OpenAIとの結合はできなかったのでS版で設定しておきます。次に、Azure OpenAI Service のリソースを作成し、GPT-4のモデルをデプロイし、モデルバージョンを「vision-preview」としておきます。GPT-4Vは現在、対応しているリージョンが限られているため、詳細はMicrosoftのサポートサイトを参照してください。
AzureのOpen AIやCustom Visionのリソースを作成した後は、Azure OpenAI StudioのPlaygroundでVisionを有効にします。
これにより、Azure OpenAI StudioのPlaygroundで動画をアップロードできるようになります。その後、動画をアップロードし、プロンプトと共にAzureのOpenAIサービスに送信します。
また、Azure OpenAI StudioのPlaygroundではサンプルコードを取得することができるので、それをAPIで実装の参考にすることができます。
正体はAzure AI Vision Video Retrievalだった
手順からお察しの通り、この仕組みは直接GPTが動画を処理しているわけではありません。Azure AI Vision Video Retrieval(プレビュー中)で処理してGPTに渡しているという仕組みとなります。
Azure AI Vision Video Retrievalから渡された画像の情報+テキストを使って、ユーザーからの問い合わせに応答しているということで、動画のインプットではなく、動画版のRetrieval-Augmented Generation (RAG)を実施しているという説明の方が厳格なものとなります。
動画全てをGPTに渡しているわけではないので、一連の流れを理解するのは少し苦手そう(とはいえ未来感ある)
マイクロソフト社のブログに以下のように記載がある通り、動画を画像に分解してその画像を全てをGPTに渡しているわけではありません。あくまでVideo Retrieval(ビデオ検索)をした結果のOpenAIに渡すようです。全て渡していたら、それだけで課金がやばくなりそうなので、安心しましたが、それが制約事項となります。
Video Retrieval enables GPT-4 Turbo with Vision to answer video prompts using a curated set of images from the video as grounding data. This means that when you ask specific questions about scenes, objects or events in a video, the system provides more accurate answers without sending all the frames to the large multimodal model (LMM). This saves time and money, especially for long videos that might otherwise exceed the 128k token context window of GPT-4 Turbo with Vision.
出所:Video Retrieval: GPT-4 Turbo with Vision Integrates with Azure to Redefine Video Understanding (microsoft.com)
機械翻訳:ビデオ検索により、GPT-4 Turbo with Vision は、ビデオからの厳選された画像セットを下地データとして使用して、ビデオプロンプトに回答することができます。つまり、ビデオ内のシーン、オブジェクト、イベントに関する特定の質問をすると、システムはすべてのフレームを大規模マルチモーダルモデル(LMM)に送信することなく、より正確な回答を提供します。これは、特にGPT-4 Turbo with Visionの128kトークンコンテキストウィンドウを超えるような長いビデオでは、時間とコストの節約になります。
一連の流れを理解した上で回答するのはデフォルトのままだと少し苦手そうな印象を受けており、ここは開発する人の工夫の余地が残されているように思いました。それがわかりやすい簡単な実験結果を下記で紹介します。
インプット(動画+プロンプト):
この動画は作業動画です。この動画の作業を手順書にしてください。
アウトプット:
手順1: [00:00:00の画像] Azure OpenAIサービスのページを開き、サービス概要を確認します。
手順2: [00:00:01.0010000の画像] 「デプロイ」セクションに移動し、「新規」をクリックして新しいリソースを作成します。
手順3: [00:00:02.0020000の画像] 「モデルのデプロイ」ウィンドウで、必要な情報を入力します。サブスクリプションを選択し、「リソースグループ」で既存のリソースグループを選択または新規作成します。
手順4: [00:00:04.0040000の画像] 「リージョン」を選択し、「名前」フィールドにリソースの名前を入力します。
手順5: [00:00:05.0050000の画像] 「価格レベル」を選択し、必要に応じて「ネットワーク」の設定を行います。
手順6: [00:00:07.0070000の画像] 入力した情報を確認し、「作成」をクリックしてリソースのデプロイを開始します。
この動画はAzure OpenAI PlaygrandでAzure OpenAIのモデルをデプロイする動画でしたが、上記のアウトプットのうち、手順3・4・5は間違えであり、アウトプットではAzure PotalでAzure OpenAIのリソースを作成する作業を記載しています。
このアウトプットを見る限り、一連のマウス操作を理解しているのではなく、「これはAzure OpenAIに関連する画面だな」というように、断片的な画像に映る情報から推論に推論を重ねているような動きをしていることがわかると思います。(それはそれで生き物みたいですごい)タスクを依頼する際には、このような性質を理解してお願いできないと成果が上がらないように思えます。
要約や動画検索、シーンの解説には向いてそう
動画の流れを理解してアウトプットを生成することに対しては課題があるというお話をしましたが、長い動画を見ることができない状況で、特定の情報を探したい場合などのユースケースには向いているように思いました。ほぼ、Azure AI Vision Video Retrievalの機能ですが、Azure AI Vision Video Retrievalについては試している人がいたので、記事を紹介しておきます。
Azure AI Vision Video Retrievalから使うのと、Azure OpenAIから使うのとの大きな違いは「自然言語での質問」と「生成(Generation)が含まれるか」という点が代表的な部分です。個人的にはこれは監査にすごく使えそうな気がしているので、また検証してみたいと思います。
コスト感
GPT-4Vへの動画アップロードには、Azure OpenAIのコストの他、Azure AI Custom Vision のコストがかかってきます。
Azure OpenAIのコスト
現時点では、Azure OpenAI Service の価格ページに、GPT-4Vの価格は表示されていません。若干ブラックボックスも多いので実績値を書いておくと、10秒の動画(解像度1080)と簡単な指示を入力すると、1回あたりAzure OpenAIだけで、3円程度のコストが実績値かかっていました。当たり前ですが、入出力の容量によって異なりますし、裏側でもたくさんの処理が走っているようなので、単純に入出力の文字数で計算できるものではありません。
本家OpenAIの価格モデルでは、GPT-4-turboとGPT-4-turbo-visionはトークン量あたりの価格差はないので、トークン量あたりの価格差はないのではと予想しています。しかしながら、本家OpenAIの価格モデルでは、GPT-4-turbo-visionで画像をインプットする際に、画像の容量に応じた課金がなされてしまい、同じ課金モデルだと推測できますので、その点も考慮が必要です。1
Azure AI Custom Visionのコスト
Azure AI Custom Visionの費用がかかります。Video Retrievalでは投入するビデオの長さとクエリの実行回数に応じた課金がなされます。上記で紹介しているビデオを投入して、1回クエリを実行すると実績値で3円程度の費用がかかりました。厳密な費用計算はマイクロソフトのコストページをご確認ください。2
おわりに
GPT-4Vの映像の取り込みに関しては、かかるコストもそれなりなものなので、ビジネスで利用するにはユースケースを慎重に吟味する必要はあるかと思いました。とはいえ、動画をインプットできるという点に関しては未来感を感じさせるものであります。
まだユースケースを探っている状況かとは思いますが、このような技術がどうやって情報システム部門の業務に適用できるのか、追求していきたいと思います。
参考
- Azure OpenAI Service が GPT-4 Turbo および GPT-3.5-Turbo-1106 モデルを発表 – Microsoft コミュニティ ハブ
- GPT-4 Turbo with Vision on Azure OpenAI Service (microsoft.com)
- ベクトル化を使用してビデオ検索を行う – Image Analysis 4.0 – Azure AI services | Microsoft Learn
- Azure AI Vision Video Retrieval でサッカーの試合のお気に入りシーンを取得する (zenn.dev)