Generative AI

NVIDIA NIM によるマルチモーダル ビジュアル AI エージェントの構築

Reading Time: 3 minutes

画像から PDF、ストリーミング動画に至るまで、ビジュアル データが指数関数的に急増しているため、手動によるレビューと分析は事実上不可能になっています。企業は、このデータを大規模に実用的な洞察に変えるのに苦労しており、その結果、機会逸失やリスクの増大につながっています。

この課題を解決するために、画像や動画の視覚認識とテキストベースの推論を組み合わせた強力なツールとして、ビジョン言語モデル (VLM) が登場しています。テキストのみを処理する従来の大規模言語モデル (LLM) とは異なり、VLM は複雑なマルチモーダル データを理解し、それに基づいて行動するビジュアル AI エージェントを構築できるため、リアルタイムの意思決定と自動化が可能になります。

リモート カメラの映像を解析して山火事の初期兆候を検出したり、ビジネス文書をスキャンして、図表、画像に埋もれている重要な情報を抽出したりするインテリジェントな AI エージェントを想像してみてください。そのすべてを自律的に行うのです。

NVIDIA NIM マイクロサービスを使用すれば、これらの高度なビジュアル AI エージェントの構築がこれまで以上に簡単で効率的になります。柔軟なカスタマイズ、合理的な API 統合、スムーズなデプロイなどを可能にする NIM マイクロサービスにより、独自のビジネス ニーズに合わせた動的なエージェントを作成できます。

この記事では、NVIDIA NIM マイクロサービスを使用してインテリジェントなビジュアル AI エージェントを設計および構築するプロセスについて説明します。現在利用可能なさまざまな種類のビジョン AI モデルを紹介し、4 つのサンプル アプリケーション (ストリーミング動画アラート、構造化テキスト抽出、マルチモーダル検索、Few-shot 分類) を共有し、Jupyter ノートブックを提供して利用を開始するお手伝いをします。これらのモデルを実際に使用する方法の詳細については、GitHub リポジトリ /NVIDIA/metropolis-nim-workflows を参照してください。

ビジョン AI モデルの種類

堅牢なビジュアル AI エージェントを構築するには、以下の中核となるビジョン モデルを利用できます。

  • VLM
  • 埋め込みモデル
  • コンピューター ビジョン (CV) モデル

これらのモデルは、インテリジェントなビジュアル AI エージェントを開発するための、重要な構成要素となります。VLM は各エージェントのコア エンジンとして機能しますが、CV と埋め込みモデルは、オブジェクト検出などのタスクの精度を向上させたり、複雑な文書を解析したりすることで、その機能を強化できます。

この記事では、ビジョン NIM マイクロサービスを使用して、これらのモデルにアクセスします。各ビジョン NIM マイクロサービスは、シンプルな REST API を通じて簡単にワークフローに統合できるため、テキスト、画像、動画における効率的なモデル推論が可能になります。まず、ローカルの GPU を必要としない、build.nvidia.com にホストされているプレビュー API を試してみることができます。

図 1. build.nvidia.com の llama-3.2-vision-90b モデル

ビジョン言語モデル

VLM は、ビジョン機能を追加してマルチモーダルにすることで、言語モデルに新たな次元をもたらします。こういったモデルは、画像、動画、テキストを処理できるため、ビジュアル データを解釈し、テキストベースの出力を生成できます。VLM は汎用性が高く、特定のユース ケースに合わせてファインチューニングしたり、ビジュアル入力に基づく Q&A などのタスクを実行するためにプロンプトを設定したりできます。

NVIDIA とそのパートナーは、サイズ、レイテンシ、機能がそれぞれ異なる複数の VLM を NIM マイクロサービスとして提供しています (表 1)。

企業名モデルサイズ説明
NVIDIAVILA40BSigLIP と Yi を基に構築された強力かつ汎用的なモデルで、ほぼあらゆるユース ケースに適しています。
NVIDIANeva22BNVGPT と CLIP を組み合わせた中規模モデルで、より大規模なマルチモーダル モデルと同等の機能を提供します。
MetaLlama 3.290B/11B初めてビジョン機能に対応した 2 つのサイズの Llama モデルで、さまざまなビジョン言語タスクに優れ、高解像度の入力に対応しています。
Microsoftphi-3.5-vision4.2BOCR に優れ、複数の画像を処理できる小規模で高速なモデル。
MicrosoftFlorence-20.7Bシンプルなテキスト プロンプトを使用して、キャプション作成、オブジェクト検出、セグメンテーションが可能なマルチタスク モデル。
表 1. VLM NIM マイクロサービス

埋め込みモデル

埋め込みモデルは、入力データ (画像やテキストなど) を埋め込みと呼ばれる高密度の特徴豊富なベクトルに変換します。このような埋め込みは、データの本質的な特徴関係性をまとめ、類似検索や分類などのタスクを可能にします。埋め込みは通常、ベクトル データベースに保存され、GPU アクセラレーションによる検索で関連データを迅速に取得できます。

