
Jūsų roboto mašina neturi GPU. Įdiekite GR00T politikos serverį nuomojamame debesies GPU, transliuokite veiksmų blokus į ranką ir sužinokite, kiek tiksliai jums kainuoja tinklas.
Raspberry Pi pakanka, kad valdytų per nuosekliąją magistralę ir gautų kadrus iš dviejų USB kamerų. Tačiau nepakanka paleisti trijų milijardų parametrų : NVIDIA README nurodo, kad GR00T N1.7 išvadoms reikalingas vienas GPU su 16 GB ar daugiau VRAM. Norėdami pamatyti, ką jūsų patobulintas kontrolinis taškas daro su ranka nepirkdami kortelės, įdėkite politiką į nuomotą debesies GPU, palikite roboto ciklą mašinoje su USB prievadais ir siųskite stebėjimus bei veiksmų fragmentus per tinklą.
Tai veikia, tai nėra nemokama, o kaina nėra tolygiai paskirstyta tarp užduočių. Žemiau: NVIDIA nuosavas politikos serveris, lerobot asinchroninis stekas, aritmetika, kuri iš anksto pasako, ar jūsų siuntimo greitis yra pakankamas, ir platformos maršrutas. Visa tai patikrinta pagal Isaac-GR00T pagrindinę šaką (N1.7 GA) ir lerobot 0.6.1 2026 m. rugpjūčio 23 d.
Ką reikia žinoti
- •GR00T N1.7, GR00T N1.5 ir Pi0.5 yra maždaug 3 mlrd. parametrų modeliai. Nė vienas netelpa į roboto valdiklį be diskrečiosios GPU.
- •Isaac-GR00T ir lerobot abu siūlo kliento-serverio padalijimą. Jums nereikia rašyti transporto.
- •Stebėjimai dominuoja tinklo kaštuose, o ne veiksmai: du nesuspausti 640x480 RGB kadrai yra 1 843 200 baitų, apie 14.7 Mbit per iškvietimą, ir nė vienas stekas jų nesuspaudžia.
- •AY-Robots nurodo nuo 20 iki 485 ms vienam veiksmo žingsniui, priklausomai nuo modelio. Interneto kelionės laikas pridedamas prie to.
- •Nuotolinis išvadų darymas tinka lėtam paėmimui ir padėjimui, o ne greitam reaktyviam judėjimui. Ilgesnis vykdymo horizontas suteikia laiko ir kainuoja stebėjimo šviežumą.
- •Nė vienas serveris nėra saugus viešajame IP, kaip pristatytas, o lerobot turi nepašalintą RCE. Tuneliuokite jį.
Kodėl politika netilps į roboto mašiną
Dvi iš penkių AY-Robots apmokytų politikų veikia darbo stoties kortelėje, trys – ne. Toliau esančiame stulpelyje „“ nurodomas vėlavimas vienam veiksmo žingsniui, ir tai yra skaičius, kuris konkuruoja su jūsų tinklo kelionės laiku.
| Politika | Parametrai | Išvados vienam veiksmo žingsniui | GPU lygis apmokymui | Min. epizodų | Duomenų rinkinio formatas |
|---|---|---|---|---|---|
| GR00T N1.7 | ~3 B, ~40 M trained during fine-tuning | 152 ms | A100 80 GB or H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| GR00T N1.5 | ~3 B | 165 ms | A100 80 GB or H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| Pi0.5 | ~3 B, PaliGemma backbone | 485 ms | A100 80 GB or H100 80 GB | 50 | LeRobot v3.0 |
| SmolVLA | ~450 M | 245 ms | RTX 4090 or any 24 GB card | 30 | LeRobot v3.0 |
| ACT | ~80 M | 20 ms | RTX 4090 or any 24 GB card | 50 | LeRobot v3.0 |

