La IA Física transformará industrias en el mundo físico, pero la robótica aún carece de la capa de datos unificada necesaria para iterar a la velocidad que exige la IA moderna. El desafío central es que el aprendizaje robótico opera con datos físicos: flujos multimodales y de múltiples frecuencias vinculados al tiempo, el espacio y la corporeidad. La infraestructura existente se construyó principalmente en torno a datos web y tiene dificultades con estas propiedades.
En @rerundotio estamos construyendo una capa de datos unificada para datos físicos, ayudando a los equipos a entrenar y desplegar inteligencia para el mundo real.
El lanzamiento más grande de Rerun hasta ahora
Rerun ha sido conocido principalmente por visualizar datos de series temporales multimodales. Durante el último año y medio, hemos estado construyendo silenciosamente las otras piezas de una capa de datos unificada para respaldar todo el recorrido, desde la recolección hasta el entrenamiento. Con el lanzamiento de Rerun SDK 0.32, ¡esas capacidades llegan al código abierto!
Este es el lanzamiento más grande desde que Rerun se publicó como código abierto hace tres años, y representa una enorme expansión de los tipos de trabajo que puedes hacer con Rerun.
Estamos estabilizando el formato de archivo y añadiendo un nuevo conjunto de APIs de lectura y escritura de bajo nivel para los archivos. Estamos agregando una nueva API para manipular fragmentos de datos de Rerun diseñada para procesar y normalizar datos robóticos reales. Estamos ampliando nuestro soporte de mensajes MCAP y ROS 2 para mejorar la experiencia lista para usar. Estamos añadiendo una nueva interfaz de revisión de conjuntos de datos para agilizar la revisión de conjuntos de entrenamiento. El servidor de catálogo de código abierto ahora indexa archivos .rrd en disco para que tú o tu agente puedan escribir consultas genéricas sobre directorios de grabaciones robóticas. Sobre esa misma base, también estamos lanzando un cargador de datos de PyTorch para que puedas entrenar modelos robóticos directamente en archivos .rrd sin necesidad de exportar a un formato específico de entrenamiento.
El ecosistema de la robótica carecía de un marco unificado lo suficientemente flexible como para respaldar todo el ciclo de vida de los datos de aprendizaje robótico. Con 0.32, esa base está emergiendo.
Además de este enorme lanzamiento de código abierto, también anunciamos Rerun Hub, nuestro catálogo de datos y motor de almacenamiento comercial. Rerun Hub ahora está en vista previa privada y extiende el SDK de Rerun a conjuntos de datos respaldados por almacenamiento de objetos. Proporciona un catálogo compartido y una capa de acceso para transformar, consultar, visualizar y transmitir datos robóticos a una escala mucho mayor, preservando el mismo modelo de datos y las mismas API.
Usa Rerun Hub si tu ambición es escalar datos más allá de lo que cabe en tu máquina local, ¡y hacerlo rápido! Si eres un equipo que construye un producto en torno al aprendizaje robótico y estás pensando en tu capa de datos, contáctanos.
El resto de esta publicación tiene dos partes. Primero, una introducción a la arquitectura de datos que creemos que la IA Física necesita para escalar. Segundo, un recorrido por las nuevas capacidades en Rerun SDK 0.32 que ponen esa arquitectura en práctica.
El aprendizaje robótico necesita una capa de datos diseñada específicamente para datos físicos
Como se describe en El impuesto de la capa de datos para el aprendizaje robótico, gran parte de la fricción que frena el progreso de la IA Física proviene de intentar forzar datos físicos a través de una infraestructura diseñada para cargas de trabajo tradicionales de software y análisis. Lo que se necesita es una capa de datos construida para datos multimodales y de múltiples frecuencias, que respalde todo lo necesario para iterar sobre la inteligencia robótica, desde la recolección hasta el entrenamiento y el despliegue.
Los agentes de codificación significan que los usuarios necesitan control total sobre la capa de cómputo y aplicación
Para servir todo el flujo de trabajo de recolección, normalización, posprocesamiento, curación y entrenamiento, los equipos necesitan una variedad de herramientas y trabajos de cómputo. Esas herramientas y trabajos pueden, por ejemplo, codificar las formas específicas en que opera un equipo o las técnicas que utilizan para impulsar la calidad de los datos a escala, lo que los convierte en un área clave de diferenciación que los equipos deben poseer.
Los agentes de codificación están haciendo cada vez más factible que los equipos diseñen estas herramientas y trabajos de cómputo exactamente como quieren, siempre que tengan control a nivel de código. Debido a esto, muy pocos equipos aceptarán no tener ese control. Por eso el SDK de Rerun es completamente de código abierto y está diseñado como un marco sobre el que puedes construir, en lugar de una plataforma SaaS de jardín amurallado. Incluso el visor está diseñado como una biblioteca para que nunca te quedes atascado. Rerun siempre ha sido primero el código y hemos redoblado esfuerzos para que sea aún más fácil de usar para los agentes. Eso incluye trabajo próximo en renderizado completamente sin cabeza y navegación del visor para ayudar a los agentes a ver datos físicos como los humanos.
La mayoría de los equipos ya están construyendo aplicaciones personalizadas únicas y scripts de procesamiento adaptados a sus propios flujos de trabajo. Sin construir sobre una base sólida, terminas con piezas verticales difíciles de razonar y que no se componen bien, lo que pone un límite a las ganancias de productividad.
La capa de datos debe manejar las partes difíciles del uso de datos físicos a gran escala

