AY-Robots ट्राई पेज: रोबोट के मालिक हुए बिना शुरू करने के तीन तरीके, जिसमें पॉलिसी इन्फेरेंस के लिए GPU किराए पर लेना शामिल है
GR00T N1.7रिमोट इन्फेरेंसक्लाउड GPULeRobotSO-100विलंबता

स्थानीय GPU के बिना GR00T इन्फेरेंस चलाएँ

AY-Robots ResearchAugust 23, 202619 मिनट का पठन

आपकी रोबोट मशीन में कोई GPU नहीं है। GR00T पॉलिसी सर्वर को किराए के क्लाउड GPU पर रखें, आर्म को एक्शन चंक्स स्ट्रीम करें, और जानें कि नेटवर्क पर आपको कितना खर्च आता है।

एक रास्पबेरी पाई एक को एक सीरियल बस पर चलाने और दो USB कैमरों से फ़्रेम खींचने के लिए पर्याप्त है। यह तीन अरब पैरामीटर वाले : NVIDIA का README GR00T N1.7 अनुमान को 16 GB या उससे अधिक VRAM वाले एक GPU पर रखता है। यह देखने के लिए कि आपका फाइन-ट्यून किया गया चेकपॉइंट बिना कार्ड खरीदे आर्म पर क्या करता है, पॉलिसी को किराए के क्लाउड GPU पर रखें, रोबोट लूप को USB पोर्ट वाली मशीन पर रखें, और नेटवर्क पर ऑब्ज़र्वेशन और एक्शन चंक्स भेजें।

यह काम करता है, यह मुफ़्त नहीं है, और कीमत सभी कार्यों में समान रूप से वितरित नहीं है। नीचे: 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 दोनों क्लाइंट-सर्वर स्प्लिट के साथ आते हैं। आप ट्रांसपोर्ट नहीं लिखते हैं।
  • ऑब्ज़र्वेशन वायर लागत पर हावी होते हैं, एक्शन नहीं: दो असंपीड़ित 640x480 RGB फ़्रेम 1,843,200 बाइट्स होते हैं, प्रति कॉल लगभग 14.7 Mbit, और कोई भी स्टैक उन्हें संपीड़ित नहीं करता।
  • AY-Robots मॉडल के अनुसार प्रति एक्शन स्टेप 20 से 485 ms सूचीबद्ध करता है। इंटरनेट राउंड ट्रिप इसके ऊपर आते हैं।
  • रिमोट अनुमान धीमी पिक-एंड-प्लेस के लिए उपयुक्त है, न कि तेज़ प्रतिक्रियाशील गति के लिए। एक लंबा निष्पादन क्षितिज समय बचाता है और ऑब्ज़र्वेशन की ताज़गी की कीमत चुकाता है।
  • कोई भी सर्वर शिप किए गए सार्वजनिक 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 या कोई भी 24 GB कार्ड30LeRobot v3.0
ACT~80 M20 msRTX 4090 या कोई भी 24 GB कार्ड50LeRobot 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, all interfaceslocalhost
प्रमाणीकरणक्लास द्वारा समर्थित api_token, CLI द्वारा पास नहीं किया गयाकोई नहीं
क्लाइंट टाइमआउट15000 ms (PolicyClient timeout_ms)2 s ऑब्ज़र्वेशन क्यू टाइमआउट
एग्जीक्यूशन मॉडलसिंक्रोनस: ब्लॉक करें, फिर चंक को निष्पादित करेंएसिंक्रोनस: निष्पादित करें जबकि अगला चंक गणना करता है

सीरियलाइज़ेशन पंक्ति जितना दिखती है, उससे कहीं ज़्यादा मायने रखती है। GR00T की MsgSerializer दोनों दिशाओं में ऑब्जेक्ट-डटाइप एनडी-एरे पेलोड को अस्वीकार करती है, क्योंकि msgpack_numpy अन्यथा उन्हें पिकल को सौंप देगा। लेरोबोट इसके बजाय पिकल करता है: policy_server.py अनुरोध डेटा पर pickle.loads कॉल करता है, robot_client.py भेजे गए अवलोकन को पिकल करता है। एक विश्वसनीय लैन पर बचाव योग्य, इंटरनेट से पोर्ट के पहुँच योग्य होने पर बचाव योग्य नहीं।

मार्ग A: NVIDIA का अपना GR00T पॉलिसी सर्वर

