AY-Robots प्रयास पृष्ठ: रोबोटको स्वामित्व बिना सुरु गर्ने तीन तरिकाहरू, नीति इन्फेरेन्सका लागि GPU भाडामा लिने सहित
GR00T N1.7रिमोट इन्फेरेन्सक्लाउड GPULeRobotSO-100विलम्बता

स्थानीय GPU बिना GR00T इन्फेरेन्स चलाउनुहोस्

AY-Robots ResearchAugust 23, 202619 मिनेट पढाइ

तपाईंको रोबोट मेसिनमा GPU छैन। GR00T नीति सर्भरलाई भाडाको क्लाउड GPU मा राख्नुहोस्, आर्ममा कार्य चङ्कहरू स्ट्रिम गर्नुहोस्, र नेटवर्कले तपाईंलाई कति खर्च गर्छ, ठ्याक्कै जान्नुहोस्।

एक रास्पबेरी पाई सिरियल बसमा चलाउन र दुई USB क्यामेराबाट फ्रेमहरू तान्न पर्याप्त छ। यो तीन अर्ब प्यारामिटरको चलाउन पर्याप्त छैन: NVIDIA को README ले GR00T N1.7 इन्फरेन्सलाई १६ GB वा सोभन्दा बढी VRAM भएको एउटा GPU मा राख्छ। कार्ड नकिनी आफ्नो फाइन-ट्युन गरिएको चेकपोइन्टले हातमा के गर्छ भनेर हेर्न, नीतिलाई भाडाको क्लाउड GPU मा राख्नुहोस्, रोबोट लूपलाई USB पोर्ट भएको मेसिनमा राख्नुहोस्, र अवलोकन तथा कार्यका खण्डहरू नेटवर्कमा पठाउनुहोस्।

यसले काम गर्छ, यो नि:शुल्क छैन, र यसको मूल्य कार्यहरूमा समान रूपमा फैलिएको छैन। तल: NVIDIA को आफ्नै नीति सर्भर, lerobot को एसिन्क स्ट्याक, तपाईंको अपलिंक पर्याप्त छ कि छैन भनेर अग्रिम बताउने अंकगणित, र प्लेटफर्म मार्ग। यो सबै Isaac-GR00T मुख्य शाखा (N1.7 GA) र lerobot 0.6.1 सँग २३ अगस्ट २०२६ मा जाँच गरिएको थियो।

तपाईंले जान्नुपर्ने कुराहरू

  • GR00T N1.7, GR00T N1.5 र Pi0.5 लगभग ३ अर्ब प्यारामिटरका मोडेलहरू हुन्। कुनै पनि छुट्टै 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 M trained during fine-tuning152 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 backbone485 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 प्रति चरण २० मिलिसेकेन्डमा रोबोट मेसिनमा चल्छ र तपाईंले यसको बारेमा फेरि सोच्नु पर्दैन। Pi0.5 ४८५ मिलिसेकेन्डमा, एउटा प्याकेट तपाईंको भवनबाट बाहिर निस्कनु अघि नै एक तिहाइ सेकेन्ड खर्च गरिसकेको हुन्छ। नीति तुलना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 PolicyServerlerobot async inference
प्रवेश बिन्दु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 observation queue timeout
कार्यान्वयन मोडेलसिंक्रोनस: ब्लक गर्नुहोस्, त्यसपछि खण्ड कार्यान्वयन गर्नुहोस्एसिन्क्रोनस: अर्को खण्ड गणना भइरहेको बेला कार्यान्वयन गर्नुहोस्

सिरियलाइजेसन पङ्क्ति जति देखिन्छ, त्यो भन्दा बढी महत्त्वपूर्ण छ। GR00T को MsgSerializer दुवै दिशामा वस्तु-डिटाइप एनडीअरे पेलोडहरू अस्वीकार गर्दछ, किनभने msgpack_numpy ले अन्यथा तिनीहरूलाई पिकलमा हस्तान्तरण गर्नेछ। lerobot ले यसको सट्टा पिकल गर्छ: 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 त्रुटिको साथ असफल हुन्छ। 8 भन्दा कमको FFmpeg स्थापना गर्नुहोस् र यसका लाइब्रेरीहरूलाई 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 वा WireGuard-शैलीको मेस मार्फत पोर्ट बोक्नुहोस्। यसले 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 प्रयोग गर्छ)। क्यामेरा कुञ्जीहरू प्रशिक्षणसँग मिल्नुपर्छ: एडाप्टरले ठ्याक्कै frontwrist पढ्छ, र तिनीहरूलाई साट्दा नीतिलाई गलत दृश्य देखाउँछ।

    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_chunkchunk_size_threshold (लेरोबोट कागजातहरूले दोस्रोलाई g भन्छन्, SmolVLA पेपर पछि), र कागजात गरिएका मानहरू र पठाइएका मानहरू मेल खाँदैनन्।