Supraskite tai kaip sprendimą, o ne smulkmeną. su 20 ms vėlavimu vienam žingsniui veikia roboto mašinoje ir apie tai daugiau niekada negalvojate. su 485 ms vėlavimu jau sugaišo trečdalį sekundės, kol paketas palieka jūsų pastatą. ir prideda tikslumo pusę.
GR00T N1.7, GR00T N1.5 ir Pi0.5 prasideda nuo tiekėjo kontrolinio taško (nvidia/GR00T-N1.7-3B, nvidia/GR00T-N1.5-3B, lerobot/pi05_base). ACT neegzistuoja, kol jo neapmokote savo užduočiai, todėl nėra ko teikti nuotoliniu būdu, kol neįvyko apmokymo užduotis. Žr. ACT ant SO-100.
Dvi jau egzistuojančios kliento-serverio sąsajos
Isaac-GR00T teikia ZeroMQ užklausų-atsakymų serverį; lerobot teikia gRPC serverį, sukurtą aplink asinchroninį išvadą. Abu priima GR00T kontrolinį tašką. lerobot palaikomų politikų sąrašas async_inference/constants.py yra act, smolvla, diffusion, tdmpc, vqbet, pi0, pi05 ir groot; jo robotų sąrašas yra so100_follower, so101_follower, bi_so_follower ir omx_follower.
| Isaac-GR00T PolicyServer | lerobot async inference | |
|---|---|---|
| Įėjimo taškas | gr00t/eval/run_gr00t_server.py | python -m lerobot.async_inference.policy_server |
| Transportas | ZeroMQ REQ/REP | gRPC, add_insecure_port / insecure_channel |
| Serializavimas | msgpack + msgpack_numpy, allow_pickle=False enforced | pickle.dumps / pickle.loads, marked # nosec |
| Numatytasis prievadas | 5555 | 8080 |
| Numatytasis susiejimas | 0.0.0.0, visos sąsajos | localhost |
| Autentifikavimas | api_token palaikomas klasės, neperduodamas per CLI | nėra |
| Kliento laiko limitas | 15000 ms (PolicyClient timeout_ms) | 2 s stebėjimo eilės laiko limitas |
| Vykdymo modelis | sinchroninis: blokuoti, tada vykdyti dalį | asinchroninis: vykdyti, kol skaičiuojama kita dalis |
Serializacijos eilutė yra svarbesnė, nei atrodo. GR00T MsgSerializer atsisako objektinio tipo ndarray duomenų abiem kryptimis, nes msgpack_numpy priešingu atveju perduotų juos pickle. lerobot vietoj to naudoja pickle: policy_server.py iškviečia pickle.loads užklausos duomenims, robot_client.py naudoja pickle siunčiamam stebėjimui. Ginama patikimame LAN tinkle, neapginama, kai prievadas pasiekiamas iš interneto.
A maršrutas: NVIDIA GR00T politikos serveris
Tai yra kelias, kurį NVIDIA dokumentuoja SO-100 ir SO-101 aparatinei įrangai, ir tas, kurį reikia naudoti, jei jūsų kontrolinis taškas buvo sukurtas naudojant examples/finetune.sh su --embodiment-tag NEW_EMBODIMENT. Šie žingsniai papildo tai, ko trūksta pagrindiniame README faile: kaip nukreipti prievadą į robotą, neatskleidžiant jo visiems kitiems.
- 1Įdiekite GR00T nuomojamame GPU serveryje
Submoduliai yra būtini, o git-lfs turi egzistuoti prieš klonavimą, kitaip parquet failai
demo_datakataloge bus atvaizduojami kaip rodyklės. flash-attn ir TensorRT yra įdiegiami su numatytuoju diegimu. Spąstai naujame pod atvaizde:torchcodec0.8.0 yra vienintelis palaikomas vaizdo posistemis ir įkelia tik FFmpeg 4–7 versijas. Ubuntu 25.10 ir 26.04 pateikia FFmpeg 8, todėl GR00T nepavyksta suCould not load libtorchcodecklaida. Įdiekite FFmpeg žemesnės nei 8 versijos ir įdėkite jo bibliotekas įLD_LIBRARY_PATH.bashsudo apt install git-lfs && git lfs install curl -LsSf https://astral.sh/uv/install.sh | sh sudo apt-get update && sudo apt-get install -y ffmpeg git clone --recurse-submodules https://github.com/NVIDIA/Isaac-GR00T cd Isaac-GR00T uv sync --python 3.12 uv run python -c "import gr00t; print('GR00T installed successfully')" - 2Autentifikuokite prie uždaro pagrindo
Kiekvienas GR00T N1.7 kontrolinis taškas, įskaitant jūsų paties patobulintą, pirmą kartą naudojant įkelia uždarą
nvidia/Cosmos-Reason2-2B. Paprašykite prieigos modelio puslapyje ir prisijunkite prie pod, kitaip įkėlimas nepavyks suGatedRepoErrorklaida.bashuv run huggingface-cli login # or: export HF_TOKEN=<your_token> - 3Paleiskite politikos serverį
Nurodykite
--model-pathį savo kontrolinio taško katalogą; šiame kelyje serveris ignoruoja--modality-config-path, kuris skaitomas tik atkūrimo kelyje. Praleiskite--model-pathir vietoj to perduokite--dataset-pathbei--execution-horizon, kad būtų naudojama ReplayPolicy, kuri atkuria įrašytus veiksmus – tai pigiausias būdas įrodyti, kad laidai veikia.bashuv run python gr00t/eval/run_gr00t_server.py \ --model-path /workspace/so100_finetune/checkpoint-10000 \ --embodiment-tag NEW_EMBODIMENT \ --device cuda:0 \ --host 127.0.0.1 --port 5555 - 4Tuneliuokite prievadą 5555 į roboto mašiną
Pririškite prie loopback, kaip nurodyta aukščiau, ir perduokite prievadą per SSH arba WireGuard tipo tinklą. Tai suteikia šifravimą ir autentifikavimą, kurių ZeroMQ lizdas neturi, maždaug per milisekundę.
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 - 5Paleiskite roboto klientą šalia servovariklių
Klientui reikalinga atskira uv aplinka: jam reikia lerobot roboto tvarkyklių, o ne mokymo sistemos.
eval_so100.pyimportuoja so100_follower, so101_follower ir koch_follower, todėl perduokite--robot.type, atitinkantį jūsų ranką (pagrindiniame README naudojamas so101_follower). Kameros raktai turi atitikti mokymą: adapteris skaito tiksliaifrontirwrist, o juos sukeitus, politika matys neteisingą vaizdą.bashcd gr00t/eval/real_robot/SO100 uv sync uv pip install --no-deps -e ../../../../ uv run --no-sync python eval_so100.py \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=orange_follower \ --robot.cameras="{ front: {type: opencv, index_or_path: 6, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30}}" \ --policy_host=127.0.0.1 \ --policy_port=5555 \ --lang_instruction="pick up the red block and put it in the bin"
run_gr00t_server.py pagal numatytuosius nustatymus naudoja --host 0.0.0.0, susiedamas kiekvieną sąsają: ant pod'o su viešuoju IP tai yra atviras išvadų galinis taškas. O PolicyServer klasė priima api_token ir patvirtina jį kiekvienam užklausai, tačiau run_gr00t_server.py niekada jo neperduoda, todėl CLI serveris yra neautentifikuotas, kad ir ką sukonfigūruotumėte. Susiekite su 127.0.0.1 ir tuneliuokite. ZMQError: Address already in use reiškia, kad prievadas 5555 yra užimtas; perduokite --port.
B maršrutas: lerobot asinchroninis išvadų gavimas
lerobot sprendžia kitokią problemą. Užuot blokavęs robotą, kol modelis mąsto, klientas toliau apdoroja jau turimą eilę, kol serveris apskaičiuoja kitą gabalą. Tai yra veiksmų skaidymas į gabalus patobulinta, asinchroninė struktūra, pristatyta su SmolVLA. Ji veikia ir su GR00T kontroliniu tašku.
# 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=TrueServeris paleidžiamas tuščias: jis nežino, kokią politiką aptarnauja, kol to nepasako pirmasis kliento rankos paspaudimas, o tai patogu nuomojamame pode. Du nustatymai, kurie lemia, ar ranka juda sklandžiai, yra actions_per_chunk ir chunk_size_threshold (lerobot dokumentacijoje antrasis vadinamas g, pagal SmolVLA straipsnį), ir dokumentuotos bei pateiktos reikšmės nesutampa.
| Parametras | Reikšmė lerobot 0.6.1 kode | Ką jis daro | Pastaba |
|---|---|---|---|
| actions_per_chunk | no default, required | Veiksmai, grąžinami vienu iškvietimu | Dokumentacijos lentelėje nurodyta 50; dataclass laukas neturi numatytosios reikšmės, todėl CLI reikalauja reikšmės |
| chunk_size_threshold | 0.5 | Eilės užpildymo santykis, kuriam esant arba žemiau jo klientas siunčia naują stebėjimą | Dokumentacijos lentelėje nurodyta 0.7; kodas ir pačios dokumentacijos pavyzdys nurodo 0.5 |
| fps | 30 | Kliento valdymo dažnis, nustato environment_dt = 1/fps | Sumažinkite, jei eilė nuolat tuštėja |
| inference_latency | 1/30 s (33.3 ms) | Tikslinis išvadų vėlavimas serveryje | Tikslas, o ne matavimas |
| obs_queue_timeout | 2 s | Kiek laiko serveris laukia stebėjimų eilėje | Lėtas aukštyn nukreiptas ryšys pirmiausia pasireiškia čia |
| aggregate_fn_name | weighted_average | Kaip sumaišomi persidengiantys gabalų regionai | 0.3 sena + 0.7 nauja; taip pat pateikiama latest_only, average ir conservative. Registras yra AGGREGATE_FUNCTIONS faile configs.py, o ne robot_client.py, kaip teigiama dokumentacijoje |
CVE-2026-25874 yra neautentifikuotas nuotolinis kodo vykdymas lerobot asinchroninio išvadų apdorojimo konvejerio metu: pickle.loads() duomenims, gautiems per neautentifikuotą gRPC kanalą be TLS, pasiekiamas per SendPolicyInstructions, SendObservations ir GetActions iškvietimus. CWE-502, CVSS 3.1 bazinis balas 9.8 iš NVD, 4.0 bazinis balas 9.3 iš priskiriančios CNA. Įraše nurodoma, kad LeRobot iki 0.5.1 yra paveiktas ir įvardijami tiek politikos serveris, tiek roboto klientas, todėl mašina šalia jūsų rankos patenka į taikymo sritį. Atnaujinimas nėra sprendimas: įraše cituojama aukštesnio lygio problema 3047 ir pataisa, PR 3048, kuri pakeičia pickle į safetensors plius JSON, ir 2026 m. rugpjūčio 23 d. abu vis dar yra atviri. policy_server.py pagrindinėje šakoje vis dar iškviečia pickle.loads ant užklausos duomenų, o serve() susieja su add_insecure_port. Susiekite su loopback ir niekada neperadresuokite 8080 prievado.
Aritmetika, kuri nustato, ar jūsų ryšys yra pakankamai greitas
Žmonės tai praleidžia ir tada praleidžia dieną ties . Tai užtrunka dvi minutes ir beveik visada yra lemiama.
NVIDIA's pakomentuotas stebėjimo žodynas eval_so100.py nurodo, kas perduodama laidu: du (480, 640, 3) formos masyvai uint8 formatu, šeši jungčių slankieji kableliai, kalbos eilutė. Tai yra 921 600 baitų vienam kadrui, 1 843 200 baitų dviem kameroms, apie 14,7 Mbit, ir nė viena programinė įranga to nesuspaudžia JPEG formatu. Grįžtantis duomenų blokas yra kelios dešimtys žingsnių po 6 slankiuosius kablelius. Jūsų įkėlimo greitis lemia viską, o ne atsisiuntimo.
| Įkėlimo pralaidumas | Laikas vienam stebėjimui perduoti (14,7 Mbit) | Verdiktas 30 FPS rankai |
|---|---|---|
| 10 Mbit/s, tipinis namų įkėlimas | ~1.47 s | Nenaudojama. Ranka sustoja tarp kiekvieno duomenų bloko. |
| 25 Mbit/s | ~0.59 s | Tik lėtas paėmimas ir padėjimas, su ilgu vykdymo horizontu. |
| 50 Mbit/s | ~0.29 s | Tinkama apgalvotoms užduotims. |
| 100 Mbit/s | ~0.15 s | Gerai tinka paėmimui ir padėjimui, matoma esant greitam judesiui. |
| 1 Gbit/s šviesolaidis arba duomenų centras | ~0.015 s | Vietoj to modelis tampa kliūtimi. |
Biudžetas, į kurį turite tilpti
GR00T SO-100 klientas yra sinchroninis: jis iškviečia policy.get_action(obs), vykdo pirmuosius action_horizon žingsnius bloko 30 FPS greičiu, tada iškviečia vėl. Bloko dydis ir horizontas yra skirtingi skaičiai: NVIDIA diegimo vadovas rekomenduoja veiksmo bloko dydį 16, bent 32, kai derinamas su realaus laiko blokavimu, o eval_so100.py pateikia vykdymo horizontą 8. Aštuoni žingsniai 30 FPS greičiu yra 267 ms judesio per iškvietimą, ir visa kita turi tilpti į tai.
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 staleHorizonto padidinimas yra grubus ir ne nemokamas sprendimas: ranka veikia pagal dabar jau seną stebėjimą. Principinis sprendimas yra realaus laiko blokavimas (real-time chunking), kuris apskaičiuoja kitą bloką, kol veikia dabartinis, užšaldo veiksmus, kuriuos garantuotai vykdys, ir užpildo likusius; RTC dokumentas praneša, kad jis yra atsparus išvadų vėlavimui be perkvalifikavimo. Pirmiausia patikrinkite, kokia yra jo padėtis. NVIDIA žymi RTC kaip eksperimentinį, žemo lygio modelio primityvą, pasiekiamą per action_head.get_action(..., options={"rtc_overlap_steps": ..., "rtc_frozen_steps": ...}), neįdiegtą į Gr00tPolicy ar serverio-kliento kelią, kur options yra nenaudojamas, be jokių testų ir pavyzdžių. Per politikos serverį gaunate asinchroninį vykdymą, o ne RTC.
NVIDIA testuoja GR00T N1.7 nuo pradžios iki galo su 4 triukšmo šalinimo žingsniais su viena kamera. H100 80GB HBM3: 85.8 ms (11.7 Hz) su PyTorch eager, 48.6 ms (20.6 Hz) su torch.compile, 27.9 ms (35.9 Hz) su TensorRT pilna konvejerio linija. L40 eager režimu užtrunka 128.3 ms (7.8 Hz). NVIDIA vadina 10 Hz rekomenduojamu minimumu tipinei manipuliacijai, o žemiau 10 Hz tinka tik lėtoms, nereaktyvioms užduotims. Tai yra perplanavimo dažniai: 10 Hz politika vis tiek gali valdyti 30 FPS ranką per veiksmų blokavimą. Antra kamera nukreipia jus neteisinga linkme.
Išmatuokite, prieš pasitikėdami
Kiekvienas aukščiau pateiktas skaičius yra prognozė. Keturios komandos paverčia jį matavimu, kurį verta atlikti prieš skiriant pod-valandą užduočiai, kuri niekada nebūtų veikusi.
- 1Gaukite neapdorotą kelionės pirmyn ir atgal laiką
Prieš pod'ą, ne CDN. Stebėkite nuokrypį taip pat atidžiai, kaip ir vidurkį: virpėjimas sukelia rankos trūkčiojimą, o ne vidutinis vėlavimas.
bashping -c 50 <pod-host> # the mdev column is the number that predicts stutter - 2Išmatuokite turimą įkėlimo greitį, o ne tą, už kurį mokate
Gyvenamojo tinklo įkėlimo greitis paprastai yra atsisiuntimo greičio dalis, ir tai yra skaičius aukščiau esančioje pralaidumo lentelėje.
bash# on the pod iperf3 -s # on the robot machine, -R omitted so this measures upload iperf3 -c <pod-host> -t 30 - 3Perskaitykite kliento vėlavimo žurnalą
LeRobot roboto klientas registruoja serverio-kliento vėlavimą ir deserializavimo laiką kiekvienam duomenų blokui. Maršrute B jums nereikia jokių išorinių įrankių.
textReceived action chunk for step #240 | Latest action: #232 | Incoming actions: 240:289 | Network latency (server->client): 187.44ms | Deserialization time: 3.10ms - 4Stebėkite veiksmų eilės ištuštėjimą
Perduokite
--debug_visualize_queue_size=Trueir klientas vykdymo metu braižys eilės dydį. Jei jis nuolat pasiekia nulį, jums trūksta biudžeto: sumažinkite kadrų per sekundę (fps), padidinkiteactions_per_chunkarba padidinkitechunk_size_threshold, kad stebėjimai būtų siunčiami dažniau.bashpython -m lerobot.async_inference.robot_client \ ... \ --debug_visualize_queue_size=True
Kam iš tikrųjų tinka nuotolinis išvadų darymas
- Galite įvertinti 3 B parametrų politiką realioje aparatinėje įrangoje, neturėdami kortelės, kuri kainuoja daugiau nei ranka.
- GPU nuomojamas valandomis, todėl nepavykęs kontrolinis taškas kainuoja kelis dolerius.
- Roboto pusė lieka maža: lerobot tvarkyklės, dvi kameros, nuoseklusis prievadas, ir jūs keičiate kontrolinius taškus jo neliesdami.
- Nesuspausti stebėjimai dominuoja laidų kainoje, o gyvenamųjų patalpų įkėlimas yra ribojantis veiksnys.
- Virpėjimas (jitter) kenkia labiau nei vėlavimas (latency): ryšys, kurio vidurkis yra 40 ms su šuoliais iki 300 ms, stringa ten, kur stabilus 120 ms ryšys nestringa.
- Greitos reaktyvios užduotys neišgyvena kelionės pirmyn ir atgal jokiu horizontu.
- Abu serveriai siunčiami neautentifikuoti CLI forma, todėl tuneliavimo darbas yra jūsų.
- Nutrūkęs ryšys bloko viduryje palieka ranką, laikančią pasenusį veiksmą. Pridėkite savo sargybos robotą.
| Užduotis | Veikia per viešąjį internetą? | Kodėl |
|---|---|---|
| Pick a static object, place it in a bin | Taip | Tarp stebėjimo ir veiksmo niekas nejuda. |
| Stack blocks at a deliberate pace | Taip, esant action_horizon 16 ar daugiau | Klaidos kaupiasi pakankamai lėtai, kad būtų galima jas ištaisyti kitame bloke. |
| Open a drawer, insert an object | Paprastai | Daug kontaktų, bet lėta. Stebėkite sustojimus ir judėjimą kontakto metu. |
| Follow a moving object | Ne | Politika veikia pagal 300 ms iki 1 s senumo stebėjimą. |
| Catch, balance, or recover from a slip | Ne | Korekcijos langas yra trumpesnis nei vienas apsisukimas. |
| A 30 Hz synchronous closed loop | Ne | Biudžetas yra 33 ms nuo pradžios iki pabaigos. Net LAN tinklas susiduria su sunkumais. |
Jei nuotolinis vykdymas stringa tame pačiame taške kiekviename epizode, tinklas greičiausiai nėra priežastis. Politika, kiekvieną kartą dvejojanti ties tuo pačiu sąnario kampu, paprastai yra duomenų problema; žr. gedimo režimų puslapius, ypač politiką, kuri veikia tik vienoje konfigūracijoje ir nuostoliai mažėja, bet politika nieko nedaro.
Darymas pačiam vs darymas su AY-Robots
- Išsinuomokite GPU momentinėje rinkoje ir palaukite, kol bus pakankamai VRAM už jums patinkančią kainą.
- Įdiekite CUDA, uv, ffmpeg torchcodec, kurį priima, ir GR00T paketą su submoduliais.
- Paprašykite prieigos prie uždaros
nvidia/Cosmos-Reason2-2Bpagrindinės sistemos ir įdėkite prieigos raktą į pod'ą. - Perkelkite savo kontrolinį tašką į pod'ą.
- Paleiskite serverį loopback režimu, tada sukurkite SSH tunelį iš roboto mašinos.
- Įdiekite antrą aplinką roboto mašinoje klientui ir tvarkyklėms.
- Suderinkite kameros raktus, jungčių pavadinimus ir kalbos instrukciją su tuo, ką matė kontrolinis taškas.
- Stebėkite pod'ą. Pamirštas A100, veikiantis per naktį, kainuoja daugiau nei eksperimentas.
GPU sąskaita nesustoja, kai sustoja robotas. Dauguma pinigų, prarastų nuotoliniam išvadavimui, atitenka serveriui, kuris liko veikti po to, kai visi išėjo. Nustatykite žadintuvą arba automatizuokite išjungimą.
- Pasirinkite apmokytą politiką, kurią norite paleisti.
/api/inference/podautomatiškai parūpina debesies GPU pod'ą, kuris aptarnauja tą politiką.- Vietinis roboto klientas bendrauja su tuo galiniu tašku. Baziniai kontroliniai taškai yra pačių tiekėjų:
nvidia/GR00T-N1.7-3B,nvidia/GR00T-N1.5-3B,lerobot/pi05_base. ACT neturi jokių. - Pod'ai turi nenaudojimo stebėjimo funkciją ir sunaikina save po nenaudojimo laikotarpio, todėl niekas tyliai negeneruoja sąskaitų.
- Tos pačios operacijos pasiekiamos iš terminalo ir AI agentams, todėl ciklas gali būti programuojamas.
Automatinis aprūpinimas pašalina nustatymo darbą ir pamiršto pod'o sąskaitą, bet ne fiziką. Išvadavimas vis dar turi būti šalia servovariklių greitoms užduotims: valdymo ciklas yra nuo 20 iki 485 ms vienam veiksmo žingsniui, priklausomai nuo modelio, o viešojo interneto kelionės pirmyn ir atgal paverčia veikiančią politiką nedrąsia.
- Kliento vadovas vietinei ryšio pusei
- Paleiskite savo pirmąją politiką išsamiam aprašymui
- CLI ir MCP serveris skriptinei versijai
- Saugumo dokumentacija

