Docs Menu
Docs Home
/

MongoDBと投票AIによるマルチモーダル イベント エクスプローラー

マルチモーダルAI3 、ハイブリッド検索、およびAWSが取得するエージェントに使用されている非標準のイベントを分析します。

ユースケース: 人工知能IoT

業種: 製造およびモーション制御

製品: MongoDB Atlas、 MongoDB Search 、 MongoDB ベクトル検索、 MongoDB AI、

パートナー: Amazon Bedrock

オートメーション ドライバー システムは、高解像度のイメージ、LiDAR スイープ、フィルター フレーム、テレメトリー ログなど、大量のセンサーデータを生成します。この情報のフラッシュ内で、最も価値の高いデータ ポイントは、多くの場合、エッジケースまたはエッジケースと呼ばれる通常ではない、または予期しないドライバー シナリオです。これらのデータ ポイントには、ロード内の移動販売、満杯の交差交差、通常ではない構築ゾーン、および標準的な検証およびロード テスト中にオートメーション システムがほとんど発生する可能性のない状況が含まれます。

これらのまれなシナリオを手動で見つけるのは遅く、コストがかかります。データサイエンティストは、特定のイベントを検索するためにカスタム フィルターとスクリプトの作成に多くの時間を費やします。手動検索方法は遅く、解決されるのは 1 年間に数例のエッジケースしか解決されない可能性がありますが、チームはその数を数千に増やす必要があります。

マルチモーダル イベント エクスプローラーは、MongoDB Atlas Searchと投票AI埋め込み および 対話AIエージェントを組み合わせることで、この問題を解決する方法の 1 つを示しています。このソリューションにより、チームは可能になります。

  • 自然言語の説明を使用して、ドライバー イベント全体を検索します。

  • 気象、バッチ、時刻などの環境条件でフィルタリングします。

  • データベースをリアルタイムでリージョンする ReAct ベースのAIエージェントと対話します。

このソリューションにより、エンジニアとデータサイエンティストは、数週間ではなく秒増やすで、頻度の低いドライバー シナリオを検出し、モデル学習サイクルを加速し、自動ドライバー システムの安全性と信頼性を向上させることができます。

このソリューションは、ウェブアプリケーション、バックエンドサービス、アプリケーションデータ プラットフォーム間の明確な分離階層型アーキテクチャに従います。

マルチモーダル イベント エクスプローラーの高レベルのアーキテクチャ

図の 1。マルチモーダル イベント エクスプローラーの高レベルのアーキテクチャ

フロントエンドは Next.js で構築され、 MongoDBのエクスペリエンスに LeafyGreen UIコンポーネントを使用します。次の主要なインタラクション層を提供します。

  • メタデータフィルターのドロップダウンを含む検索バー。

  • 一致したドライバーイベントのイメージを表示する結果グリッド。

  • AIエージェントによる対話クエリ用のチャット パネル。

FastAPI ベースのPythonバックエンドがコア ロジックをオーケストレーションします。これにより次の内容が公開されます。

  • ベクトルと全文検索を組み合わせたハイブリッド検索API 。

  • 結果を絞り込むためにVoyage AIの再ランク付けを適用する Reranker API 。

  • データベースを推論するために、 AWS Red と ツール検出レジストリ を使用する ReAactエージェント。

すべてのデータは単一のMongoDB Atlasコレクションに存在します。各ドキュメントには、次の内容が含まれています。

  • イベントイメージ(または S3 内のそれへの参照)。

  • テキスト説明。

  • 環境メタデータフィールド(しきい値、気象、時刻、リスク スコアなど)

  • Vyage AI の vovage-multimodal-3 モデルによって生成される 1024 次元ベクトル埋め込み。

MongoDB Atlas は、ベクトル検索インデックス(スカラー量子化)、全文検索インデックス、および集計パイプライン を提供し、すべてが統合APIを通じてクエリされます。

投票AI は、画像、メタデータ、クエリのベクトル表現を生成するための埋め込みモデル(vary-multimodal-3)と、結果の関連性を向上させるためのリランク モデル(rerank-2)を提供します。

AWS Reduce は、このソリューションの対話型AIエージェントを強化する Clade モデルをホストします。ユーザーは、インターフェースの右下にあるチャット パネルを介してエージェントにアクセスできます。

ソリューション ユーザー インターフェース

図の 2。ソリューション ユーザー インターフェース

エージェントはユーザーの質問を説明し、呼び出すツールを決定し、ライブMongoDBデータベースに対して実行し、結果を観察し、最終応答が提供されるまでこのプロセスを繰り返します。

エージェントは、次のツールを使用します。

  1. search_events: MongoDBコレクションに対してハイブリッドベクトル検索とテキスト検索を実行します。

  2. get_stats: $facet集計を使用し、コレクション全体の気象、一時停止、時間数の分布、確率統計を返します。

  3. compare_scenarios: 返された 2 つの並列検索を並行して実行します。エージェントはその実行トレースをリアルタイムでUIにストリーミングするため、すべてのツール呼び出しと結果が発生時に表示されます。