यह वह मार्ग है जिसे NVIDIA SO-100 और SO-101 हार्डवेयर के लिए दस्तावेज़ित करता है, और यदि आपका चेकपॉइंट 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
    सर्वो के बगल में रोबोट क्लाइंट चलाएँ

    क्लाइंट को अपने स्वयं के यूवी वातावरण की आवश्यकता है: इसे लेरोबोट के रोबोट ड्राइवर चाहिए, न कि प्रशिक्षण स्टैक। 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 (लेरोबोट डॉक्स दूसरे को g कहते हैं, स्मोलवीएलए पेपर के बाद), और दस्तावेज़ित मान और शिप किए गए मान सहमत नहीं हैं।

पैरामीटरलेरोबोट 0.6.1 कोड में मानयह क्या करता हैटिप्पणी
actions_per_chunkno default, requiredप्रति कॉल लौटाई गई क्रियाएँडॉक्स तालिका में 50 सूचीबद्ध हैं; डेटाक्लास फ़ील्ड का कोई डिफ़ॉल्ट नहीं है, इसलिए सीएलआई एक मान की मांग करता है
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 जैसा कि डॉक्स दावा करते हैं
लेरोबोट नीति सर्वर में एक अनपैच्ड आरसीई है

CVE-2026-25874 लेरोबोट की एसिंक इन्फरेंस पाइपलाइन में एक अप्रमाणित रिमोट कोड निष्पादन है: pickle.loads() अप्रमाणित gRPC चैनल पर TLS के बिना प्राप्त डेटा पर, जो SendPolicyInstructions, SendObservations और GetActions कॉल के माध्यम से पहुंच योग्य है। CWE-502, NVD से CVSS 3.1 बेस स्कोर 9.8, असाइनिंग CNA से 4.0 बेस स्कोर 9.3। रिकॉर्ड में LeRobot 0.5.1 तक प्रभावित के रूप में सूचीबद्ध है और नीति सर्वर और रोबोट क्लाइंट दोनों का नाम है, इसलिए आपकी भुजा के बगल वाली मशीन दायरे में है। अपग्रेड करना समाधान नहीं है: रिकॉर्ड अपस्ट्रीम समस्या 3047 और पैच, PR 3048 का हवाला देता है, जो पिकल को सेफटेन्सर्स प्लस JSON से बदलता है, और 23 अगस्त 2026 को दोनों अभी भी खुले हैं। मुख्य पर policy_server.py अभी भी अनुरोध डेटा पर pickle.loads को कॉल करता है जबकि serve() 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 एक कैमरे के साथ 4 डीनोइजिंग स्टेप्स पर GR00T N1.7 का एंड-टू-एंड बेंचमार्क करता है। H100 80GB HBM3 पर: PyTorch ईगर में 85.8 ms (11.7 Hz), torch.compile के साथ 48.6 ms (20.6 Hz), TensorRT फुल पाइपलाइन के साथ 27.9 ms (35.9 Hz)। ईगर मोड में एक 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
    क्लाइंट का अपना विलंबता लॉग पढ़ें

    लेरोबोट रोबोट क्लाइंट हर चंक के लिए सर्वर-टू-क्लाइंट विलंबता और डीसीरियलाइज़ेशन समय को लॉग करता है। रूट 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 प्रति घंटे के हिसाब से किराए पर लिया जाता है, इसलिए एक विफल चेकपॉइंट पर कुछ डॉलर का खर्च आता है।
  • रोबोट साइड छोटा रहता है: लेरोबोट ड्राइवर, दो कैमरे, एक सीरियल पोर्ट, और आप इसे छुए बिना चेकपॉइंट्स बदल सकते हैं।
कमियाँ
  • असंपीड़ित अवलोकन वायर लागत पर हावी होते हैं, और आवासीय अपलोड एक बाध्यकारी बाधा है।
  • विलंबता से ज़्यादा जिटर नुकसान पहुँचाता है: 40 ms औसत वाला लिंक जिसमें 300 ms तक स्पाइक्स आते हैं, वह अटकता है जबकि एक स्थिर 120 ms वाला लिंक नहीं अटकता।
  • तेज़ प्रतिक्रियाशील कार्य किसी भी समय सीमा में राउंड ट्रिप में जीवित नहीं रहते।
  • दोनों सर्वर CLI रूप में अप्रमाणित शिप होते हैं, इसलिए टनलिंग का काम आपका है।
  • एक चंक के बीच में कनेक्शन टूटने से आर्म एक पुरानी क्रिया को पकड़े रहता है। अपनी खुद की वॉचडॉग रोबोट-साइड जोड़ें।
