AY-Robots ट्राय पेज: रोबोटची मालकी नसताना सुरुवात करण्याचे तीन मार्ग, ज्यात पॉलिसी अनुमानासाठी जीपीयू भाड्याने घेणे समाविष्ट आहे.
GR00T N1.7दूरस्थ अनुमानक्लाउड जीपीयूLeRobotSO-100विलंबता

स्थानिक जीपीयूशिवाय GR00T अनुमान चालवा

AY-Robots ResearchAugust 23, 202619 मिनिट वाचन

तुमच्या रोबोट मशीनमध्ये जीपीयू नाही. 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 M152 msA100 80 GB or H100 80 GB50LeRobot v2.0 or v2.1
GR00T N1.5~3 B165 msA100 80 GB or H100 80 GB50LeRobot v2.0 or v2.1
Pi0.5~3 B, PaliGemma बॅकबोन485 msA100 80 GB or H100 80 GB50LeRobot v3.0
SmolVLA~450 M245 msRTX 4090 or any 24 GB card30LeRobot v3.0
ACT~80 M20 msRTX 4090 or any 24 GB card50LeRobot v3.0
The AY-Robots policies page comparing the five trainable policies by parameters, GPU tier, inference latency and minimum episodes
The same five rows on /policies. The latency column decides whether a policy survives a network hop.

त्याला एक निर्णय समजा, किरकोळ माहिती नाही. ACT 20 ms प्रति स्टेपने रोबोट मशीनवर चालते आणि तुम्हाला त्याबद्दल पुन्हा कधीही विचार करावा लागत नाही. Pi0.5 485 ms मध्ये पॅकेट तुमच्या इमारतीतून बाहेर पडण्यापूर्वी एक तृतीयांश सेकंद खर्च झालेला असतो. धोरणांची तुलना आणि GR00T N1.7 vs Pi0.5 अचूकतेची बाजू वाढवतात.

ACT ला कोणताही बेस मॉडेल नाही

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.pypython -m lerobot.async_inference.policy_server
ट्रान्सपोर्टZeroMQ REQ/REPgRPC, add_insecure_port / insecure_channel
सिरियलायझेशनmsgpack + msgpack_numpy, allow_pickle=False enforcedpickle.dumps / pickle.loads, marked # nosec
डिफॉल्ट पोर्ट55558080
डिफॉल्ट बाइंड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. 1
    भाड्याच्या GPU बॉक्सवर GR00T स्थापित करा

    सबमॉड्यूल्स आवश्यक आहेत, आणि क्लोन करण्यापूर्वी git-lfs अस्तित्वात असणे आवश्यक आहे अन्यथा demo_data मधील पार्केट फाइल्स पॉइंटर म्हणून येतील. flash-attn आणि TensorRT डीफॉल्ट इन्स्टॉलसह येतात. नवीन पॉड इमेजवरील अडचण: torchcodec 0.8.0 हे एकमेव समर्थित व्हिडिओ बॅकएंड आहे आणि ते फक्त FFmpeg 4 ते 7 लोड करते. Ubuntu 25.10 आणि 26.04 FFmpeg 8 सह येतात, त्यामुळे GR00T Could not load libtorchcodec सह अयशस्वी होते. FFmpeg 8 च्या खालील आवृत्ती स्थापित करा आणि त्याच्या लायब्ररी LD_LIBRARY_PATH वर ठेवा.

    bash
    sudo 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. 2
    गेटेड बॅकबोन विरुद्ध प्रमाणीकरण करा

    प्रत्येक GR00T N1.7 चेकपॉईंट, तुमच्या स्वतःच्या फाइन-ट्यूनसह, पहिल्या वापरावेळी गेटेड nvidia/Cosmos-Reason2-2B लोड करतो. मॉडेल पेजवर प्रवेशाची विनंती करा आणि पॉडवर लॉग इन करा, अन्यथा लोडिंग GatedRepoError सह अयशस्वी होईल.

    bash
    uv run huggingface-cli login
    # or:  export HF_TOKEN=<your_token>
  3. 3
    पॉलिसी सर्व्हर सुरू करा

    --model-path तुमच्या चेकपॉईंट डिरेक्टरीकडे निर्देशित करा; त्या मार्गावर सर्व्हर --modality-config-path दुर्लक्षित करतो, जे फक्त रिप्ले मार्गावर वाचले जाते. --model-path वगळा आणि त्याऐवजी --dataset-path अधिक --execution-horizon पास करा, रेकॉर्ड केलेल्या क्रिया पुन्हा प्ले करणाऱ्या ReplayPolicy साठी, वायरिंग काम करते हे सिद्ध करण्याचा सर्वात स्वस्त मार्ग.

    bash
    uv 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. 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. 5
    सर्व्होच्या शेजारी रोबोट क्लायंट चालवा

    क्लायंटला स्वतःचे uv वातावरण आवश्यक आहे: त्याला lerobot चे रोबोट ड्रायव्हर्स हवे आहेत, प्रशिक्षण स्टॅक नाही. eval_so100.py so100_follower, so101_follower आणि koch_follower आयात करते, म्हणून तुमच्या आर्मशी जुळणारे --robot.type पास करा (अपस्ट्रीम README so101_follower वापरते). कॅमेरा कीज प्रशिक्षणाशी जुळल्या पाहिजेत: अडॅप्टर नेमके front आणि wrist वाचतो, आणि त्यांची अदलाबदल केल्यास पॉलिसीला चुकीचे दृश्य दिसते.

    bash
    cd 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 चेकपॉइंटसह देखील कार्य करते.

