Skip to content

feat(vla): integrate LingBot VLA v2 structured serving and benchmarks - #28

Merged
HappyDog060713 merged 17 commits into
mainfrom
vla_test
Aug 10, 2026
Merged

feat(vla): integrate LingBot VLA v2 structured serving and benchmarks#28
HappyDog060713 merged 17 commits into
mainfrom
vla_test

Conversation

@HappyDog060713

Copy link
Copy Markdown
Collaborator

Summary

Integrate LingBot VLA v2 base-model inference into TeleFuser with a native structured action service, regression validation, AIPerf workload support, and request-level replica
resilience.

Included

  • Public LingBot VLA v2 loader, policy pipeline, RobotWin preprocessing, bundled normalization statistics, and canonical normalized action output.
  • Strict official upstream parity baseline:
    • pinned upstream commit
    • preprocessing, intermediate velocity, and final action comparison
    • 38/38 strict checks passed
  • Native TeleFuser structured action serving:
    • PIPELINE_CONTRACT
    • asynchronous task scheduler
    • pipeline pool
    • status polling
    • unified TFClient VLA action support
  • Single-GPU and independent multi-replica serving.
  • Structured API validator for action shape, finite values, task lifecycle, latency, resource sampling, and bounded reports.
  • AIPerf endpoint and HTTP polling transport for the native VLA structured API.
  • Fault validation for malformed input, cancellation, replica termination, GPU memory release, and graceful capacity degradation.
  • Replica worker improvement:
    • remove normal-completion cancel-forwarder delay
    • detect exited replica processes before dispatch
    • convert IPC failures into dead-replica eviction

Validation

  • 93 passed: focused LingBot VLA v2, structured service, pipeline pool, and validation tests.
  • 153 passed: non-LiveKit native service tests.
  • 19 passed: AIPerf adapter tests.
  • Real 6B direct inference completed successfully:
    • output shape: 50 x 55
    • finite normalized canonical actions
  • Real dual-replica structured service validation:
    • 100/100 successful requests
    • throughput: 2.761 req/s
    • mean end-to-end latency: 0.723 s
    • mean target inference time: 0.657 s
  • Fault validator: 5/5 checks passed.
  • Ruff, formatting, shell syntax, AIPerf config validation, and git diff --check passed.

Scope And Compatibility

  • No model weights, generated action files, benchmark artifacts, or virtual environments are included.
  • No existing public TeleFuser service schema, configuration field, or environment variable was changed.
  • Shared changes are limited to internal pipeline-pool and replica-worker resilience behavior, with targeted regression coverage.
  • The VLA structured API intentionally remains native rather than being forced into an OpenAI image/video response format.

Known Limitations

  • policy_verified=false; output is a normalized canonical 50 x 55 action chunk, not a physical robot command.
  • No embodiment-specific post-training, action denormalization, joint mapping, control frequency, limits, emergency stop, or safety policy.
  • Replica failure currently degrades capacity to surviving replicas; automatic replica reconstruction is not implemented.
  • Long-duration soak, real server-side timeout injection, and full production deployment validation remain future work.
  • This PR does not add tensor parallelism, dynamic batching, streaming action delivery, or robot-control services.

Fix the public official-checkpoint loader and bundle pinned RobotWin normalization statistics with public entry and profile coverage.

Localize the Qwen3-VL adaptations, move the optional Triton MoE implementation behind the ops/kernel boundary, and keep PyTorch fallbacks for unsupported execution.

Pin the upstream LingBot-VLA v2 revision in a preprocessing, velocity, and final-action parity comparator, and remove the tracked temporary source copy.

Verification:
- .venv-vla/bin/python -m pytest -q tests/unit/models/test_lingbot_vla_v2.py tests/unit/models/test_lingbot_vla_v2_loader.py tests/unit/pipelines/lingbot_vla_v2 (17 passed)
- ruff check on new VLA ops, kernel, validation, and tests
- ruff check --select F821 on modified VLA model modules
- .venv-vla/bin/python -m py_compile on modified VLA modules
- git diff --check
Capture LingBot-VLA v2 preprocessing, fixed noise, per-step flow state and velocity, and final canonical actions through the public TeleFuser pipeline. Record checkpoint, processor, input, runtime, shape, and dtype identities alongside each artifact.

Harden the parity comparator to require complete artifact contracts, contiguous denoising steps, finite values, matching metadata, and strict or portable tolerances with first-failure reporting. Add CPU regression tests and document the local baseline workflow.

Verification: 25 focused VLA tests passed in .venv-vla; ruff check and format checks passed; two real 6B H100 captures matched across 38 comparisons with max_abs=0.0.
Pin the LingBot-VLA v2 reference checkout and add an isolated upstream capture runtime for preprocessing, velocity, and final-action comparison.

Commit the official RobotWin normalization statistics, align public image preprocessing and normalization precision, and record attention, MoE, and norm-stat identities in parity artifacts. Keep the upstream Triton MoE path enabled for production while providing a deterministic reference backend for strict cross-process comparison.

Verification: .venv-vla/bin/python -m pytest tests/unit/models/test_lingbot_vla_v2_loader.py tests/unit/pipelines/lingbot_vla_v2/test_data.py tests/unit/pipelines/lingbot_vla_v2/test_robot_profile.py tests/unit/validation/test_lingbot_vla_v2_artifacts.py -q (24 passed); ruff check and ruff format --check passed for the changed VLA pipeline, tests, and validation scripts; git diff --cached --check passed.
Make the LingBot VLA v2 integration inference-only by rejecting training forwards, freezing policy parameters, and removing optimizer and training-parallel APIs.

