Analice eventos no estándar derivados de la salida de sensores de conducción autónoma mediante IA multimodal, búsqueda híbrida y un agente conversacional impulsado por AWS Bedrock y S3, y respaldado por MongoDB.
caso de uso: Inteligencia artificial, Internet of Things
Industrias: Manufactura y movimiento
Productos: MongoDB Atlas, MongoDB Search, MongoDB búsqueda vectorial, MongoDB Voyage AI,
emparejar: Amazon Bedrock
Descripción general de la solución
Los sistemas de conducción autónoma generan enormes volúmenes de datos de sensores: imágenes de alta resolución, barridos de LiDAR, tramas de radar y registros de telemetría. Dentro de este diluvio de información, los datos más valiosos suelen ser los más raros: escenarios de conducción inusuales o inesperados, conocidos como edge o corner cases (casos extremos o límites). Estos puntos de datos incluyen animales en la carretera, intersecciones inundadas, zonas de construcción inusuales y otras situaciones que los sistemas autónomos rara vez encuentran durante la validación estándar y las pruebas en carretera.
Encontrar estos escenarios raros de forma manual es lento y costoso. Los científicos de datos a menudo pasan mucho tiempo escribiendo filtros y scripts personalizados para localizar eventos específicos. Los métodos de búsqueda manuales son lentos y pueden resolver sólo unos pocos casos extremos al año, mientras que los equipos necesitan escalar ese número a miles.
El Multimodal Event Explorer demuestra una manera de resolver este desafío al combinar MongoDB Atlas Search con incrustaciones de Voyage AI y un agente de IA conversacional. La solución permite a los equipos:
Para buscar a través de eventos de conducción utilizando descripciones en lenguaje natural.
Para filtrar por condiciones ambientales, como el clima, la estación y la hora del día.
Interactuar con un agente de IA basado en ReAct que razona sobre la base de datos en tiempo real.
Esta solución permite a ingenieros y científicos de datos descubrir escenarios de conducción poco comunes a escala de flota en segundos en lugar de semanas, acelerando los ciclos de entrenamiento de model y mejorando la seguridad y fiabilidad de los sistemas de conducción autónoma.
Arquitecturas de Referencia
La solución sigue una arquitectura en niveles con una clara separación entre la aplicación web, los servicios de backend y la plataforma de datos de la aplicación.
Figura 1. Arquitectura de alto nivel del Explorador Multimodal de Eventos
Aplicación web
El frontend está construido con Next.js y utiliza componentes LeafyGreen UI para una experiencia con la marca MongoDB. Proporciona las siguientes superficies principales de interacción:
Una barra de búsqueda con menús desplegables de filtro de metadatos.
Una cuadrícula de resultados que muestra imágenes coincidentes de eventos de conducción.
Un panel de chat para consultas conversacionales a través del agente de IA.
Servicios de backend
Un backend en Python basado en FastAPI orquesta la lógica central. Expone:
Una API de búsqueda híbrida que combina búsqueda vectorial y de full-text.
Una API de "reranker" que aplica el reranking de Voyage AI para refinar los resultados.
Un agente ReAct que utiliza AWS Bedrock (Claude) con un registro de descubrimiento de herramientas para razonar sobre la base de datos.
Plataforma de datos: MongoDB Atlas
Todos los datos residen en una única colección de MongoDB Atlas. Cada document contiene:
La imagen del evento (o una referencia a ella en S3).
Una descripción text.
Campos de metadatos ambientales, como estación, clima, hora del día y puntuación de rareza,
Un 1024-dimensional **vector embedding** generado por el **model** voyage-multimodal-3 de **Voyage AI**.
MongoDB Atlas proporciona el índice de búsqueda vectorial (con quantization escalar), un índice de texto completo y pipelines de agregación, todo a través de una API unificada.
Voyage AI proporciona el embedding model (voyage-multimodal-3) para generar representaciones vectoriales de imágenes, metadatos y querys, además de un reranker model (rerank-2) para mejorar la relevancia de los resultados.
Servicios Externos
AWS Bedrock aloja los modelos Claude, que potencian el agente de IA conversacional para esta solución. Los usuarios pueden acceder al agente a través del panel de chat ubicado en la esquina inferior derecha de la interfaz.
Figura 2. Interfaz de usuario de la solución
El agente razona sobre la pregunta del usuario, decide qué herramienta llamar, la ejecuta contra la base de datos MongoDB en tiempo real, observa el resultado y repite el proceso hasta que pueda proporcionar una respuesta final.
El agente utiliza estas herramientas:
search_events: Ejecuta una búsqueda híbrida de vectores y texto en la colección de MongoDB.get_stats: Utiliza una agregación$facetque devuelve estadísticas de condiciones meteorológicas, estaciones, distribuciones por hora del día y rareza en toda la colección.compare_scenarios: Realiza dos búsquedas paralelas que se devuelven una al lado de la otra. El agente transmite en tiempo real su rastro de ejecución a la interfaz de usuario, por lo que cada llamada de herramienta y resultado es visible a medida que ocurre.
compare_scenarios demuestra un patrón Humano en el Bucle (HITL). Cuando Claude decide llamarlo, el backend pausa la transmisión y envía una solicitud de aprobación a la Interfaz de Usuario antes de que la herramienta se ejecute. El usuario debe hacer clic en Aceptar o Rechazar. Si no se recibe respuesta dentro de 60 segundos, la herramienta se omite automáticamente.
Nota: Para activar este flujo, los usuarios pueden abrir el panel de chat y hacer clic en la pregunta sugerida con la etiqueta “Demostración con supervisión humana”, o escribir cualquier pregunta en la que se le pida a la agente que compare dos escenarios de conducción, como “Comparar escenarios de conducción en condiciones de niebla y clima despejado”.
Enfoque de modelo de datos
La solución almacena todos los datos de eventos en una única colección de MongoDB, aprovechando el modelo orientado a documentos para ubicar información multimodal que normalmente requeriría costosas combinaciones entre varias tablas en un sistema relacional, lo que resulta en queries más rápidas y un modelo de datos más simple a medida que aumenta la complejidad del evento. El siguiente snippet ilustra el modelo orientado a documentos en la práctica:
{ "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 }
Estructura del documento
Cada document de evento contiene estos campos clave:
event_idUn identificador único para el evento que coincide con el nombre del archivo de la imagen en el disco o en S3.domainCategoría del evento (por ejemplo, "ADAS" para la conducción autónoma).source_dataset: dataset de origen.image_path: Ruta relativa a la imagen en el sistema de archivos local.image_url: S3 o URL de CloudFront una vez que las imágenes se hayan migrado al almacenamiento en la nube; nulo en desarrollo local.image_embedding: vector float de 1024dimensiones32 generado por Voyage AI (voyage-multimodal-3 o 3.5).text_description: Descripción en lenguaje natural de la escena, utilizada para la búsqueda completa de texto en Atlas.metadataObjeto anidado que contiene:season: primavera, verano, otoño o invierno.time_of_dayal amanecer, al día, al ocaso o a la noche.weather—despejado, nublado, lluvioso o brumoso.environment: entorno de conducción (por ejemplo, rural).rarity_scoreIndicator de 0-1 de lo inusual que es el escenario.
embedding_metadata: Rastrea el nombre del embedding model, las dimensions vectoriales y los tamaños en bytes tanto para la representación original float32 como para la representación cuantificada int8.created_atTimestamp UTC de cuando se ingirió el document.
Por qué funciona este model
Al ubicar conjuntamente la referencia de la imagen, la descripción de texto, los metadatos y la vector embeddings en un solo document, la solución elimina las uniones. Una consulta de búsqueda híbrida puede coincidir con la vector embeddings y la descripción del texto simultáneamente, aplicar pre-filtros en los campos de metadatos (season, weather, time_of_day) y devolver resultados completos en una sola ida y vuelta.
La agregación $facet permite al agente de IA calcular estadísticas de distribución—como desgloses climatológicos, conteos de eventos por estación, histogramas por hora del día y estadísticas de puntuación de rareza (media, mínima, máxima)—en toda la colección en una sola ejecución de pipeline, sin necesidad de múltiples consultas.
Índice de vectores con quantization escalar
El índice de búsqueda vectorial aplica quantization escalar a nivel de índice, comprimiendo las incrustaciones de float32 de 1024dimensiones de 4,096 bytes a 1,024 bytes por vector (int8). Esta estrategia de indexación reduce la carga útil del vector en memoria en un 75% y retiene aproximadamente un 90% de recuperación en comparación con una búsqueda de fidelidad completa. Los campos de filtro, incluyendo domain, metadata.season, metadata.time_of_day y metadata.weather, se declaran directamente en la misma definición de índice. Esta configuración permite que el prefiltrado de metadatos ocurra dentro de $vectorSearch antes de que cualquier resultado sea devuelto a la aplicación.
Compilar la solución
El código fuente completo con un archivo README detallado está disponible en Industry Solutions Repositorio público de Github. Para implementar la solución, siga estos pasos.
Requisitos previos
Python 3.13
Node.js 18 o superior (se recomienda LTS)
uv para la gestión de dependencias de Python
Un clúster MongoDB Atlas
Una clave de la API de Voyage AI
Credenciales de AWS con acceso a Bedrock
Ingesta del datasets
La solución utiliza el MIST Autonomous Driving Dataset en HuggingFace (jongwonryu/MIST-autonomous-driving-dataset), pero puedes sustituir tu propio datasets siguiendo las instrucciones de configurar en el README. La pipeline de ingestión realiza los siguientes procesos:
Transmite imágenes desde HuggingFace.
Aplicar restricciones de diversidad para asegurar una cobertura equilibrada en todas las combinaciones de clima, estación y hora del día.
Genera incrustaciones multimodal a través de Voyage AI (Voyage-multimodal-3).
Inserta documentos con búsqueda vectorial e índices de búsqueda de Atlas Search en MongoDB.
Ejecuta el pipeline desde el directorio backend/:
uv run python services/ingestion_pipeline.py --sample-size 1000
Este comando transmite aproximadamente 1–2 GB y procesa alrededor de 1,000 imágenes diversas en 15–30 minutos. El tamaño de muestra por defecto es 500 si la bandera se omite.
Configure el Backend
Copia el archivo de entorno de ejemplo y rellénalo con tus credenciales:
cp backend/.env.example backend/.env
Configura MONGODB_URI, DATABASE_NAME, VOYAGE_API_KEY y, opcionalmente, AWS_REGION / AWS_PROFILE.
Inicia el servidor FastAPI desde el directorio backend/:
uv run uvicorn main:app --host 0.0.0.0 --port 8000
Configurar el frontend
Copia el ejemplo de entorno frontend a frontend/.env.local, instala las dependencias de Node con npm install y ejecuta el servidor de desarrollo con npm run dev. El frontend es accesible en http://localhost:3000.
cp frontend/EXAMPLE.env frontend/.env.local cd frontend && npm install && npm run dev
Explorar el query pipeline
Una vez que la demostración esté activa, envía una query como "conducción nocturna en condiciones nubladas" para ver la pipeline en acción. La pipeline se ejecuta en este pedido:
Pre-filtro: Si el usuario seleccionó filtros de metadatos (temporada, clima, hora del día), estos campos se aplican como pre-filtros dentro de $vectorSearch, restringiendo el conjunto de candidatos para la búsqueda.
$rankFusionBúsqueda híbrida: la query se convierte en una incrustación mediantevoyage-multimodal-3, y ejecuta simultáneamente una búsqueda vectorial en el índice de cuantificación escalar, así como una búsqueda de texto completo en MongoDB Search. Los resultados utilizan Reciprocal Rank Fusion (Fusión de Rangos Recíprocos) para fusionar en una única pipeline de agregación.Reranker: Los resultados combinados utilizan Voyage AI
rerank-2para el reranking, que puntúa cada candidato en comparación con el texto de la consulta original para mejorar la precisión.
Lecciones clave
Acelera el descubrimiento de casos marginales con búsqueda híbrida: combinar la búsqueda vectorial y la búsqueda de texto completo a través de
$rankFusionde MongoDB permite que los equipos encuentren escenarios de conducción poco comunes usando consultas de lenguaje natural. Este enfoque también combina términos técnicos específicos, códigos de falla o ID de sensores que una búsqueda semántica puramente podría pasar por alto.Reduce los costos de infraestructura con quantization escalar: MongoDB Atlas Vector Search comprime 102432 los vectores float de dimensiones a8 int, logrando ahorros de memoria mientras se preserva la recuperación. Para datasets con millones de incrustaciones, esta compresión se traduce directamente en menores requisitos de hardware.
Simplifica la gestión de datos multimodal con el modelo orientado a documentos: Almacenar imágenes, incrustaciones, texts descripciones y metadatos en un solo document MongoDB elimina la sobrecarga de sincronización de mantener bases de datos separadas para datos operativos, un motor de búsqueda y un almacén de vectores.
Empodera a los científicos de datos con acceso conversacional: el agente de IA basado en ReAct respaldado por AWS Bedrock permite la interacción en lenguaje natural con los datos de la flota. En vez de escribir consultas de agregación personalizadas, los equipos pueden realizar preguntas como “Compara escenarios de conducción en condiciones de niebla frente a condiciones de clima claro” y recibir análisis estructurados con rastros de ejecución de herramientas.
Mejora la calidad de la recuperación con el reranking de Voyage AI: añadir un paso de reranking después de una búsqueda híbrida mejora significativamente la precisión de los resultados. El modelo rerank-2 de Voyage AI vuelve a puntuar los candidatos en relación con la query original, elevando los resultados más contextualmente relevantes a la parte superior.
Autores
- Humza Akhtar, MongoDB