bash
# 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
GPU वर पॉलिसी सर्व्हर, USB पोर्ट असलेल्या मशीनवर रोबोट क्लायंट

सर्वर रिकामा सुरू होतो: क्लायंटच्या पहिल्या हँडशेकने सांगेपर्यंत त्याला कोणती पॉलिसी सेवा द्यायची आहे हे माहित नसते, जे भाड्याच्या पॉडवर सोयीचे आहे. हात सहजपणे फिरतो की नाही हे ठरवणारे दोन नियंत्रक आहेत actions_per_chunk आणि chunk_size_threshold (lerobot डॉक्स दुसऱ्याला g म्हणतात, SmolVLA पेपरनंतर), आणि दस्तऐवजीकरण केलेली मूल्ये आणि वितरित केलेली मूल्ये जुळत नाहीत.

पॅरामीटरlerobot 0.6.1 कोडमधील मूल्यते काय करतेटीप
actions_per_chunkno default, requiredप्रति कॉल परत केलेल्या क्रियाडॉक्स टेबलमध्ये 50 सूचीबद्ध आहेत; डेटाक्लास फील्डला डीफॉल्ट नाही, त्यामुळे CLI ला मूल्याची मागणी आहे
chunk_size_threshold0.5क्लायंट नवीन निरीक्षण पाठवतो तेव्हा किंवा त्याखालील रांग भरण्याचे प्रमाणडॉक्स टेबल 0.7 म्हणते; कोड आणि डॉक्सचे स्वतःचे उदाहरण 0.5 म्हणतात
fps30क्लायंट नियंत्रण दर, environment_dt = 1/fps सेट करतोरांग रिकामी होत राहिल्यास ते कमी करा
inference_latency1/30 s (33.3 ms)सर्वरवरील लक्ष्यित अनुमान विलंबताएक लक्ष्य, मोजमाप नाही
obs_queue_timeout2 sसर्वर निरीक्षण रांगेवर किती वेळ थांबतोएक धीमा अपलिंक येथे प्रथम दिसतो
aggregate_fn_nameweighted_averageओव्हरलॅपिंग चंक प्रदेश कसे मिसळले जातात0.3 जुने + 0.7 नवीन; latest_only, average आणि conservative देखील पाठवले जातात. रजिस्ट्री configs.py मध्ये AGGREGATE_FUNCTIONS आहे, robot_client.py मध्ये नाही जसे डॉक्स दावा करतात
lerobot पॉलिसी सर्वरमध्ये अनपॅच केलेला RCE आहे

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 गती, आणि बाकी सर्व काही त्यात बसले पाहिजे.

