自動運転センサー出力から得られた非標準のイベントを、multimodal AI、ハイブリッド検索、AWS BedrockとS3を活用した会話型エージェントを用いて分析し、MongoDBによってバックアップされています。
業種: 製造およびモーション制御
製品: MongoDB Atlas、 MongoDB Search、 MongoDB ベクトル検索、 MongoDB Voyage AI、
パートナー: Amazon Bedrock
ソリューション概要
オートメーション ドライバー システムは、高解像度のイメージ、LiDAR スイープ、フィルター フレーム、テレメトリー ログなど、大量のセンサーデータを生成します。この情報のフラッシュ内で、最も価値の高いデータ点は、多くの場合、エッジケースまたはエッジケースと呼ばれる通常ではない、または予期しないドライバー シナリオです。これらのデータ 点には、ロード内の移動販売、満杯の交差交差、通常ではない構築ゾーン、および標準的な検証およびロード テスト中にオートメーション システムがほとんど発生する可能性のない状況が含まれます。
これらのまれなシナリオを手動で見つけるのは遅く、コストがかかります。データサイエンティストは、特定のイベントを検索するためにカスタム フィルターとスクリプトの作成に多くの時間を費やします。手動検索方法は遅く、解決されるのは 1 年間に数例のエッジケースしか解決されない可能性がありますが、チームはその数を数千に増やす必要があります。
Multimodal Event エクスプローラーは、MongoDB Atlas SearchとVoyage AI 埋め込み および 対話AIエージェントを組み合わせることで、この挑戦を解決する方法の 1 つを示しています。このソリューションにより、チームは可能になります。
自然言語の説明を使用して、ドライバー イベント全体を検索します。
気象、バッチ、時刻などの環境条件でフィルタリングします。
データベースをリアルタイムでリージョンする ReAct ベースのAIエージェントと対話します。
このソリューションにより、エンジニアとデータサイエンティストは、数週間ではなく秒増やすで、頻度の低いドライバー シナリオを検出し、モデル学習サイクルを加速し、自動ドライバー システムの安全性と信頼性を向上させることができます。
参照アーキテクチャ
このソリューションは、ウェブアプリケーション、バックエンドサービス、アプリケーションデータ プラットフォーム間の明確な分離階層型アーキテクチャに従います。
図の 1。multimodal イベント エクスプローラーの高レベルのアーキテクチャ
Web アプリケーション
フロントエンドは Next.js で構築され、 MongoDBのエクスペリエンスに LeafyGreen UIコンポーネントを使用します。次の主要なインタラクション層を提供します。
メタデータフィルターのドロップダウンを含む検索バー。
一致したドライバーイベントのイメージを表示する結果グリッド。
AIエージェントによる対話クエリ用のチャット パネル。
バックエンド サービス
FastAPI ベースのPythonバックエンドがコア ロジックをオーケストレーションします。これにより次の内容が公開されます。
ベクトルと全文検索を組み合わせたハイブリッド検索API 。
結果を絞り込むためにVoyage AIのrerankingを適用する Reranker API 。
データベースを推論するために、 AWS Claude と ツール検出レジストリ を使用する Reactエージェント。
データプラットフォーム: MongoDB Atlas
すべてのデータは単一のMongoDB Atlasコレクションに存在します。各documentには、次の内容が含まれています。
イベントイメージ(または S3 内のそれへの参照)。
テキスト説明。
環境メタデータフィールド(しきい値、気象、時刻、リスク スコアなど)
Voyage AI の voyage-multimodal-3 model によって生成される 1024 次元 vector embeddings。
MongoDB Atlas は、ベクトル検索インデックス(スカラーquantization)、Full Text Searchインデックス、および集計パイプライン を提供し、すべてが統合APIを通じてクエリされます。
Voyage AI は、画像、メタデータ、クエリのベクトル表現を生成するためのembedding model(voyage-multimodal-3)と、結果の関連性を向上させるためのreranker model(rerank-2)を提供します。
外部サービス
AWS Bedrock は、このソリューションの対話型AIエージェントを強化する Claude モデルをホストします。ユーザーは、インターフェースの右下にあるチャット パネルを介してエージェントにアクセスできます。
図の 2。ソリューション ユーザー インターフェース
エージェントはユーザーの質問を説明し、呼び出すツールを決定し、ライブMongoDBデータベースに対して実行し、結果を観察し、最終応答が提供されるまでこのプロセスを繰り返します。
エージェントは、次のツールを使用します。
search_events: MongoDBコレクションに対してハイブリッドベクトル検索とテキスト検索を実行します。get_stats:$facet集計を使用し、コレクション全体の気象、一時停止、時間数の分布、確率統計を返します。compare_scenarios: 返された 2 つの並列検索を並行して実行します。エージェントはその実行トレースをリアルタイムでUIにストリーミングするため、すべてのツール呼び出しと結果が発生時に表示されます。
compare_scenarios は、人間がループの中で人間を挿入する(HITL)パターンを示します。Claude がそれを呼び出すと、バックエンドはストリームを一時停止し、ツールが実行される前にUIに承認プロンプトを送信します。ユーザーは [承認] または [拒否] をクリックする必要があります。60 秒以内に応答が到達しない場合、ツールは自動的にスキップされます。
注:このフローをトリガーするには、ユーザーはチャット パネルを開いて「ループ デモの人間」というラベルの付いた推奨される質問をクリックするか、エージェントに 2 つのドライバー シナリオを比較するようリクエストする任意の質問を入力します。 ".
データモデルアプローチ
このソリューションはすべてのイベントデータを単一のMongoDBコレクションに保存し、柔軟なdocument modelを活用して、通常はリレーショナルシステム内の複数のテーブルにまたがってコストの結合が必要なmultimodal情報を一括で特定するため、イベントの複雑さが増すとクエリが高速化され、データモデルが簡素化されます。 。次のスニペットは、実際のドキュメントモデルを示しています。
{ "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 }
ドキュメント構造
各イベントdocumentには、次のキー フィールドが含まれています。
event_id:イベントの一意の識別子。ディスクまたは S3 のイメージ ファイル名と一致します。domain:イベントのカテゴリ(例:自動ドライバー用の「ads」)。source_dataset: 元のdatasets。image_path: ローカル ファイルシステム上のイメージへの相対パス。image_url: イメージがクラウドストレージに移行すると、 S3 または Cloud Federation URLされます。ローカル開発では null。image_embedding: Voyage AIによって生成された1024次元の浮動小数点数32ベクトル(voyage-multimodal-3 または 3.5)。text_description: フィールドの自然言語の説明。全文 Atlas Search に使用されます。metadata: 以下を含むネストされたオブジェクト。season:スキーム、夏、フォール、またはリージョン。time_of_day: 未払い、未加工、または夜間。weather: クリア、クラウド、降降量、または降順の条件。environment: 動作環境(例:地域)。rarity_score: シナリオがどれだけ一般的かを示す 0-1 インジケーター。
embedding_metadata: embedding model名、dimensions、バイトサイズを元のfloat32と量子化された int8 表現の両方について追跡します。created_at: documentが取り込まれたときの UTC タイムスタンプ。
Why This model Works
イメージ参照、テキスト説明、メタデータ、および vector embeddings を単一の document に一緒に配置することで、ソリューションは結合を排除します。ハイブリッド検索クエリは、vector embeddingsとテキスト説明を同時に照合し、メタデータフィールド(season、weather、time_of_day)に事前フィルターを適用し、1 回のラウンドトリップで完全な結果を返すことができます。
$facet集計により、AIエージェントは、複数のクエリを必要とせずに、単一のパイプライン実行で、コレクション全体の分布統計(天気の内訳、季節ごとのイベント数、時間帯ヒストグラム、希少性スコア統計(平均、最小、最大)など)を計算できます。
スカラー quantization のベクトル インデックス
ベクトル検索インデックスはインデックスレイヤーでスカラー quantization を適用し、1024 次元の float32埋め込みを 4,096 バイトから 1,024 バイトに圧縮します( ベクトル 8 )。このインデックスの作成戦略は、メモリ内ベクトルのペイロードを 75% 削減し、フル忠実度検索と比較して約 90% の再現率を保持します。domain、metadata.season、metadata.time_of_day、metadata.weather などのフィルター フィールドは、同じインデックス定義で直接宣言されます。この設定により、結果がアプリケーションに返される前に、$vectorSearch 内でメタデータの事前フィルタリングを実行できます。
ソリューションのビルド
詳細な README を含む完全なソースコードは、Industry Solutions の 公開 Github リポジトリで入手できます。ソリューションを配置するには、次の手順に従います。
前提条件
Python 3.13
Node.js 18 以上(LTS 推奨)
Python依存関係マネジメントのための uv
MongoDB Atlasクラスター
Voyage AI APIキー
AWS認証情報と Amazon Web Services の認証情報
データセットを取り込む
ソリューションでは、HuggingFace 上の MIST 自動運転 Dataset(jongwonryu/MIST-autonomous-driving-dataset)を使用しますが、README の設定手順に従って独自のデータセットを置き換えることができます。取り込みパイプラインでは、次の処理が行われます。
HgingFace からイメージをストリームします。
ダイバー受信を適用して、気象、ロール、時刻の組み合わせ全体でバランスの取れたカバレッジを確保します。
Generates multimodal embeddings via Voyage AI (voyage-multimodal-3).
ベクトル検索および Atlas Search インデックスを持つ document をMongoDBに挿入します。
バックエンド/ディレクトリからパイプラインを実行します。
uv run python services/ingestion_pipeline.py --sample-size 1000
このコマンドは約 1-2 GBをストリームし、15-30 分で 1,000 のさまざまなイメージを処理します。フラグを省略した場合、デフォルトのサンプルサイズは 500 です。
フロントエンドの構成
フロントエンド環境の例をフロントエンド/.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
クエリ パイプラインを探索
デモが本番環境になりましたが、「オーバーキャスト条件で一検索」のようなクエリを送信して、パイプラインがアクション でアクションのを確認します。パイプラインは次の順序で実行されます。
事前フィルター: ユーザーがメタデータフィルター(季数、気象、時刻)を選択した場合、これらのフィールドは $vectorSearch 内の事前フィルターとして適用され、検索の候補セットが絞り込まれます。
$rankFusionハイブリッド検索: クエリはvoyage-multimodal-3を使用して埋め込まれており、スカラー量子化インデックスに対してベクトル検索と全文MongoDB Search を同時に実行します。結果は、 レプリカ ランク 統合 を使用して単一の集計パイプラインでマージします。reranker: マージされた結果では、rerankingに Voyage AI
rerank-2が使用されます。これにより、精度が向上するために各候補者を元のクエリテキストに対してスコア付けします。
キーポイント
ハイブリッド検索によるエッジケース検出の高速化: MongoDB の
$rankFusionを使用してベクトル検索と全文検索を組み合わせると、チームは自然言語クエリを使用してまれなドライバー シナリオを見つけられます。このアプローチでは、単純なセマンティック検索では欠落する可能性のある特定の技術用語、障害コード、またはセンサー ID にも一致します。スカラー quantization によるインフラストラクチャのコストの削減: MongoDB Atlas Vector Search は、 1024 次元の float32 ベクトルを int8 に圧縮し、呼び出しを維持しつつメモリを節約します。数百万の埋め込みを含むdatasetsの場合、この圧縮はハードウェア要件の削減に直接つながります。
document modelによるmultimodal data managementを簡素化します。イメージ、埋め込み、テキスト説明、メタデータを 1 つのMongoDB documentに保存すると、運用データ用の個別のデータベース、 検索エンジン、ベクトルストアを維持するための同期オーバーヘッドがなくなります。
対話アクセスを持つデータサイエンティストを強化: AWS Desktop がサポートする ReAact ベースのAIエージェントにより、エンジン データとの自然言語インタラクションが可能になります。カスタム集計クエリを作成する代わりに、チームは「フォアグラウンドとクリア気象のドライバー シナリオの比較」のような質問をし、ツール実行トレース付きの構造化分析を受け取ることができます。
Voyage AI rerankingによる検索品質の向上 : ハイブリッド検索の後にrerankingステップを追加すると、結果の精度が大幅に向上します。Voyage AI の再ランク付けされた -2 model は、元のクエリに対して候補者を再スコア付けし、コンテキストに関連する最も関連性の高い結果を上位にプッシュします。
作成者
- Humza Akhtar、MongoDB