प्यारामिटरलेरोबोट ०.६.१ कोडमा मानयसले के गर्छनोट
actions_per_chunkno default, requiredप्रति कल फर्काइएका कार्यहरूकागजात तालिकाले ५० सूचीबद्ध गर्दछ; डाटाक्लास फिल्डमा कुनै पूर्वनिर्धारित छैन, त्यसैले CLI ले मान माग्छ
chunk_size_threshold0.5कतार भर्ने अनुपात जहाँ ग्राहकले नयाँ अवलोकन पठाउँछकागजात तालिकाले ०.७ भन्छ; कोड र कागजातहरूको आफ्नै उदाहरणले ०.५ भन्छ
fps30ग्राहक नियन्त्रण दर, environment_dt = 1/fps सेट गर्दछयदि कतार खाली भइरहन्छ भने यसलाई घटाउनुहोस्
inference_latency1/30 s (33.3 ms)सर्भरमा लक्षित अनुमान विलम्बताएक लक्ष्य, मापन होइन
obs_queue_timeout2 sसर्भरले अवलोकन कतारमा कति समय पर्खन्छढिलो अपलिंक पहिले यहाँ देखिन्छ
aggregate_fn_nameweighted_averageओभरल्यापिङ चंक क्षेत्रहरू कसरी मिसाइन्छ०.३ पुरानो + ०.७ नयाँ; latest_only, average र conservative पनि पठाइन्छ। रजिस्ट्री configs.py मा AGGREGATE_FUNCTIONS हो, robot_client.py मा होइन जस्तो कि कागजातहरूले दाबी गर्छन्
लेरोबोट नीति सर्भरमा एक अप्याच गरिएको RCE छ

CVE-2026-25874 लेरोबोटको एसिन्क्रोनस इन्फरेन्स पाइपलाइनमा प्रमाणीकरण नगरिएको रिमोट कोड कार्यान्वयन हो: pickle.loads() प्रमाणीकरण नगरिएको gRPC च्यानलमा TLS बिना प्राप्त डाटामा, जुन SendPolicyInstructions, SendObservationsGetActions कलहरू मार्फत पहुँचयोग्य छ। 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, typical home upload~1.47 sप्रयोग गर्न नसकिने। आर्म प्रत्येक चङ्कको बीचमा रोकिन्छ।
25 Mbit/s~0.59 sलामो कार्यान्वयन क्षितिजको साथ, ढिलो पिक-एन्ड-प्लेस मात्र।
50 Mbit/s~0.29 sसोचविचार गरिएका कार्यहरूका लागि काम लाग्ने।
100 Mbit/s~0.15 sपिक-एन्ड-प्लेसका लागि ठीक, तीव्र गतिमा देखिने।
1 Gbit/s fibre or datacentre~0.015 sयसको सट्टा मोडेल नै बाटलनेक बन्छ।

तपाईंले भित्र फिट गर्नुपर्ने बजेट