text
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
कार्यरत उदाहरण: 100 Mbit/s अपलिंक, 30 ms राउंड ट्रिप, GR00T N1.7

होरायझन वाढवणे हा एक तात्पुरता उपाय आहे आणि तो विनामूल्य नाही: हात आता जुन्या झालेल्या निरीक्षणावर कार्य करतो. तत्त्वनिष्ठ उपाय म्हणजे रिअल-टाइम चंकिंग, जे सध्याचा चंक चालू असताना पुढील चंकची गणना करते, कार्यान्वित होण्याची हमी असलेल्या क्रिया गोठवते आणि उर्वरित भाग भरते; 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. 1
    कच्चा राउंड ट्रिप मिळवा

    पॉडच्या विरुद्ध, CDN च्या नाही. सरासरीइतकेच विचलनाकडे लक्ष द्या: सरासरी लेटन्सीमुळे नाही तर जिटरमुळे आर्म अडखळतो.

    bash
    ping -c 50 <pod-host>
    # the mdev column is the number that predicts stutter
  2. 2
    तुमच्याकडे असलेला अपलिंक मोजा, ज्यासाठी तुम्ही पैसे देता तो नाही

    रेसिडेन्शियल अपलोड सहसा डाउनलोडच्या काही अंशात असतो आणि वरील बँडविड्थ टेबलमधील तोच आकडा आहे.

    bash
    # on the pod
    iperf3 -s
    
    # on the robot machine, -R omitted so this measures upload
    iperf3 -c <pod-host> -t 30
  3. 3
    क्लायंटचा स्वतःचा लेटन्सी लॉग वाचा

    lerobot रोबोट क्लायंट प्रत्येक चंकसाठी सर्व्हर-टू-क्लायंट लेटन्सी आणि डीसेरियलायझेशन वेळ लॉग करतो. मार्ग B वर तुम्हाला कोणत्याही बाह्य साधनांची आवश्यकता नाही.

    text
    Received action chunk for step #240 | Latest action: #232 |
      Incoming actions: 240:289 |
      Network latency (server->client): 187.44ms |
      Deserialization time: 3.10ms
  4. 4
    ॲक्शन क्यू रिकामा होताना पहा

    --debug_visualize_queue_size=True पास करा आणि क्लायंट रनटाइमवर क्यूचा आकार प्लॉट करतो. जर तो वारंवार शून्य होत असेल, तर तुमचे बजेट संपले आहे: fps कमी करा, actions_per_chunk वाढवा किंवा chunk_size_threshold वाढवा जेणेकरून निरीक्षणे अधिक वेळा बाहेर पडतील.

    bash
    python -m lerobot.async_inference.robot_client \
        ... \
        --debug_visualize_queue_size=True

रिमोट इन्फरन्स प्रत्यक्षात कशासाठी उपयुक्त आहे

