Pagina de încercare AY-Robots: trei moduri de a începe fără a deține un robot, inclusiv închirierea unui GPU pentru inferența politicilor
GR00T N1.7Inferență la distanțăGPU în cloudLeRobotSO-100Latență

Rulează inferența GR00T Fără un GPU Local

AY-Robots ResearchAugust 23, 202619 min de citit

Mașina ta robotică nu are GPU. Pune serverul de politici GR00T pe un GPU în cloud închiriat, transmite pachete de acțiuni către braț și află exact cât te costă rețeaua.

Un Raspberry Pi este suficient pentru a controla un printr-un bus serial și pentru a prelua cadre de la două camere USB. Nu este suficient pentru a rula un model cu trei miliarde de parametri : README-ul NVIDIA plasează inferența GR00T N1.7 la un GPU cu 16 GB sau mai mult de VRAM. Pentru a vedea ce face punctul de control GR00T N1.7, antrenat fin, pe braț fără a cumpăra o placă, plasați politica pe un GPU cloud închiriat, mențineți bucla robotului pe mașina cu porturile USB și trimiteți observațiile și fragmentele de acțiune prin rețea.

Funcționează, nu este gratuit, iar prețul nu este distribuit uniform pe toate sarcinile. Mai jos: propriul server de politici al NVIDIA, stiva asincronă a lerobot, aritmetica ce indică în avans dacă uplink-ul dumneavoastră este suficient de rapid și ruta platformei. Toate acestea verificate în raport cu ramura principală Isaac-GR00T (N1.7 GA) și lerobot 0.6.1 la 23 august 2026.

Ce trebuie să știți

  • GR00T N1.7, GR00T N1.5 și Pi0.5 sunt modele cu aproximativ 3 miliarde de parametri. Niciunul nu se potrivește pe un controler de robot fără un GPU discret.
  • Isaac-GR00T și lerobot livrează ambele o arhitectură client-server. Nu dumneavoastră scrieți transportul.
  • Observațiile domină costul de transmisie, nu acțiunile: două cadre RGB necomprimate de 640x480 sunt 1.843.200 de octeți, aproximativ 14.7 Mbit per apel, și nicio stivă nu le comprimă.
  • AY-Robots listează 20 până la 485 ms per pas de acțiune în funcție de model. Timpii de răspuns ai internetului se adaugă la aceasta.
  • Inferența la distanță se potrivește operațiunilor lente de tip pick-and-place, nu mișcărilor reactive rapide. Un orizont de execuție mai lung câștigă timp și costă prospețimea observațiilor.
  • Niciun server nu este sigur pe un IP public așa cum este livrat, iar cel al lerobot conține un RCE nepatch-uit. Tunelați-l.

De ce politica nu se va potrivi pe mașina robotului

Două dintre cele cinci politici pe care AY-Robots le poate antrena rulează pe o placă de stație de lucru, trei nu. Coloana de mai jos este per pas de acțiune, și acesta este numărul care concurează cu timpul de răspuns al rețelei dumneavoastră.

PoliticăParametriInferență per pas de acțiuneNivel GPU pentru antrenamentEpisoade minimeFormat set de date
GR00T N1.7~3 B, ~40 M antrenați în timpul reglajului fin152 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, bază PaliGemma485 msA100 80 GB or H100 80 GB50LeRobot v3.0
SmolVLA~450 M245 msRTX 4090 sau orice placă de 24 GB30LeRobot v3.0
ACT~80 M20 msRTX 4090 sau orice placă de 24 GB50LeRobot v3.0
Pagina de politici AY-Robots care compară cele cinci politici antrenabile după parametri, nivel GPU, latența de inferență și episoade minime
Aceleași cinci rânduri pe /policies. Coloana de latență decide dacă o politică supraviețuiește unui salt de rețea.

Citiți asta ca pe o decizie, nu ca pe o informație minoră. la 20 ms per pas rulează pe mașina robotului și nu vă mai gândiți la asta. la 485 ms a petrecut o treime de secundă înainte ca un pachet să părăsească clădirea dumneavoastră. Comparația și adaugă partea de precizie.

ACT nu are un model de bază