GR00T SO-100 क्लाइन्ट सिंक्रोनस छ: यसले कल गर्छ policy.get_action(obs), पहिलो action_horizon ३० FPS मा चङ्कका चरणहरू कार्यान्वयन गर्छ, त्यसपछि फेरि कल गर्छ। चङ्कको आकार र होराइजन फरक संख्याहरू हुन्: NVIDIA को डिप्लोयमेन्ट गाइडले १६ को एक्शन चङ्क आकार सिफारिस गर्छ, रियल-टाइम चङ्किङसँग मिलाउँदा कम्तिमा ३२, जबकि eval_so100.py ले ८ को कार्यान्वयन होराइजन प्रदान गर्छ। ३० FPS मा आठ चरणहरू प्रति कल २६७ 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
कार्य गरिएको उदाहरण: १०० Mbit/s अपलिंक, ३० 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 लाई एक क्यामेराको साथ ४ डिनोइजिङ चरणहरूमा अन्त-देखि-अन्त बेन्चमार्क गर्छ। H100 80GB HBM3 मा: PyTorch eager मा ८५.८ ms (११.७ Hz), torch.compile सँग ४८.६ ms (२०.६ Hz), TensorRT पूर्ण पाइपलाइन सँग २७.९ ms (३५.९ Hz)। eager मोडमा L40 ले १२८.३ ms (७.८ Hz) लिन्छ। NVIDIA ले १० Hz लाई सामान्य हेरफेरका लागि सिफारिस गरिएको न्यूनतम भन्छ, र १० Hz भन्दा कम ढिलो, गैर-प्रतिक्रियात्मक कार्यहरूका लागि मात्र उपयुक्त हुन्छ। ती पुनर्निरीक्षण दरहरू हुन्: १० Hz नीतिले अझै पनि एक्शन चङ्किङ मार्फत ३० 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 मा नीति, तपाईंको डेस्कमा हात
फाइदाहरू
  • तपाईंले हातभन्दा महँगो कार्ड नभई वास्तविक हार्डवेयरमा ३ अर्ब प्यारामिटर नीति मूल्याङ्कन गर्न सक्नुहुन्छ।
  • GPU प्रति घण्टा भाडामा लिइन्छ, त्यसैले असफल चेकपोइन्टको लागत केही डलर हुन्छ।
  • रोबोट पक्ष सानो रहन्छ: lerobot ड्राइभरहरू, दुई क्यामेरा, एउटा सिरियल पोर्ट, र तपाईंले यसलाई नछोइकन चेकपोइन्टहरू बदल्न सक्नुहुन्छ।
फाइदा-बेफाइदाहरू
  • असम्पीडित अवलोकनहरूले तारको लागतमा प्रभुत्व जमाउँछन्, र आवासीय अपलोड नै मुख्य बाधा हो।
  • लेटन्सी भन्दा जिटरले बढी हानि पुर्‍याउँछ: ४० मिलिसेकेन्डको औसत र ३०० मिलिसेकेन्डसम्मको स्पाइक भएको लिङ्कले अड्किन्छ जहाँ १२० मिलिसेकेन्डको स्थिर लिङ्कले गर्दैन।
  • छिटो प्रतिक्रियात्मक कार्यहरू कुनै पनि क्षितिजमा राउन्ड ट्रिपमा टिक्दैनन्।
  • दुवै सर्भरहरू CLI फारममा अप्रमाणित रूपमा पठाइन्छन्, त्यसैले टनेलिङको काम तपाईंको हो।
  • खण्डको बीचमा जडान विच्छेद हुँदा हातले पुरानो कार्य समातेको हुन्छ। रोबोट-साइडमा आफ्नै वाचडग थप्नुहोस्।
कार्यसार्वजनिक इन्टरनेटमा काम गर्छ?किन
एउटा स्थिर वस्तु उठाउनुहोस्, यसलाई डिब्बामा राख्नुहोस्होअवलोकन र कार्यको बीचमा केही पनि चल्दैन।
ब्लकहरूलाई जानाजानी गतिमा स्ट्याक गर्नुहोस्हो, at action_horizon 16 or moreत्रुटिहरू अर्को खण्डमा सच्याउन पर्याप्त ढिलो रूपमा जम्मा हुन्छन्।
दराज खोल्नुहोस्, वस्तु घुसाउनुहोस्प्रायःसम्पर्क-समृद्ध तर ढिलो। सम्पर्कमा रोकिने र चल्ने कुरामा ध्यान दिनुहोस्।
चल्ने वस्तुलाई पछ्याउनुहोस्होइननीतिले ३०० मिलिसेकेन्डदेखि १ सेकेन्ड पुरानो अवलोकनमा कार्य गर्छ।
चिप्लिएको अवस्थाबाट समात्नुहोस्, सन्तुलन मिलाउनुहोस्, वा पुनः प्राप्त गर्नुहोस्होइनसुधार विन्डो एक राउन्ड ट्रिप भन्दा छोटो छ।
३० हर्जको सिंक्रोनस क्लोज्ड लूपहोइनबजेट अन्तदेखि अन्तसम्म ३३ मिलिसेकेन्ड छ। 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 पृष्ठ: प्रावधान र इन्फरेन्स कार्यहरू एजेन्टले कल गर्न सक्ने उपकरणहरूको रूपमा प्रस्तुत।

