Ang AY-Robots try page: tatlong paraan upang makapagsimula nang walang pagmamay-ari ng robot, kabilang ang pag-upa ng GPU para sa policy inference
GR00T N1.7Remote InferenceCloud GPULeRobotSO-100Latency

Patakbuhin ang GR00T Inference Nang Walang Lokal na GPU

AY-Robots ResearchAugust 23, 202619 min basahin

Walang GPU ang iyong robot machine. Ilagay ang GR00T policy server sa isang inupahang cloud GPU, i-stream ang mga action chunk sa braso, at alamin nang eksakto kung magkano ang gastos sa iyo ng network.

Ang isang Raspberry Pi ay sapat na upang paandarin ang isang sa pamamagitan ng serial bus at kumuha ng mga frame mula sa dalawang USB camera. Hindi ito sapat upang patakbuhin ang isang three billion parameter na : Ayon sa README ng NVIDIA, ang GR00T N1.7 inference ay nangangailangan ng isang GPU na may 16 GB o higit pa ng VRAM. Upang makita kung ano ang ginagawa ng iyong na-fine-tune na checkpoint sa braso nang hindi bumibili ng card, ilagay ang policy sa isang inupahang cloud GPU, panatilihin ang robot loop sa makina na may mga USB port, at ipadala ang mga obserbasyon at action chunks sa network.

Gumagana ito, hindi ito libre, at ang presyo ay hindi pantay na nakakalat sa iba't ibang gawain. Sa ibaba: Ang sariling policy server ng NVIDIA, ang async stack ng lerobot, ang aritmetika na nagsasabi nang maaga kung sapat ang bilis ng iyong uplink, at ang ruta ng platform. Lahat ng ito ay sinuri laban sa Isaac-GR00T main branch (N1.7 GA) at lerobot 0.6.1 noong 23 August 2026.

Ano ang kailangan mong malaman

  • Ang GR00T N1.7, GR00T N1.5 at Pi0.5 ay humigit-kumulang 3 B parameter na modelo. Wala sa mga ito ang kasya sa isang robot controller nang walang discrete GPU.
  • Ang Isaac-GR00T at lerobot ay parehong nagbibigay ng client-server split. Hindi mo isusulat ang transport.
  • Ang mga obserbasyon ang nangingibabaw sa wire cost, hindi ang mga aksyon: ang dalawang uncompressed na 640x480 RGB frame ay 1,843,200 bytes, humigit-kumulang 14.7 Mbit bawat tawag, at walang stack ang nagko-compress sa mga ito.
  • Ang AY-Robots ay naglilista ng 20 hanggang 485 ms bawat action step ayon sa modelo. Ang mga internet round trip ay idinagdag sa ibabaw nito.
  • Ang remote inference ay angkop para sa mabagal na pick-and-place, hindi para sa mabilis na reactive motion. Ang mas mahabang execution horizon ay nagbibigay ng oras at nagkakahalaga ng pagiging bago ng obserbasyon.
  • Walang server ang ligtas sa isang public IP tulad ng pagkakapadala, at ang lerobot ay may dalang unpatched RCE. I-tunnel ito.

Bakit hindi magkakasya ang policy sa robot machine

Dalawa sa limang patakaran na kayang sanayin ng AY-Robots ay tumatakbo sa isang workstation card, tatlo ang hindi. Ang na column sa ibaba ay bawat hakbang ng aksyon, at iyan ang bilang na nakikipagkumpitensya sa iyong network round trip.

PatakaranParametroInference bawat hakbang ng aksyonAntas ng GPU para sa pagsasanayMinimum na episodeFormat ng dataset
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
Ang pahina ng mga patakaran ng AY-Robots na naghahambing sa limang sanay na patakaran ayon sa mga parametro, antas ng GPU, latency ng inference at minimum na episode
Ang parehong limang row sa /policies. Ang column ng latency ang nagpapasya kung ang isang patakaran ay makakaligtas sa isang network hop.

Basahin iyan bilang isang desisyon, hindi trivia. sa 20 ms bawat hakbang ay tumatakbo sa makina ng robot at hindi mo na ito iisipin pa. sa 485 ms ay gumugol ng isang-katlo ng isang segundo bago umalis ang isang packet sa iyong gusali. Ang at ay nagdaragdag ng panig ng katumpakan.

