
तुमच्या रोबोट मशीनमध्ये जीपीयू नाही. GR00T पॉलिसी सर्व्हर भाड्याच्या क्लाउड जीपीयूवर ठेवा, ॲक्शन चंक्स आर्मला स्ट्रीम करा आणि नेटवर्कचा तुम्हाला नेमका किती खर्च येतो ते जाणून घ्या.
एक रास्पबेरी पाई ला सिरीयल बसद्वारे चालवण्यासाठी आणि दोन USB कॅमेऱ्यांमधून फ्रेम्स घेण्यासाठी पुरेसा आहे. तीन अब्ज पॅरामीटरचे चालवण्यासाठी ते पुरेसे नाही: NVIDIA च्या README नुसार GR00T N1.7 इन्फरन्ससाठी 16 GB किंवा अधिक VRAM असलेले एक GPU लागते. कार्ड न विकत घेता तुमच्या फाइन-ट्यून केलेल्या चेकपॉईंटचे आर्मवर काय कार्य आहे हे पाहण्यासाठी, पॉलिसी भाड्याच्या क्लाउड GPU वर ठेवा, रोबोट लूप USB पोर्ट असलेल्या मशीनवर ठेवा आणि निरीक्षणे (observations) व ॲक्शन चंक्स नेटवर्कवरून पाठवा.
हे कार्य करते, ते विनामूल्य नाही आणि त्याची किंमत सर्व कार्यांवर समान रीतीने विभागलेली नाही. खालीलप्रमाणे: NVIDIA चा स्वतःचा पॉलिसी सर्व्हर, lerobot चा असिंक्रोनस स्टॅक, तुमचा अपलिंक पुरेसा वेगवान आहे की नाही हे आधीच सांगणारे अंकगणित, आणि प्लॅटफॉर्म मार्ग. हे सर्व 23 ऑगस्ट 2026 रोजी Isaac-GR00T च्या मुख्य शाखे (N1.7 GA) आणि lerobot 0.6.1 च्या विरुद्ध तपासले गेले आहे.
तुम्हाला काय माहित असणे आवश्यक आहे
- •GR00T N1.7, GR00T N1.5 आणि Pi0.5 हे अंदाजे 3 अब्ज पॅरामीटरचे मॉडेल आहेत. डिस्क्रीट GPU शिवाय यापैकी कोणतेही रोबोट कंट्रोलरवर बसत नाहीत.
- •Isaac-GR00T आणि lerobot दोन्ही क्लायंट-सर्व्हर स्प्लिटसह येतात. तुम्हाला ट्रान्सपोर्ट लिहायची गरज नाही.
- •निरीक्षणे (Observations) वायरच्या खर्चावर वर्चस्व गाजवतात, कृती (actions) नाही: दोन अनकंप्रेस्ड 640x480 RGB फ्रेम्स 1,843,200 बाइट्स असतात, म्हणजे प्रति कॉल सुमारे 14.7 Mbit, आणि कोणताही स्टॅक त्यांना कंप्रेस करत नाही.
- •AY-Robots मॉडेलनुसार प्रति ॲक्शन स्टेप 20 ते 485 ms सूचीबद्ध करते. इंटरनेट राउंड ट्रिप्स त्याच्या वर येतात.
- •रिमोट इन्फरन्स हळू पिक-अँड-प्लेससाठी योग्य आहे, वेगवान रिॲक्टिव्ह मोशनसाठी नाही. दीर्घ एक्झिक्यूशन होरायझन वेळ वाचवतो आणि निरीक्षणाची ताजेपणा (freshness) कमी करतो.
- •शिप केल्याप्रमाणे कोणताही सर्व्हर सार्वजनिक IP वर सुरक्षित नाही, आणि lerobot मध्ये अनपॅच्ड RCE आहे. त्याला टनेल करा.
पॉलिसी रोबोट मशीनवर का बसणार नाही
AY-Robots प्रशिक्षित करू शकणाऱ्या पाच पॉलिसींपैकी दोन वर्कस्टेशन कार्डवर चालतात, तीन चालत नाहीत. खालील स्तंभ प्रति ॲक्शन स्टेप आहे आणि हीच संख्या तुमच्या नेटवर्कच्या राउंड ट्रिपशी स्पर्धा करते.
| पॉलिसी | पॅरामीटर्स | प्रति ॲक्शन स्टेप इन्फरन्स | प्रशिक्षणासाठी GPU स्तर | किमान एपिसोड्स | डेटासेट स्वरूप |
|---|---|---|---|---|---|
| GR00T N1.7 | ~3 B, फाइन-ट्यूनिंग दरम्यान प्रशिक्षित ~40 M | 152 ms | A100 80 GB or H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| GR00T N1.5 | ~3 B | 165 ms | A100 80 GB or H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| Pi0.5 | ~3 B, PaliGemma बॅकबोन | 485 ms | A100 80 GB or H100 80 GB | 50 | LeRobot v3.0 |
| SmolVLA | ~450 M | 245 ms | RTX 4090 or any 24 GB card | 30 | LeRobot v3.0 |
| ACT | ~80 M | 20 ms | RTX 4090 or any 24 GB card | 50 | LeRobot v3.0 |