GR00T N1.7, GR00T N1.5 și Pi0.5 pornesc de la un checkpoint al furnizorului (nvidia/GR00T-N1.7-3B, nvidia/GR00T-N1.5-3B, lerobot/pi05_base). ACT nu există până când nu îl antrenați pentru propria sarcină, deci nu există nimic de servit la distanță până când nu a rulat o sarcină de antrenament. Vezi ACT pe SO-100.

Cele două stive client-server care există deja

Isaac-GR00T livrează un server ZeroMQ de tip cerere-răspuns; lerobot livrează un server gRPC construit în jurul inferenței asincrone. Ambele acceptă un GR00T checkpoint. Lista de politici suportate de lerobot în async_inference/constants.py este act, smolvla, diffusion, tdmpc, vqbet, pi0, pi05 și groot; lista sa de roboți este so100_follower, so101_follower, bi_so_follower și omx_follower.

Server de politici Isaac-GR00Tinferență asincronă lerobot
Punct de intraregr00t/eval/run_gr00t_server.pypython -m lerobot.async_inference.policy_server
TransportZeroMQ REQ/REPgRPC, add_insecure_port / insecure_channel
Serializaremsgpack + msgpack_numpy, allow_pickle=False enforcedpickle.dumps / pickle.loads, marked # nosec
Port implicit55558080
Legare implicită0.0.0.0, toate interfețelelocalhost
Autentificareapi_token suportat de clasă, nu este transmis prin CLIniciuna
Timeout client15000 ms (timeout_ms PolicyClient)timeout coadă de observație de 2 s
Model de execuțiesincron: blochează, apoi execută fragmentulasincron: execută în timp ce următorul fragment se calculează

Rândul de serializare contează mai mult decât pare. MsgSerializer al GR00T refuză sarcini utile ndarray de tip obiect în ambele direcții, deoarece msgpack_numpy le-ar preda altfel lui pickle. lerobot folosește pickle în schimb: policy_server.py apelează pickle.loads pe datele cererii, robot_client.py folosește pickle pentru observația pe care o trimite. Apărabil într-o rețea LAN de încredere, de neapărat odată ce portul este accesibil de pe internet.

Ruta A: Serverul de politici GR00T propriu al NVIDIA

Aceasta este calea documentată de NVIDIA pentru hardware-ul SO-100 și SO-101, și cea de utilizat dacă punctul dvs. de control a rezultat din examples/finetune.sh cu --embodiment-tag NEW_EMBODIMENT. Pașii adaugă ceea ce README-ul upstream omite: obținerea portului către robot fără a-l expune tuturor celorlalți.

  1. 1
    Instalați GR00T pe serverul GPU închiriat

    Submodulele sunt necesare, iar git-lfs trebuie să existe înainte de clonare, altfel fișierele parquet din demo_data ajung ca pointeri. flash-attn și TensorRT vin cu instalarea implicită. Capcana pe o imagine proaspătă de pod: torchcodec 0.8.0 este singurul backend video suportat și încarcă doar FFmpeg 4 până la 7. Ubuntu 25.10 și 26.04 livrează FFmpeg 8, astfel încât GR00T eșuează cu Could not load libtorchcodec. Instalați un FFmpeg sub versiunea 8 și plasați bibliotecile sale pe 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
    Autentificați-vă împotriva backbone-ului cu acces restricționat

    Fiecare punct de control GR00T N1.7, inclusiv propria dvs. ajustare fină, încarcă nvidia/Cosmos-Reason2-2B cu acces restricționat la prima utilizare. Solicitați acces pe pagina modelului și autentificați-vă pe pod, altfel încărcarea eșuează cu o GatedRepoError.

    bash
    uv run huggingface-cli login
    # or:  export HF_TOKEN=<your_token>
  3. 3
    Porniți serverul de politici

    Indicați --model-path către directorul dvs. de puncte de control; pe acea cale serverul ignoră --modality-config-path, care este citit doar pe calea de reluare. Omiteți --model-path și transmiteți în schimb --dataset-path plus --execution-horizon pentru o ReplayPolicy care reia acțiunile înregistrate, cel mai ieftin mod de a demonstra că cablajul funcționează.

    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
    Tunelați portul 5555 către mașina robotului

    Conectați-vă la loopback, ca mai sus, și transportați portul prin SSH sau o rețea de tip WireGuard. Aceasta asigură criptarea și autentificarea pe care socket-ul ZeroMQ nu le oferă, pentru aproximativ o milisecundă.

    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
    Rulați clientul robotului lângă servomotoare

    Clientul are nevoie de propriul său mediu uv: dorește driverele de robot ale lerobot, nu stiva de antrenament. eval_so100.py importă so100_follower, so101_follower și koch_follower, deci transmiteți --robot.type care se potrivește cu brațul dvs. (README-ul upstream folosește so101_follower). Cheile camerei trebuie să se potrivească cu antrenamentul: adaptorul citește exact front și wrist, iar inversarea lor arată politicii o vizualizare greșită.

    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"