Walang base model ang ACT

Ang GR00T N1.7, GR00T N1.5 at Pi0.5 ay nagsisimula sa isang vendor checkpoint (nvidia/GR00T-N1.7-3B, nvidia/GR00T-N1.5-3B, lerobot/pi05_base). Hindi umiiral ang ACT hangga't hindi mo ito sinasanay sa sarili mong gawain, kaya walang maaaring i-serve nang malayo hangga't hindi natatapos ang isang training job. Tingnan ang ACT on SO-100.

Ang dalawang client-server stack na umiiral na

Ang Isaac-GR00T ay nagpapadala ng ZeroMQ request-reply server; ang lerobot ay nagpapadala ng gRPC server na binuo sa paligid ng asynchronous inference. Pareho silang tumatanggap ng GR00T checkpoint. Ang listahan ng sinusuportahang policy ng lerobot sa async_inference/constants.py ay act, smolvla, diffusion, tdmpc, vqbet, pi0, pi05 at groot; ang listahan ng robot nito ay so100_follower, so101_follower, bi_so_follower at omx_follower.

Isaac-GR00T PolicyServerlerobot async inference
Entry pointgr00t/eval/run_gr00t_server.pypython -m lerobot.async_inference.policy_server
TransportZeroMQ REQ/REPgRPC, add_insecure_port / insecure_channel
Serializationmsgpack + msgpack_numpy, allow_pickle=False enforcedpickle.dumps / pickle.loads, marked # nosec
Default port55558080
Default bind0.0.0.0, lahat ng interfacelocalhost
Authapi_token na sinusuportahan ng klase, hindi ipinapasa ng CLInone
Client timeout15000 ms (PolicyClient timeout_ms)2 s observation queue timeout
Execution modelsynchronous: i-block, pagkatapos ay i-execute ang chunkasynchronous: i-execute habang kinukwenta ang susunod na chunk

Ang serialization row ay mas mahalaga kaysa sa tingin. Ang MsgSerializer ng GR00T ay tumatanggi sa object-dtype ndarray payloads sa parehong direksyon, dahil kung hindi ay ibibigay ng msgpack_numpy ang mga ito sa pickle. Sa halip, nagpi-pickle ang lerobot: tinatawag ng policy_server.py ang pickle.loads sa data ng kahilingan, at nagpi-pickle ang robot_client.py ng observation na ipinapadala nito. Depensable sa isang pinagkakatiwalaang LAN, hindi depensable kapag ang port ay naaabot na mula sa internet.

Route A: Sariling GR00T policy server ng NVIDIA