रिमोट इन्फरेन्स सत्रको लागत कति हुन्छ

दुईवटा संख्या महत्त्वपूर्ण छन्: कार्डको प्रति घण्टा दर, र तपाईंले यसलाई कति समयसम्म चलाउनुहुन्छ। पहिलो प्रकाशित हुन्छ; दोस्रोले मानिसहरूलाई चकित पार्छ।

कार्डRunpod समुदाय क्लाउडRunpod सुरक्षित क्लाउडयसका लागि उपयुक्त
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 मा Runpod को मूल्य निर्धारण पृष्ठबाट पढिएका थिए, र स्पट बजारहरू परिवर्तन भइरहन्छन्। 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, लगभग ८० मिलियन प्यारामिटर र प्रति कार्य चरण २० मिलिसेकेन्ड, न्यूनतम ५० एपिसोड, कुनै पनि २४ GB कार्ड। दोहोरिने एकल-कार्य सेटअपमा यसले प्रायः रिमोट ३ B मोडेललाई जित्छ, किनभने यसले कहिल्यै प्याकेटको लागि पर्खदैन।
  • SmolVLA, लगभग ४५० मिलियन प्यारामिटर र प्रति कार्य चरण २४५ मिलिसेकेन्ड, न्यूनतम ३० एपिसोड। यसले ACT मा नभएको भाषा कन्डिसनिङ राख्छ, र lerobot कागजातहरूले यसलाई इन्फरेन्स समयमा लगभग २ GB मा राख्छ जबकि PI0 को लागि लगभग १४ GB लाग्छ।
  • ACT vs GR00T N1.7 व्यापारको शुद्धता आधाको लागि।

एउटा मध्य मार्ग पनि छ: क्लाउडमा तालिम दिनुहोस्, स्थानीय रूपमा मूल्याङ्कन गर्नुहोस्। लाई ८० GB कार्ड चाहिन्छ र लेटेन्सीको वास्ता गर्दैन, त्यसैले रिमोटली विवादरहित छ। केवल मूल्याङ्कन लूपमा वास्तविक-समयको बाधा हुन्छ; र ले त्यो आधा भाग समेट्छ।

डेस्कमा अझै हात छैन?

कुनै साइनअप बिना ब्राउजरमा वास्तविक SO-100 चलाउनुहोस्, पाँच तालिम योग्य नीतिहरूलाई तिनीहरूको वास्तविक लेटेन्सी नम्बरहरूसँग तुलना गर्नुहोस्, वा GPU भाडामा लिएर एउटालाई तालिम दिनुहोस्। सुरु गर्नका लागि तीन तरिकाहरू, कुनै पनि तपाईंको स्वामित्वमा नभएको हार्डवेयर आवश्यक पर्दैन।

हार्डवेयर बिना प्रयास गर्नुहोस्

बारम्बार सोधिने प्रश्नहरू

यदि GPU टाढा छ भने के म रास्पबेरी पाईमा GR00T N1.7 चलाउन सक्छु?

हो, ग्राहक-सर्भर विभाजन त्यसैको लागि हो। पाईले lerobot ड्राइभरहरू चलाउँछ, दुई क्यामेरा र एउटा सिरियल बस पढ्छ, र नीति सर्भरमा अवलोकनहरू पठाउँछ; यसले कहिल्यै मोडेल लोड गर्दैन। बाधा 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 लाई बाइन्ड गर्छ। lerobot को gRPC मा पोर्ट 8080 मा पूर्वनिर्धारित गर्छ र localhost लाई बाइन्ड गर्छ। दुवैलाई खुला राख्न सुरक्षित छैन: 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 मा पुग्नुपर्छ र हातले कार्यहरू समाप्त गर्नु अघि फर्कनुपर्छ। कुनै पनि कुरा भाडामा लिनु अघि हिसाब गर्नुहोस्, बासी अवलोकन सहन सक्ने कार्य छान्नुहोस्, र लिङ्क सुधार हुने आशा गर्नुको सट्टा कार्यान्वयन क्षितिज बढाउनुहोस्।

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

Sources

Sources

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started