Două setări implicite care vă vor crea probleme

run_gr00t_server.py are ca valoare implicită --host 0.0.0.0, legând fiecare interfață: pe un pod cu o adresă IP publică, acesta este un punct final de inferență deschis. Iar clasa PolicyServer acceptă un api_token și îl validează per cerere, dar run_gr00t_server.py nu transmite niciodată unul, deci serverul CLI este neautentificat indiferent de configurare. Legați la 127.0.0.1 și utilizați un tunel. O eroare ZMQError: Address already in use înseamnă că portul 5555 este ocupat; transmiteți --port.

Ruta B: inferență asincronă lerobot

lerobot rezolvă o problemă diferită. În loc să blocheze robotul în timp ce modelul gândește, clientul continuă să parcurgă coada pe care o are deja în timp ce serverul calculează următorul segment. Aceasta este fragmentare de acțiuni dusă mai departe, stiva asincronă introdusă cu SmolVLA. Funcționează și cu un checkpoint 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
Serverul de politici pe GPU, clientul robot pe mașina cu porturile USB

Serverul pornește gol: nu știe ce politică servește până când primul handshake al clientului îi spune, ceea ce este convenabil pe un pod închiriat. Cele două setări care decid dacă brațul se mișcă lin sunt actions_per_chunk și chunk_size_threshold (documentația lerobot o numește pe a doua g, după lucrarea SmolVLA), iar valorile documentate și valorile livrate nu concordă.

ParametruValoare în lerobot 0.6.1 codeCe faceNotă
actions_per_chunkfără valoare implicită, obligatoriuAcțiuni returnate per apelTabelul din documentație listează 50; câmpul dataclass nu are o valoare implicită, deci CLI-ul cere o valoare
chunk_size_threshold0.5Raportul de umplere a cozii la sau sub care clientul trimite o nouă observațieTabelul din documentație spune 0.7; codul și exemplul din documentație spun 0.5
fps30Rata de control a clientului, setează environment_dt = 1/fpsReduceți-o dacă coada continuă să se golească
inference_latency1/30 s (33.3 ms)Latența țintă de inferență pe serverO țintă, nu o măsurătoare
obs_queue_timeout2 sCât timp așteaptă serverul la coada de observațiiO legătură ascendentă lentă se manifestă aici prima dată
aggregate_fn_nameweighted_averageCum sunt amestecate regiunile de chunk-uri suprapuse0.3 vechi + 0.7 nou; latest_only, average și conservative sunt de asemenea livrate. Registrul este AGGREGATE_FUNCTIONS în configs.py, nu robot_client.py așa cum susține documentația
Serverul de politici lerobot are o vulnerabilitate RCE nepatchată

CVE-2026-25874 este o execuție de cod la distanță neautentificată în pipeline-ul de inferență asincronă al lerobot: pickle.loads() pe date primite printr-un canal gRPC neautentificat fără TLS, accesibil prin apelurile SendPolicyInstructions, SendObservations și GetActions. CWE-502, scor de bază CVSS 3.1 de 9.8 de la NVD, scor de bază 4.0 de 9.3 de la CNA-ul de atribuire. Înregistrarea listează LeRobot până la 0.5.1 ca fiind afectat și numește atât serverul de politici, cât și clientul robotului, deci mașina de lângă brațul dumneavoastră este în scop. Actualizarea nu este soluția: înregistrarea citează problema upstream 3047 și patch-ul, PR 3048, care înlocuiește pickle cu safetensors plus JSON, iar pe 23 august 2026 ambele sunt încă deschise. policy_server.py pe main încă apelează pickle.loads pe datele cererii în timp ce serve() se leagă cu add_insecure_port. Legați-vă la loopback și nu redirecționați niciodată portul 8080.