Remove action, depth, video, MoE balance, and router loss helpers while preserving checkpoint topology and inference prefix computation. Add regression coverage for the inference-only boundary and removed loader loss helpers.

Verification:\n- 28 focused VLA tests passed\n- real LingBot VLA v2 6B checkpoint loaded and inferred on H100\n- strict upstream parity passed 38/38 comparisons with max_abs=0.0\n- targeted Ruff checks and git diff --check passed
Add a LingBot VLA v2-specific FastAPI application with bounded Base64 image validation, one process-local policy replica, serialized inference, readiness reporting, and normalized canonical action responses.

Factor the official 6B runtime construction into a reusable VLA helper, share it with the offline CLI, document local .venv-vla startup and request usage, and cover the HTTP contract, validation, lifecycle cleanup, and request serialization.

Verification: 33 focused LingBot VLA v2 tests passed; Ruff lint and format checks passed; git diff --check passed; a real 6B single-GPU HTTP request returned a finite 50x55 action chunk.
Add a structured task contract and result path while preserving the existing media task API. Wire LingBot VLA v2 into the native scheduler, pipeline pool, status and metrics APIs, and expose action inference through TFClient.

Add the native pipeline entrypoint, service documentation, and coverage for routing, validation, pool passthrough, client encoding, lifecycle cleanup, and JSON result handling.

Verification: 168 focused service and VLA tests passed; Ruff check and format check passed; strict pipeline validation reported SAFE; real 6B checkpoint smoke returned a finite 50x55 action chunk.
Keep the LingBot VLA v2 policy resident on its target GPU, warm the fixed-shape inference path before service readiness, and avoid per-request allocator cache eviction.

Add a reproducible single-GPU benchmark with latency distributions and memory metrics, and wake idle native-service workers immediately when tasks arrive.

Verified with 178 focused VLA and shared-service tests, ruff checks, real H100 benchmarks, HTTP inference, and 38-layer strict repeatability.
Remove trailing whitespace and the extra final blank line from the LingBot VLA v2 model sources so branch-level Git whitespace checks pass after syncing with main.

No executable logic is changed.

Verification:
- 187 service and LingBot VLA v2 tests passed
- 3 LingBot VLA v2 model tests passed
- focused Ruff check and format check passed
- git diff --check passed
Remove the unused V1 Qwen2.5-VL policy, legacy flow-matching implementation, dead resampler variants, demo code, and dormant global monkey-patch entry points.

Keep the V2 inference path explicit through a compact FlowMatchingBase, retain checkpoint-compatible Qwen3-VL, action expert, alignment, and MoE modules, and preserve the models-to-ops-to-kernel boundary.

Verification:
- Ruff check and format check passed for all four model files
- Python compilation passed
- 190 service and LingBot VLA v2 tests passed
- real 6B tensor replay produced 50x55 actions
- strict 38-layer regression parity passed with max_abs=0
- git diff --check passed
Add a VLA-specific real HTTP workload for fixed-count, concurrent, and duration validation. Verify the native service contract, task lifecycle, finite 50x55 canonical actions, latency, throughput, and bounded result artifacts without changing shared service interfaces.\n\nDocument single-replica, multi-replica, and soak usage, and add focused CPU coverage for contract validation and concurrent requests.\n\nVerification:\n- ruff check tools/validation/validate_lingbot_vla_v2_structured_service.py tests/unit/validation/test_lingbot_vla_v2_structured_service.py\n- 27 focused pytest tests passed\n- real 6B native HTTP smoke passed\n- 20/20 single-replica 256x256 requests completed successfully
Freeze the LingBot VLA v2 structured request and action-result contracts, reject sensitive camera echoes, and report latency-window trends.

Add opt-in process-tree RSS and per-GPU NVML sampling with bounded artifacts, document the validation workflow, and cover contract and sampler boundaries in unit tests.

Verification: 33 focused pytest tests; ruff check; ruff format --check; git diff --check.
Add the LingBot VLA v2 native service to the declared-contract coverage registry and validate the run entrypoint name declared by PIPELINE_CONTRACT instead of assuming run_with_file.

Verification: 65 VLA, structured service, and registry tests; ruff check; ruff format; git diff --check.
Add a native LingBot VLA v2 AIPerf endpoint and HTTP polling transport with a pinned workload, bounded action summaries, contract assets, and documentation.

Add real-service fault validation for malformed requests, cancellation, replica termination, GPU release, and graceful pool capacity degradation. Remove the replica cancel-forwarder completion delay and convert dead-process IPC failures into replica eviction without changing public service contracts.

Verification: 93 focused VLA/service tests passed; 153 non-LiveKit service tests passed; 19 AIPerf adapter tests passed; real two-replica structured runs completed 100/100 requests; fault validation passed 5/5; ruff, formatting, config validation, shell syntax, and git diff checks passed.
@HappyDog060713
HappyDog060713 merged commit db30204 into main Aug 10, 2026
5 checks passed
@lzx1413 lzx1413 mentioned this pull request Aug 10, 2026
31 tasks
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