compare_scenarios は、人間がループの中で人間を挿入する(HITL)パターンを示します。 [] がそれを呼び出すと、バックエンドはストリームを一時停止し、ツールが実行される前にUIに承認プロンプトを送信します。ユーザーは [承認] または [拒否] をクリックする必要があります。 60 秒以内に応答が到達しない場合、ツールは自動的にスキップされます。

注:このフローをトリガーするには、ユーザーはチャット パネルを開いて「ループ デモの人間」というラベルの付いた推奨される質問をクリックするか、エージェントに 2 つのドライバー シナリオを比較するようリクエストする任意の質問を入力します。 ".

このソリューションはすべてのイベントデータを単一のMongoDBコレクションに保存し、柔軟なドキュメントモデルを活用して、通常はリレーショナルシステム内の複数のテーブルにまたがってコストの結合が必要なマルチモーダル情報を一括で特定するため、イベントの複雑さが増すとクエリが高速化され、データモデルが簡素化されます。 。次のスニペットは、実際のドキュメントモデルを示しています。

{
"event_id": "e_00601",
"domain": "adas",
"source_dataset": "autonomous-driving-dataset",
"image_path": "adas/e_00601.jpg",
"image_url": null,
"image_embedding": [0.0412, -0.0183, 0.0097, "... 1021 more values ..."],
"text_description": "A foggy night scene on a rural road with low visibility and no other vehicles in sight.",
"metadata": {
"season": "fall",
"time_of_day": "night",
"weather": "foggy",
"environment": "rural",
"rarity_score": 0.847,
"source_index": 601
},
"embedding_metadata": {
"model": "voyage-multimodal-3.5",
"dimensions": 1024,
"original_bytes": 4096,
"quantized_bytes": 1024
},
"created_at": "2025-03-15T09:42:11.000Z",
"updated_at": null
}

各イベントドキュメントには、次のキー フィールドが含まれています。

  • event_id:イベントの一意の識別子。ディスクまたは S3 のイメージ ファイル名と一致します。

  • domain:イベントのカテゴリ(例: 自動ドライバーの場合は「das」)。

  • source_dataset: 元のデータセット。

  • image_path: ローカル ファイルシステム上のイメージへの相対パス。

  • image_url: イメージがクラウドストレージに移行されると、 S3 または Cloud Federation URLされます。ローカル開発では null。

  • image_embedding: Boyage AIによって生成された1024次元の浮動小数点数32ベクトル(vary-multimodal-3 または 3.5)。

  • text_description: フィールドの自然言語の説明。全文 Atlas Search に使用されます。

  • metadata: 以下を含むネストされたオブジェクト。

    • season:スキーム、夏、フォール、またはリージョン。

    • time_of_day: 未払い、未加工、または夜間。

    • weather: クリア、クラウド、降降量、または降順の条件。

    • environment: ドライバー環境(例えがフィールド)。

    • rarity_score: シナリオがどれだけ一般的かを示す 0-1 インジケーター。

  • embedding_metadata: 埋め込みモデル名、ベクトル次元、バイトサイズを元の浮動小数点数32と量子化された int8 表現の両方について追跡します。

  • created_at:ドキュメントが取り込まれたときの UTC タイムスタンプ。

イメージ参照、テキスト説明、メタデータ、およびベクトル埋め込みを単一のドキュメントに一緒に配置することで、ソリューションは結合を排除します。ハイブリッド検索クエリーは、ベクトル埋め込みとテキスト説明を同時に照合し、メタデータフィールド(seasonweathertime_of_day)に事前フィルターを適用し、1 回のラウンドトリップで完全な結果を返すことができます。

$facet$​​​​パイプライン実行: 複数のクエリは必要ありません。

ベクトル検索インデックスはインデックスレイヤーでスカラー量子化を適用し、1024 次元の浮動小数点数32埋め込みを 4,096 バイトから 1,024 バイトに圧縮します( ベクトル 8 )。このインデックス戦略は、メモリ内ベクトルのペイロードを 75% 削減し、フル忠実度検索と比較して約 90% の再現率を保持します。 domainmetadata.seasonmetadata.time_of_daymetadata.weather などのフィルター フィールドは、同じインデックス定義で直接宣言されます。この設定により、結果がアプリケーションに返される前に、$vectorSearch 内でメタデータの事前フィルタリングを実行できます。

詳細な README を含む完全なソースコードは、業界ソリューションの公開Githubリポジトリ で利用できます。ソリューションを配置するには、次の手順に従います。

  • Python 3.13

  • Node.js 18 以上(LTS 推奨)

  • Python依存関係管理のための rv

  • MongoDB Atlasクラスター

  • 投票AI APIキー

  • AWS認証情報と Amazon Web Services の認証情報

