Robots en una sola pila: Strands, LeRobot y Hugging Face Storage Buckets para el bucle completo — de grabación a despliegue

21 agosto 202620 vistas

En el nuevo material de Amazon, se muestra cómo construir un proceso de extremo a extremo basado en el código abierto Strands Agents SDK: el robot registra una demostración a un paquete de almacenamiento, el modelo se entrena en un conjunto de datos de streaming directamente desde el Hub, y el puesto de control terminado regresa al mismo hardware cambiando un solo parámetro. Este enfoque elimina la necesidad de conversión y almacenamiento local de copias de datos.

Robots en una sola pila: Strands, LeRobot y Hugging Face Storage Buckets para el bucle completo — de grabación a despliegue

Cierre cerrado sin cambio de contexto

Una tubería de proyecto robótica tradicional se divide en etapas aisladas: primero, las demostraciones se recogen en hardware real o simulado, luego los datos se transfieren a un sistema separado para la formación, y después de eso , el modelo entrenado debe ser desplegado de nuevo en el robot. Cada transición requiere conversión de formato, sincronización manual y configuración del medio ambiente. Como resultado, pasa mucho tiempo de grabar el primer episodio a ejecutar la política, y cualquier cambio en los datos se convierte en una operación separada.

El nuevo enfoque, presentado por el equipo de AWS en agosto de 2026, cierra este bucle en un solo lugar. En lugar de varias herramientas desconectadas, se propone un solo agente que puede registrar demostraciones, enviarlas al almacenamiento en la nube, entrenar un modelo en ellos, y devolver un puesto de control actualizado al robot. La idea clave no es transferir datos entre sistemas, sino trabajar con él en una forma de streaming, directamente desde el almacenamiento.

Herramientas de agente y SDK

La base de la solución es Strands Robots — un SDK abierto de AWS distribuido bajo la licencia Apache 2.0. Proporciona abstracciones robóticas, simulación y LeRobot Apilar como un conjunto de Agentes. Estas herramientas se componen en un solo agente Strands: el robot, simulador y procesamiento de datos se convierten en módulos intercambiables.

El centro Robot() fábrica resuelve un nombre contra un registro de dispositivos compatibles. El registro incluye manipuladores, robots humanoides, bases móviles y brazos independientes. Una de las configuraciones disponibles es SO-100, un manipulador ligero utilizado a menudo para experimentos. Gracias a este registro, el mismo código funciona tanto con simulación como con un dispositivo real: sólo tiene que cambiar el parámetro modo.

El agente recibe un comando en lenguaje natural, como "recordar una demostración y sincronizarlo a un cubo", y llama la herramienta apropiada en sí. Esto permite construir escenarios complejos sin una secuencia codificada de pasos — la lógica de control se delega en el modelo de lenguaje, mientras que el SDK maneja operaciones de bajo nivel con el robot y los datos.

Formato de datos unificado

Un detalle importante es el LeRobot formato de dataset. En el momento de la publicación, más de 90.000 datasets y modelos sobre Hugging Face Hub ya utiliza este formato, publicado por más de 8.000 autores diferentes. Gracias a esta adopción, LeRobot se ha convertido en el estándar de facto para almacenar demostraciones robóticas.

Una grabación realizada a través de Strands Robots se guarda directamente en el formato LeRobotDataset. Esto significa que cualquier herramienta que pueda leer LeRobot puede trabajar con estos datos sin ninguna conversión. No hay necesidad de escribir convertidores separados para cada backend: los datos se leen igualmente bien en scripts de entrenamiento, herramientas de visualización y otros marcos robóticos.

Agilización del almacenamiento

Para almacenar grandes volúmenes de manifestaciones, Cubos de almacenamiento facial hugging se utiliza — un nuevo tipo de almacenamiento de objetos introducido en marzo de 2026. A diferencia de los repositorios de conjuntos de datos regulares, un cubo es mutable, almacenamiento no versionado construido sobre la tecnología Xet. Esto proporciona dos ventajas importantes: escribir y actualizar los datos sin crear nuevas versiones, y transferir eficientemente sólo los bytes cambiados durante la sincronización.