भाड्याच्या GPU वर पॉलिसी, तुमच्या डेस्कवर रोबोटिक आर्म
फायदे
  • आर्मपेक्षा जास्त खर्च नसलेल्या कार्डची मालकी नसतानाही तुम्ही वास्तविक हार्डवेअरवर 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 वर करणे

  1. स्पॉट मार्केटवर GPU भाड्याने घ्या आणि तुम्हाला परवडणाऱ्या किमतीत पुरेसा VRAM मिळेपर्यंत प्रतीक्षा करा.
  2. CUDA, uv, ffmpeg torchcodec स्वीकारणारे घटक आणि सबमॉड्यूलसह GR00T स्टॅक स्थापित करा.
  3. गेटेड `nvidia/Cosmos-Reason2-2B` बॅकबोनमध्ये प्रवेशाची विनंती करा आणि पॉडवर टोकन ठेवा.
  4. तुमचा चेकपॉइंट पॉडवर खेचा.
  5. लूपबॅकवर सर्व्हर सुरू करा, नंतर रोबोट मशीनवरून SSH टनेल तयार करा.
  6. क्लायंट आणि ड्रायव्हर्ससाठी रोबोट मशीनवर दुसरे वातावरण स्थापित करा.
  7. कॅमेरा की, जॉइंट नावे आणि भाषिक सूचना चेकपॉइंटने पाहिलेल्या गोष्टींशी जुळवा.
  8. पॉडवर लक्ष ठेवा. रात्रभर चालू राहिलेल्या विसरलेल्या A100 चा खर्च प्रयोगापेक्षा जास्त असतो.
निष्क्रिय पॉड ही खरी किंमत आहे

रोबोट थांबल्यावर GPU चे बिल थांबत नाही. रिमोट इन्फरन्सवर गमावलेला बहुतेक पैसा असा सर्व्हर चालू राहिल्यामुळे जातो, जो सर्वजण निघून गेल्यानंतरही चालू होता. अलार्म सेट करा किंवा स्वयंचलितपणे बंद करण्याची व्यवस्था करा.

AY-Robots MCP सर्व्हर पृष्ठ जे AI एजंट्सना साधने म्हणून उपलब्ध असलेल्या प्लॅटफॉर्म ऑपरेशन्सची यादी करते
MCP पृष्ठ: एजंट कॉल करू शकणारी साधने म्हणून तरतूद आणि इन्फरन्स ऑपरेशन्स उघड केली आहेत.

रिमोट इन्फरन्स सत्राचा खर्च किती येतो

दोन गोष्टी महत्त्वाच्या आहेत: कार्डचा प्रति तास दर आणि तुम्ही ते किती वेळ चालू ठेवता. पहिली गोष्ट प्रकाशित केली जाते; दुसरी लोकांना आश्चर्यचकित करते.

कार्डरनपॉड कम्युनिटी क्लाउडरनपॉड सिक्युअर क्लाउडयासाठी योग्य
A100 PCIe 80 GB1.19 USD/h1.39 USD/hGR00T N1.7, GR00T N1.5, Pi0.5
A100 SXM 80 GB1.39 USD/h1.59 USD/hतेच, थोडे वेगवान
H100 PCIe 80 GB1.99 USD/h2.89 USD/hसर्वात वेगवान टियर; NVIDIA चा 11.7 Hz चा ईगर आकडा H100 80GB HBM3 साठी आहे
L40S 48 GB0.79 USD/h0.99 USD/hकेवळ इन्फरन्ससाठी, 16 GB च्या मर्यादेच्या वर
RTX 4090 24 GB0.34 USD/h0.74 USD/hSmolVLA, 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. इन्फरन्स सेशन ट्रेनिंग रनपेक्षा खर्चात तेव्हाच चांगले ठरते जेव्हा तुम्ही ते थांबवता, आणि त्यासाठीच आयडल वॉचडॉग असतो. बघा बिलिंग डॉक्स आणि किंमत पृष्ठ.

The AY-Robots cost table showing which GPU each policy needs, typical run time and price, and episodes before a policy is useful
The cost table on /try: which card each model needs and what a run typically costs.

जर तुम्हाला नेटवर्क लूपमध्ये नको असेल तर

रिमोट इन्फरन्स हार्डवेअरची समस्या सोडवतो आणि लेटन्सीची समस्या निर्माण करतो. कधीकधी तुमच्याकडे असलेल्या हार्डवेअरला अनुकूल धोरण हे उत्तम उत्तर असते.

  • 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

Sources

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started