कार्यक्या सार्वजनिक इंटरनेट पर काम करता है?क्यों
एक स्थिर वस्तु उठाएँ, उसे बिन में रखेंहाँअवलोकन और क्रिया के बीच कुछ भी नहीं हिलता।
ब्लॉक को जानबूझकर धीमी गति से स्टैक करेंहाँ, action_horizon 16 या उससे अधिक परत्रुटियाँ इतनी धीमी गति से जमा होती हैं कि अगले चंक में ठीक की जा सकें।
एक दराज खोलें, एक वस्तु डालेंआमतौर परसंपर्क-समृद्ध लेकिन धीमा। संपर्क पर रुकने और चलने पर ध्यान दें।
एक चलती वस्तु का पीछा करेंनहींपॉलिसी 300 ms से 1 s पुराने अवलोकन पर कार्य करती है।
पकड़ें, संतुलन बनाएँ, या फिसलने से उबरेंनहींसुधार विंडो एक राउंड ट्रिप से छोटी है।
एक 30 हर्ट्ज सिंक्रोनस क्लोज्ड लूपनहींबजट एंड-टू-एंड 33 ms है। यहाँ तक कि एक LAN भी संघर्ष करता है।

यदि एक रिमोट रन हर एपिसोड में एक ही बिंदु पर अटकता है, तो नेटवर्क शायद इसका कारण नहीं है। हर बार एक ही जॉइंट एंगल पर हिचकिचाने वाली पॉलिसी आमतौर पर एक डेटा समस्या होती है; देखें विफलता-मोड पृष्ठ, विशेष रूप से एक पॉलिसी जो केवल एक सेटअप में काम करती है और लॉस गिरता है लेकिन पॉलिसी कुछ नहीं करती

इसे स्वयं करना बनाम AY-Robots पर करना

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

जब रोबोट रुकता है तो जीपीयू का बिल बंद नहीं होता। रिमोट इन्फरेंस पर खोया गया अधिकांश पैसा उस सर्वर पर जाता है जो सबके चले जाने के बाद भी चालू रहा। एक अलार्म सेट करें, या स्वचालित रूप से बंद करने की व्यवस्था करें।

AY-Robots MCP सर्वर पेज प्लेटफॉर्म ऑपरेशंस को एआई एजेंटों के लिए उपकरण के रूप में सूचीबद्ध करता है
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.

यदि आप नहीं चाहते कि नेटवर्क लूप में हो

रिमोट इन्फेरेंस हार्डवेयर की समस्या को हल करता है और विलंबता (latency) की समस्या पैदा करता है। कभी-कभी बेहतर जवाब एक ऐसी नीति होती है जो आपके पास मौजूद हार्डवेयर के अनुकूल हो।

  • ACT, लगभग 80 M पैरामीटर और प्रति एक्शन स्टेप 20 ms, न्यूनतम 50 एपिसोड, कोई भी 24 GB कार्ड। एक दोहराव वाले एकल-कार्य सेटअप पर यह अक्सर एक रिमोट 3 B मॉडल को हरा देता है, क्योंकि यह कभी भी पैकेट का इंतजार नहीं करता।
  • SmolVLA, लगभग 450 M पैरामीटर और प्रति एक्शन स्टेप 245 ms, न्यूनतम 30 एपिसोड। यह भाषा कंडीशनिंग को बरकरार रखता है जिसकी ACT में कमी है, और lerobot डॉक्स इसे इन्फेरेंस समय पर लगभग 2 GB पर रखते हैं, जबकि PI0 के लिए यह लगभग 14 GB है।
  • ACT vs GR00T N1.7 व्यापार के सटीकता वाले आधे हिस्से के लिए।

एक मध्य मार्ग भी है: क्लाउड में प्रशिक्षित करें, स्थानीय रूप से मूल्यांकन करें। फाइन-ट्यूनिंग को 80 GB कार्ड की आवश्यकता होती है और उसे विलंबता की परवाह नहीं होती, इसलिए SO-100 पर GR00T N1.7 को दूरस्थ रूप से प्रशिक्षित करना निर्विवाद है। केवल मूल्यांकन लूप में वास्तविक समय की बाधा होती है; प्रशिक्षण दस्तावेज़ और मॉडल-और-आर्म मैट्रिक्स उस आधे हिस्से को कवर करते हैं।

अभी तक डेस्क पर कोई आर्म नहीं है?

बिना साइनअप के ब्राउज़र में एक वास्तविक SO-100 चलाएं, पांच प्रशिक्षित करने योग्य नीतियों की उनकी वास्तविक विलंबता संख्याओं के साथ तुलना करें, या एक GPU किराए पर लें और एक को प्रशिक्षित करें। शुरू करने के तीन तरीके, जिनमें से किसी को भी ऐसे हार्डवेयर की आवश्यकता नहीं है जो आपके पास नहीं है।

बिना हार्डवेयर के इसे आज़माएं

अक्सर पूछे जाने वाले प्रश्न