त्याला एक निर्णय समजा, किरकोळ माहिती नाही. ACT 20 ms प्रति स्टेपने रोबोट मशीनवर चालते आणि तुम्हाला त्याबद्दल पुन्हा कधीही विचार करावा लागत नाही. Pi0.5 485 ms मध्ये पॅकेट तुमच्या इमारतीतून बाहेर पडण्यापूर्वी एक तृतीयांश सेकंद खर्च झालेला असतो. धोरणांची तुलना आणि GR00T N1.7 vs Pi0.5 अचूकतेची बाजू वाढवतात.
GR00T N1.7, GR00T N1.5 आणि Pi0.5 विक्रेता चेकपॉईंटवरून सुरू होतात (nvidia/GR00T-N1.7-3B, nvidia/GR00T-N1.5-3B, lerobot/pi05_base). ACT अस्तित्वात नाही जोपर्यंत तुम्ही त्याला तुमच्या स्वतःच्या कार्यावर प्रशिक्षित करत नाही, त्यामुळे प्रशिक्षण कार्य पूर्ण होईपर्यंत दूरस्थपणे सेवा देण्यासाठी काहीही नाही. पहा SO-100 वर ACT.
आधीपासून अस्तित्वात असलेले दोन क्लायंट-सर्व्हर स्टॅक
Isaac-GR00T एक ZeroMQ विनंती-प्रत्युत्तर सर्व्हर पाठवतो; lerobot असिंक्रोनस इन्फरन्सभोवती तयार केलेला gRPC सर्व्हर पाठवतो. दोन्ही GR00T स्वीकारतात चेकपॉईंट. lerobot ची समर्थित धोरण सूची async_inference/constants.py ही act, smolvla, diffusion, tdmpc, vqbet, pi0, pi05 आणि groot आहे; त्याची रोबोट सूची so100_follower, so101_follower, bi_so_follower आणि omx_follower आहे.
| Isaac-GR00T पॉलिसी सर्व्हर | lerobot असिंक्रोनस इन्फरन्स | |
|---|---|---|
| एंट्री पॉइंट | gr00t/eval/run_gr00t_server.py | python -m lerobot.async_inference.policy_server |
| ट्रान्सपोर्ट | ZeroMQ REQ/REP | gRPC, add_insecure_port / insecure_channel |
| सिरियलायझेशन | msgpack + msgpack_numpy, allow_pickle=False enforced | pickle.dumps / pickle.loads, marked # nosec |
| डिफॉल्ट पोर्ट | 5555 | 8080 |
| डिफॉल्ट बाइंड | 0.0.0.0, सर्व इंटरफेस | localhost |
| ऑथेंटिकेशन | क्लासद्वारे समर्थित api_token, CLI द्वारे पास केलेला नाही | काहीही नाही |
| क्लायंट टाइमआउट | 15000 ms (PolicyClient timeout_ms) | 2 s observation queue timeout |
| एक्झिक्यूशन मॉडेल | सिंक्रोनस: ब्लॉक करा, नंतर चंक कार्यान्वित करा | असिंक्रोनस: पुढील चंकची गणना होत असताना कार्यान्वित करा |
सिरियलायझेशनची ओळ दिसते त्यापेक्षा जास्त महत्त्वाची आहे. GR00T चा MsgSerializer दोन्ही दिशांना ऑब्जेक्ट-डटाइप एनडीअरे पेलोड्स स्वीकारण्यास नकार देतो, कारण msgpack_numpy अन्यथा त्यांना पिकलकडे देईल. त्याऐवजी lerobot पिकल वापरते: policy_server.py विनंती डेटावर pickle.loads कॉल करते, robot_client.py ते पाठवलेले निरीक्षण पिकल करते. विश्वसनीय लॅनवर सुरक्षित, एकदा पोर्ट इंटरनेटवरून पोहोचण्यायोग्य झाल्यावर असुरक्षित.
मार्ग अ: NVIDIA चा स्वतःचा GR00T पॉलिसी सर्व्हर
SO-100 आणि SO-101 हार्डवेअरसाठी NVIDIA ने दस्तऐवजीकरण केलेला हा मार्ग आहे, आणि जर तुमचा चेकपॉईंट examples/finetune.sh सह --embodiment-tag NEW_EMBODIMENT मधून आला असेल तर हाच मार्ग वापरा. ही पायऱ्या अपस्ट्रीम README मध्ये नसलेल्या गोष्टी जोडतात: पोर्टला इतरांना उघड न करता रोबोटपर्यंत पोहोचवणे.
- 1भाड्याच्या GPU बॉक्सवर GR00T स्थापित करा
सबमॉड्यूल्स आवश्यक आहेत, आणि क्लोन करण्यापूर्वी git-lfs अस्तित्वात असणे आवश्यक आहे अन्यथा
demo_dataमधील पार्केट फाइल्स पॉइंटर म्हणून येतील. flash-attn आणि TensorRT डीफॉल्ट इन्स्टॉलसह येतात. नवीन पॉड इमेजवरील अडचण:torchcodec0.8.0 हे एकमेव समर्थित व्हिडिओ बॅकएंड आहे आणि ते फक्त FFmpeg 4 ते 7 लोड करते. Ubuntu 25.10 आणि 26.04 FFmpeg 8 सह येतात, त्यामुळे GR00TCould not load libtorchcodecसह अयशस्वी होते. FFmpeg 8 च्या खालील आवृत्ती स्थापित करा आणि त्याच्या लायब्ररीLD_LIBRARY_PATHवर ठेवा.bashsudo apt install git-lfs && git lfs install curl -LsSf https://astral.sh/uv/install.sh | sh sudo apt-get update && sudo apt-get install -y ffmpeg git clone --recurse-submodules https://github.com/NVIDIA/Isaac-GR00T cd Isaac-GR00T uv sync --python 3.12 uv run python -c "import gr00t; print('GR00T installed successfully')" - 2गेटेड बॅकबोन विरुद्ध प्रमाणीकरण करा
प्रत्येक GR00T N1.7 चेकपॉईंट, तुमच्या स्वतःच्या फाइन-ट्यूनसह, पहिल्या वापरावेळी गेटेड
nvidia/Cosmos-Reason2-2Bलोड करतो. मॉडेल पेजवर प्रवेशाची विनंती करा आणि पॉडवर लॉग इन करा, अन्यथा लोडिंगGatedRepoErrorसह अयशस्वी होईल.bashuv run huggingface-cli login # or: export HF_TOKEN=<your_token> - 3पॉलिसी सर्व्हर सुरू करा
--model-pathतुमच्या चेकपॉईंट डिरेक्टरीकडे निर्देशित करा; त्या मार्गावर सर्व्हर--modality-config-pathदुर्लक्षित करतो, जे फक्त रिप्ले मार्गावर वाचले जाते.--model-pathवगळा आणि त्याऐवजी--dataset-pathअधिक--execution-horizonपास करा, रेकॉर्ड केलेल्या क्रिया पुन्हा प्ले करणाऱ्या ReplayPolicy साठी, वायरिंग काम करते हे सिद्ध करण्याचा सर्वात स्वस्त मार्ग.bashuv run python gr00t/eval/run_gr00t_server.py \ --model-path /workspace/so100_finetune/checkpoint-10000 \ --embodiment-tag NEW_EMBODIMENT \ --device cuda:0 \ --host 127.0.0.1 --port 5555 - 4पोर्ट 5555 रोबोट मशीनवर टनेल करा
वर नमूद केल्याप्रमाणे, लूपबॅकशी बाइंड करा आणि SSH किंवा वायरगार्ड-शैलीच्या मेशवर पोर्ट घेऊन जा. हे एन्क्रिप्शन आणि प्रमाणीकरण प्रदान करते जे ZeroMQ सॉकेट करत नाही, सुमारे एक मिलिसेकंदात.
bash# on the robot machine ssh -N -L 5555:127.0.0.1:5555 root@<pod-host> -p <pod-ssh-port> # sanity check that something answers nc -vz 127.0.0.1 5555 - 5सर्व्होच्या शेजारी रोबोट क्लायंट चालवा
क्लायंटला स्वतःचे uv वातावरण आवश्यक आहे: त्याला lerobot चे रोबोट ड्रायव्हर्स हवे आहेत, प्रशिक्षण स्टॅक नाही.
eval_so100.pyso100_follower, so101_follower आणि koch_follower आयात करते, म्हणून तुमच्या आर्मशी जुळणारे--robot.typeपास करा (अपस्ट्रीम README so101_follower वापरते). कॅमेरा कीज प्रशिक्षणाशी जुळल्या पाहिजेत: अडॅप्टर नेमकेfrontआणिwristवाचतो, आणि त्यांची अदलाबदल केल्यास पॉलिसीला चुकीचे दृश्य दिसते.bashcd gr00t/eval/real_robot/SO100 uv sync uv pip install --no-deps -e ../../../../ uv run --no-sync python eval_so100.py \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=orange_follower \ --robot.cameras="{ front: {type: opencv, index_or_path: 6, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30}}" \ --policy_host=127.0.0.1 \ --policy_port=5555 \ --lang_instruction="pick up the red block and put it in the bin"
run_gr00t_server.py हे --host 0.0.0.0 ला डिफॉल्ट करते, प्रत्येक इंटरफेसला बाइंड करते: सार्वजनिक IP असलेल्या पॉडवर ते एक खुले इन्फरन्स एंडपॉइंट असते. आणि PolicyServer क्लास api_token स्वीकारतो आणि प्रत्येक विनंतीनुसार ते प्रमाणित करतो, परंतु run_gr00t_server.py कधीही ते पास करत नाही, त्यामुळे तुम्ही काहीही कॉन्फिगर केले तरी CLI सर्व्हर अप्रमाणित राहतो. 127.0.0.1 ला बाइंड करा आणि टनेल करा. ZMQError: Address already in use म्हणजे पोर्ट 5555 वापरले जात आहे; --port पास करा.
मार्ग B: lerobot असिंक्रोनस इन्फरन्स
lerobot एक वेगळी समस्या सोडवते. मॉडेल विचार करत असताना रोबोटला ब्लॉक करण्याऐवजी, सर्व्हर पुढील चंकची गणना करत असताना क्लायंट त्याच्याकडे असलेल्या रांगेतून पुढे जात राहतो. हे आहे ॲक्शन चंकिंग पुढे नेले आहे, जे SmolVLA सह सादर केलेले असिंक्रोनस स्टॅक आहे. हे GR00T चेकपॉइंटसह देखील कार्य करते.
# GPU machine
pip install -e ".[async]"
python -m lerobot.async_inference.policy_server \
--host=127.0.0.1 \
--port=8080
# robot machine, after tunnelling 8080
python -m lerobot.async_inference.robot_client \
--server_address=127.0.0.1:8080 \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=follower_so100 \
--robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30}}" \
--task="pick up the red block and put it in the bin" \
--policy_type=groot \
--pretrained_name_or_path=<user>/my_groot_finetune \
--policy_device=cuda \
--actions_per_chunk=50 \
--chunk_size_threshold=0.5 \
--debug_visualize_queue_size=Trueसर्वर रिकामा सुरू होतो: क्लायंटच्या पहिल्या हँडशेकने सांगेपर्यंत त्याला कोणती पॉलिसी सेवा द्यायची आहे हे माहित नसते, जे भाड्याच्या पॉडवर सोयीचे आहे. हात सहजपणे फिरतो की नाही हे ठरवणारे दोन नियंत्रक आहेत actions_per_chunk आणि chunk_size_threshold (lerobot डॉक्स दुसऱ्याला g म्हणतात, SmolVLA पेपरनंतर), आणि दस्तऐवजीकरण केलेली मूल्ये आणि वितरित केलेली मूल्ये जुळत नाहीत.
| पॅरामीटर | lerobot 0.6.1 कोडमधील मूल्य | ते काय करते | टीप |
|---|---|---|---|
| actions_per_chunk | no default, required | प्रति कॉल परत केलेल्या क्रिया | डॉक्स टेबलमध्ये 50 सूचीबद्ध आहेत; डेटाक्लास फील्डला डीफॉल्ट नाही, त्यामुळे CLI ला मूल्याची मागणी आहे |
| chunk_size_threshold | 0.5 | क्लायंट नवीन निरीक्षण पाठवतो तेव्हा किंवा त्याखालील रांग भरण्याचे प्रमाण | डॉक्स टेबल 0.7 म्हणते; कोड आणि डॉक्सचे स्वतःचे उदाहरण 0.5 म्हणतात |
| fps | 30 | क्लायंट नियंत्रण दर, environment_dt = 1/fps सेट करतो | रांग रिकामी होत राहिल्यास ते कमी करा |
| inference_latency | 1/30 s (33.3 ms) | सर्वरवरील लक्ष्यित अनुमान विलंबता | एक लक्ष्य, मोजमाप नाही |
| obs_queue_timeout | 2 s | सर्वर निरीक्षण रांगेवर किती वेळ थांबतो | एक धीमा अपलिंक येथे प्रथम दिसतो |
| aggregate_fn_name | weighted_average | ओव्हरलॅपिंग चंक प्रदेश कसे मिसळले जातात | 0.3 जुने + 0.7 नवीन; latest_only, average आणि conservative देखील पाठवले जातात. रजिस्ट्री configs.py मध्ये AGGREGATE_FUNCTIONS आहे, robot_client.py मध्ये नाही जसे डॉक्स दावा करतात |
CVE-2026-25874 हे lerobot च्या असिंक्रोनस अनुमान पाइपलाइनमध्ये अप्रमाणित रिमोट कोड एक्झिक्यूशन आहे: pickle.loads() TLS शिवाय अप्रमाणित gRPC चॅनेलवरून प्राप्त झालेल्या डेटावर, जे या कॉल्सद्वारे पोहोचण्यायोग्य आहे: SendPolicyInstructions, SendObservations आणि GetActions calls. CWE-502, NVD कडून CVSS 3.1 बेस स्कोअर 9.8, नियुक्त CNA कडून 4.0 बेस स्कोअर 9.3. रेकॉर्डमध्ये LeRobot 0.5.1 पर्यंत प्रभावित म्हणून सूचीबद्ध आहे आणि पॉलिसी सर्वर आणि रोबोट क्लायंट दोन्हीची नावे आहेत, त्यामुळे तुमच्या हाताशेजारील मशीन कार्यक्षेत्रात आहे. अपग्रेड करणे हा उपाय नाही: रेकॉर्डमध्ये अपस्ट्रीम समस्या 3047 आणि पॅच, PR 3048 चा उल्लेख आहे, जे pickle ला safetensors अधिक JSON ने बदलते, आणि 23 ऑगस्ट 2026 रोजी दोन्ही अजूनही खुले आहेत. policy_server.py on main still calls pickle.loads on request data while serve() binds with add_insecure_port. लूपबॅकवर बांधा आणि कधीही पोर्ट-फॉरवर्ड 8080 करू नका.
तुमचा दुवा पुरेसा वेगवान आहे की नाही हे ठरवणारे अंकगणित
लोक हे वगळतात आणि नंतर एका दिवसासाठी खर्च करतात . याला दोन मिनिटे लागतात आणि ते जवळजवळ नेहमीच निर्णायक असते.
NVIDIA च्या eval_so100.py मध्ये टिप्पणी केलेले निरीक्षण डिक्ट सांगते की वायरवर काय जाते: uint8 मध्ये (480, 640, 3) आकाराचे दोन ॲरे, सहा जॉइंट फ्लोट्स, एक भाषा स्ट्रिंग. हे प्रति फ्रेम 921,600 बाइट्स, दोन कॅमेऱ्यांसाठी 1,843,200 बाइट्स, सुमारे 14.7 Mbit आहे आणि कोणताही स्टॅक ते JPEG-कंप्रेस करत नाही. परत येणारा चंक 6 फ्लोट्सच्या काही डझन पायऱ्यांचा असतो. तुमचे अपलोड सर्व काही ठरवते, तुमचे डाउनलोड नाही.
| अपलोड बँडविड्थ | एक निरीक्षण (14.7 Mbit) पुश करण्यासाठी लागणारा वेळ | 30 FPS आर्मसाठी निकाल |
|---|---|---|
| 10 Mbit/s, सामान्य घरगुती अपलोड | ~1.47 s | अवापरणीय. प्रत्येक चंक दरम्यान आर्म थांबतो. |
| 25 Mbit/s | ~0.59 s | फक्त हळू पिक-अँड-प्लेस, लांब अंमलबजावणी क्षितिजासह. |
| 50 Mbit/s | ~0.29 s | जाणूनबुजून केलेल्या कार्यांसाठी व्यवहार्य. |
| 100 Mbit/s | ~0.15 s | पिक-अँड-प्लेससाठी ठीक, जलद गतीवर दृश्यमान. |
| 1 Gbit/s फायबर किंवा डेटासेंटर | ~0.015 s | त्याऐवजी मॉडेल अडथळा बनतो. |
तुम्हाला आत बसवायचे असलेले बजेट
GR00T SO-100 क्लायंट सिंक्रोनस आहे: ते कॉल करते policy.get_action(obs), पहिल्या action_horizon 30 FPS वर चंकची पावले कार्यान्वित करते, आणि नंतर पुन्हा कॉल करते. चंकचा आकार आणि होरायझन हे भिन्न आकडे आहेत: NVIDIA चे डिप्लॉयमेंट मार्गदर्शक 16 च्या ॲक्शन चंक आकाराची शिफारस करते, रिअल-टाइम चंकिंगसह एकत्रित केल्यास किमान 32, तर eval_so100.py 8 चा एक्झिक्युशन होरायझन पाठवते. 30 FPS वर आठ पावले म्हणजे प्रति कॉल 267 ms गती, आणि बाकी सर्व काही त्यात बसले पाहिजे.
observation upload 14.7 Mbit / 100 Mbit/s = 147 ms
network round trip = 30 ms
model inference (AY-Robots figure, N1.7) = 152 ms
action chunk return + deserialize = ~2 ms
-------
total per call 331 ms
budget at action_horizon = 8 -> 267 ms FAIL, arm pauses ~64 ms per chunk
budget at action_horizon = 16 -> 533 ms fits, with headroom
budget at action_horizon = 32 -> 1067 ms fits, observations now ~1 s staleहोरायझन वाढवणे हा एक तात्पुरता उपाय आहे आणि तो विनामूल्य नाही: हात आता जुन्या झालेल्या निरीक्षणावर कार्य करतो. तत्त्वनिष्ठ उपाय म्हणजे रिअल-टाइम चंकिंग, जे सध्याचा चंक चालू असताना पुढील चंकची गणना करते, कार्यान्वित होण्याची हमी असलेल्या क्रिया गोठवते आणि उर्वरित भाग भरते; RTC पेपरमध्ये असे नमूद केले आहे की ते कोणत्याही पुनर्प्रशिक्षणाशिवाय अनुमान विलंबासाठी मजबूत आहे. ते प्रथम कुठे आहे ते तपासा. NVIDIA RTC ला प्रायोगिक म्हणून चिन्हांकित करते, एक निम्न-स्तरीय मॉडेल प्रिमिटिव्ह जे यामार्गे पोहोचता येते action_head.get_action(..., options={"rtc_overlap_steps": ..., "rtc_frozen_steps": ...}), Gr00tPolicy किंवा सर्व्हर-क्लायंट पाथमध्ये जोडलेले नाही, जिथे options वापरले जात नाही, कोणतेही परीक्षण नाही आणि कोणतेही उदाहरण नाही. पॉलिसी सर्व्हरवर तुम्हाला असिंक्रोनस एक्झिक्युशन मिळते, RTC नाही.
NVIDIA GR00T N1.7 ला एका कॅमेऱ्यासह 4 डीनोइजिंग स्टेप्सवर एंड-टू-एंड बेंचमार्क करते. H100 80GB HBM3 वर: PyTorch eager मध्ये 85.8 ms (11.7 Hz), torch.compile सह 48.6 ms (20.6 Hz), TensorRT पूर्ण पाइपलाइनसह 27.9 ms (35.9 Hz). eager मोडमधील L40 ला 128.3 ms (7.8 Hz) लागतात. NVIDIA 10 Hz ला सामान्य हाताळणीसाठी शिफारस केलेले किमान मानते, आणि 10 Hz पेक्षा कमी केवळ मंद, नॉन-रिॲक्टिव्ह कार्यांसाठी योग्य आहे. ते पुनर्नियोजन दर आहेत: 10 Hz पॉलिसी अजूनही ॲक्शन चंकिंगद्वारे 30 FPS आर्म चालवू शकते. दुसरा कॅमेरा तुम्हाला चुकीच्या दिशेने नेतो.
विश्वास ठेवण्यापूर्वी ते मोजा
वरील प्रत्येक संख्या एक अंदाज आहे. चार कमांड्स त्याला मोजमापात रूपांतरित करतात, जे काम कधीच यशस्वी होणार नव्हते अशा कामासाठी पॉड-तास खर्च करण्यापूर्वी चालवणे योग्य आहे.
- 1कच्चा राउंड ट्रिप मिळवा
पॉडच्या विरुद्ध, CDN च्या नाही. सरासरीइतकेच विचलनाकडे लक्ष द्या: सरासरी लेटन्सीमुळे नाही तर जिटरमुळे आर्म अडखळतो.
bashping -c 50 <pod-host> # the mdev column is the number that predicts stutter - 2तुमच्याकडे असलेला अपलिंक मोजा, ज्यासाठी तुम्ही पैसे देता तो नाही
रेसिडेन्शियल अपलोड सहसा डाउनलोडच्या काही अंशात असतो आणि वरील बँडविड्थ टेबलमधील तोच आकडा आहे.
bash# on the pod iperf3 -s # on the robot machine, -R omitted so this measures upload iperf3 -c <pod-host> -t 30 - 3क्लायंटचा स्वतःचा लेटन्सी लॉग वाचा
lerobot रोबोट क्लायंट प्रत्येक चंकसाठी सर्व्हर-टू-क्लायंट लेटन्सी आणि डीसेरियलायझेशन वेळ लॉग करतो. मार्ग B वर तुम्हाला कोणत्याही बाह्य साधनांची आवश्यकता नाही.
textReceived action chunk for step #240 | Latest action: #232 | Incoming actions: 240:289 | Network latency (server->client): 187.44ms | Deserialization time: 3.10ms - 4ॲक्शन क्यू रिकामा होताना पहा
--debug_visualize_queue_size=Trueपास करा आणि क्लायंट रनटाइमवर क्यूचा आकार प्लॉट करतो. जर तो वारंवार शून्य होत असेल, तर तुमचे बजेट संपले आहे: fps कमी करा, actions_per_chunk वाढवा किंवा chunk_size_threshold वाढवा जेणेकरून निरीक्षणे अधिक वेळा बाहेर पडतील.bashpython -m lerobot.async_inference.robot_client \ ... \ --debug_visualize_queue_size=True
रिमोट इन्फरन्स प्रत्यक्षात कशासाठी उपयुक्त आहे
- आर्मपेक्षा जास्त खर्च नसलेल्या कार्डची मालकी नसतानाही तुम्ही वास्तविक हार्डवेअरवर 3 अब्ज पॅरामीटर पॉलिसीचे मूल्यांकन करू शकता.
- GPU प्रति तास भाड्याने दिले जाते, त्यामुळे अयशस्वी चेकपॉईंटला काही डॉलर्स खर्च येतो.
- रोबोट बाजू लहान राहते: lerobot ड्रायव्हर्स, दोन कॅमेरे, एक सिरीयल पोर्ट, आणि तुम्ही त्याला स्पर्श न करता चेकपॉईंट्स बदलू शकता.
- असंकोचित निरीक्षणे वायरचा खर्च वाढवतात आणि निवासी अपलोड ही मुख्य मर्यादा आहे.
- विलंबतेपेक्षा जिटर अधिक त्रासदायक आहे: 40 ms सरासरी आणि 300 ms पर्यंत वाढणारा दुवा अडखळतो, जिथे स्थिर 120 ms दुवा अडखळत नाही.
- जलद प्रतिक्रियात्मक कार्ये कोणत्याही क्षितिजावर राउंड ट्रिपमध्ये टिकत नाहीत.
- दोन्ही सर्व्हर CLI स्वरूपात अप्रमाणित पाठवले जातात, त्यामुळे टनेलिंगचे काम तुमचे आहे.
- खंडाच्या मध्यभागी कनेक्शन तुटल्यास आर्म जुनी क्रिया धरून ठेवतो. तुमच्या रोबोट-साइडला स्वतःचा वॉचडॉग जोडा.
| कार्य | सार्वजनिक इंटरनेटवर कार्य करते का? | का |
|---|---|---|
| एक स्थिर वस्तू निवडा, ती एका डब्यात ठेवा | होय | निरीक्षण आणि क्रियेदरम्यान काहीही हलत नाही. |
| विचारपूर्वक गतीने ब्लॉक्स स्टॅक करा | होय, at action_horizon 16 किंवा त्याहून अधिकवर | पुढील खंडात दुरुस्त करण्यासाठी चुका हळू हळू जमा होतात. |
| एक ड्रॉवर उघडा, एक वस्तू घाला | सहसा | संपर्क-समृद्ध पण हळू. संपर्कात थांबणे आणि पुढे जाण्याकडे लक्ष द्या. |
| हलत्या वस्तूचा पाठलाग करा | नाही | पॉलिसी 300 ms ते 1 s जुन्या निरीक्षणावर कार्य करते. |
| पकडा, संतुलन साधा किंवा घसरणीतून सावरणे | नाही | दुरुस्तीची विंडो एका राउंड ट्रिपपेक्षा कमी आहे. |
| एक 30 Hz समकालिक बंद लूप | नाही | बजेट 33 ms एंड-टू-एंड आहे. LAN ला देखील संघर्ष करावा लागतो. |
जर प्रत्येक एपिसोडमध्ये रिमोट रन त्याच ठिकाणी अडखळत असेल, तर नेटवर्क हे कारण नसावे. प्रत्येक वेळी त्याच जॉइंट अँगलवर पॉलिसी अडखळत असेल तर ती सहसा डेटाची समस्या असते; पहा अपयश-मोड पृष्ठे, विशेषतः फक्त एका सेटअपमध्ये कार्य करणारी पॉलिसी आणि नुकसान कमी होते पण पॉलिसी काहीही करत नाही.
स्वतः करणे विरुद्ध AY-Robots वर करणे
- स्पॉट मार्केटवर GPU भाड्याने घ्या आणि तुम्हाला परवडणाऱ्या किमतीत पुरेसा VRAM मिळेपर्यंत प्रतीक्षा करा.
- CUDA, uv, ffmpeg torchcodec स्वीकारणारे घटक आणि सबमॉड्यूलसह GR00T स्टॅक स्थापित करा.
- गेटेड `nvidia/Cosmos-Reason2-2B` बॅकबोनमध्ये प्रवेशाची विनंती करा आणि पॉडवर टोकन ठेवा.
- तुमचा चेकपॉइंट पॉडवर खेचा.
- लूपबॅकवर सर्व्हर सुरू करा, नंतर रोबोट मशीनवरून SSH टनेल तयार करा.
- क्लायंट आणि ड्रायव्हर्ससाठी रोबोट मशीनवर दुसरे वातावरण स्थापित करा.
- कॅमेरा की, जॉइंट नावे आणि भाषिक सूचना चेकपॉइंटने पाहिलेल्या गोष्टींशी जुळवा.
- पॉडवर लक्ष ठेवा. रात्रभर चालू राहिलेल्या विसरलेल्या A100 चा खर्च प्रयोगापेक्षा जास्त असतो.
रोबोट थांबल्यावर GPU चे बिल थांबत नाही. रिमोट इन्फरन्सवर गमावलेला बहुतेक पैसा असा सर्व्हर चालू राहिल्यामुळे जातो, जो सर्वजण निघून गेल्यानंतरही चालू होता. अलार्म सेट करा किंवा स्वयंचलितपणे बंद करण्याची व्यवस्था करा.
- तुम्हाला चालवायची असलेली प्रशिक्षित पॉलिसी निवडा.
- `/api/inference/pod` आपोआप एक क्लाउड GPU पॉड तयार करते जे ती पॉलिसी सर्व्ह करते.
- स्थानिक रोबोट क्लायंट त्या एंडपॉइंटशी संवाद साधतो. बेस चेकपॉइंट्स विक्रेत्यांचे स्वतःचे आहेत: `nvidia/GR00T-N1.7-3B`, `nvidia/GR00T-N1.5-3B`, `lerobot/pi05_base`. ACT कडे कोणतेही नाहीत.
- पॉड्समध्ये निष्क्रिय वॉचडॉग असतो आणि निष्क्रिय कालावधीनंतर ते स्वतःच नष्ट होतात, त्यामुळे काहीही शांतपणे बिलिंग करत राहत नाही.
- टर्मिनलवरून आणि AI एजंट्सना समान ऑपरेशन्स उपलब्ध आहेत, त्यामुळे लूप स्क्रिप्ट केला जाऊ शकतो.
स्वयंचलित तरतूद सेटअपचे काम आणि विसरलेल्या पॉडचे बिल काढून टाकते, भौतिकशास्त्र नाही. जलद कार्यांसाठी इन्फरन्सला अजूनही सर्व्होच्या शेजारीच राहावे लागते: मॉडेलनुसार प्रति क्रिया पायरीसाठी नियंत्रण लूप 20 ते 485 ms असतो, आणि सार्वजनिक-इंटरनेटवरील राऊंड ट्रिप्समुळे कार्यरत पॉलिसी संकोचशील बनते.
- क्लायंट मार्गदर्शक कनेक्शनच्या स्थानिक बाजूसाठी
- वॉकरूसाठी तुमची पहिली पॉलिसी चालवा
- स्क्रिप्टेड आवृत्तीसाठी CLI आणि MCP सर्व्हर
- सुरक्षा दस्तऐवज