Ito ang landas na idinodokumento ng NVIDIA para sa SO-100 at SO-101 hardware, at ang gagamitin kung ang iyong checkpoint ay nagmula sa examples/finetune.sh na may --embodiment-tag NEW_EMBODIMENT. Idinagdag ng mga hakbang ang hindi kasama sa upstream README: ang pagkuha ng port sa robot nang hindi ito inilalantad sa iba.

  1. 1
    I-install ang GR00T sa inupahang GPU box

    Kinakailangan ang mga submodule, at dapat mayroong git-lfs bago ang clone o ang mga parquet file sa demo_data ay darating bilang mga pointer. Ang flash-attn at TensorRT ay kasama sa default na pag-install. Ang bitag sa isang bagong pod image: Ang torchcodec 0.8.0 lamang ang sinusuportahang video backend at naglo-load lamang ng FFmpeg 4 hanggang 7. Ang Ubuntu 25.10 at 26.04 ay nagpapadala ng FFmpeg 8, kaya nabibigo ang GR00T na may Could not load libtorchcodec. Mag-install ng FFmpeg na mas mababa sa 8 at ilagay ang mga library nito sa 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
    Mag-authenticate laban sa gated backbone

    Ang bawat GR00T N1.7 checkpoint, kasama ang iyong sariling fine-tune, ay naglo-load ng gated nvidia/Cosmos-Reason2-2B sa unang paggamit. Humiling ng access sa pahina ng modelo at mag-log in sa pod, o mabibigo ang paglo-load na may GatedRepoError.

    bash
    uv run huggingface-cli login
    # or:  export HF_TOKEN=<your_token>
  3. 3
    Simulan ang policy server

    Ituro ang --model-path sa iyong checkpoint directory; sa landas na iyon ay binabalewala ng server ang --modality-config-path, na binabasa lamang sa replay path. Alisin ang --model-path at ipasa ang --dataset-path kasama ang --execution-horizon sa halip para sa isang ReplayPolicy na nagre-replay ng mga naitalang aksyon, ang pinakamurang paraan upang patunayan na gumagana ang wiring.

    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
    I-tunnel ang port 5555 sa robot machine

    Mag-bind sa loopback, tulad ng nasa itaas, at dalhin ang port sa SSH o isang WireGuard-style mesh. Nagbibigay iyon ng encryption at authentication na hindi ibinibigay ng ZeroMQ socket, sa loob ng humigit-kumulang isang millisecond.

    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
    Patakbuhin ang robot client sa tabi ng mga servo

    Kailangan ng client ang sarili nitong uv environment: gusto nito ang mga robot driver ng lerobot, hindi ang training stack. Ini-import ng eval_so100.py ang so100_follower, so101_follower at koch_follower, kaya ipasa ang --robot.type na tumutugma sa iyong braso (ginagamit ng upstream README ang so101_follower). Dapat tumugma ang mga camera key sa training: binabasa ng adapter nang eksakto ang front at wrist, at ang pagpapalit ng mga ito ay nagpapakita sa policy ng maling view.

    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"
Dalawang Default na Magiging Problema

Ang run_gr00t_server.py ay nagde-default sa --host 0.0.0.0, na nagbi-bind sa bawat interface: sa isang pod na may pampublikong IP na isang bukas na inference endpoint. At ang PolicyServer class ay tumatanggap ng api_token at bine-validate ito sa bawat request, ngunit hindi kailanman ipinapasa ng run_gr00t_server.py ang isa, kaya ang CLI server ay hindi authenticated anuman ang iyong i-configure. Mag-bind sa 127.0.0.1 at mag-tunnel. Ang ZMQError: Address already in use ay nangangahulugang ginagamit na ang port 5555; ipasa ang --port.

Ruta B: lerobot asynchronous inference

Nilulutas ng lerobot ang ibang problema. Sa halip na harangan ang robot habang nag-iisip ang modelo, patuloy na naglalakad ang client sa queue na mayroon na ito habang kinukwenta ng server ang susunod na chunk. Ito ay pag-chunk ng aksyon na mas pinahusay pa, ang asynchronous stack na ipinakilala sa SmolVLA. Gumagana rin ito sa isang GR00T checkpoint.

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
Policy server sa GPU, robot client sa makina na may mga USB port

Ang server ay nagsisimula nang walang laman: hindi nito alam kung aling patakaran ang inihahatid nito hanggang sa sabihin ito ng unang handshake ng client, na maginhawa sa isang inupahang pod. Ang dalawang kontrol na nagpapasya kung ang braso ay gumagalaw nang maayos ay actions_per_chunk at chunk_size_threshold (tinatawag ng mga dokumento ng lerobot ang pangalawa na g, mula sa papel ng SmolVLA), at ang mga dokumentadong halaga at ang mga naipadala na halaga ay hindi magkatugma.

ParameterValue sa lerobot 0.6.1 codeAno ang ginagawa nitoTandaan
actions_per_chunkno default, requiredMga aksyon na ibinalik bawat tawagNakalista ang 50 sa talahanayan ng Docs; walang default ang field ng dataclass, kaya humihingi ng halaga ang CLI
chunk_size_threshold0.5Ratio ng pagpuno ng queue kung saan o mas mababa pa ang pagpapadala ng client ng bagong obserbasyonSinasabi ng talahanayan ng Docs na 0.7; sinasabi ng code at ng sariling halimbawa ng docs na 0.5
fps30Rate ng kontrol ng client, nagtatakda ng environment_dt = 1/fpsIbaba ito kung patuloy na nauubos ang queue
inference_latency1/30 s (33.3 ms)Target na inference latency sa serverIsang target, hindi isang sukat
obs_queue_timeout2 sGaano katagal maghihintay ang server sa observation queueAng mabagal na uplink ay unang lumalabas dito
aggregate_fn_nameweighted_averagePaano pinagsasama ang magkakapatong na rehiyon ng chunk0.3 luma + 0.7 bago; kasama rin ang latest_only, average at conservative. Ang registry ay AGGREGATE_FUNCTIONS sa configs.py, hindi robot_client.py tulad ng sinasabi ng docs
Ang lerobot policy server ay may RCE na hindi pa na-patch