埋め込みモデルは、インテリジェント エージェントを作成する際に重要な役割を果たします。たとえば、検索拡張生成 (RAG) ワークフローをサポートし、エージェントがさまざまなデータ ソースから関連情報を引き出し、文脈内学習 (In-Context Learning) を通じて精度を向上させることを可能にします。

企業名モデル説明事例
NVIDIANV-CLIPテキストおよび画像の埋め込みを生成するマルチモーダルの基盤モデルマルチモーダル検索、ゼロショット分類
NVIDIANV-DINOv2高解像度の画像の埋め込みを生成するビジョン基盤モデル類似検索、Few-shot 分類
表 2. 埋め込み NIM マイクロサービス

コンピューター ビジョン モデル

CV モデルは、画像分類、オブジェクト検出、光学文字認識 (OCR) などの専門的タスクに重点を置いています。これらのモデルは、詳細なメタデータを追加することで VLM を強化し、AI エージェントの全体的なインテリジェンスを改善することができます。

企業名モデル説明事例
NVIDIAGrounding Dinoオープン ボキャブラリ オブジェクト検出あらゆるものを検出
NVIDIAOCDRNet光学文字検出と認識文書解析
NVIDIAChangeNet2 つの画像間のピクセル レベルの変化を検出欠陥検出、衛星画像分析
NVIDIARetail Object Detection一般的な小売商品を検出するために事前学習済み損失防止
表 3. コンピューター ビジョン NIM マイクロサービス

ビジョン NIM マイクロサービスでビジュアル AI エージェントを構築

ビジョン NIM マイクロサービスを適用して強力なビジュアル AI エージェントを作成する方法の実例を示します。

NVIDIA NIM マイクロサービスを活用したアプリケーション開発をより身近なものにするために、NVIDIA は GitHub に一連の例を公開しています。これらの例では、NIM API を使用してアプリケーションを構築または統合する方法を紹介しています。個々の例には、GPU がなくても簡単に起動できる Jupyter ノートブックのチュートリアルとデモが含まれています。

NVIDIA API カタログで、Llama3.1 405B などのモデル ページを選択します。[Get API Key] (API キーを入手) を選択して 90 日間の NVIDIA AI Enterprise ライセンス用のビジネス用メールを入力するか、NVIDIA 開発者プログラムを通じて NIM にアクセスする個人用メール アドレスを使用します。

GitHub リポジトリ /NVIDIA/metropolis-nim-workflows で、Jupyter ノートブックのチュートリアルとデモを参照します。これらのワークフローでは、ビジョン NIM マイクロサービスをベクトル データベースや LLM などの他のコンポーネントと組み合わせ、現実の問題を解決する強力な AI エージェントを構築する方法を紹介しています。API キーがあれば、この記事で紹介されているワークフローを簡単に再現でき、ビジョン NIM マイクロサービスを実際に体験できます。

以下にワークフローの例を示します。

VLM ストリーミング動画アラート エージェント

毎秒膨大な量の動画データが生成される状況で、パッケージの配送、森林火災、不正アクセスなどの重要なイベントの映像を手動で確認することは不可能です。

このワークフローでは、VLM、Python、OpenCV を使用して、ユーザー定義イベントのライブ ストリームを自律的に監視する AI エージェントを構築する方法を示しています。イベントが検出されると、アラートが生成され、膨大な時間を要する手動での動画レビューにかかる時間を短縮できます。VLM の柔軟性のおかげで、プロンプトを変更することで新しいイベントを検出できます。そのため、新しいシナリオごとにカスタム CV モデルを構築およびトレーニングする必要がありません。

動画 1. NVIDIA NIM を活用したビジュアル AI エージェント

図 2 では、VLM はクラウドで実行され、動画ストリーミング パイプラインはローカルで動作します。このセットアップでは重い計算が NIM マイクロサービスを通じてクラウドにオフロードされ、ほぼすべてのハードウェア上でデモを実行できるようになります。

図 2. ストリーミング動画アラート エージェントのアーキテクチャ

このエージェントを構築する手順は以下のとおりです。

  1. 動画ストリームの読み込みと処理: OpenCV を使用して、動画ストリームまたはファイルの読み込み、デコード、フレームのサブサンプルを実行します。
  2. REST API エンドポイントの作成: FastAPI を使用して、ユーザーがカスタム プロンプトを入力できる制御用の REST API エンドポイントを作成します。
  3. VLM API との統合: ラッパー クラスでは、動画フレームとユーザー プロンプトを送信することで、VLM API とのやりとりを処理します。NIM API リクエストを形成し、応答を解析します。
  4. 応答を動画上にオーバーレイ: VLM 応答は入力動画にオーバーレイされ、OpenCV を使用してストリーミング配信され、リアルタイム表示されます。
  5. アラートをトリガー: 解析された応答を WebSocket サーバーに送信して他のサービスと統合し、検出されたイベントに基づいて通知をトリガーします。

VLM を活用したストリーミング動画アラート エージェントの構築に関する詳細については、GitHub の /NVIDIA/metropolis-nim-workflows のノートブック チュートリアルとデモをご覧ください。さまざまな VLM NIM マイクロサービスを試し、ユース ケースに最適なモデルを見つけることができます。