Las capacidades centrales necesarias para servir todo el viaje de los datos desde la recolección hasta el modelo son la visualización, la consulta analítica, la transformación y el entrenamiento. Todas estas capacidades deben lidiar con datos multimodales y de múltiples frecuencias que pueden llevar semántica robótica como relaciones 3D o forma. Para evitar errores y datos inconsistentes, es necesario manejar las sutilezas de este tipo de datos de manera consistente dondequiera que se utilicen. Por ejemplo, la alineación temporal y las transformaciones 3D deben comportarse de manera consistente en el preprocesamiento, la consulta, la visualización y la revisión del conjunto de datos.
Para facilitar la iteración tanto en el bucle de datos-experimento como en las herramientas que lo impulsan, es conveniente construir sobre una única capa de datos unificada que haga que las transferencias sean triviales y las aplicaciones superiores simples. Eso significa que la capa de datos debe ser lo suficientemente flexible para manejar los requisitos de todas las capacidades centrales de aplicación y cómputo. Por ejemplo, la visualización y el cómputo requieren acceso aleatorio rápido a series temporales multimodales, mientras que las consultas analíticas requieren escaneos eficientes de columnas, y tanto el cómputo de posprocesamiento a gran escala (CPU) como el entrenamiento (GPU) requieren transmisión de datos paralela de alto ancho de banda.
Los datos físicos se comportan fundamentalmente de manera diferente a los datos web y de negocio, lo que significa que se benefician de diferentes abstracciones de almacenamiento y consulta.
La unidad de almacenamiento central para datos físicos es un fragmento de columna
Los datos físicos tienen dos características diferenciadoras:
La primera es que es de múltiples frecuencias: diferentes sensores registrarán datos a frecuencias muy diferentes. El GPS puede estar a 1-10 Hz, las cámaras a 10-30 Hz, los ángulos de las articulaciones a 100-200 Hz y la IMU a 1 kHz. En el posprocesamiento, podrías calcular incrustaciones semánticas para cada décimo fotograma de la cámara o descripciones de escenas al inicio y final de cada episodio.
La segunda es que es multimodal: diferentes sensores registran datos de tamaños muy diferentes. La IMU y el GPS solo necesitan un puñado de bytes para codificar un par de números, mientras que una cámara RGB puede usar muchos MB para cada fotograma de imagen.
Si almacenaras una grabación robótica en una tabla donde una fila representa una marca de tiempo y una columna representa un flujo de datos, el aspecto de múltiples frecuencias generalmente haría que esta tabla fuera muy dispersa; para cualquier fila dada, la mayoría de las columnas probablemente estén vacías. El aspecto multimodal de los datos conduce a un gran desequilibrio de memoria, ya que una sola fila puede contener celdas que difieren en tamaño en órdenes de magnitud. La infraestructura de datos tabulares existente maneja esta combinación muy mal.
Los datos multimodales y de múltiples frecuencias deben almacenarse en fragmentos que contengan subconjuntos de las filas y columnas de un conjunto de datos. La capacidad de, por ejemplo, colocar un millón de muestras de IMU en un fragmento y solo unos pocos paquetes de video en otro fragmento permite resolver tanto los problemas de dispersión como de desequilibrio de memoria.