क्या मैं GR00T N1.7 को Raspberry Pi पर चला सकता हूँ यदि GPU दूरस्थ है?

हाँ, क्लाइंट-सर्वर विभाजन इसी के लिए है। Pi लेरोबोट ड्राइवर चलाता है, दो कैमरे और एक सीरियल बस पढ़ता है, और ऑब्जरवेशन को पॉलिसी सर्वर पर भेजता है; यह कभी भी मॉडल को लोड नहीं करता। बाधा VRAM से अपलोड बैंडविड्थ पर स्थानांतरित हो जाती है: दो असंपीड़ित 640x480 RGB फ्रेम प्रति कॉल 1,843,200 बाइट्स होते हैं, और कोई भी स्टैक उन्हें संपीड़ित नहीं करता।

नेटवर्क वास्तव में कितनी विलंबता जोड़ता है?

राउंड-ट्रिप समय प्लस ऑब्जरवेशन ट्रांसफर समय। ट्रांसफर समय 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 से मापें, न कि स्पीड-टेस्ट सर्वर से।

क्या दूरस्थ इन्फरेंस एक वास्तविक कार्य के लिए पर्याप्त है?

धीमे, जानबूझकर पिक-एंड-प्लेस के लिए, हाँ। किसी भी प्रतिक्रियाशील कार्य के लिए, नहीं। NVIDIA की डिप्लॉयमेंट गाइड सिंक्रोनस सिंगल-स्टेप आवश्यकता को 30 FPS पर एंड-टू-एंड लगभग 33 ms बताती है, और यह नोट करती है कि कैप्चर, नेटवर्क, इन्फरेंस और पोस्ट-प्रोसेसिंग बिना इंटरनेट के भी नियमित रूप से इससे अधिक हो जाते हैं।

सर्वर कौन सा पोर्ट उपयोग करते हैं और क्या इसे खोलना सुरक्षित है?

Isaac-GR00T का PolicyServer ZeroMQ पर पोर्ट 5555 पर डिफ़ॉल्ट होता है और अपने CLI में 0.0.0.0 को बाइंड करता है। लेरोबोट gRPC पर पोर्ट 8080 पर डिफ़ॉल्ट होता है और लोकलहोस्ट को बाइंड करता है। दोनों को उजागर करना सुरक्षित नहीं है: GR00T क्लास एक api_token का समर्थन करती है लेकिन run_gr00t_server.py कभी भी एक पास नहीं करता, और लेरोबोट एक असुरक्षित gRPC चैनल पर डेटा को पिक्ल करता है, जो CVE-2026-25874 है। लूपबैक से बाइंड करें और एक SSH टनल का उपयोग करें।

क्या लेरोबोट को अपग्रेड करने से CVE-2026-25874 ठीक हो जाता है?

23 अगस्त 2026 तक नहीं। CVE रिकॉर्ड 0.5.1 तक के LeRobot को प्रभावित के रूप में सूचीबद्ध करता है और PyPI 0.6.1 भेजता है, लेकिन पुल रिक्वेस्ट जो एसिंक पाइपलाइन से पिक्ल को हटा देगा, अभी भी खुला है, और मेन पर policy_server.py अभी भी रिक्वेस्ट डेटा पर pickle.loads को कॉल करता है। नेटवर्क आइसोलेशन को शमन के रूप में मानें, न कि वर्जन बंप को, और मान लें कि रोबोट-साइड क्लाइंट भी दायरे में है।

क्या मैं GR00T चेकपॉइंट के साथ लेरोबोट के एसिंक क्लाइंट का उपयोग कर सकता हूँ?

हाँ। लेरोबोट 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 तक पहुंचना होता है और हाथ के एक्शन खत्म होने से पहले वापस आना होता है। कुछ भी किराए पर लेने से पहले अंकगणित करें, एक ऐसा कार्य चुनें जो बासी ऑब्जरवेशन को सहन करता हो, और लिंक में सुधार की उम्मीद करने के बजाय निष्पादन क्षितिज को बढ़ाएं।

यदि आपने अभी तक कोई डेटासेट रिकॉर्ड नहीं किया है, अपना पहला डेटासेट रिकॉर्ड करें और SO-100 सेटअप गाइड पहले आते हैं, और LeRobot डेटासेट प्रारूप प्रविष्टि बताती है कि रिकॉर्डर क्या लिखता है। पृष्ठभूमि विजन-लैंग्वेज-एक्शन मॉडल और फ्लो-मैचिंग पॉलिसी कार्य में है; अखाड़ा प्रविष्टि प्रत्येक बेंचमार्क संख्या को एक स्रोत से जोड़ता है।

Sources

Sources

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started