Inference and evaluation
Deploying LingBot-VA for Inference
LingBot-VA supports both standalone execution and Server-Client architecture which separates the model environment from simulation. By isolating dependencies, the design avoids package clashes and supports distributed inference on GPUs, clusters, and other devices.
Evaluation on RoboTwin-2.0
Preparing the Environment
You can follow the official instructions from the original RoboTwin-2.0 repository:
https://robotwin-platform.github.io/doc/usage/robotwin-install.html
In summary:
-
Install Vulkan dependencies:
sudo apt install libvulkan1 mesa-vulkan-drivers vulkan-tools -
Clone the RoboTwin repository:
git clone https://github.com/RoboTwin-Platform/RoboTwin.git && cd RoboTwin && git checkout 2eeec322 -
Modify
script/requirements.txtwith the following content:transforms3d==0.4.2sapien==3.0.0b1scipy==1.10.1mplib==0.2.1gymnasium==0.29.1trimesh==4.4.3open3d==0.18.0imageio==2.34.2pydanticzarropenaihuggingface_hub==0.36.2h5py# For Description Generationazure==4.0.0azure-ai-inferencepyglet<2wandbmoviepyimageiotermcoloravmatplotlibffmpeg -
Modify line 8 of
script/_install.sh:pip install "git+https://github.com/facebookresearch/pytorch3d.git@stable" --no-build-isolation -
Install dependencies:
bash script/_install.sh -
Download assets:
bash script/_download_assets.sh
Deploying the Inference Server
# single GPU
bash evaluation/robotwin/launch_server.sh
# multi-GPU
bash evaluation/robotwin/launch_server_multigpus.sh
Executing the Inference Client
# single GPU
task_name="adjust_bottle";
save_root="results/";
bash evaluation/robotwin/launch_client.sh ${save_root} ${task_name}
# multi-GPU
save_root="results/"
task_group_id=0;
bash evaluation/robotwin/launch_client_multigpus.sh ${save_root} ${task_group_id}
Related experiments results will be save in /path/to/your/RoboTwin/${save_root}. Please note that an eval_result folder is also generated. This is a native output from RoboTwin and is identical to the contents in the results folder; it can be safely ignored.
It is important to note that the inference server and client must be deployed on the same machine. For launching multi-GPU client, we padded the original 50 tasks to 56 via duplication and partitioned them into 7 groups to align with the 8-GPU configuration of our inference node. You can specify the task_group_id (0-6) to select a particular group for inference. For detailed grouping configurations, please refer to evaluation/robotwin/launch_client_multigpus.sh.
GPU Memory Requirements: Approximately 24GB VRAM for single-GPU RoboTwin evaluation with offload mode enabled (VAE and text_encoder offloaded to CPU).
Evaluation on LIBERO
Follow the official instructions to install LIBERO, then launch the server and client:
# server
bash evaluation/libero/launch_server.sh
# client
bash evaluation/libero/launch_client.sh
Run Image to Video-Action Generation
Use the following script for image-to-video-action generation:
NGPU=1 CONFIG_NAME='robotwin_i2av' bash script/run_launch_va_server_sync.sh
GPU Memory Requirements: Approximately 18GB VRAM for single-GPU i2av inference with offload mode enabled (VAE and text_encoder offloaded to CPU).