Aritmetica ce decide dacă legătura dumneavoastră este suficient de rapidă

Oamenii sar peste asta și apoi petrec o zi pe . Durează două minute și este aproape întotdeauna decisiv.

Dicționarul de observații comentat din eval_so100.py de la NVIDIA spune ce se transmite prin rețea: două array-uri de formă (480, 640, 3) în uint8, șase float-uri de articulație, un șir de caractere pentru limbă. Asta înseamnă 921.600 de octeți pe cadru, 1.843.200 de octeți pentru două camere, aproximativ 14,7 Mbit, și niciun stack nu le comprimă JPEG. Blocul care se întoarce conține câteva zeci de pași de 6 float-uri. Upload-ul tău decide totul, nu download-ul.

Lățime de bandă uploadTimp pentru a trimite o observație (14,7 Mbit)Verdict pentru un braț de 30 FPS
10 Mbit/s, upload tipic acasă~1.47 sInutilizabil. Brațul se oprește între fiecare bloc.
25 Mbit/s~0.59 sDoar pick-and-place lent, cu un orizont lung de execuție.
50 Mbit/s~0.29 sFuncțional pentru sarcini deliberate.
100 Mbit/s~0.15 sBun pentru pick-and-place, vizibil la mișcări rapide.
Fibră de 1 Gbit/s sau centru de date~0.015 sModelul devine blocajul în schimb.

Bugetul în care trebuie să te încadrezi

Clientul GR00T SO-100 este sincron: apelează policy.get_action(obs), execută primii action_horizon pași ai blocului la 30 FPS, apoi apelează din nou. Dimensiunea blocului și orizontul sunt numere diferite: ghidul de implementare NVIDIA recomandă o dimensiune a blocului de acțiuni de 16, cel puțin 32 atunci când este combinată cu chunking în timp real, în timp ce eval_so100.py livrează un orizont de execuție de 8. Opt pași la 30 FPS înseamnă 267 ms de mișcare per apel, iar tot restul trebuie să se încadreze în acest interval.

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
Exemplu practic: uplink de 100 Mbit/s, timp de răspuns de 30 ms, GR00T N1.7

Creșterea orizontului este o soluție brută și nu una gratuită: brațul acționează pe baza unei observații care este acum veche. Soluția principială este chunking-ul în timp real (real-time chunking - RTC), care calculează următorul bloc în timp ce cel curent rulează, îngheață acțiunile garantate a fi executate și completează restul; lucrarea RTC raportează că este robust la întârzierile de inferență fără a necesita reantrenare. Verificați mai întâi stadiul acestuia. NVIDIA marchează RTC ca experimental, o primitivă de model de nivel scăzut accesibilă prin action_head.get_action(..., options={"rtc_overlap_steps": ..., "rtc_frozen_steps": ...}), neintegrată în Gr00tPolicy sau în calea server-client, unde options este neutilizată, fără teste și fără exemplu. Printr-un server de politici obțineți execuție asincronă, nu RTC.

Ce costă modelul înainte de rețea

NVIDIA testează GR00T N1.7 cap la cap la 4 pași de denoising cu o singură cameră. Pe un H100 80GB HBM3: 85.8 ms (11.7 Hz) în PyTorch eager, 48.6 ms (20.6 Hz) cu torch.compile, 27.9 ms (35.9 Hz) cu pipeline-ul complet TensorRT. Un L40 în modul eager durează 128.3 ms (7.8 Hz). NVIDIA consideră 10 Hz minimul recomandat pentru manipularea tipică, iar sub 10 Hz potrivit doar pentru sarcini lente, non-reactive. Acestea sunt rate de replanificare: o politică de 10 Hz poate totuși acționa un braț de 30 FPS prin chunking de acțiuni. O a doua cameră te duce în direcția greșită.

Măsurați înainte de a vă încrede

Fiecare număr de mai sus este o predicție. Patru comenzi îl transformă într-o măsurătoare, care merită executată înainte de a aloca o oră de pod unei sarcini care nu ar fi funcționat niciodată.

  1. 1
    Obțineți timpul de răspuns brut

    Împotriva pod-ului, nu a unui CDN. Urmăriți deviația la fel de atent ca și media: jitter-ul face un braț să se blocheze, nu latența medie.

    bash
    ping -c 50 <pod-host>
    # the mdev column is the number that predicts stutter
  2. 2
    Măsurați uplink-ul pe care îl aveți, nu pe cel pentru care plătiți

    Viteza de upload rezidențială este de obicei o fracțiune din cea de download și este numărul din tabelul de lățime de bandă de mai sus.

    bash
    # on the pod
    iperf3 -s
    
    # on the robot machine, -R omitted so this measures upload
    iperf3 -c <pod-host> -t 30
  3. 3
    Citiți jurnalul de latență al clientului

    Clientul robot lerobot înregistrează latența server-client și timpul de deserializare pentru fiecare fragment. Pe ruta B nu aveți nevoie de instrumente externe.

    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
    Urmăriți golirea cozii de acțiuni

    Transmiteți --debug_visualize_queue_size=True și clientul va afișa grafic dimensiunea cozii în timpul execuției. Dacă atinge în mod repetat zero, ați depășit bugetul: reduceți fps-ul, măriți actions_per_chunk sau măriți chunk_size_threshold pentru ca observațiile să fie trimise mai des.

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

La ce este de fapt bună inferența la distanță

Politica pe un GPU închiriat, brațul pe biroul tău
Avantaje
  • Poți evalua o politică cu 3 miliarde de parametri pe hardware real fără a deține o placă ce costă mai mult decât brațul.
  • GPU-ul este închiriat pe oră, deci un checkpoint eșuat costă câțiva dolari.
  • Partea robotului rămâne mică: drivere lerobot, două camere, un port serial, și poți schimba checkpoint-urile fără a o atinge.
Compromisuri
  • Observațiile necomprimate domină costul de transmisie, iar încărcarea rezidențială este constrângerea principală.
  • Jitter-ul dăunează mai mult decât latența: o conexiune cu o medie de 40 ms și vârfuri de 300 ms sacadează, în timp ce o conexiune stabilă de 120 ms nu.
  • Sarcinile reactive rapide nu supraviețuiesc unei călătorii dus-întors la niciun orizont.
  • Ambele servere sunt livrate neautentificate în formă CLI, deci munca de tunelare îți aparține.
  • O conexiune întreruptă la mijlocul unui segment lasă brațul într-o acțiune învechită. Adaugă propriul tău watchdog pe partea robotului.
SarcinăFuncționează prin internetul public?De ce
Alege un obiect static, plasează-l într-un recipientDaNimic nu se mișcă între observație și acțiune.
Stivuiește blocuri într-un ritm deliberatDa, la action_horizon 16 sau mai multErorile se acumulează suficient de lent pentru a fi corectate în următorul segment.
Deschide un sertar, inserează un obiectDe obiceiBogat în contacte, dar lent. Fii atent la opriri și porniri la contact.
Urmărește un obiect în mișcareNuPolitica acționează pe o observație veche de 300 ms până la 1 s.
Prinde, echilibrează sau recuperează dintr-o alunecareNuFereastra de corecție este mai scurtă decât o călătorie dus-întors.
O buclă închisă sincronă de 30 HzNuBugetul este de 33 ms cap la cap. Chiar și o rețea locală se confruntă cu dificultăți.

Dacă o rulare la distanță sacadează în același punct în fiecare episod, rețeaua probabil nu este cauza. O politică care ezită la același unghi articular de fiecare dată este de obicei o problemă de date; vezi paginile despre modurile de eșec, în special o politică ce funcționează doar într-o singură configurație și pierderea scade, dar politica nu face nimic.

Făcând-o tu însuți vs făcând-o pe AY-Robots

  1. Închiriază un GPU pe o piață spot și așteaptă suficient VRAM la un preț convenabil.
  2. Instalează CUDA, uv, un ffmpeg acceptat de torchcodec și stiva GR00T cu submodule.
  3. Solicită acces la backbone-ul restricționat nvidia/Cosmos-Reason2-2B și plasează un token pe pod.
  4. Descarcă checkpoint-ul tău pe pod.
  5. Pornește serverul pe loopback, apoi construiește un tunel SSH de la mașina robotului.
  6. Instalează un al doilea mediu pe mașina robotului pentru client și drivere.
  7. Potrivește cheile camerei, numele articulațiilor și instrucțiunea lingvistică cu ceea ce a văzut checkpoint-ul.
  8. Monitorizează pod-ul. Un A100 uitat pornit peste noapte costă mai mult decât experimentul.