Dentro del fragmento, el almacenamiento orientado a columnas optimiza para una mejor compresión y consultas de escaneo de columnas, mientras que el almacenamiento orientado a filas optimiza para escrituras simples.
En Rerun creemos que los fragmentos de columna representan el mejor equilibrio para los sistemas de datos de aprendizaje robótico, y hemos estandarizado nuestra arquitectura en torno a ellos como la abstracción de almacenamiento central.
El formato de archivo .rrd de Rerun está construido alrededor de fragmentos de columna
El formato de archivo nativo de Rerun, .rrd, es la representación en disco de la abstracción de fragmentos de columna. Internamente, cada fragmento de columna se codifica como un lote de registros de Apache Arrow junto con metadatos semánticos que describen cómo deben interpretarse los datos. Apache Arrow es el estándar de la industria para la ciencia de datos, y usar Arrow significa que tenemos una ruta rápida de copia cero hacia DataFusion, Pandas y Polars.

Los metadatos en cada fragmento contienen información semántica sobre cómo interpretar los datos ("esto es un sensor IMU, esto es un GPS, …") para que puedan transportarse a través de tuberías de procesamiento y aún así ser interpretados y visualizados automáticamente.
Los fragmentos de columna codificados se envuelven en mensajes protobuf y se concatenan para formar un archivo .rrd. Un pie de página al final del archivo apunta a un índice, permitiendo acceso aleatorio rápido a fragmentos individuales sin escanear todo el archivo.

Comparaciones con otros formatos
Apache Parquet es un formato columnar en disco, comúnmente usado junto con Arrow. Organiza sus datos en grupos de filas, pero a diferencia de los fragmentos en .rrd, estos grupos no pueden superponerse: cada grupo de filas contiene todas las columnas en un rango denso de filas. Esto lo hace inadecuado para datos robóticos multimodales y de múltiples frecuencias. Puedes agregar nuevas filas, pero no puedes agregar nuevas columnas (sin evolución de esquema).
MCAP es un formato para grabar registros robóticos en tu robot. Está diseñado para ser rápido y flexible de escribir, con una fuerte compatibilidad con ROS. Sin embargo, es esencialmente un formato contenedor de mensajes opacos (codificados con JSON, protobuf, CBOR, etc.) y no está optimizado para consultas analíticas columnares. Los escaneos y uniones grandes también son lentos, ya que necesitas decodificar cada mensaje.
Lance es un formato nuevo, construido explícitamente para datos multimodales y acceso aleatorio (lo cual es extremadamente importante para el entrenamiento). A diferencia de Parquet, admite evolución de esquema. Sin embargo, un conjunto de datos de Lance sigue siendo una pila vertical de fragmentos alineados por filas, por lo que los flujos de múltiples frecuencias se inflarán con nulos.
NCore es un nuevo formato de Nvidia, construido para reconstrucción neuronal. Las múltiples frecuencias se admiten de forma nativa mediante marcas de tiempo por componente y la alineación espacial mediante un gráfico de pose. Sin embargo, el esquema es cerrado (componentes de sensor canónicos, no datos arbitrarios definidos por el usuario), está basado en Zarr en lugar de ser nativo de Arrow, y no está construido para servir a un motor de consultas SQL / dataframe genérico.
Cada característica que tu equipo necesita y que un formato de archivo no proporciona significa otra tubería que mantener sincronizada y herramientas adicionales que aprender para que tu equipo tenga éxito. El formato de Rerun es la única opción que puede servir todos los casos de uso necesarios para transformar grabaciones robóticas en inteligencia. Te permite mantener los datos en las marcas de tiempo originales, mientras aún puedes consultar y visualizar desde la misma fuente de datos, y transmitir al entrenamiento. Tiene suficiente estructura para construir sistemas de datos unificados sobre él, pero es lo suficientemente flexible para optimizar diferentes patrones de lectura y escritura.
Una capa de indexación, esquema y metadatos sobre fragmentos de columna simplifica el uso de datos físicos a gran escala
Escanear todos los fragmentos en un conjunto de datos para analizar una sola señal escala mal incluso para conjuntos pequeños, por lo que para usarlos de manera efectiva necesitas una capa de metadatos e indexación que pueda ayudar a encontrar los fragmentos correctos para cualquier consulta. Esto se parece mucho al patrón clásico de data lakehouse. En nuestro caso, un solo conjunto de datos o grabación está compuesto por fragmentos heterogéneos que no comparten el mismo esquema. Las herramientas clásicas de procesamiento de datos están construidas para manejar tablas con un esquema uniforme. Por lo tanto, una capa de indexación y metadatos al estilo lakehouse para datos físicos también necesita realizar un seguimiento de estos esquemas individuales para poder materializar esquemas combinados de cualquier flujo sobre la marcha, de modo que las herramientas clásicas de datos puedan trabajar con ellos. Por ejemplo, si actualizas tu IMU a una que publique datos de campo magnético en sus mensajes, esta adición es compatible con tu IMU anterior que no contenía este campo, sin necesidad de reescribir datos históricos para compatibilidad.