Ang CVE-2026-25874 ay unauthenticated remote code execution sa async inference pipeline ng lerobot: pickle.loads() sa data na natanggap sa isang unauthenticated gRPC channel nang walang TLS, na naaabot sa pamamagitan ng mga tawag na SendPolicyInstructions, SendObservations at GetActions. CWE-502, CVSS 3.1 base score 9.8 mula sa NVD, 4.0 base score 9.3 mula sa nagtalagang CNA. Nakalista ang LeRobot hanggang 0.5.1 bilang apektado at pinangalanan ang policy server at ang robot client, kaya kasama ang makina sa tabi ng iyong braso. Ang pag-upgrade ay hindi ang solusyon: binanggit ng record ang upstream issue 3047 at ang patch, PR 3048, na nagpapalit ng pickle sa safetensors plus JSON, at noong 23 Agosto 2026 ay bukas pa rin ang dalawa. Ang policy_server.py sa main ay tumatawag pa rin ng pickle.loads sa data ng kahilingan habang ang serve() ay nagbi-bind sa add_insecure_port. Mag-bind sa loopback at huwag kailanman mag-port-forward ng 8080.

Ang aritmetika na nagpapasya kung sapat na ba ang bilis ng iyong link

Nilalaktawan ito ng mga tao at pagkatapos ay gumugugol ng isang araw sa . Tumatagal ito ng dalawang minuto at halos palaging mahalaga.

Ang naka-comment na observation dict sa eval_so100.py ng NVIDIA ay nagsasabi kung ano ang dumadaan sa wire: dalawang array na may hugis (480, 640, 3) sa uint8, anim na joint float, isang language string. Iyan ay 921,600 bytes bawat frame, 1,843,200 bytes para sa dalawang camera, humigit-kumulang 14.7 Mbit, at walang stack ang nag-JPEG-compress nito. Ang chunk na bumabalik ay ilang dosenang hakbang ng 6 na float. Ang iyong upload ang nagpapasya sa lahat, hindi ang iyong download.

Bandwidth ng UploadOras para mag-push ng isang observation (14.7 Mbit)Hatol para sa isang 30 FPS na braso
10 Mbit/s, karaniwang upload sa bahay~1.47 sHindi magagamit. Humihinto ang braso sa pagitan ng bawat chunk.
25 Mbit/s~0.59 sMabagal na pick-and-place lamang, na may mahabang execution horizon.
50 Mbit/s~0.29 sMagagamit para sa mga sadyang gawain.
100 Mbit/s~0.15 sAyos para sa pick-and-place, makikita sa mabilis na paggalaw.
1 Gbit/s fibre o datacentre~0.015 sAng modelo ang nagiging bottleneck sa halip.

Ang budget na kailangan mong pagkasya

Ang GR00T SO-100 client ay sabay-sabay (synchronous): tinatawag nito ang policy.get_action(obs), isinasagawa ang unang action_horizon na hakbang ng chunk sa 30 FPS, pagkatapos ay tumatawag muli. Ang laki ng chunk at horizon ay magkaibang numero: Inirerekomenda ng deployment guide ng NVIDIA ang laki ng action chunk na 16, hindi bababa sa 32 kapag isinama sa real-time chunking, habang ang eval_so100.py ay nagbibigay ng execution horizon na 8. Ang walong hakbang sa 30 FPS ay 267 ms ng galaw bawat tawag, at ang lahat ng iba pa ay kailangang magkasya doon.

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
Halimbawa ng pagpapatakbo: 100 Mbit/s uplink, 30 ms round trip, GR00T N1.7

Ang pagtaas ng horizon ay isang diretsong solusyon at hindi libre: ang braso ay kumikilos batay sa isang obserbasyon na luma na. Ang prinsipyong solusyon ay real-time chunking, na kinakalkula ang susunod na chunk habang tumatakbo ang kasalukuyan, pinapatigil ang mga aksyon na garantisadong maisasagawa at pinupunan ang natitira; iniulat ng papel ng RTC na ito ay matatag sa pagkaantala ng inference nang walang retraining. Tingnan muna kung nasaan iyon. Minarkahan ng NVIDIA ang RTC bilang eksperimental, isang low-level na model primitive na naaabot sa pamamagitan ng action_head.get_action(..., options={"rtc_overlap_steps": ..., "rtc_frozen_steps": ...}), hindi nakakonekta sa Gr00tPolicy o sa server-client path, kung saan ang options ay hindi ginagamit, walang mga pagsubok at walang halimbawa. Sa isang policy server makakakuha ka ng asynchronous execution, hindi RTC.

Ano ang halaga ng modelo bago ang network

Sinusukat ng NVIDIA ang GR00T N1.7 mula simula hanggang dulo sa 4 na hakbang ng denoising gamit ang isang camera. Sa isang H100 80GB HBM3: 85.8 ms (11.7 Hz) sa PyTorch eager, 48.6 ms (20.6 Hz) sa torch.compile, 27.9 ms (35.9 Hz) sa TensorRT full pipeline. Ang isang L40 sa eager mode ay tumatagal ng 128.3 ms (7.8 Hz). Tinatawag ng NVIDIA ang 10 Hz bilang inirerekomendang minimum para sa tipikal na manipulasyon, at ang mas mababa sa 10 Hz ay angkop lamang para sa mabagal, hindi reaktibong gawain. Iyon ay mga rate ng replanning: ang isang 10 Hz policy ay maaari pa ring magpatakbo ng 30 FPS na braso sa pamamagitan ng action chunking. Ang pangalawang camera ay nagdadala sa iyo sa maling direksyon.

Sukatin bago pagkatiwalaan

Ang bawat numero sa itaas ay isang prediksyon. Apat na utos ang magpapalit nito sa isang pagsukat, na nararapat patakbuhin bago maglaan ng pod-hour sa isang gawain na hindi naman talaga gagana.

  1. 1
    Kunin ang hilaw na round trip

    Laban sa pod, hindi sa CDN. Bantayan ang paglihis nang kasing-lapit ng mean: ang jitter ang nagiging sanhi ng pagkaantala ng braso, hindi ang average latency.

    bash
    ping -c 50 <pod-host>
    # the mdev column is the number that predicts stutter
  2. 2
    Sukatin ang uplink na mayroon ka, hindi ang binabayaran mo

    Ang residential upload ay karaniwang isang bahagi lamang ng download, at ito ang numero sa talahanayan ng bandwidth sa itaas.

    bash
    # on the pod
    iperf3 -s
    
    # on the robot machine, -R omitted so this measures upload
    iperf3 -c <pod-host> -t 30
  3. 3
    Basahin ang sariling latency log ng client

    Ang lerobot robot client ay nagla-log ng server-to-client latency at deserialization time para sa bawat chunk. Sa ruta B, hindi mo kailangan ng panlabas na kagamitan.

    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
    Panoorin ang pagkaubos ng action queue

    Ipasa ang --debug_visualize_queue_size=True at ipinapakita ng client ang laki ng queue sa runtime. Kung paulit-ulit itong umabot sa zero, ubos na ang iyong budget: babaan ang fps, itaas ang actions_per_chunk, o itaas ang chunk_size_threshold upang mas madalas lumabas ang mga obserbasyon.

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

Para saan nga ba talaga ang remote inference

Patakaran sa inupahang GPU, braso sa iyong mesa
Mga Kalamangan
  • Maaari mong suriin ang isang 3 B parameter na patakaran sa totoong hardware nang hindi nagmamay-ari ng card na mas mahal pa sa braso.
  • Ang GPU ay inuupahan kada oras, kaya ang isang nabigong checkpoint ay nagkakahalaga ng ilang dolyar.
  • Ang panig ng robot ay nananatiling maliit: lerobot drivers, dalawang camera, isang serial port, at maaari mong palitan ang mga checkpoint nang hindi ito hinahawakan.
Mga Kompromiso
  • Ang mga hindi naka-compress na obserbasyon ang nangingibabaw sa gastos ng koneksyon, at ang residential upload ang nagiging hadlang.
  • Mas masakit ang jitter kaysa sa latency: ang isang koneksyon na may average na 40 ms na may pagtaas hanggang 300 ms ay nagiging putol-putol kung saan ang isang matatag na 120 ms na koneksyon ay hindi.
  • Ang mabilis na reaktibong gawain ay hindi nakakaligtas sa round trip sa anumang horizon.
  • Ang parehong server ay ipinapadala nang walang authentication sa CLI form, kaya sa iyo ang trabaho sa tunnelling.
  • Ang isang naputol na koneksyon sa kalagitnaan ng chunk ay nag-iiwan sa braso na may hawak na lumang aksyon. Magdagdag ng sarili mong watchdog sa panig ng robot.
GawainGumagana ba sa pampublikong internet?Bakit
Pumili ng static na bagay, ilagay ito sa isang lalagyanOoWalang gumagalaw sa pagitan ng obserbasyon at aksyon.
Magpatong ng mga bloke sa isang sinadyang bilisOo, sa action_horizon 16 o higit paAng mga error ay dahan-dahang naiipon upang ayusin sa susunod na chunk.
Magbukas ng drawer, magpasok ng bagayKaraniwanMayaman sa kontak ngunit mabagal. Bantayan ang paghinto-at-pag-andar sa kontak.
Sundin ang gumagalaw na bagayHindiAng patakaran ay kumikilos batay sa isang obserbasyon na 300 ms hanggang 1 s na ang tanda.
Hulihin, balansehin, o bumawi mula sa pagkadulasHindiAng window ng pagwawasto ay mas maikli kaysa sa isang round trip.
Isang 30 Hz na synchronous closed loopHindiAng budget ay 33 ms end to end. Kahit ang isang LAN ay nahihirapan.

Kung ang isang remote na pagpapatakbo ay nagiging putol-putol sa parehong punto sa bawat episode, malamang na hindi ang network ang sanhi. Ang isang patakaran na nag-aalangan sa parehong joint angle sa bawat pagkakataon ay karaniwang problema sa data; tingnan ang mga pahina ng failure-mode, partikular ang isang patakaran na gumagana lamang sa isang setup at bumababa ang loss ngunit walang ginagawa ang patakaran.

Paggawa nito nang mag-isa kumpara sa paggawa nito sa AY-Robots

  1. Magrenta ng GPU sa isang spot market at maghintay ng sapat na VRAM sa presyong gusto mo.
  2. I-install ang CUDA, uv, isang ffmpeg torchcodec na tinatanggap, at ang GR00T stack na may submodules.
  3. Humiling ng access sa gated nvidia/Cosmos-Reason2-2B backbone at maglagay ng token sa pod.
  4. I-pull ang iyong checkpoint papunta sa pod.
  5. Simulan ang server sa loopback, pagkatapos ay gumawa ng SSH tunnel mula sa robot machine.
  6. Mag-install ng pangalawang environment sa robot machine para sa client at drivers.
  7. Itugma ang camera keys, joint names at ang language instruction sa nakita ng checkpoint.
  8. Bantayan ang pod. Ang nakalimutang A100 na tumatakbo magdamag ay mas mahal kaysa sa eksperimento.
Ang idle na pod ang tunay na gastos

Hindi humihinto ang singil sa GPU kapag huminto ang robot. Karamihan sa perang nawala sa remote inference ay napupunta sa isang server na nanatiling aktibo matapos umalis ang lahat. Magtakda ng alarm, o i-automate ang pag-teardown.

Ang pahina ng AY-Robots MCP server na naglilista ng mga operasyon ng platform na ipinapakita bilang mga tool sa mga AI agent
Ang pahina ng MCP: mga operasyon ng provisioning at inference na ipinapakita bilang mga tool na maaaring tawagan ng isang agent.

Magkano ang gastos ng isang remote inference session

Dalawang numero ang mahalaga: ang hourly rate ng card, at kung gaano katagal mo ito pinapatakbo. Ang una ay nai-publish; ang pangalawa ay nakakagulat sa mga tao.

CardRunpod community cloudRunpod secure cloudAngkop para sa
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/hPareho, medyo mas mabilis
H100 PCIe 80 GB1.99 USD/h2.89 USD/hPinakamabilis na tier; ang 11.7 Hz eager figure ng NVIDIA ay para sa isang H100 80GB HBM3
L40S 48 GB0.79 USD/h0.99 USD/hPara lamang sa inference, lampas sa 16 GB na minimum
RTX 4090 24 GB0.34 USD/h0.74 USD/hSmolVLA, ACT

Ang mga rate na iyon ay nabasa mula sa pricing page ng Runpod noong 23 Agosto 2026, at gumagalaw ang mga spot market. Sa halip, ang AY-Robots ay nagbibigay ng presyo para sa buong run: 3 hanggang 6 na oras sa 1.20 hanggang 2.00 USD bawat oras sa A100 o H100 tier, humigit-kumulang 4 hanggang 12 USD para sa isang GR00T o Pi0.5 run; 2 hanggang 5 oras sa 0.30 hanggang 0.60 USD bawat oras sa 24 GB tier, 1 hanggang 3 USD para sa SmolVLA o ACT. Mas matipid ang isang inference session kaysa sa isang training run kung ititigil mo ito, na siyang layunin ng idle watchdog. Tingnan ang mga dokumento ng pagsingil, at ang pahina ng pagpepresyo.

Ang talahanayan ng gastos ng AY-Robots na nagpapakita kung aling GPU ang kailangan ng bawat policy, karaniwang oras ng run at presyo, at mga episode bago maging kapaki-pakinabang ang isang policy
Ang talahanayan ng gastos sa /try: kung aling card ang kailangan ng bawat modelo at kung magkano ang karaniwang gastos ng isang run.

Kung mas gusto mong hindi kasama ang network sa proseso

Ang remote inference ay lumulutas ng problema sa hardware at lumilikha ng problema sa latency. Minsan, ang mas mahusay na sagot ay isang patakaran na akma sa hardware na mayroon ka.

  • ACT, humigit-kumulang 80 M parameters at 20 ms bawat hakbang ng aksyon, 50 episodes minimum, anumang 24 GB card. Sa isang paulit-ulit na single-task setup, madalas nitong talunin ang isang remote na 3 B model, dahil hindi ito naghihintay ng packet.
  • SmolVLA, humigit-kumulang 450 M parameters at 245 ms bawat hakbang ng aksyon, 30 episodes minimum. Pinapanatili nito ang language conditioning na kulang sa ACT, at inilalagay ito ng lerobot docs sa humigit-kumulang 2 GB sa oras ng inference laban sa humigit-kumulang 14 GB para sa PI0.
  • ACT vs GR00T N1.7 para sa kalahati ng trade na nauugnay sa katumpakan.

Mayroon ding gitnang landas: magsanay sa cloud, suriin nang lokal. ay nangangailangan ng 80 GB card at hindi alintana ang latency, kaya ang nang remote ay hindi kontrobersyal. Tanging ang evaluation loop ang may real-time na limitasyon; ang at ang ang sumasaklaw sa kalahating iyon.

Wala pang braso sa mesa?

Magmaneho ng totoong SO-100 sa browser nang walang pagpaparehistro, ihambing ang limang trainable policies sa kanilang tunay na latency numbers, o umarkila ng GPU at magsanay ng isa. Tatlong paraan upang magsimula, wala sa mga ito ang nangangailangan ng hardware na hindi mo pag-aari.

Subukan ito nang walang hardware

Mga madalas itanong

Maaari ko bang patakbuhin ang GR00T N1.7 sa isang Raspberry Pi kung ang GPU ay malayo?