Kiek kainuoja nuotolinio išvadavimo sesija
Svarbūs du skaičiai: valandinis kortelės tarifas ir tai, kiek ilgai ją paliekate veikti. Pirmasis yra viešas; antrasis nustebina žmones.
| Korta | Runpod bendruomenės debesis | Runpod saugus debesis | Tinka |
|---|---|---|---|
| A100 PCIe 80 GB | 1.19 USD/h | 1.39 USD/h | GR00T N1.7, GR00T N1.5, Pi0.5 |
| A100 SXM 80 GB | 1.39 USD/h | 1.59 USD/h | Tas pats, šiek tiek greičiau |
| H100 PCIe 80 GB | 1.99 USD/h | 2.89 USD/h | Greičiausias lygis; NVIDIA 11.7 Hz „eager“ rodiklis skirtas H100 80GB HBM3 |
| L40S 48 GB | 0.79 USD/h | 0.99 USD/h | Tik išvadoms, virš 16 GB ribos |
| RTX 4090 24 GB | 0.34 USD/h | 0.74 USD/h | SmolVLA, ACT |
Šie tarifai buvo perskaityti iš Runpod kainodaros puslapio 2026 m. rugpjūčio 23 d., o rinkos kainos kinta. AY-Robots vietoj to nurodo visos sesijos kainą: nuo 3 iki 6 valandų po 1.20–2.00 USD už valandą A100 arba H100 lygiu, apie 4–12 USD už GR00T arba Pi0.5 sesiją; nuo 2 iki 5 valandų po 0.30–0.60 USD už valandą 24 GB lygiu, 1–3 USD už SmolVLA arba ACT. Išvadų sesija yra pigesnė už apmokymo sesiją tik tuo atveju, jei ją sustabdote, o tam ir skirtas tuščiosios eigos stebėtojas. Žr. atsiskaitymo dokumentus ir kainodaros puslapį.

