Skip to content

Add Docker Compose evaluation stack (client image + orchestration + docs)#15

Open
AIWintermuteAI wants to merge 1 commit into
VinRobotics:mainfrom
AIWintermuteAI:main
Open

Add Docker Compose evaluation stack (client image + orchestration + docs)#15
AIWintermuteAI wants to merge 1 commit into
VinRobotics:mainfrom
AIWintermuteAI:main

Conversation

@AIWintermuteAI

Copy link
Copy Markdown

Description:
This PR adds a Docker Compose evaluation workflow for running LIBERO /
SimplerEnv simulation episodes against the vla.cpp inference server.

What's included

eval/Dockerfile.client — Python simulation client container

  • Based on ubuntu:22.04 with Python 3.10
  • Installs MuJoCo 2.3.x, robosuite, lerobot, and all eval dependencies
  • CPU-only PyTorch (server handles GPU inference)
  • LIBERO installed via editable mode (keeps data files accessible)
  • All dependency versions pinned to avoid known incompatibilities
    (NumPy 1.x, MuJoCo 2.x, Pandas 2.0.x)

eval/docker-compose.yml — Two-container orchestration

  • server service: builds from the upstream Dockerfile (CUDA)
  • client service: Python simulation environment
  • Shared volumes for model files and eval outputs
  • CDI-based GPU access (no nvidia-container-toolkit required)
  • Default command launches SmolVLA for LIBERO

docs/DOCKER.md — Workflow documentation

  • Quick start guide (download models → build → run evaluation)
  • Configuration reference (volumes, ports, network, CDI)
  • Running without Docker Compose (standalone docker build/run)
  • Known issues table with workarounds

Usage

docker compose -f docker-compose.yml build
docker compose -f docker-compose.yml up -d server
docker compose -f docker-compose.yml run --rm client \
    python run_sim_client_direct.py \
        --task libero_object --task-id 0 --n-episodes 1 \
        --output-dir /tmp/libero_outputs --arch smolvla \
        --vla-addr tcp://server:5555

Validation

Tested end-to-end on RTX 5060 Ti (CUDA arch 120) with SmolVLA LIBERO:

  • 220-step episode completed successfully
  • Reward = 1.0, 116.45 ms average inference per step

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant