AY-Robots bandymo puslapis: trys būdai pradėti neturint roboto, įskaitant GPU nuomą politikos išvadai
GR00T N1.7Nuotolinė išvadaDebesies GPULeRobotSO-100Vėlavimas

Vykdyti GR00T išvadą be vietinio GPU

AY-Robots ResearchAugust 23, 202619 min skaitymo

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.

PolitikaParametraiIšvados vienam veiksmo žingsniuiGPU lygis apmokymuiMin. epizodųDuomenų rinkinio formatas
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
AY-Robots politikų puslapis, lyginantis penkias apmokomas politikas pagal parametrus, GPU lygį, išvadų vėlavimą ir minimalų epizodų skaičių
Tos pačios penkios eilutės puslapyje /policies. Vėlavimo stulpelis lemia, ar politika išgyvens tinklo šuolį.

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ę.

ACT neturi bazinio modelio

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 PolicyServerlerobot async inference
Įėjimo taškasgr00t/eval/run_gr00t_server.pypython -m lerobot.async_inference.policy_server
TransportasZeroMQ REQ/REPgRPC, add_insecure_port / insecure_channel
Serializavimasmsgpack + msgpack_numpy, allow_pickle=False enforcedpickle.dumps / pickle.loads, marked # nosec
Numatytasis prievadas55558080
Numatytasis susiejimas0.0.0.0, visos sąsajoslocalhost
Autentifikavimasapi_token palaikomas klasės, neperduodamas per CLInėra
Kliento laiko limitas15000 ms (PolicyClient timeout_ms)2 s stebėjimo eilės laiko limitas
Vykdymo modelissinchroninis: 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. 1
    Įdiekite GR00T nuomojamame GPU serveryje

    Submoduliai yra būtini, o git-lfs turi egzistuoti prieš klonavimą, kitaip parquet failai demo_data kataloge bus atvaizduojami kaip rodyklės. flash-attn ir TensorRT yra įdiegiami su numatytuoju diegimu. Spąstai naujame pod atvaizde: torchcodec 0.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 su Could not load libtorchcodec klaida. Įdiekite FFmpeg žemesnės nei 8 versijos ir įdėkite jo bibliotekas į 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
    Autentifikuokite 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 su GatedRepoError klaida.

    bash
    uv run huggingface-cli login
    # or:  export HF_TOKEN=<your_token>
  3. 3
    Paleiskite 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-path ir vietoj to perduokite --dataset-path bei --execution-horizon, kad būtų naudojama ReplayPolicy, kuri atkuria įrašytus veiksmus – tai pigiausias būdas įrodyti, kad laidai veikia.

    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
    Tuneliuokite 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
  5. 5
    Paleiskite roboto klientą šalia servovariklių

    Klientui reikalinga atskira uv aplinka: jam reikia lerobot roboto tvarkyklių, o ne mokymo sistemos. eval_so100.py importuoja 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 tiksliai front ir wrist, o juos sukeitus, politika matys neteisingą vaizdą.

    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"
Du numatytieji nustatymai, kurie sukels problemų

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.

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
Politikos serveris GPU, roboto klientas mašinoje su USB prievadais

Serveris 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.

ParametrasReikšmė lerobot 0.6.1 kodeKą jis daroPastaba
actions_per_chunkno default, requiredVeiksmai, grąžinami vienu iškvietimuDokumentacijos lentelėje nurodyta 50; dataclass laukas neturi numatytosios reikšmės, todėl CLI reikalauja reikšmės
chunk_size_threshold0.5Eilė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
fps30Kliento valdymo dažnis, nustato environment_dt = 1/fpsSumažinkite, jei eilė nuolat tuštėja
inference_latency1/30 s (33.3 ms)Tikslinis išvadų vėlavimas serveryjeTikslas, o ne matavimas
obs_queue_timeout2 sKiek laiko serveris laukia stebėjimų eilėjeLėtas aukštyn nukreiptas ryšys pirmiausia pasireiškia čia
aggregate_fn_nameweighted_averageKaip sumaišomi persidengiantys gabalų regionai0.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
Lerobot politikos serveryje yra nepašalinta RCE pažeidžiamumas

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 pralaidumasLaikas vienam stebėjimui perduoti (14,7 Mbit)Verdiktas 30 FPS rankai
10 Mbit/s, tipinis namų įkėlimas~1.47 sNenaudojama. Ranka sustoja tarp kiekvieno duomenų bloko.
25 Mbit/s~0.59 sTik lėtas paėmimas ir padėjimas, su ilgu vykdymo horizontu.
50 Mbit/s~0.29 sTinkama apgalvotoms užduotims.
100 Mbit/s~0.15 sGerai tinka paėmimui ir padėjimui, matoma esant greitam judesiui.
1 Gbit/s šviesolaidis arba duomenų centras~0.015 sVietoj 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.

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
Pavyzdys: 100 Mbit/s siuntimo sparta, 30 ms kelionės laikas, GR00T N1.7