Jei nenorėtumėte, kad tinklas būtų įtrauktas į ciklą
Nuotolinis išvados darymas išsprendžia aparatinės įrangos problemą ir sukuria vėlavimo problemą. Kartais geresnis atsakymas yra politika, atitinkanti turimą aparatinę įrangą.
- ACT, maždaug 80 M parametrų ir 20 ms vienam veiksmo žingsniui, mažiausiai 50 epizodų, bet kokia 24 GB kortelė. Pasikartojančioje vienos užduoties sąrankoje ji dažnai pralenkia nuotolinį 3 B modelį, nes niekada nelaukia paketo.
- SmolVLA, maždaug 450 M parametrų ir 245 ms vienam veiksmo žingsniui, mažiausiai 30 epizodų. Jis išlaiko kalbos sąlygojimą, kurio trūksta ACT, o lerobot dokumentuose nurodoma, kad išvadų darymo metu jis užima apie 2 GB, palyginti su maždaug 14 GB PI0.
- ACT vs GR00T N1.7 dėl tikslumo pusės kompromiso.
Taip pat yra vidurinis kelias: treniruotis debesyje, vertinti vietoje. Tikslinimas reikalinga 80 GB kortelė ir jai nerūpi vėlavimas, todėl GR00T N1.7 treniravimas SO-100 nuotoliniu būdu yra neginčijamas. Tik vertinimo ciklas turi realaus laiko apribojimą; mokymo dokumentai ir modelio ir rankos matrica apima tą pusę.
Dar neturite rankos ant stalo?
Valdykite tikrą SO-100 naršyklėje be registracijos, palyginkite penkias apmokomas politikas su jų realiais vėlavimo skaičiais arba išsinuomokite GPU ir apmokykite vieną. Trys būdai pradėti, nė vienam nereikia aparatinės įrangos, kurios neturite.
Išbandykite be aparatinės įrangosDažnai užduodami klausimai
Ar galiu paleisti GR00T N1.7 ant Raspberry Pi, jei GPU yra nuotolinis?▾
Taip, tam ir skirtas kliento-serverio padalijimas. Pi paleidžia lerobot tvarkykles, nuskaito dvi kameras ir nuosekliąją magistralę bei siunčia stebėjimus politikos serveriui; jis niekada neįkelia modelio. Apribojimas persikelia iš VRAM į įkėlimo pralaidumą: du nesuspausti 640x480 RGB kadrai yra 1 843 200 baitų vienam iškvietimui, ir nė viena iš sistemų jų nesuspaudžia.
Kiek vėlavimo iš tikrųjų prideda tinklas?▾
Kelionės pirmyn ir atgal laikas plius stebėjimo perdavimo laikas. Perdavimo laikas yra 14,7 Mbit padalintas iš jūsų įkėlimo pralaidumo: maždaug 147 ms esant 100 Mbit/s ryšiui, 1,47 s esant 10 Mbit/s ryšiui. Abu pridedami prie paties modelio išvadų laiko, kurį AY-Robots nurodo kaip 152 ms GR00T N1.7 ir 485 ms Pi0.5. Matuokite su ping ir iperf3 prieš podą, o ne prieš greičio testavimo serverį.
Ar nuotolinės išvados pakanka realiai užduočiai?▾
Lėtam, apgalvotam paėmimui ir padėjimui – taip. Bet kam, kas reaguojama – ne. NVIDIA diegimo vadove sinchroninio vieno žingsnio reikalavimas nurodomas maždaug 33 ms nuo pradžios iki pabaigos esant 30 FPS, ir pažymima, kad fiksavimas, tinklas, išvados ir apdorojimas po to reguliariai viršija šį laiką, net ir be interneto.
Kokį prievadą naudoja serveriai ir ar saugu jį atidaryti?▾
Isaac-GR00T PolicyServer pagal numatytuosius nustatymus naudoja 5555 prievadą per ZeroMQ ir susieja 0.0.0.0 savo CLI. lerobot pagal numatytuosius nustatymus naudoja 8080 prievadą per gRPC ir susieja localhost. Nė vieno iš jų nėra saugu atskleisti: GR00T klasė palaiko api_token, bet run_gr00t_server.py niekada jo neperduoda, o lerobot perduoda duomenis per nesaugų gRPC kanalą, o tai yra CVE-2026-25874. Susiekite su loopback ir naudokite SSH tunelį.
Ar atnaujinus lerobot ištaisoma CVE-2026-25874?▾
Nuo 2026 m. rugpjūčio 23 d. – ne. CVE įraše nurodoma, kad LeRobot iki 0.5.1 versijos yra paveiktas, o PyPI siunčia 0.6.1, tačiau „pull request“, kuris pašalintų pickle iš asinchroninio konvejerio, vis dar yra atviras, o policy_server.py pagrindinėje šakoje vis dar iškviečia pickle.loads ant užklausos duomenų. Tinklo izoliaciją laikykite švelninimo priemone, o ne versijos atnaujinimu, ir darykite prielaidą, kad roboto pusės klientas taip pat patenka į taikymo sritį.
Ar galiu naudoti lerobot asinchroninį klientą su GR00T kontroliniu tašku?▾
Taip. lerobot 0.6.1 nurodo groot SUPPORTED_POLICIES sąraše kartu su act, smolvla, diffusion, tdmpc, vqbet, pi0 ir pi05, o so100_follower ir so101_follower yra SUPPORTED_ROBOTS sąraše. Perduokite --policy_type=groot ir nukreipkite --pretrained_name_or_path į savo kontrolinį tašką. Gausite asinchroninį vykdymą, kurio GR00T SO-100 pavyzdys neįgyvendina, tačiau su pickle transporto kaina.
Trumpoji versija
Nuotolinės išvados 3 B politikai yra išspręsta inžinerinė problema su neišspręsta fizikos problema. Inžinerija – tai dvi komandos ir SSH tunelis. Fizika – tai, kad 1,8 MB stebėjimas turi pasiekti GPU kitoje šalyje ir grįžti, kol ranka neišnaudos veiksmų. Atlikite skaičiavimus prieš ką nors nuomodami, pasirinkite užduotį, kuri toleruoja pasenusį stebėjimą, ir padidinkite vykdymo horizontą, o ne tikėkitės, kad ryšys pagerės.
Jei dar neįrašėte duomenų rinkinio, ir yra svarbiausi, o įrašas paaiškina, ką įrašymo įrenginys rašo. Pagrindinė informacija yra ir ; kiekvienas etaloninis skaičius susietas su šaltiniu.
Sources
- NVIDIA Isaac-GR00T: N1.7 saugykla ir README (16 GB inferencijos riba, diegimas, uždaras Cosmos-Reason2-2B pagrindas, FFmpeg apribojimas)
- run_gr00t_server.py: GR00T politikos serverio CLI, ServerConfig numatytosios reikšmės (host 0.0.0.0, port 5555) ir ReplayPolicy kelias
- server_client.py: PolicyServer ir PolicyClient, MsgSerializer allow_pickle=False riba, api_token, timeout_ms
- eval_so100.py: SO-100 politikos klientas, EvalConfig numatytosios reikšmės ir sinchroninis valdymo ciklas
- Isaac-GR00T SO100/SO101 pavyzdys: duomenų rinkinio konvertavimas, tikslinimas ir uždaro ciklo vertinimo komandos
- Isaac-GR00T Real-World Deployment Guide: 33 ms sinchroninis biudžetas, stop-and-go, veiksmo bloko dydis, RTC būsena
- Isaac-GR00T Hardware Recommendation: inferencijos dažnis vienam GPU ir 10 Hz minimumas
- Isaac-GR00T Deployment and Inference Guide: komponentų vėlavimo etaloninių testų rezultatai
- LeRobot: Asinchroninės inferencijos pamoka (PolicyServer, RobotClient, dokumentuota parametrų lentelė)
- lerobot async_inference/configs.py: PolicyServerConfig ir RobotClientConfig numatytosios reikšmės, AGGREGATE_FUNCTIONS registras
- lerobot async_inference/policy_server.py: pickle.loads ant užklausos duomenų, add_insecure_port, gRPC iškvietimų pavadinimai
- lerobot robot_client.py: gRPC transportas, pickle serializavimas, vėlavimo registravimas
- CVE-2026-25874: LeRobot nesaugus deserializavimas nuotolinio kodo vykdymas per gRPC, paveikta iki 0.5.1 versijos
- Black, Galliker ir Levine, Veiksmų skaidymo srauto politikų vykdymas realiuoju laiku (real-time chunking)
- Runpod GPU kainodara: bendruomenės ir saugaus debesies valandiniai tarifai A100, H100, L40S ir RTX 4090
Sources
- NVIDIA Isaac-GR00T: N1.7 repository and README (16 GB inference floor, install, gated Cosmos-Reason2-2B backbone, FFmpeg constraint)
- run_gr00t_server.py: the GR00T policy server CLI, ServerConfig defaults (host 0.0.0.0, port 5555) and the ReplayPolicy path
- server_client.py: PolicyServer and PolicyClient, MsgSerializer's allow_pickle=False boundary, api_token, timeout_ms
- eval_so100.py: the SO-100 policy client, EvalConfig defaults and the synchronous control loop
- Isaac-GR00T SO100/SO101 example: dataset conversion, finetune and closed-loop eval commands
- Isaac-GR00T Real-World Deployment Guide: the 33 ms synchronous budget, stop-and-go, action chunk size, RTC status
- Isaac-GR00T Hardware Recommendation: inference frequency per GPU and the 10 Hz minimum
- Isaac-GR00T Deployment and Inference Guide: per-component latency benchmark results
- LeRobot: Asynchronous Inference tutorial (PolicyServer, RobotClient, the documented parameter table)
- lerobot async_inference/configs.py: PolicyServerConfig and RobotClientConfig defaults, AGGREGATE_FUNCTIONS registry
- lerobot async_inference/policy_server.py: pickle.loads on request data, add_insecure_port, the gRPC call names
- lerobot robot_client.py: gRPC transport, pickle serialization, latency logging
- CVE-2026-25874: LeRobot unsafe deserialization remote code execution via gRPC, affected through 0.5.1
- Black, Galliker and Levine, Real-Time Execution of Action Chunking Flow Policies (real-time chunking)
- Runpod GPU pricing: community and secure cloud hourly rates for A100, H100, L40S and RTX 4090
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started