Pod-ul inactiv este costul real

Factura GPU nu se oprește când robotul se oprește. Majoritatea banilor pierduți pe inferența la distanță se duc către un server care a rămas pornit după ce toată lumea a plecat. Setează o alarmă sau automatizează dezafectarea.

Pagina serverului MCP AY-Robots care listează operațiunile platformei expuse ca instrumente pentru agenții AI
Pagina MCP: operațiuni de provizionare și inferență expuse ca instrumente pe care un agent le poate apela.

Cât costă o sesiune de inferență la distanță

Două numere contează: tariful orar al plăcii și cât timp o lași să ruleze. Primul este publicat; al doilea surprinde oamenii.

PlacăRunpod community cloudRunpod secure cloudRecomandat pentru
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/hAcelași, puțin mai rapid
H100 PCIe 80 GB1.99 USD/h2.89 USD/hNivelul cel mai rapid; cifra de 11.7 Hz eager a NVIDIA este pentru un H100 80GB HBM3
L40S 48 GB0.79 USD/h0.99 USD/hDoar inferență, peste pragul de 16 GB
RTX 4090 24 GB0.34 USD/h0.74 USD/hSmolVLA, ACT

Aceste tarife au fost citite de pe pagina de prețuri a Runpod pe 23 august 2026, iar piețele spot sunt volatile. AY-Robots citează o rulare completă în schimb: 3 până la 6 ore la 1.20 până la 2.00 USD pe oră pe nivelul A100 sau H100, aproximativ 4 până la 12 USD pentru o rulare GR00T sau Pi0.5; 2 până la 5 ore la 0.30 până la 0.60 USD pe oră pe nivelul de 24 GB, 1 până la 3 USD pentru SmolVLA sau ACT. O sesiune de inferență depășește o rulare de antrenament la cost doar dacă o opriți, ceea ce este scopul watchdog-ului de inactivitate. Consultați documentația de facturare și pagina de prețuri.

Tabelul de costuri AY-Robots care arată ce GPU necesită fiecare politică, timpul și prețul tipic de rulare, și episoadele înainte ca o politică să devină utilă
Tabelul de costuri de pe /try: ce placă necesită fiecare model și cât costă de obicei o rulare.

Dacă preferați să nu aveți rețeaua în buclă

Inferența la distanță rezolvă o problemă hardware și creează o problemă de latență. Uneori, răspunsul mai bun este o politică care se potrivește hardware-ului pe care îl aveți.

  • ACT, aproximativ 80 M parametri și 20 ms per pas de acțiune, minim 50 episoade, orice placă de 24 GB. Într-o configurație repetitivă cu o singură sarcină, depășește frecvent un model de 3 B la distanță, deoarece nu așteaptă niciodată un pachet.
  • SmolVLA, aproximativ 450 M parametri și 245 ms per pas de acțiune, minim 30 de episoade. Păstrează condiționarea lingvistică care lipsește ACT, iar documentația lerobot o estimează la aproximativ 2 GB la momentul inferenței, față de aproximativ 14 GB pentru PI0.
  • ACT vs GR00T N1.7 pentru jumătatea de precizie a compromisului.

Există și o cale de mijloc: antrenament în cloud, evaluare locală. Fine-tuning necesită placa de 80 GB și nu-i pasă de latență, așa că antrenarea GR00T N1.7 pe un SO-100 la distanță este necontroversată. Doar bucla de evaluare are o constrângere în timp real; documentația de antrenament și matricea model-și-braț acoperă această jumătate.

Încă nu aveți un braț pe birou?

Conduceți un SO-100 real în browser fără înregistrare, comparați cele cinci politici antrenabile cu numerele lor reale de latență, sau închiriați un GPU și antrenați una. Trei moduri de a începe, niciunul neavând nevoie de hardware pe care nu-l dețineți.

Încercați fără hardware

Întrebări frecvente

Pot rula GR00T N1.7 pe un Raspberry Pi dacă GPU-ul este la distanță?