Horizonto 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.

Kiek modelis kainuoja dar prieš tinklą

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.

  1. 1
    Gaukite 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.

    bash
    ping -c 50 <pod-host>
    # the mdev column is the number that predicts stutter
  2. 2
    Iš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
  3. 3
    Perskaitykite 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ų.

    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
    Stebėkite veiksmų eilės ištuštėjimą

    Perduokite --debug_visualize_queue_size=True ir klientas vykdymo metu braižys eilės dydį. Jei jis nuolat pasiekia nulį, jums trūksta biudžeto: sumažinkite kadrų per sekundę (fps), padidinkite actions_per_chunk arba padidinkite chunk_size_threshold, kad stebėjimai būtų siunčiami dažniau.

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

Kam iš tikrųjų tinka nuotolinis išvadų darymas

Politika nuomojamame GPU, ranka ant jūsų stalo
Privalumai
  • 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.
Kompromisai
  • 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žduotisVeikia per viešąjį internetą?Kodėl
Pick a static object, place it in a binTaipTarp stebėjimo ir veiksmo niekas nejuda.
Stack blocks at a deliberate paceTaip, esant action_horizon 16 ar daugiauKlaidos kaupiasi pakankamai lėtai, kad būtų galima jas ištaisyti kitame bloke.
Open a drawer, insert an objectPaprastaiDaug kontaktų, bet lėta. Stebėkite sustojimus ir judėjimą kontakto metu.
Follow a moving objectNePolitika veikia pagal 300 ms iki 1 s senumo stebėjimą.
Catch, balance, or recover from a slipNeKorekcijos langas yra trumpesnis nei vienas apsisukimas.
A 30 Hz synchronous closed loopNeBiudž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

  1. Išsinuomokite GPU momentinėje rinkoje ir palaukite, kol bus pakankamai VRAM už jums patinkančią kainą.
  2. Įdiekite CUDA, uv, ffmpeg torchcodec, kurį priima, ir GR00T paketą su submoduliais.
  3. Paprašykite prieigos prie uždaros nvidia/Cosmos-Reason2-2B pagrindinės sistemos ir įdėkite prieigos raktą į pod'ą.
  4. Perkelkite savo kontrolinį tašką į pod'ą.
  5. Paleiskite serverį loopback režimu, tada sukurkite SSH tunelį iš roboto mašinos.
  6. Įdiekite antrą aplinką roboto mašinoje klientui ir tvarkyklėms.
  7. Suderinkite kameros raktus, jungčių pavadinimus ir kalbos instrukciją su tuo, ką matė kontrolinis taškas.
  8. Stebėkite pod'ą. Pamirštas A100, veikiantis per naktį, kainuoja daugiau nei eksperimentas.
Nenaudojamas pod'as yra tikroji kaina

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ą.

AY-Robots MCP serverio puslapis, kuriame išvardijamos platformos operacijos, pateikiamos kaip įrankiai AI agentams
MCP puslapis: aprūpinimo ir išvadavimo operacijos, pateikiamos kaip įrankiai, kuriuos agentas gali iškviesti.

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.

KortaRunpod bendruomenės debesisRunpod saugus debesisTinka
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/hTas pats, šiek tiek greičiau
H100 PCIe 80 GB1.99 USD/h2.89 USD/hGreičiausias lygis; NVIDIA 11.7 Hz „eager“ rodiklis skirtas H100 80GB HBM3
L40S 48 GB0.79 USD/h0.99 USD/hTik išvadoms, virš 16 GB ribos
RTX 4090 24 GB0.34 USD/h0.74 USD/hSmolVLA, 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į.

AY-Robots kainų lentelė, rodanti, kokio GPU reikia kiekvienai politikai, tipinį vykdymo laiką ir kainą bei epizodus, kol politika tampa naudinga
Kainų lentelė /try puslapyje: kokia korta reikalinga kiekvienam modeliui ir kiek paprastai kainuoja paleidimas.

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 įrangos

Daž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

Sources

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started