रिमोट इन्फरन्स सत्राचा खर्च किती येतो
दोन गोष्टी महत्त्वाच्या आहेत: कार्डचा प्रति तास दर आणि तुम्ही ते किती वेळ चालू ठेवता. पहिली गोष्ट प्रकाशित केली जाते; दुसरी लोकांना आश्चर्यचकित करते.
| कार्ड | रनपॉड कम्युनिटी क्लाउड | रनपॉड सिक्युअर क्लाउड | यासाठी योग्य |
|---|---|---|---|
| A100 PCIe 80 GB | 1.19 USD/h | 1.39 USD/h | GR00T N1.7, GR00T N1.5, Pi0.5 |
| A100 SXM 80 GB | 1.39 USD/h | 1.59 USD/h | तेच, थोडे वेगवान |
| H100 PCIe 80 GB | 1.99 USD/h | 2.89 USD/h | सर्वात वेगवान टियर; NVIDIA चा 11.7 Hz चा ईगर आकडा H100 80GB HBM3 साठी आहे |
| L40S 48 GB | 0.79 USD/h | 0.99 USD/h | केवळ इन्फरन्ससाठी, 16 GB च्या मर्यादेच्या वर |
| RTX 4090 24 GB | 0.34 USD/h | 0.74 USD/h | SmolVLA, ACT |
हे दर 23 ऑगस्ट 2026 रोजी रनपॉडच्या किमतींच्या पानावरून घेतले होते आणि स्पॉट मार्केट बदलतात. AY-Robots त्याऐवजी संपूर्ण रनसाठी दर देते: A100 किंवा H100 टियरवर प्रति तास 1.20 ते 2.00 USD दराने 3 ते 6 तास, GR00T किंवा Pi0.5 रनसाठी सुमारे 4 ते 12 USD; 24 GB टियरवर प्रति तास 0.30 ते 0.60 USD दराने 2 ते 5 तास, SmolVLA किंवा ACT साठी 1 ते 3 USD. इन्फरन्स सेशन ट्रेनिंग रनपेक्षा खर्चात तेव्हाच चांगले ठरते जेव्हा तुम्ही ते थांबवता, आणि त्यासाठीच आयडल वॉचडॉग असतो. बघा बिलिंग डॉक्स आणि किंमत पृष्ठ.

