LeRobot documentation
Wall-OSS-0.5
Wall-OSS-0.5
Wall-OSS-0.5 es un modelo de visión-lenguaje-acción de 4B de XSquare Robot. Combina un backbone de visión-lenguaje Qwen2.5-VL con un experto de acciones de flujo continuo.
LeRobot proporciona Wall-OSS-0.5 a través del tipo de política wall_oss_05 y el checkpoint lerobot/wall-oss-0.5.
wall_oss_05y la política existentewall_xapuntan a diferentes versiones de WALL. Usawall_oss_05con el checkpoint de Wall-OSS-0.5.
Resumen del modelo
Wall-OSS-0.5 condiciona la generación de acciones en observaciones de cámara, estado del robot y una tarea en lenguaje natural. La política predice un bloque de acciones continuas mediante flow matching. Su experto de visión-lenguaje también puede generar texto para la descripción de imágenes, la respuesta a preguntas visuales, el anclaje y las subtareas de lenguaje.
El modelo publicado utiliza:
- una representación canónica de estado y acción de 26 dimensiones;
- 32 pasos de acciones en bloques;
- normalización de rango q01/q99;
- un muestreador de flujo de 10 pasos;
- Qwen2.5-VL para entradas visuales y de lenguaje.
El checkpoint base está diseñado para el ajuste fino en un robot objetivo y un conjunto de datos de tareas antes de la implementación.
Lo que abarca la integración de LeRobot
- Configuración estándar
policy.type=wall_oss_05y carga de puntos de control del Hub. - Procesamiento nativo de visión y lenguaje de Qwen2.5-VL y expertos de acción Wall.
- Entrenamiento de flujo de predicción x continua y muestreo de Euler de 10 pasos.
- Ajuste fino de entropía cruzada de texto y ajuste fino conjunto de texto/acción basado en recetas.
- Generación de texto nativa para VQA, grounding, captions y subtareas de lenguaje.
- Generación de texto directa a través del despliegue interactivo de LeRobot.
- Entradas de estado y acción canónicas 26D utilizando los procesadores q01/q99 de LeRobot.
- Ajuste fino con
lerobot-traine inferencia a través de las APIs estándar de políticas.
Requisitos de instalación
Wall-OSS-0.5 requiere una GPU de NVIDIA con CUDA. Instale LeRobot con las dependencias de la política:
pip install "lerobot[wall_oss_05]"Para un checkout de la fuente de LeRobot:
uv sync --extra wall_oss_05La política se implementa de forma nativa en LeRobot. Su única dependencia específica de la política es Transformers; no se requiere un checkout separado de Wall-X. El procesamiento basado en recetas también requiere el extra de dataset. Para consultas de lenguaje o entrenamiento, instale uv sync --extra wall_oss_05 --extra training (el entrenamiento incluye soporte para dataset). Establezca --policy.recipe=null para un procesamiento solo de acciones sin el extra de dataset.
Puntos de control
| Variante | Punto de control de LeRobot | Uso previsto |
|---|---|---|
| Base 4B | lerobot/wall-oss-0.5 | Ajuste fino y despliegue canónicos de 26D |
El checkpoint incluye la configuración de la política, el procesador y el tokenizador de Qwen, los pesos del modelo, los pre/postprocesadores de LeRobot guardados, las estadísticas de normalización y los metadatos de conversión. Es un checkpoint base: ajústelo en el robot y la tarea objetivo antes de informar los resultados a nivel de tarea.
Uso
Seleccione la política con:
--policy.type=wall_oss_05
Inicialice desde el punto de control de LeRobot con:
--policy.path=lerobot/wall-oss-0.5
Use --policy.path=your-org/your-finetuned-checkpoint al evaluar o desplegar un checkpoint de LeRobot guardado.
Texto y VQA
Wall-OSS-0.5 utiliza el contrato de texto de política compartido. Runtime proporciona query_kind y query_text y luego ejecuta el procesador de entrada de política normal:
request = {
**observation,
"query_kind": "vqa",
"query_text": "Which object is closest to the right gripper?",
}
processed_batch = preprocessor(request)
answer = policy.generate_text(processed_batch)vqa conserva la pregunta del llamador. next_subtask aplica la receta propiedad de WallOSS05Config. La política hereda generate_text(processed_batch) y
sobrescribe supports_text_generation y generate_text. La generación utiliza la cabeza de vocabulario de Qwen vinculada del checkpoint y el experto de visión-lenguaje; no llama a un
VLM separado.
El runtime de lenguaje puede generar una subtarea y luego condicionar la predicción de la acción de Wall en ella:
lerobot-rollout \
--policy.path=your-org/your-finetuned-wall-oss-0.5 \
--policy.device=cuda \
--task="clear the table" \
--interactive=trueDespués de /start, usa /vqa <question>, /autosteer <goal> o /subtask <text>.
Wall conserva capacidades útiles de VQA y anclaje (grounding) encarnados, pero está especializado para observaciones de robots y no está diseñado para reemplazar un VLM de uso general.
Requisitos de datos
Wall-OSS-0.5 opera internamente con un diseño canónico de estado y acción de 26D.
Las características de estado y acción más estrechas se normalizan con sus estadísticas nativas del conjunto de datos y luego se rellenan con ceros hasta 26D para el modelo. Las dimensiones de acción rellenas se excluyen de la pérdida de entrenamiento. Las salidas se recortan al ancho de acción del conjunto de datos antes de la desnormalización: un estado de 8D con acciones de 7D devuelve acciones de 7D. postprocess_action_dim puede aplicar un recorte adicional de la salida. El relleno no remapea las coordenadas de las articulaciones ni las convenciones del controlador; proporcione valores compatibles.
Configure las entradas de imagen con camera_key_mapping. El mapeo asocia cada característica de imagen de LeRobot con un slot de cámara de Wall. El checkpoint predeterminado usa face_view y right_wrist_view.
La cadena de texto de la tarea del conjunto de datos se pasa a la política como su instrucción de lenguaje. Utilice descripciones de tareas consistentes al grabar, entrenar y evaluar.
La normalización de estado y acción q01/q99 se gestiona mediante el preprocesador y el postprocesador de LeRobot guardados. La inferencia restaura las estadísticas guardadas con el checkpoint. Al realizar fine-tuning con lerobot-train, las estadísticas del conjunto de datos de entrenamiento reemplazan las estadísticas del procesador preentrenado y se guardan con el nuevo checkpoint.
El checkpoint publicado utiliza el diccionario de estado nativo de la política de LeRobot y el formato actual de pre/postprocesador. Las cargas y guardados de pesos se realizan a través del código compartido de persistencia de políticas, incluyendo las recopilaciones distribuidas y la puerta de escritura del proceso principal. La configuración conserva una referencia estable al activo del tokenizador y puede cargarse desde cualquier directorio de trabajo.
Entrenamiento
Ajusta el punto de control base con el comando de entrenamiento estándar de LeRobot:
Ejemplo de comando de entrenamiento
lerobot-train \ --dataset.repo_id=your-org/your-dataset \ --policy.path=lerobot/wall-oss-0.5 \ --policy.repo_id=your-org/wall-oss-0.5-your-task \ --output_dir=outputs/train/wall_oss_05 \ --job_name=wall_oss_05_finetune \ --policy.device=cuda \ --batch_size=1 \ --steps=20000
Comience con un tamaño de lote pequeño, ya que Wall-OSS-0.5 es un modelo de 4B parámetros. Auméntelo según la memoria GPU disponible, o use la acumulación de gradientes a través de su configuración de entrenamiento distribuido.
Para conjuntos de datos con nombres de cámara diferentes, mapea sus claves de características a los espacios de cámara Wall. Por ejemplo, añade la siguiente opción para top y wrist:
--policy.camera_key_mapping='{"observation.images.top":"face_view","observation.images.wrist":"right_wrist_view"}'El ajuste fino resuelve las formas de la cámara y los anchos de estado/acción desde el conjunto de datos, incluso al cargar el punto de control base con --policy.path.
Entrenar con anotaciones de lenguaje
La receta propiedad de WallOSS05Config utiliza por defecto las columnas de lenguaje opcionales de LeRobot. Su receta de subtarea conjunta supervisa la respuesta del asistente y el trozo de acción continuo en una secuencia causal única:
lerobot-train \
--dataset.repo_id=your-org/your-language-annotated-dataset \
--policy.path=lerobot/wall-oss-0.5 \
--policy.use_language_recipe=true \
--policy.text_loss_weight=0.1 \
--policy.flow_loss_weight=1.0 \
--policy.device=cuda \
--batch_size=1 \
--steps=20000Los flujos de recetas determinan qué objetivos se ejecutan para cada muestra:
- un turno asistido específico recibe la entropía cruzada de texto de siguiente token;
- un turno de
low_levelrecibe supervisión continua de flujo-acción; y - una receta
low_levelcon un turno asistido dirigido recibe ambas pérdidas, con los tokens de acción prestando atención al texto supervisado.
Solo el payload del asistente objetivo y su token <|im_end|> se utilizan como etiquetas de idioma. Los prompts de usuario, el padding, las imágenes, la propiocepción y los tokens de consulta de acción continua se enmascaran de la entropía cruzada de texto. Las filas sin anotaciones conservan el prompt original solo de acción y la pérdida. Establezca use_language_recipe=false para deshabilitar el renderizado de anotaciones, o recipe=null para deshabilitar ambos renderizadores de receta. Una recipe_path explícita reemplaza la receta integrada. El fine-tuning nuevo reconstruye los procesadores a partir de esa receta y las estadísticas de entrenamiento; el entrenamiento reanudado y el rollout restauran los procesadores y estadísticas guardados en el checkpoint.
Consulte Columnas de idioma y recetas para el esquema de anotación y la estructura de la receta. recipe_path puede apuntar a una superposición externa YAML explícita; LeRobot no proporciona archivos de receta predeterminados compartidos.
Parámetros de configuración clave
| Parámetro | Predeterminado | Descripción |
|---|---|---|
pretrained_name_or_path | lerobot/wall-oss-0.5 | Origen de los recursos del tokenizador y del procesador de imágenes |
tokenizer_revision | None | Fijación opcional del tokenizador base, separada de la revisión de los pesos |
chunk_size | 32 | Número de acciones predichas por bloque |
n_action_steps | 32 | Número de acciones predichas ejecutadas antes de la replanificación |
camera_key_mapping | vistas de la cara y de la muñeca derecha | Asocia las claves de características de imagen con los slots de cámara del modelo |
use_language_recipe | true | Habilita la receta almacenada en la configuración de la política |
recipe_path | None | Sobrescritura explícita opcional de receta externa |
text_loss_weight | 0.1 | Peso para la entropía cruzada de tokens de asistente supervisados |
flow_loss_weight | 1.0 | Peso para la pérdida de flujo-acción continua |
tokenizer_max_length | 1000 | Longitud máxima de la secuencia de tokens conjuntos de visión, lenguaje y acción |
device | auto | Usa cuda para Wall-OSS-0.5 |
Evaluación e inferencia
Use un punto de control afinado con los flujos de trabajo estándar de evaluación de LeRobot o de despliegue del robot, pasando su repositorio de Hub o su directorio local como ruta de la política.
Wall-OSS-0.5 genera fragmentos de acción continuos con su muestreador de flujo. La política actual admite la rama de flujo continuo; la rama de acción autoregresiva no está expuesta.
Cada fragmento codifica sus imágenes de cámara y prellena el prefijo de observación/texto una sola vez. Los diez pasos de Euler reutilizan las claves y valores del prefijo y decodifican solo los tokens de acción. La caché se reconstruye para cada nueva observación.
Para un simulador compatible, proporcione el punto de control ajustado y las opciones específicas del entorno a través de lerobot-eval:
lerobot-eval \ --policy.path=your-org/your-finetuned-wall-oss-0.5 \ --policy.device=cuda \ --env.type=<environment> \ --env.task=<task> \ --eval.batch_size=1 \ --eval.n_episodes=10
No evalúe el punto de control base como si fuera una política específica de la tarea. La representación canónica, las estadísticas de normalización y la distribución de tareas deben coincidir con el punto de control afinado.
Referencias
Licencia
Wall-OSS-0.5 y Wall-X se publican bajo la licencia Apache 2.0.
Update on GitHub