El cubo vive en el mismo hf:// namespace como datasets regulares, por lo que el familiar hf CLI se utiliza para trabajar con él. Los datos pueden ser transmitidos directamente desde el almacenamiento sin descargar el conjunto de datos completo. Para grandes videos de demostración, esto es crítico: no hay necesidad de esperar una descarga completa para iniciar el entrenamiento.

El bucle de datos en la práctica

Para entender cómo funciona todo esto juntos, veamos un ejemplo del blog oficial AWS, donde el Strands Robots, LeRobot, y Cubos de almacenamiento facial hugging La pila se utiliza para un bucle completo. Se crea un agente con una herramienta robot, con modo de simulación activa por defecto:

python de hilos importan Agente de hilos robots importan Robot

sim = Robot("so100") agente = Agente(tools=[sim])

El agente puede recibir un comando en lenguaje natural: "graba una demostración pick-the-cube y sincronízala a la my-org/robot-fave repositorio." El comando no es analizado por una plantilla predefinida — el modelo de razonamiento del agente determina la secuencia de acciones en sí: iniciar la grabación, formar un conjunto de datos y enviarlo al cubo.

python agent("Record a pick-the-cube demo y sincronizarlo a mi-org/robot-fave.")

La sincronización está diseñada para que en repetidas carreras, sólo se suban bytes cambiados — no hay necesidad de reescribir todo el conjunto de datos. Después de la demostración se salva, la misma Robot() objeto puede transmitir el conjunto de datos de nuevo. Dentro del stream_dataset() método, los datos se leen marco por marco, el vídeo se decodifica en la mosca , y por lo tanto no se requiere copia local del conjunto de datos.

python for batch in sim.stream dataset( "my-org/robot-fave/cube pick", repo type="bucket", ).dataloader(batch size=64): ...

Este código se puede utilizar directamente en el proceso de entrenamiento: los lotes provienen del almacenamiento, el modelo se entrena y entonces el puesto de control preparado está desplegado en el mismo Robot() — para esto, solo necesitas cambiar un argumento de palabras clave. Las demostraciones registradas en hardware real se devuelven al mismo cubo de la misma manera y están disponibles para la próxima iteración de entrenamiento. El resultado es un bucle continuo: se recopilan datos, el modelo se capacita en la transmisión de datos, la política actualizada se desarrolla al robot, y el proceso repite.

Requisitos para la ejecución

Para reproducir el experimento, necesitará Python 3.12 o más reciente y Linux o macOS. En Apple Silicon, el MuJoCo backend es compatible para simulación. El paquete se instala con el comando:

pip install "strands-robots[sim-mujoco,lerobot]

Además, el lerobot set is included, which includes LeRobot (por lo menos la versión 0.6.1), el datasets, av, y torchcodec bibliotecas. Para ejecutar el agente, se requiere uno de los proveedores de modelos compatibles: Amazon Bedrock con las credenciales AWS configuradas, API antropópica, OpenAI, o local Ollama. Tener esta opción permite experimentar tanto en la nube como completamente localmente.

Un compañero ejecutable está disponible junto con el artículo — el cuaderno examples/notebooks/05_streaming_data_loop.ipynb, que reproduce todo el bucle descrito. Es un punto de partida conveniente para ver el Strands Robots, Cubos de almacenamiento facial hugging, y LeRobot apilar en acción.

Conclusiones

El resultado principal es la capacidad de empaquetar todo el bucle de desarrollo de políticas robóticas en un solo circuito. El registro, almacenamiento, entrenamiento y despliegue utilizan las mismas abstracciones y formatos. Esto reduce radicalmente el número de pasos "glutinados" entre etapas y simplifica la experimentación: para cambiar los datos, sólo necesita actualizar las manifestaciones en el cubo, y para actualizar la política, simplemente reentrena el modelo en la transmisión de datos y cambiar un argumento al crear el robot.

Preguntas frecuentes

Strands Robots, LeRobot y Storage Buckets revisión