1

ソリューションでは、HubingFace 上の Mリスト 自動ドライブ データセット( jgwinryu/MOST-autonous-Driveing-dataset )を使用しますが、README のセットアップ手順に従って独自のデータセットを置き換えることができます。取り込みパイプラインでは、次の処理が行われます。

  • HgingFace からイメージをストリームします。

  • ダイバー受信を適用して、気象、ロール、時刻の組み合わせ全体でバランスの取れたカバレッジを確保します。

  • Vorage AI経由でマルチモーダル埋め込みを生成します(vary-multimodal-3)。

  • ベクトル検索および Atlas Search インデックスを持つドキュメントをMongoDBに挿入します。

バックエンド/ディレクトリからパイプラインを実行します。

uv run python services/ingestion_pipeline.py --sample-size 1000

このコマンドは約 1-2 GBをストリームし、15-30 分で 1,000 のさまざまなイメージを処理します。フラグを省略した場合、デフォルトのサンプルサイズは 500 です。

2

例環境ファイルをコピーし、認証情報を入力します。

cp backend/.env.example backend/.env

MONGODB_URIDATABASE_NAMEVOYAGE_API_KEY、および任意で AWS_REGION / AWS_PROFILE を設定します。

バックエンド/ディレクトリから FastAPIサーバーを起動します。

uv run uvicorn main:app --host 0.0.0.0 --port 8000
3

フロントエンド環境の例をフロントエンド/.env.local にコピーし、 npm Install で Node 依存関係をインストールし、 npm run db で開発サーバーを起動します。フロントエンドには http://localhost:3000 からアクセスできます。

cp frontend/EXAMPLE.env frontend/.env.local
cd frontend && npm install && npm run dev
4

コンテナ化された配置の場合は、 ルートディレクトリからビルドを実行します 。 Docker Composer はローカルAWS認証情報をマウントするので、バックエンドは静的キーなしで Red Hat にアクセスできます。コンテナを停止して削除するには、 クリーンアップ を使用します。

5

デモが本番環境になりましたが、「オーバーキャスト条件で一検索」のようなクエリを送信して、パイプラインがアクション でアクションのを確認します。パイプラインは次の順序で実行されます。

  1. 事前フィルター: ユーザーがメタデータフィルター(季数、気象、時刻)を選択した場合、これらのフィールドは $vectorSearch 内の事前フィルターとして適用され、検索の候補セットが絞り込まれます。

  2. $rankFusion ハイブリッド検索:voyage-multimodal-3 クエリは を使用して埋め込まれており、スカラー量子化インデックスに対してベクトル検索と全文MongoDB Search を同時に実行します。結果は、 レプリカ ランク 統合 を使用して単一の集計パイプラインでマージします。

  3. 再ランク付け: マージされた結果では、再ランク付けに Vyage AIrerank-2 が使用されます。これにより、精度が向上するために各候補者を元のクエリテキストに対してスコア付けします。

  • ハイブリッド検索によるエッジケース検出の高速化: MongoDB の を使用してベクトル検索と全文検索を組み合わせると、チームは自然言語クエリを使用してまれなドライバー$rankFusion シナリオを見つけられます。このアプローチでは、単純なセマンティック検索では欠落する可能性のある特定の技術用語、障害コード、またはセンサー ID にも一致します。

  • スカラー量化によるインフラストラクチャのコストの削減: MongoDB Atlas Vector Search1024 328は、 次元の浮動小数点数 ベクトルを int に圧縮し、呼び出しを維持しつつメモリを節約します。数百万の埋め込みを含むデータセットの場合、この圧縮はハードウェア要件の削減に直接つながります。

  • ドキュメントモデルによるマルチモーダル データ管理を簡素化します。イメージ、埋め込み、テキスト説明、メタデータを 1 つのMongoDBドキュメントに保存すると、運用データ用の個別のデータベース、 検索エンジン、ベクトルストアを維持するための同期オーバーヘッドがなくなります。

  • 対話アクセスを持つデータサイエンティストを強化: AWS Desktop がサポートする ReAact ベースのAIエージェントにより、エンジン データとの自然言語インタラクションが可能になります。カスタム集計クエリを作成する代わりに、チームは「フォアグラウンドとクリア気象のドライバー シナリオの比較」のような質問をし、ツール実行トレース付きの構造化分析を受け取ることができます。

  • Doyage AIリランク付けによる検索品質の向上 : ハイブリッド検索の後にリランク付けステップを追加すると、結果の精度が大幅に向上します。投票 AI の再ランク付けされた -2 モデルは、元のクエリに対して候補者を再スコア付けし、コンテキストに関連する最も関連性の高い結果を上位にプッシュします。

  • Humza Akhtar、MongoDB

戻る

技術ドキュメントのためのコンテキストを認識するための RG

項目一覧