NVIDIA JetsonJetson プラットフォーム サービス を駆使して VLM がエッジ アプリケーションをどのように変革するかについては、「Edge 向けの生成 AI を活用したビジュアル AI エージェントを開発する」を参照してください。また、Jetson プラットフォーム サービス ページでは追加の関連情報もご覧いただけます。

構造化テキスト抽出エージェント

多くのビジネス文書は、PDF などの検索可能なフォーマットではなく、画像として保存されています。そのため、これらの文書の検索と処理を行う際には、手動によるレビュー、タグ付け、整理が必要になることが多くあり、これらが大きな課題となります。

光学文字検出と認識 (OCDR) モデルは、しばらく前から存在していましたが、元のフォーマットを保持できなかったり、ビジュアル データを解釈できなかったりして、雑然とした結果を返すことがよくありました。これは、さまざまな形やサイズがある写真付き ID などの不規則な形式の文書を扱う場合に特に困難になります。

従来の CV モデルは、そのような文書の処理に時間とコストがかかります。しかし、VLM と LLM の柔軟性と、OCDR モデルの精度を組み合わせることで、強力なテキスト抽出パイプラインを構築して文書を自律的に解析し、データベースにユーザー定義のフィールドを保存することができます。

図 3. 構造化テキスト抽出エージェントのアーキテクチャ

構造化テキスト抽出パイプラインの構築手順は次のとおりです。

  1. 文書入力: OCDRNet や Florence などの OCDR モデルに文書の画像を提供すると、文書内の検出されたすべての文字のメタデータが返されます。
  2. VLM の統合: VLM は、希望するフィールドを指定するユーザーのプロンプトを処理し、文書を分析します。OCDR モデルで検出された文字を使用して、より正確な応答を生成します。
  3. LLM のフォーマット: VLM の応答は LLM に渡され、LLM はデータを JSON 形式に整形し、表として表示します。
  4. 出力と保存: 抽出されたフィールドは構造化されたフォーマットにまとめられ、データベースに挿入したり、将来の使用に備えて保存したりできます。
図 4. ビジョン NIM マイクロサービスによる構造化テキスト抽出の例

プレビュー API を使用すると、複数のモデルを組み合わせて複雑なパイプラインを構築し、簡単に実験をすることができます。デモ UI から、build.nvidia.com で利用可能な各種の VLM、OCDR、LLM モデルを切り替えることができ、素早く実験できます。

NV-DINOv2 による Few-shot 分類

NV-DINOv2 は、高解像度の画像から埋め込みを生成するため、少数のサンプル画像での欠陥検出など、詳細な分析を必要とする作業に理想的です。このワークフローは、NV-DINOv2 と Milvus ベクトル データベースを使用して、スケーラブルな Few-shot 分類パイプラインを構築する方法を示しています。

図 5. NV-DINOv2による Few-shot 分類

Few-shot 分類パイプラインの仕組みは次のとおりです。

  1. クラスの定義と、サンプルのアップロード: ユーザーはクラスを定義し、それぞれに少数のサンプル画像をアップロードします。NV-DINOv2 は、これらの画像から埋め込みを生成し、クラス ラベルとともに Milvus ベクトル データベースに保存します。
  2. 新しいクラスを予測: 新しい画像がアップロードされると、NV-DINOv2 はその埋め込みを生成し、ベクトル データベースに保存されている埋め込みと比較します。k近傍法 (k-NN) アルゴリズムを使用して最も近い隣接データを特定し、その中から多数派クラスのクラスが予測されます。

NV-CLIP によるマルチモーダル検索

NV-CLIP は、テキストと画像の両方を埋め込むことができ、マルチモーダル検索を可能にするという独自の利点があります。 テキストと画像の入力を同じベクトル空間内の埋め込みに変換することで、NV-CLIP は、指定されたテキスト クエリに一致する画像の検索を容易にします。これにより、柔軟性が高く正確な検索結果が得られます。

図 6. NV-CLIP によるマルチモーダル検索 (画像とテキスト)

このワークフローでは、ユーザーは画像フォルダをアップロードし、画像は埋め込みに変換され、ベクトル データベースに保存されます。UI を使用してクエリを入力すると、NV-CLIP は、入力テキストに基づいて最も類似した画像を検索します。

このアプローチを VLM と使用して、より高度なエージェントを構築し、マルチモーダル RAG ワークフローを作成することができます。これにより、ビジュアル AI エージェントが過去の経験を基に構築され、応答を改善できるようになります。

今すぐビジュアル AI エージェントを始めましょう

独自のビジュアル AI エージェントを構築する準備はできましたか? GitHub リポジトリ /NVIDIA/metropolis-nim-workflows で提供されているコードをベースとして、NIM マイクロサービスを利用した独自のカスタム ワークフローと AI ソリューションを開発してみてください。この例を参考に、あなたの組織固有の課題を解決する新しいアプリケーションを開発しましょう。

技術的な質問やサポートが必要な場合は、NVIDIA のコミュニティに参加し、NVIDIA ビジュアル AI エージェント フォーラムのエキスパートと交流してください。


関連情報

Tags