Los fragmentos de columna combinados con una indexación eficiente te permiten obtener exactamente los datos que necesitas sin pagar una penalización por flujos no relacionados almacenados junto a ellos. No tienes que elegir entre hacer que las operaciones comunes sean rápidas y poder perseguir errores de cola larga porque exportaste datos comunes a un almacén separado.
Además de los beneficios de rendimiento, esta capa nos permite abstraer los archivos y presentar una API unificada para todos los usuarios de datos físicos en las capas superiores. A menudo, los datos robóticos se almacenan en un archivo y la calibración en otro; abstraer estos detalles de implementación es una parte importante para reducir la fricción de datos y simplificar la capa de cómputo y aplicación.
El procesamiento y entrenamiento a gran escala requiere transmisión selectiva directamente desde el almacenamiento de objetos
Los conjuntos de datos de aprendizaje robótico ya pueden ser muy grandes y se volverán mucho más grandes a medida que los equipos sigan las leyes de escalado para lograr modelos cada vez más capaces. Para procesar esta escala de datos, a menudo necesitas distribuirte a un gran número de CPUs para posprocesamiento o GPUs para entrenamiento. En estos casos, es importante que el rendimiento de datos pueda escalar con las necesidades de este cómputo.
Tanto para maximizar el rendimiento como para minimizar los costos de salida, deseas ejecutar el cómputo cerca de los datos. Al mismo tiempo, el cómputo de GPU puede ser difícil de conseguir, por lo que muchos equipos terminan alquilando en diferentes ubicaciones con el tiempo. Todos estos factores significan que deseas poder separar el almacenamiento de los servicios que manejan la indexación y los metadatos.