Da, pentru asta este divizarea client-server. Pi-ul rulează driverele lerobot, citește două camere și un bus serial și trimite observații către serverul de politici; nu încarcă niciodată modelul. Restricția se mută de la VRAM la lățimea de bandă de upload: două cadre RGB necomprimate de 640x480 înseamnă 1.843.200 de octeți per apel, iar niciunul dintre stack-uri nu le comprimă.

Câtă latență adaugă de fapt rețeaua?

Timpul de round-trip plus timpul de transfer al observațiilor. Timpul de transfer este de 14.7 Mbit împărțit la lățimea de bandă de upload: aproximativ 147 ms pe o legătură de 100 Mbit/s, 1.47 s pe o legătură de 10 Mbit/s. Ambele se adaugă la timpul de inferență al modelului în sine, pe care AY-Robots îl listează ca 152 ms pentru GR00T N1.7 și 485 ms pentru Pi0.5. Măsurați cu ping și iperf3 împotriva pod-ului, nu a unui server de testare a vitezei.

Este inferența la distanță suficient de bună pentru o sarcină reală?

Pentru sarcini lente, deliberate de tip pick-and-place, da. Pentru orice reactiv, nu. Ghidul de implementare al NVIDIA plasează cerința de pas unic sincron la aproximativ 33 ms cap la cap la 30 FPS și menționează că achiziția, rețeaua, inferența și post-procesarea depășesc în mod obișnuit această valoare fără implicarea internetului.

Ce port folosesc serverele și este sigur să-l deschid?

PolicyServer-ul Isaac-GR00T utilizează implicit portul 5555 peste ZeroMQ și se leagă la 0.0.0.0 în CLI-ul său. lerobot utilizează implicit portul 8080 peste gRPC și se leagă la localhost. Niciunul nu este sigur de expus: clasa GR00T suportă un api_token, dar run_gr00t_server.py nu-l transmite niciodată, iar lerobot serializează datele prin pickle printr-un canal gRPC nesigur, ceea ce reprezintă CVE-2026-25874. Legați-vă la loopback și utilizați un tunel SSH.

Rezolvă actualizarea lerobot CVE-2026-25874?

Nu, începând cu 23 august 2026. Înregistrarea CVE listează LeRobot până la 0.5.1 ca fiind afectat, iar PyPI livrează 0.6.1, dar cererea de pull care ar elimina pickle din pipeline-ul asincron este încă deschisă, iar policy_server.py pe main încă apelează pickle.loads pe datele cererii. Tratați izolarea rețelei ca măsură de atenuare, nu o actualizare de versiune, și presupuneți că și clientul de pe partea robotului este în scop.

Pot folosi clientul asincron al lerobot cu un checkpoint GR00T?

Da. lerobot 0.6.1 listează groot în SUPPORTED_POLICIES alături de act, smolvla, diffusion, tdmpc, vqbet, pi0 și pi05, iar atât so100_follower, cât și so101_follower sunt în SUPPORTED_ROBOTS. Treceți --policy_type=groot și indicați --pretrained_name_or_path către checkpoint-ul dumneavoastră. Obțineți execuție asincronă, pe care exemplul GR00T SO-100 nu o implementează, cu prețul transportului pickle.

Pe scurt

Inferența la distanță pentru o 3 B politică este o problemă de inginerie rezolvată, cu o problemă de fizică nerezolvată atașată. Ingineria constă în două comenzi și un tunel SSH. Fizica este că o observație de 1.8 MB trebuie să ajungă la un GPU dintr-o altă țară și să se întoarcă înainte ca brațul să rămână fără acțiuni. Faceți calculele înainte de a închiria ceva, alegeți o sarcină care tolerează o observație învechită și măriți orizontul de execuție în loc să sperați că legătura se va îmbunătăți.

Dacă nu ați înregistrat încă un set de date, înregistrați primul dumneavoastră set de date și ghidul de configurare SO-100 vin mai întâi, iar formatul setului de date LeRobot explică ce înregistrează înregistratorul. Contextul se găsește în modelele viziune-limbaj-acțiune și lucrarea despre politica de potrivire a fluxului; intrarea în arenă leagă fiecare număr de benchmark de o sursă.

Sources

Sources

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started