Oo, iyan ang layunin ng client-server split. Pinapatakbo ng Pi ang mga lerobot driver, nagbabasa ng dalawang camera at isang serial bus, at nagpapadala ng mga obserbasyon sa policy server; hindi nito kailanman nilo-load ang modelo. Ang limitasyon ay lumilipat mula sa VRAM patungo sa upload bandwidth: dalawang uncompressed na 640x480 RGB frame ay 1,843,200 bytes bawat tawag, at walang stack ang nagko-compress sa mga ito.

Gaano karaming latency ang aktwal na idinadagdag ng network?

Round-trip time kasama ang observation transfer time. Ang transfer time ay 14.7 Mbit na hinati sa iyong upload bandwidth: humigit-kumulang 147 ms sa isang 100 Mbit/s na link, 1.47 s sa isang 10 Mbit/s na link. Pareho itong nadaragdag sa sariling inference time ng modelo, na inilista ng AY-Robots bilang 152 ms para sa GR00T N1.7 at 485 ms para sa Pi0.5. Sukatin gamit ang ping at iperf3 laban sa pod, hindi sa isang speed-test server.

Sapat ba ang remote inference para sa isang tunay na gawain?

Para sa mabagal at sinasadyang pick-and-place, oo. Para sa anumang reactive, hindi. Inilalagay ng deployment guide ng NVIDIA ang synchronous single-step requirement sa humigit-kumulang 33 ms end to end sa 30 FPS, at binabanggit na ang capture, network, inference at post-processing ay regular na lumalampas dito kahit walang internet na kasama.

Anong port ang ginagamit ng mga server at ligtas ba itong buksan?

Ang PolicyServer ng Isaac-GR00T ay nagde-default sa port 5555 sa ZeroMQ at nagba-bind ng 0.0.0.0 sa CLI nito. Ang lerobot ay nagde-default sa port 8080 sa gRPC at nagba-bind ng localhost. Walang ligtas na i-expose: sinusuportahan ng GR00T class ang isang api_token ngunit hindi kailanman nagpapasa ng isa ang run_gr00t_server.py, at ang lerobot ay nagpi-pickle ng data sa isang insecure na gRPC channel, na CVE-2026-25874. Mag-bind sa loopback at gumamit ng SSH tunnel.

Inaayos ba ng pag-upgrade ng lerobot ang CVE-2026-25874?

Hindi pa sa 23 Agosto 2026. Inililista ng CVE record ang LeRobot hanggang 0.5.1 bilang apektado at ang PyPI ay nagpapadala ng 0.6.1, ngunit ang pull request na magtatanggal ng pickle mula sa async pipeline ay bukas pa rin, at ang policy_server.py sa main ay tumatawag pa rin ng pickle.loads sa request data. Ituring ang network isolation bilang mitigation, hindi isang version bump, at ipagpalagay na kasama rin ang robot-side client.

Maaari ko bang gamitin ang async client ng lerobot sa isang GR00T checkpoint?

Oo. Inililista ng lerobot 0.6.1 ang groot sa SUPPORTED_POLICIES kasama ang act, smolvla, diffusion, tdmpc, vqbet, pi0 at pi05, at parehong so100_follower at so101_follower ay nasa SUPPORTED_ROBOTS. Ipasa ang --policy_type=groot at ituro ang --pretrained_name_or_path sa iyong checkpoint. Makakakuha ka ng asynchronous execution, na hindi ipinapatupad ng GR00T SO-100 example, sa halaga ng pickle transport.

Ang maikling bersyon

Ang remote inference para sa isang 3 B patakaran ay isang nalutas na problema sa engineering na may nakakabit na hindi pa nalulutas na problema sa physics. Ang engineering ay dalawang command at isang SSH tunnel. Ang physics ay kailangang makarating ang isang 1.8 MB na obserbasyon sa isang GPU sa ibang bansa at makabalik bago maubusan ng aksyon ang braso. Gawin ang aritmetika bago umarkila ng anuman, pumili ng gawain na kayang tiisin ang isang lumang obserbasyon, at itaas ang execution horizon sa halip na umasa na bubuti ang link.

Kung hindi ka pa nakakapag-record ng dataset, at ang ang unahin, at ang na entry ay nagpapaliwanag kung ano ang isinusulat ng recorder. Ang background ay nasa at ang ; ang ay nagli-link ng bawat benchmark number sa isang source.

Sources

Sources

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started