जर तुम्हाला नेटवर्क लूपमध्ये नको असेल तर
रिमोट इन्फरन्स हार्डवेअरची समस्या सोडवतो आणि लेटन्सीची समस्या निर्माण करतो. कधीकधी तुमच्याकडे असलेल्या हार्डवेअरला अनुकूल धोरण हे उत्तम उत्तर असते.
- ACT, अंदाजे 80 दशलक्ष पॅरामीटर्स आणि प्रति ॲक्शन स्टेप 20 मिसेकंद, किमान 50 एपिसोड्स, कोणतीही 24 GB कार्ड. एका पुनरावृत्तीच्या सिंगल-टास्क सेटअपमध्ये, ते रिमोट 3 B मॉडेलला वारंवार हरवते, कारण ते कधीही पॅकेटची वाट पाहत नाही.
- SmolVLA, अंदाजे 450 दशलक्ष पॅरामीटर्स आणि प्रति ॲक्शन स्टेप 245 मिसेकंद, किमान 30 एपिसोड्स. यात ACT मध्ये नसलेले भाषिक कंडिशनिंग आहे, आणि lerobot डॉक्युमेंट्सनुसार, इन्फरन्सच्या वेळी ते अंदाजे 2 GB वापरते, तर PI0 साठी अंदाजे 14 GB लागते.
- ACT vs GR00T N1.7 ट्रेडच्या अचूकतेच्या अर्ध्या भागासाठी.
एक मधला मार्ग देखील आहे: क्लाउडमध्ये प्रशिक्षण द्या, स्थानिक पातळीवर मूल्यांकन करा. फाइन-ट्यूनिंग ला 80 GB कार्डची आवश्यकता असते आणि लेटन्सीची पर्वा नसते, त्यामुळे SO-100 वर GR00T N1.7 चे प्रशिक्षण दूरस्थपणे करणे निर्विवाद आहे. केवळ मूल्यांकन लूपलाच रिअल-टाइम मर्यादा असते; प्रशिक्षण डॉक्युमेंट्स आणि मॉडेल-आणि-आर्म मॅट्रिक्स तो अर्धा भाग कव्हर करतात.
अजून डेस्कवर आर्म नाहीये?
साइनअपशिवाय ब्राउझरमध्ये खरा SO-100 चालवा, पाच प्रशिक्षणयोग्य धोरणांची त्यांच्या वास्तविक लेटन्सी नंबरसह तुलना करा, किंवा GPU भाड्याने घ्या आणि एक प्रशिक्षित करा. सुरुवात करण्याचे तीन मार्ग, तुमच्या मालकीचे नसलेले कोणतेही हार्डवेअर आवश्यक नाही.
हार्डवेअरशिवाय वापरून पहावारंवार विचारले जाणारे प्रश्न
GPU दूरस्थ असल्यास मी रासबेरी पायवर GR00T N1.7 चालवू शकेन का?▾
होय, क्लायंट-सर्व्हर विभाजन याचसाठी आहे. पाय lerobot ड्रायव्हर्स चालवतो, दोन कॅमेरे आणि एक सिरीयल बस वाचतो आणि पॉलिसी सर्व्हरला निरीक्षणे पाठवतो; तो कधीही मॉडेल लोड करत नाही. मर्यादा VRAM वरून अपलोड बँडविड्थवर सरकते: दोन असंपीडित 640x480 RGB फ्रेम्स प्रति कॉल 1,843,200 बाइट्स असतात आणि कोणतीही स्टॅक त्यांना संकुचित करत नाही.
नेटवर्क प्रत्यक्षात किती विलंब (latency) वाढवते?▾
राउंड-ट्रिप वेळ अधिक निरीक्षण हस्तांतरण वेळ. हस्तांतरण वेळ तुमच्या अपलोड बँडविड्थने 14.7 Mbit भागल्यास मिळते: 100 Mbit/s लिंकवर अंदाजे 147 ms, 10 Mbit/s लिंकवर 1.47 s. दोन्ही मॉडेलच्या स्वतःच्या इन्फरन्स वेळेच्या वर येतात, जे AY-Robots GR00T N1.7 साठी 152 ms आणि Pi0.5 साठी 485 ms म्हणून सूचीबद्ध करते. स्पीड-टेस्ट सर्व्हरऐवजी पॉडविरुद्ध पिंग आणि iperf3 वापरून मोजा.
दूरस्थ इन्फरन्स (remote inference) खऱ्या कामासाठी पुरेसे आहे का?▾
हळू, हेतुपुरस्सर पिक-अँड-प्लेससाठी, होय. कोणत्याही प्रतिक्रियाशील गोष्टीसाठी, नाही. NVIDIA चे डिप्लॉयमेंट मार्गदर्शक सिंक्रोनस सिंगल-स्टेपची आवश्यकता 30 FPS वर अंदाजे 33 ms एंड-टू-एंड ठेवते आणि नमूद करते की कॅप्चर, नेटवर्क, इन्फरन्स आणि पोस्ट-प्रोसेसिंग इंटरनेट नसतानाही नियमितपणे यापेक्षा जास्त वेळ घेतात.
सर्व्हर कोणते पोर्ट वापरतात आणि ते उघडणे सुरक्षित आहे का?▾
Isaac-GR00T चा PolicyServer ZeroMQ वर पोर्ट 5555 ला डीफॉल्ट करतो आणि त्याच्या CLI मध्ये 0.0.0.0 ला बाइंड करतो. lerobot gRPC वर पोर्ट 8080 ला डीफॉल्ट करतो आणि लोकलहोस्टला बाइंड करतो. यापैकी कोणतेही उघडणे सुरक्षित नाही: GR00T क्लास api_token ला समर्थन देतो परंतु run_gr00t_server.py कधीही ते पास करत नाही, आणि lerobot असुरक्षित gRPC चॅनेलवर डेटा पिकल्स करतो, जे CVE-2026-25874 आहे. लूपबॅकवर बाइंड करा आणि SSH टनेल वापरा.
lerobot अपग्रेड केल्याने CVE-2026-25874 दुरुस्त होते का?▾
23 ऑगस्ट 2026 पर्यंत नाही. CVE रेकॉर्ड LeRobot 0.5.1 पर्यंत प्रभावित म्हणून सूचीबद्ध करते आणि PyPI 0.6.1 पाठवते, परंतु एसिंक पाइपलाइनमधून पिकल काढण्याची पुल रिक्वेस्ट अजूनही खुली आहे, आणि मेनवरील policy_server.py अजूनही विनंती डेटावर pickle.loads कॉल करते. नेटवर्क आयसोलेशनला उपाय म्हणून समजा, आवृत्ती वाढवणे नाही, आणि रोबोट-साइड क्लायंट देखील विचारात घ्या.
मी GR00T चेकपॉईंटसह lerobot चा एसिंक क्लायंट वापरू शकेन का?▾
होय. lerobot 0.6.1 SUPPORTED_POLICIES मध्ये groot ला act, smolvla, diffusion, tdmpc, vqbet, pi0 आणि pi05 सोबत सूचीबद्ध करते, आणि so100_follower आणि so101_follower दोन्ही SUPPORTED_ROBOTS मध्ये आहेत. --policy_type=groot पास करा आणि --pretrained_name_or_path तुमच्या चेकपॉईंटकडे निर्देशित करा. तुम्हाला एसिंक्रोनस एक्झिक्यूशन मिळते, जे GR00T SO-100 उदाहरण लागू करत नाही, परंतु पिकल ट्रान्सपोर्टच्या खर्चावर.
थोडक्यात
3 B साठी दूरस्थ इन्फरन्स पॉलिसी ही एक सोडवलेली अभियांत्रिकी समस्या आहे ज्याला एक न सोडवलेली भौतिकशास्त्राची समस्या जोडलेली आहे. अभियांत्रिकी म्हणजे दोन कमांड्स आणि एक SSH टनेल. भौतिकशास्त्र असे आहे की 1.8 MB निरीक्षण दुसऱ्या देशातील GPU पर्यंत पोहोचले पाहिजे आणि रोबोटचा हात क्रिया संपण्यापूर्वी परत आले पाहिजे. काहीही भाड्याने घेण्यापूर्वी गणित करा, जुन्या निरीक्षणाला सहन करणारे कार्य निवडा आणि लिंक सुधारण्याची आशा करण्याऐवजी एक्झिक्यूशन होरायझन वाढवा.
जर तुम्ही अजून डेटासेट रेकॉर्ड केला नसेल, तर आणि आधी येतात, आणि एंट्रीमध्ये रेकॉर्डर काय लिहितो हे स्पष्ट केले आहे. पार्श्वभूमी आणि मध्ये आहे; प्रत्येक बेंचमार्क नंबरला स्रोताशी जोडते.
Sources
- NVIDIA Isaac-GR00T: N1.7 रिपॉझिटरी आणि README (16 GB इन्फरन्स फ्लोर, इन्स्टॉल, गेटेड Cosmos-Reason2-2B बॅकबोन, FFmpeg मर्यादा)
- run_gr00t_server.py: GR00T पॉलिसी सर्व्हर CLI, ServerConfig डीफॉल्ट (होस्ट 0.0.0.0, पोर्ट 5555) आणि ReplayPolicy पथ
- server_client.py: PolicyServer आणि PolicyClient, MsgSerializer ची allow_pickle=False बाउंड्री, api_token, timeout_ms
- eval_so100.py: SO-100 पॉलिसी क्लायंट, EvalConfig डीफॉल्ट आणि सिंक्रोनस कंट्रोल लूप
- Isaac-GR00T SO100/SO101 उदाहरण: डेटासेट रूपांतरण, फाइनट्यून आणि क्लोज्ड-लूप इव्हॅल कमांड्स
- Isaac-GR00T रिअल-वर्ल्ड डिप्लॉयमेंट मार्गदर्शक: 33 ms सिंक्रोनस बजेट, स्टॉप-अँड-गो, ॲक्शन चंक आकार, RTC स्थिती
- Isaac-GR00T हार्डवेअर शिफारस: प्रति GPU इन्फरन्स फ्रिक्वेन्सी आणि 10 Hz किमान
- Isaac-GR00T डिप्लॉयमेंट आणि इन्फरन्स मार्गदर्शक: प्रति-घटक लेटन्सी बेंचमार्क परिणाम
- LeRobot: असिंक्रोनस इन्फरन्स ट्यूटोरियल (PolicyServer, RobotClient, डॉक्युमेंटेड पॅरामीटर टेबल)
- lerobot async_inference/configs.py: PolicyServerConfig आणि RobotClientConfig डीफॉल्ट, AGGREGATE_FUNCTIONS रजिस्ट्री
- lerobot async_inference/policy_server.py: विनंती डेटावर pickle.loads, add_insecure_port, gRPC कॉल नावे
- lerobot robot_client.py: gRPC ट्रान्सपोर्ट, पिकल सिरियलायझेशन, लेटन्सी लॉगिंग
- CVE-2026-25874: LeRobot असुरक्षित डिसेरियलायझेशन रिमोट कोड एक्झिक्यूशन gRPC द्वारे, 0.5.1 पर्यंत प्रभावित
- ब्लॅक, गॅलिकर आणि लेविन, ॲक्शन चंकिंग फ्लो पॉलिसीजचे रिअल-टाइम एक्झिक्यूशन (रिअल-टाइम चंकिंग)
- Runpod GPU किंमत: A100, H100, L40S आणि RTX 4090 साठी समुदाय आणि सुरक्षित क्लाउड प्रति तास दर
Sources
- NVIDIA Isaac-GR00T: N1.7 repository and README (16 GB inference floor, install, gated Cosmos-Reason2-2B backbone, FFmpeg constraint)
- run_gr00t_server.py: the GR00T policy server CLI, ServerConfig defaults (host 0.0.0.0, port 5555) and the ReplayPolicy path
- server_client.py: PolicyServer and PolicyClient, MsgSerializer's allow_pickle=False boundary, api_token, timeout_ms
- eval_so100.py: the SO-100 policy client, EvalConfig defaults and the synchronous control loop
- Isaac-GR00T SO100/SO101 example: dataset conversion, finetune and closed-loop eval commands
- Isaac-GR00T Real-World Deployment Guide: the 33 ms synchronous budget, stop-and-go, action chunk size, RTC status
- Isaac-GR00T Hardware Recommendation: inference frequency per GPU and the 10 Hz minimum
- Isaac-GR00T Deployment and Inference Guide: per-component latency benchmark results
- LeRobot: Asynchronous Inference tutorial (PolicyServer, RobotClient, the documented parameter table)
- lerobot async_inference/configs.py: PolicyServerConfig and RobotClientConfig defaults, AGGREGATE_FUNCTIONS registry
- lerobot async_inference/policy_server.py: pickle.loads on request data, add_insecure_port, the gRPC call names
- lerobot robot_client.py: gRPC transport, pickle serialization, latency logging
- CVE-2026-25874: LeRobot unsafe deserialization remote code execution via gRPC, affected through 0.5.1
- Black, Galliker and Levine, Real-Time Execution of Action Chunking Flow Policies (real-time chunking)
- Runpod GPU pricing: community and secure cloud hourly rates for A100, H100, L40S and RTX 4090
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started