En Rerun, las consultas comienzan desde el SDK de Rerun que luego consulta a Rerun Hub, que es responsable de saber qué fragmentos se necesitan para resolver la consulta. Dependiendo de la configuración, el SDK solicita fragmentos a través de un proxy en caché en Rerun Hub, o rangos de bytes en el almacenamiento de objetos. Esto permite una API de acceso simplificada, transmisión selectiva de fragmentos y el ancho de banda máximo de transmisión desde el almacenamiento de objetos subyacente.
Rerun SDK 0.32 es un conjunto de herramientas de datos unificado para el aprendizaje robótico
Rerun 0.32 es el lanzamiento más grande desde que se publicó como código abierto originalmente en febrero de 2023. Expande los casos de uso prácticos del SDK desde el registro, la visualización y las consultas más simples hasta el viaje completo de los datos, desde la recolección hasta el entrenamiento. A continuación, un recorrido por las nuevas funciones que destacan esta expansión. Consulta las notas de la versión para más detalles.
Un formato de archivo estable con APIs de Python a nivel de fragmento
En Rerun 0.23 anunciamos compatibilidad hacia atrás versión a versión para el formato de archivo .rrd de Rerun. En la práctica, no hemos roto la compatibilidad entre ninguna versión desde entonces y ahora nos sentimos seguros de prometer compatibilidad hacia atrás general en el formato de archivo. Continuaremos evolucionando el formato para impulsar capacidades y rendimiento, pero los datos antiguos siempre se cargarán.
Antes de 0.32, solo podías escribir archivos .rrd usando un importador de otro formato o las APIs de nivel superior log o send_columns, y la única forma de leer datos era a través de consultas de dataframe o SQL. Con este lanzamiento, ahora introducimos APIs de lectura y escritura a nivel de fragmento, que te dan un control preciso sobre la forma exacta de tus datos.
En conjunto, estos dos cambios significan que .rrd es lo suficientemente maduro para que un amplio conjunto de equipos construyan sus capas de datos sobre él.
APIs de procesamiento de fragmentos para la manipulación de datos nativos de robótica
Los datos robóticos a menudo son desordenados. Normalizar datos de múltiples fuentes en algo que los equipos puedan analizar y entrenar se vuelve complejo rápidamente. Esta parte de la tubería de datos a menudo consiste en scripts de Python improvisados que son lentos y están llenos de errores sutiles.
Para resolver estos problemas, estamos introduciendo un nuevo conjunto de (experimentales) APIs de procesamiento de fragmentos. Proporcionan una interfaz de carga uniforme para formatos como .rrd, MCAP, Parquet y URDF que producen flujos de fragmentos de Apache Arrow. Luego puedes definir fácilmente tuberías de procesamiento sobre esos flujos.
Los datos robóticos a menudo vienen en forma de estructuras profundamente anidadas, y la normalización y manipulación de datos a menudo significa remodelar, convertir y transformar su contenido. Para satisfacer esa necesidad, también estamos lanzando Lenses, un lenguaje declarativo para seleccionar y transformar este tipo de datos, inspirado en jq.
Estas APIs han sido diseñadas explícitamente para y probadas con agentes de codificación en mente, y encontramos que tienen mucho más fácil producir código correcto y eficiente con las APIs de procesamiento de fragmentos de Rerun que con Python genérico. En el futuro, estas transformaciones de procesamiento de fragmentos podrán ejecutarse en el visor y en la nube a través de Rerun Hub, además del ejecutor actual del lado del SDK.
Soporte integrado expandido para MCAP, tipos ROS 2 y visualizaciones robóticas
Creemos que es fundamental que sea fácil ingerir y hacer que todos los datos robóticos sean útiles en Rerun. Al mismo tiempo, hay muchos datos que pueden manejarse perfectamente sin personalización, y continuamos mejorando esa experiencia en cada lanzamiento. 0.32 trae un rendimiento mejorado y más soporte listo para usar para MCAP y tipos comunes de ROS 2, así como una expansión de las visualizaciones disponibles. Consulta la lista actualizada de mensajes con soporte integrado aquí.
Las cuadrículas de ocupación, o mapas 2D en 3D, son importantes para los robots móviles y han sido una función muy solicitada en Rerun durante un tiempo. Por lo tanto, 0.32 agrega el nuevo arquetipo y visualizador GridMap, junto con soporte integrado para los mensajes ROS 2 correspondientes.
Otra solicitud común ha sido la capacidad de visualizar cambios de estado a lo largo del tiempo. 0.32 trae una nueva Vista de Línea de Tiempo de Estado experimental. Si has estado esperando esta vista en Rerun, nos encantaría recibir tus comentarios sobre qué más te gustaría ver en la vista.
Servidor de catálogo con consultas SQL o dataframe indexadas sobre el contenido de muchas grabaciones en disco
Las APIs de Catálogo en el SDK de Rerun te permiten escribir consultas SQL o Dataframe completamente genéricas en conjuntos de datos robóticos. Cuando está conectado a Rerun Hub, esto ha soportado conjuntos de datos a gran escala durante algún tiempo, mientras que el servidor de código abierto solo ha soportado conjuntos de datos que caben completamente en memoria. Con 0.32, estamos expandiendo el servidor de catálogo de código abierto para indexar rangos de bytes de archivos en el disco local, por lo que ahora puedes analizar fácilmente cualquier directorio local de grabaciones robóticas en archivos .rrd solo con el SDK de código abierto.
Una nueva interfaz para la revisión rápida de conjuntos de datos para entrenamiento y evaluación
En 0.32 estamos lanzando la primera versión de nuestra herramienta (experimental) de revisión de conjuntos de datos. Te permite echar un vistazo rápido a muchas grabaciones a la vez, para buscar anomalías y desarrollar intuición sobre tus datos. También te permite marcar grabaciones, lo que la hace útil como una herramienta de anotación simple. La vista se configura usando un blueprint normal de Rerun.
Muchos equipos de aprendizaje robótico han solicitado esta funcionalidad y nos encantaría recibir todos tus comentarios sobre cómo convertir esto en la herramienta de revisión de conjuntos de datos más eficiente posible.
Un cargador de datos para aprendizaje robótico que admite mezcla simple de conjuntos de datos y búsquedas aleatorias en archivos .rrd
¡Hemos comenzado a trabajar en una de nuestras funciones más solicitadas: un cargador de datos de PyTorch para Rerun! El nuevo módulo rerun.experimental.dataloader expone las grabaciones de Rerun como conjuntos de datos de PyTorch iterables o de estilo mapa, transmitiendo imágenes codificadas, escalares y video comprimido (h264/h265/av1) sobre la marcha. El acceso aleatorio, la precarga de múltiples trabajadores y el soporte DDP funcionan listos para usar. Es compatible tanto con el servidor de catálogo OSS como con nuestro producto comercial Rerun Hub para cuando quieras entrenar directamente en grandes conjuntos de datos respaldados por almacenamiento de objetos.
Estamos increíblemente emocionados de lanzar este cargador de datos de entrenamiento para que la comunidad comience a experimentar. Tenemos la intención de convertirlo en el mejor cargador de datos de transmisión para el aprendizaje robótico imaginable y nos encantaría recibir todos tus comentarios y solicitudes.
Poder entrenar directamente desde la misma capa de datos que usas para visualización, análisis y transformación es crucial para que los equipos puedan unificar verdaderamente sus capas de datos, que es como pueden simplificar realmente los sistemas y acelerar los ciclos de experimentación.
Rerun Hub está en vista previa privada y construido para escalar
Durante el último año y medio, hemos estado construyendo silenciosamente la capa de datos necesaria para acelerar la llegada del aprendizaje robótico a aplicaciones valiosas del mundo real, junto con un conjunto inicial de excelentes startups y laboratorios. Actualmente manejamos petabytes de datos de entrenamiento robótico y estamos en un punto en el que estamos listos para incorporar a más equipos a nuestro producto comercial Rerun Hub, que ahora entra en vista previa privada.
Rerun Hub es un catálogo y motor de almacenamiento que se conecta al SDK de Rerun de código abierto para facilitar el trabajo con datos de aprendizaje robótico, desde la recolección hasta el entrenamiento y el despliegue. Actúa como una capa de gestión y acceso uniforme que impulsa todas las capacidades centrales de datos: ingesta, visualización, consultas analíticas, transformación y entrenamiento. Los datos se pueden almacenar en cualquier almacenamiento de objetos compatible con S3, y Rerun Hub media de manera eficiente la transmisión selectiva directa desde el almacenamiento de objetos al SDK de Rerun en tus trabajos de entrenamiento o posprocesamiento masivamente paralelos. El hub centralizado también simplifica la colaboración y la revisión automatizada al facilitar la construcción de enlaces de datos compartibles, ya sea mediante código o de forma interactiva en el visor.

Si estás construyendo robots inteligentes y estás interesado en actualizar tu capa de datos para poder iterar más rápido, contáctanos. Para equipos que ya han alcanzado cierta escala con sistemas existentes complejos, Rerun es fácil de adoptar por partes y también podemos ofrecer ingenieros desplegados en el campo para ayudarte a actualizar sin mover a personas clave de otras prioridades principales.





