Skip to content

Add Evo Studio cloud training, VLA-RL backend, dataset pool, and account ledger#109

Open
pearlq12345 wants to merge 13 commits into
MINT-SJTU:mainfrom
pearlq12345:feat/dataset-adapter-contract
Open

Add Evo Studio cloud training, VLA-RL backend, dataset pool, and account ledger#109
pearlq12345 wants to merge 13 commits into
MINT-SJTU:mainfrom
pearlq12345:feat/dataset-adapter-contract

Conversation

@pearlq12345
Copy link
Copy Markdown

What this adds

This PR wires RoboClaw into a full embodied AI experiment platform: from dataset upload and curation rewards, through AI-assisted training planning, to cloud job orchestration and auto-repair — all driven by a single natural language intent.


Cloud training orchestration

roboclaw/cloud/evo_train.py — TCP bridge to EVO_Train backend. Handles training start/stop/status, checkpoint resolution, SSH runtime binding, and stage translation.

roboclaw/http/routes/train_cloud.py — Full cloud training lifecycle API: plan, start, stop, status, billing settlement, runtime matching, source preflight, supervisor repair, SSH bind.

roboclaw/training/ — Training application layer:

  • service.py — orchestrates local vs cloud routing
  • schema.pyTrainingStartSpec, TrainingJobStatus, TrainingPlanSpec
  • vla_rl.py — VLA/RL plan validation and deployability checks
  • ai_planner.py — LLM-driven intent → structured training plan
  • rlinf_catalog.py — discovers RLinf configs, infers algorithm/benchmark/model metadata, sets RLINF_EXT_MODULE for worker processes
  • agent_consult.py — deterministic backend agent for Evo Studio consult surface

Supervisor auto-repair: when a cloud job fails, the supervisor watches the job, infers the failure cause, and retries on the same runtime under configurable automation policies (ask / safe_auto / full_auto).


VLA-RL backend

roboclaw_vla/rl/ — launcher, model registry, adapters, evaluator. Supports --suite=<name> for LIBERO benchmark selection without needing to know internal Hydra config names.

roboclaw_vla/config/rl/ — LIBERO-10 GRPO config with pi0 model and FSDP training backend.

roboclaw/embodied/policy/ — policy registry with ACT, Diffusion, GR00T, pi0, SmolVLA.


Dataset pool and curation rewards

roboclaw/data/dataset_adapters/ — LeRobot adapter with format mapping and registry.

roboclaw/data/ingestion.py — materializes HuggingFace, local path, and archive sources into the local catalog.

Datasets uploaded and shared through quality checks earn contributor reward points tracked in the account ledger.


Account and billing

roboclaw/account/ledger.py — credit ledger with training holds, topup orders, reward points, and atomic hold reassignment.

roboclaw/account/training_billing.py — hourly cost estimation and service fee calculation.


Agent tools

roboclaw/agent/tools/cloud_training.pyEvoStudioCloudTrainTool: balance check, backend probe, runtime match, source preflight, job start/stop/status, wallet integration.

roboclaw/agent/tools/evo_studio_agent.pyEvoStudioAgentConsultTool: natural language → cloud control actions via the consult surface.

Both tools are only registered when embodied_service is available, so CLI-only agent sessions are unaffected.


Frontend

  • Training Center: CloudIntentPanel, CloudSourcePanel, CloudProviderPanel, CloudPlanResultPanel
  • Training progress: failure detection, auto-repair entry, loss curve, stage timeline, automation mode selector
  • Dataset page: upload, ingest, storage usage, credit display

Bug fixes

  • scan.py: ROBOCLAW_DISABLE_CAMERA_SCAN env var for test isolation
  • loop.py: deduplicate _CLOUD_PROBE_EXEC_PATTERNS against base.py
  • runtime.py: remove silent exception swallowing in provider model init
  • evo_train.py: validate that workflow or dataset_name is provided before calling bridge
  • loop.py: guard Evo Studio tool registration behind embodied_service is not None
  • data/curation/validators.py: fix circular import between dataset_adapters and curation

Configuration

Cloud training requires a running EVO_Train backend. See .env.example for all required and optional environment variables (ROBOCLAW_EVO_TRAIN_HOST, ROBOCLAW_EVO_TRAIN_PROVIDER, etc.).

RLinf-based training recipes require cloning https://github.com/RLinf/RLinf.git and setting ROBOCLAW_RLINF_REPO_PATH. Without it, the catalog returns empty and logs a warning — local and cloud training without RLinf still work.


Tests

598 passing, 234 skipped. Frontend builds clean.

New test files: test_evo_train_routes, test_vla_rl_routes, test_account_ledger, test_dataset_adapters, test_curation_reward, test_policy_registry, test_launcher_import, test_dataset_upload_completion, test_command_builder_train

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