
Makina juaj robotike nuk ka GPU. Vendosni serverin e politikave GR00T në një GPU të marrë me qira në re, transmetoni pjesë veprimesh te krahu dhe mësoni saktësisht se çfarë ju kushton rrjeti.
Një Raspberry Pi është i mjaftueshëm për të drejtuar një përmes një baze serike dhe për të marrë korniza nga dy kamera USB. Nuk është e mjaftueshme për të ekzekutuar një model me tre miliardë parametra : README i NVIDIA-s e vendos inferencën e GR00T N1.7 në një GPU me 16 GB ose më shumë VRAM. Për të parë se çfarë bën pika juaj e kontrollit e në krah pa blerë një kartë, vendoseni politikën në një GPU të marrë me qira në cloud, mbajeni ciklin e robotit në makinën me portat USB dhe dërgoni vëzhgimet dhe copëzat e veprimeve përmes rrjetit.
Funksionon, nuk është falas dhe çmimi nuk shpërndahet në mënyrë të barabartë nëpër detyra. Më poshtë: serveri i politikave i NVIDIA-s, staku asinkron i lerobot-it, aritmetika që tregon paraprakisht nëse lidhja juaj ngjitëse është mjaftueshëm e shpejtë dhe rruga e platformës. E gjithë kjo u kontrollua kundrejt degës kryesore të Isaac-GR00T (N1.7 GA) dhe lerobot 0.6.1 më 23 gusht 2026.
Çfarë duhet të dini
- •GR00T N1.7, GR00T N1.5 dhe Pi0.5 janë modele me rreth 3 B parametra. Asnjëra nuk përshtatet në një kontrollues roboti pa një GPU diskrete.
- •Isaac-GR00T dhe lerobot të dy ofrojnë një ndarje klient-server. Ju nuk shkruani transportin.
- •Vëzhgimet dominojnë koston e transmetimit, jo veprimet: dy korniza RGB 640x480 të pakompresuara janë 1,843,200 bajt, rreth 14.7 Mbit për thirrje, dhe asnjëri prej stakëve nuk i kompreson ato.
- •AY-Robots liston 20 deri në 485 ms për hap veprimi sipas modelit. Udhëtimet vajtje-ardhje në internet shtohen mbi këtë.
- •Inferenca në distancë i përshtatet lëvizjeve të ngadalta 'pick-and-place', jo lëvizjeve të shpejta reaktive. Një horizont më i gjatë ekzekutimi blen kohë dhe kushton freskinë e vëzhgimit.
- •Asnjëri server nuk është i sigurt në një IP publike siç shpërndahet, dhe ai i lerobot-it mbart një RCE të pa-patch-uar. Tunelojeni atë.
Pse politika nuk do të përshtatet në makinën e robotit
Dy nga pesë politikat që AY-Robots mund të trajnojë funksionojnë në një kartë pune, tre jo. Kolona e më poshtë është për hap veprimi, dhe ky është numri që konkurron me udhëtimin e rrjetit tuaj vajtje-ardhje.
| Politika | Parametrat | Inferenca për hap veprimi | Niveli i GPU-së për trajnim | Epizodet minimale | Formati i grupit të të dhënave |
|---|---|---|---|---|---|
| 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 |

Lexojeni këtë si një vendim, jo si gjëra të parëndësishme. me 20 ms për hap funksionon në makinën robotike dhe nuk do të mendoni më kurrë për të. me 485 ms ka kaluar një e treta e sekondës para se një paketë të largohet nga ndërtesa juaj. dhe shtojnë anën e saktësisë.
GR00T N1.7, GR00T N1.5 dhe Pi0.5 fillojnë nga një pikë kontrolli e shitësit (nvidia/GR00T-N1.7-3B, nvidia/GR00T-N1.5-3B, lerobot/pi05_base). ACT nuk ekziston derisa ta trajnoni atë në detyrën tuaj, kështu që nuk ka asgjë për të shërbyer në distancë derisa të ketë përfunduar një punë trajnimi. Shih ACT on SO-100.
Dy shtresat klient-server që ekzistojnë tashmë
Isaac-GR00T ofron një server kërkesë-përgjigje ZeroMQ; lerobot ofron një server gRPC të ndërtuar rreth inferencës asinkrone. Të dyja pranojnë një GR00T pikë kontrolli. Lista e politikave të mbështetura nga lerobot në async_inference/constants.py është act, smolvla, diffusion, tdmpc, vqbet, pi0, pi05 dhe groot; lista e robotëve të tij është so100_follower, so101_follower, bi_so_follower dhe omx_follower.
| Isaac-GR00T PolicyServer | lerobot async inference | |
|---|---|---|
| Pikë hyrje | gr00t/eval/run_gr00t_server.py | python -m lerobot.async_inference.policy_server |
| Transporti | ZeroMQ REQ/REP | gRPC, add_insecure_port / insecure_channel |
| Serializimi | msgpack + msgpack_numpy, allow_pickle=False enforced | pickle.dumps / pickle.loads, marked # nosec |
| Porta e paracaktuar | 5555 | 8080 |
| Lidhja e paracaktuar | 0.0.0.0, të gjitha ndërfaqet | localhost |
| Autentifikimi | api_token i mbështetur nga klasa, nuk kalohet nga CLI | asnjë |
| Afati kohor i klientit | 15000 ms (PolicyClient timeout_ms) | 2 s afat kohor i radhës së vëzhgimit |
| Modeli i ekzekutimit | sinkron: blloko, pastaj ekzekuto bllokun | asinkron: ekzekuto ndërsa blloku tjetër llogaritet |
Rreshti i serializimit ka më shumë rëndësi sesa duket. MsgSerializer i GR00T refuzon ngarkesat ndarray të tipit object-dtype në të dy drejtimet, sepse msgpack_numpy përndryshe do t'i kalonte ato te pickle. lerobot përdor pickle në vend të kësaj: policy_server.py thërret pickle.loads mbi të dhënat e kërkesës, robot_client.py përdor pickle për vëzhgimin që dërgon. E mbrojtshme në një LAN të besuar, e pambrojtshme sapo porta të jetë e arritshme nga interneti.
Rruga A: Serveri i politikave GR00T i NVIDIA-s
Kjo është rruga që NVIDIA dokumenton për harduerin SO-100 dhe SO-101, dhe ajo që duhet përdorur nëse pika juaj e kontrollit doli nga examples/finetune.sh me --embodiment-tag NEW_EMBODIMENT. Hapat shtojnë atë që README-ja origjinale lë jashtë: marrjen e portës te roboti pa e ekspozuar atë ndaj të gjithëve të tjerëve.
- 1Instaloni GR00T në kutinë GPU të marrë me qira
Nënmodulet janë të nevojshme, dhe git-lfs duhet të ekzistojë para klonimit ose skedarët parquet në
demo_datado të mbërrijnë si tregues. flash-attn dhe TensorRT vijnë me instalimin e paracaktuar. Kurthi në një imazh të ri pod-i:torchcodec0.8.0 është i vetmi backend video i mbështetur dhe ngarkon vetëm FFmpeg 4 deri në 7. Ubuntu 25.10 dhe 26.04 dërgojnë FFmpeg 8, kështu që GR00T dështon meCould not load libtorchcodec. Instaloni një FFmpeg nën 8 dhe vendosni bibliotekat e tij në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')" - 2Autentifikohuni kundër shtyllës kurrizore të mbrojtur
Çdo pikë kontrolli GR00T N1.7, duke përfshirë edhe fine-tune-in tuaj, ngarkon
nvidia/Cosmos-Reason2-2Btë mbrojtur në përdorimin e parë. Kërkoni akses në faqen e modelit dhe identifikohuni në pod, ose ngarkimi dështon me njëGatedRepoError.bashuv run huggingface-cli login # or: export HF_TOKEN=<your_token> - 3Nisni serverin e politikave
Drejtoni
--model-pathte direktoriumi juaj i pikës së kontrollit; në atë rrugë serveri injoron--modality-config-path, i cili lexohet vetëm në rrugën e riprodhimit. Lëreni mënjanë--model-pathdhe kaloni--dataset-pathplus--execution-horizonnë vend të kësaj për një ReplayPolicy që riprodhon veprimet e regjistruara, mënyra më e lirë për të provuar se lidhja funksionon.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 - 4Tuneloni portën 5555 te makina e robotit
Lidheni me loopback, si më sipër, dhe kaloni portën përmes SSH ose një rrjeti të tipit WireGuard. Kjo siguron enkriptimin dhe autentifikimin që socket-i ZeroMQ nuk e bën, për rreth një milisekondë.
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 - 5Ekzekutoni klientin e robotit pranë servove
Klienti ka nevojë për mjedisin e tij uv: ai dëshiron drejtuesit e robotit të lerobot, jo stack-un e trajnimit.
eval_so100.pyimporton so100_follower, so101_follower dhe koch_follower, prandaj kaloni--robot.typeqë përputhet me krahun tuaj (README-ja origjinale përdor so101_follower). Çelësat e kamerës duhet të përputhen me trajnimin: adaptori lexon saktësishtfrontdhewrist, dhe ndërrimi i tyre i tregon politikës pamjen e gabuar.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 parazgjedhur përdor --host 0.0.0.0, duke lidhur çdo ndërfaqe: në një pod me një IP publike kjo është një pikë fundore e hapur inferencash. Dhe klasa PolicyServer pranon një api_token dhe e vërteton atë për çdo kërkesë, por run_gr00t_server.py nuk e kalon kurrë një të tillë, kështu që serveri CLI është i paautentifikuar pavarësisht se çfarë konfiguroni. Lidhuni me 127.0.0.1 dhe krijoni një tunel. Një ZMQError: Address already in use do të thotë që porti 5555 është i zënë; kaloni --port.
Rruga B: inferenca asinkrone lerobot
lerobot zgjidh një problem tjetër. Në vend që të bllokojë robotin ndërsa modeli mendon, klienti vazhdon të ecë nëpër radhën që tashmë ka ndërsa serveri llogarit bllokun tjetër. Kjo është copëtimi i veprimeve e çuar më tej, stiva asinkrone e prezantuar me SmolVLA. Funksionon edhe me një pikë kontrolli GR00T.
# 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=TrueServeri fillon bosh: ai nuk e di se cilën politikë shërben derisa shtrëngimi i parë i duarve nga klienti t'ia tregojë, gjë që është e përshtatshme në një pod me qira. Dy parametrat që vendosin nëse krahu lëviz pa probleme janë actions_per_chunk dhe chunk_size_threshold (dokumentacioni i lerobot e quan të dytin g, pas punimit SmolVLA), dhe vlerat e dokumentuara dhe vlerat e dërguara nuk përputhen.
| Parametri | Vlera në kodin lerobot 0.6.1 | Çfarë bën | Shënim |
|---|---|---|---|
| actions_per_chunk | pa vlerë të paracaktuar, e kërkuar | Veprime të kthyera për thirrje | Tabela e dokumentacionit liston 50; fusha e dataclass nuk ka vlerë të paracaktuar, kështu që CLI kërkon një vlerë |
| chunk_size_threshold | 0.5 | Raporti i mbushjes së radhës në ose nën të cilin klienti dërgon një vëzhgim të ri | Tabela e dokumentacionit thotë 0.7; kodi dhe shembulli i vetë dokumentacionit thonë 0.5 |
| fps | 30 | Shkalla e kontrollit të klientit, vendos environment_dt = 1/fps | Uleni nëse radha vazhdon të zbrazet |
| inference_latency | 1/30 s (33.3 ms) | Vonesa e synuar e inferencës në server | Një objektiv, jo një matje |
| obs_queue_timeout | 2 s | Sa kohë pret serveri në radhën e vëzhgimeve | Një lidhje e ngadaltë shfaqet këtu së pari |
| aggregate_fn_name | weighted_average | Si bashkohen rajonet e mbivendosura të copave | 0.3 e vjetër + 0.7 e re; gjithashtu dërgohen latest_only, average dhe conservative. Regjistri është AGGREGATE_FUNCTIONS në configs.py, jo robot_client.py siç pretendon dokumentacioni |
CVE-2026-25874 është ekzekutim i kodit në distancë i pa-autentifikuar në pipeline-in e inferencës asinkrone të lerobot: pickle.loads() mbi të dhëna të marra përmes një kanali gRPC të pa-autentifikuar pa TLS, i arritshëm përmes thirrjeve SendPolicyInstructions, SendObservations dhe GetActions. CWE-502, pikë bazë CVSS 3.1 9.8 nga NVD, pikë bazë 4.0 9.3 nga CNA caktuese. Regjistri liston LeRobot through 0.5.1 si të prekur dhe emëron si serverin e politikave ashtu edhe klientin robot, kështu që makina pranë krahut tuaj është në fushëveprim. Përmirësimi nuk është zgjidhja: regjistri citon çështjen upstream 3047 dhe patch-in, PR 3048, i cili ndërron pickle me safetensors plus JSON, dhe më 23 gusht 2026 të dyja janë ende të hapura. policy_server.py në main ende thërret pickle.loads mbi të dhënat e kërkesës ndërsa serve() lidhet me add_insecure_port. Lidhuni me loopback dhe mos bëni kurrë port-forward 8080.
Aritmetika që vendos nëse lidhja juaj është mjaft e shpejtë
Njerëzit e anashkalojnë këtë dhe më pas kalojnë një ditë me . Duhen dy minuta dhe është pothuajse gjithmonë vendimtare.
Fjalori i vëzhgimit me komente në NVIDIA's eval_so100.py thotë se çfarë kalon në rrjet: dy matrica me formë (480, 640, 3) në uint8, gjashtë numra me presje lëvizëse për nyjet, një varg gjuhe. Kjo është 921,600 bajt për kornizë, 1,843,200 bajt për dy kamera, rreth 14.7 Mbit, dhe asnjëra prej tyre nuk e kompreson me JPEG. Blloku që kthehet është disa dhjetëra hapa me 6 numra me presje lëvizëse. Ngarkimi juaj vendos gjithçka, jo shkarkimi juaj.
| Gjerësia e brezit të ngarkimit | Koha për të dërguar një vëzhgim (14.7 Mbit) | Vendimi për një krah 30 FPS |
|---|---|---|
| 10 Mbit/s, ngarkim tipik shtëpiak | ~1.47 s | E papërdorshme. Krahu ndalon mes çdo blloku. |
| 25 Mbit/s | ~0.59 s | Vetëm marrje-vendosje e ngadaltë, me një horizont të gjatë ekzekutimi. |
| 50 Mbit/s | ~0.29 s | E punueshme për detyra të qëllimshme. |
| 100 Mbit/s | ~0.15 s | Mirë për marrje-vendosje, e dukshme në lëvizje të shpejtë. |
| 1 Gbit/s fibër ose qendër të dhënash | ~0.015 s | Modeli bëhet pengesa në vend të kësaj. |
Buxheti ku duhet të përshtateni
Klienti GR00T SO-100 është sinkron: ai thërret policy.get_action(obs), ekzekuton hapat e parë action_horizon të bllokut me 30 FPS, pastaj thërret përsëri. Madhësia e bllokut dhe horizonti janë numra të ndryshëm: udhëzuesi i vendosjes së NVIDIA-s rekomandon një madhësi blloku veprimi prej 16, të paktën 32 kur kombinohet me chunking në kohë reale, ndërsa eval_so100.py ofron një horizont ekzekutimi prej 8. Tetë hapa me 30 FPS janë 267 ms lëvizje për thirrje, dhe gjithçka tjetër duhet të përshtatet brenda kësaj.
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 staleRritja e horizontit është zgjidhja e drejtpërdrejtë dhe jo falas: krahu vepron mbi një vëzhgim që tani është i vjetër. Zgjidhja parimore është chunking në kohë reale, e cila llogarit bllokun tjetër ndërsa ai aktual po ekzekutohet, ngrin veprimet e garantuara për t'u ekzekutuar dhe pikturon pjesën tjetër; dokumenti i RTC-së e raporton atë si të qëndrueshme ndaj vonesës së inferencës pa ritrajnim. Kontrolloni së pari se ku qëndron kjo. NVIDIA e shënon RTC-në si eksperimentale, një primitiv modeli i nivelit të ulët i arritshëm përmes action_head.get_action(..., options={"rtc_overlap_steps": ..., "rtc_frozen_steps": ...}), i pa lidhur me Gr00tPolicy ose rrugën server-klient, ku options është i papërdorur, pa teste dhe pa shembull. Përmes një serveri politikash ju merrni ekzekutim asinkron, jo RTC.
NVIDIA teston GR00T N1.7 nga fillimi në fund me 4 hapa denoising me një kamerë. Në një H100 80GB HBM3: 85.8 ms (11.7 Hz) në PyTorch eager, 48.6 ms (20.6 Hz) me torch.compile, 27.9 ms (35.9 Hz) me pipeline-in e plotë TensorRT. Një L40 në modalitetin eager merr 128.3 ms (7.8 Hz). NVIDIA e quan 10 Hz minimumin e rekomanduar për manipulime tipike, dhe nën 10 Hz të përshtatshme vetëm për detyra të ngadalta, jo-reaktive. Këto janë riplanifikimi rates: një politikë 10 Hz mund të drejtojë ende një krah 30 FPS përmes chunking-ut të veprimeve. Një kamerë e dytë ju lëviz në drejtimin e gabuar.
Mateni para se t'i besoni
Çdo numër më lart është një parashikim. Katër komanda e kthejnë atë në një matje, që ia vlen të ekzekutohet para se të angazhohet një orë pod-i për një detyrë që nuk do të funksiononte kurrë.
- 1Merrni udhëtimin e papërpunuar vajtje-ardhje
Kundër pod-it, jo një CDN. Vëzhgoni devijimin po aq afër sa mesataren: dridhja e bën një krah të ngecë, jo vonesa mesatare.
bashping -c 50 <pod-host> # the mdev column is the number that predicts stutter - 2Matni lidhjen ngarkuese që keni, jo atë për të cilën paguani
Ngarkimi rezidencial është zakonisht një fraksion i shkarkimit, dhe është numri në tabelën e gjerësisë së brezit më lart.
bash# on the pod iperf3 -s # on the robot machine, -R omitted so this measures upload iperf3 -c <pod-host> -t 30 - 3Lexoni regjistrin e vonesës së vetë klientit
Klienti i robotit lerobot regjistron vonesën server-klient dhe kohën e deserializimit për çdo bllok. Në rrugën B nuk keni nevojë për mjete të jashtme.
textReceived action chunk for step #240 | Latest action: #232 | Incoming actions: 240:289 | Network latency (server->client): 187.44ms | Deserialization time: 3.10ms - 4Vëzhgoni zbrazjen e radhës së veprimeve
Kaloni
--debug_visualize_queue_size=Truedhe klienti vizaton madhësinë e radhës gjatë ekzekutimit. Nëse vazhdimisht arrin zero, jeni jashtë buxhetit: ulni fps, rrisni actions_per_chunk, ose rrisni chunk_size_threshold në mënyrë që vëzhgimet të dalin më shpesh.bashpython -m lerobot.async_inference.robot_client \ ... \ --debug_visualize_queue_size=True
Për çfarë është e mirë në të vërtetë inferenca në distancë
- Ju mund të vlerësoni një politikë me 3 B parametra në pajisje reale pa zotëruar një kartë që kushton më shumë se krahu.
- GPU-ja merret me qira për orë, kështu që një pikë kontrolli e dështuar kushton disa dollarë.
- Ana e robotit mbetet e vogël: drejtuesit e lerobot, dy kamera, një port serial, dhe ju ndërroni pikat e kontrollit pa e prekur atë.
- Vëzhgimet e pakompresuara dominojnë koston e transmetimit, dhe ngarkimi rezidencial është kufizimi kryesor.
- Jitter dëmton më shumë se vonesa: një lidhje me mesatare 40 ms me kulme deri në 300 ms ngec, ndërsa një lidhje e qëndrueshme 120 ms nuk ngec.
- Detyrat reaktive të shpejta nuk i mbijetojnë udhëtimit vajtje-ardhje në asnjë horizont.
- Të dy serverat dërgohen të paautentifikuar në formë CLI, kështu që puna e tunelimit është e juaja.
- Një lidhje e ndërprerë në mes të bllokut e lë krahun duke mbajtur një veprim të vjetër. Shtoni rojen tuaj në anën e robotit.
| Detyra | Funksionon në internetin publik? | Pse |
|---|---|---|
| Zgjidhni një objekt statik, vendoseni në një kosh | Po | Asgjë nuk lëviz midis vëzhgimit dhe veprimit. |
| Grumbulloni blloqe me një ritëm të qëllimshëm | Po, në action_horizon 16 ose më shumë | Gabimet grumbullohen mjaft ngadalë për t'u rregulluar në bllokun tjetër. |
| Hapni një sirtar, futni një objekt | Zakonisht | I pasur me kontakt por i ngadalshëm. Kujdes nga ndalesat dhe nisjet në kontakt. |
| Ndiqni një objekt në lëvizje | Jo | Politika vepron mbi një vëzhgim të vjetër 300 ms deri në 1 s. |
| Kapni, balanconi, ose rikuperoni nga një rrëshqitje | Jo | Dritarja e korrigjimit është më e shkurtër se një udhëtim vajtje-ardhje. |
| Një lak i mbyllur sinkron 30 Hz | Jo | Buxheti është 33 ms nga fillimi në fund. Edhe një LAN ka vështirësi. |
Nëse një ekzekutim në distancë ngec në të njëjtën pikë në çdo episod, rrjeti ndoshta nuk është shkaku. Një politikë që heziton në të njëjtin kënd të kyçit çdo herë është zakonisht një problem i të dhënave; shihni faqet e mënyrave të dështimit, në veçanti një politikë që funksionon vetëm në një konfigurim dhe humbja bie por politika nuk bën asgjë.
Ta bësh vetë kundrejt ta bësh në AY-Robots
- Merrni me qira një GPU në një treg spot dhe prisni për VRAM të mjaftueshme me një çmim që ju pëlqen.
- Instaloni CUDA, uv, një ffmpeg torchcodec që pranon, dhe stack-un GR00T me submodule.
- Kërkoni qasje në backbone-in e mbyllur `nvidia/Cosmos-Reason2-2B` dhe vendosni një token në pod.
- Tërhiqni checkpoint-in tuaj në pod.
- Nisni serverin në loopback, pastaj ndërtoni një tunel SSH nga makina e robotit.
- Instaloni një mjedis të dytë në makinën e robotit për klientin dhe drejtuesit.
- Përputhni çelësat e kamerës, emrat e nyjeve dhe udhëzimin gjuhësor me atë që pa checkpoint-i.
- Monitoroni pod-in. Një A100 i harruar që funksionon gjatë natës kushton më shumë se eksperimenti.
Fatura e GPU-së nuk ndalon kur ndalon roboti. Shumica e parave të humbura në inferencën në distancë shkojnë në një server që mbeti aktiv pasi të gjithë u larguan. Vendosni një alarm, ose automatizoni çmontimin.
- Zgjidhni politikën e trajnuar që dëshironi të ekzekutoni.
- `/api/inference/pod` auto-furnizon një pod GPU në cloud që shërben atë politikë.
- Klienti lokal i robotit komunikon me atë pikë fundore. Checkpoint-et bazë janë të vetë shitësve: `nvidia/GR00T-N1.7-3B`, `nvidia/GR00T-N1.5-3B`, `lerobot/pi05_base`. ACT nuk ka asnjë.
- Pod-et mbajnë një watchdog të papunë dhe shkatërrohen pas një periudhe pasiviteti, kështu që asgjë nuk vazhdon të faturohet në heshtje.
- Të njëjtat operacione janë të disponueshme nga një terminal dhe për agjentët e AI, kështu që cikli mund të skriptohet.
Auto-furnizimi heq punën e konfigurimit dhe faturën e pod-it të harruar, jo fizikën. Inferenca ende duhet të jetë pranë servove për detyra të shpejta: cikli i kontrollit është 20 deri në 485 ms për hap veprimi në varësi të modelit, dhe udhëtimet vajtje-ardhje në internetin publik mbi këtë e kthejnë një politikë funksionale në një politikë hezituese.
- Udhëzuesi i klientit për anën lokale të lidhjes
- Ekzekutoni politikën tuaj të parë për udhëzuesin hap pas hapi
- CLI dhe serveri MCP për versionin e skriptuar
- Dokumentet e sigurisë

Sa kushton një sesion inference në distancë
Dy numra kanë rëndësi: tarifa orare e kartës, dhe sa kohë e lini të funksionojë. E para është e publikuar; e dyta i habit njerëzit.
| Kartë | Runpod community cloud | Runpod secure cloud | E arsyeshme për |
|---|---|---|---|
| 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 | E njëjta, pak më e shpejtë |
| H100 PCIe 80 GB | 1.99 USD/h | 2.89 USD/h | Niveli më i shpejtë; shifra e dëshiruar 11.7 Hz e NVIDIA-s është për një H100 80GB HBM3 |
| L40S 48 GB | 0.79 USD/h | 0.99 USD/h | Vetëm inferencë, mbi kufirin 16 GB |
| RTX 4090 24 GB | 0.34 USD/h | 0.74 USD/h | SmolVLA, ACT |
Këto tarifa u lexuan nga faqja e çmimeve të Runpod më 23 gusht 2026, dhe tregjet spot lëvizin. AY-Robots citon një ekzekutim të plotë në vend: 3 deri në 6 orë me 1.20 deri në 2.00 USD për orë në nivelin A100 ose H100, rreth 4 deri në 12 USD për një ekzekutim GR00T ose Pi0.5; 2 deri në 5 orë me 0.30 deri në 0.60 USD për orë në nivelin 24 GB, 1 deri në 3 USD për SmolVLA ose ACT. Një sesion inferencë e tejkalon një ekzekutim trajnimi në kosto vetëm nëse e ndaloni, për këtë shërben mbikëqyrësi i pasivitetit. Shihni dokumentet e faturimit dhe faqen e çmimeve.

Nëse preferoni të mos keni rrjetin në qark
Inferenca në distancë zgjidh një problem harduerik dhe krijon një problem vonese. Ndonjëherë përgjigja më e mirë është një politikë që i përshtatet harduerit që keni.
- ACT, afërsisht 80 M parametra dhe 20 ms për hap veprimi, minimumi 50 episode, çdo kartë 24 GB. Në një konfigurim të përsëritur me një detyrë, shpesh tejkalon një model 3 B në distancë, sepse nuk pret kurrë për një paketë.
- SmolVLA, afërsisht 450 M parametra dhe 245 ms për hap veprimi, minimumi 30 episode. Ai ruan kushtëzimin gjuhësor që i mungon ACT, dhe dokumentet e lerobot e vendosin atë në rreth 2 GB në kohën e inferencës kundrejt afërsisht 14 GB për PI0.
- ACT vs GR00T N1.7 për gjysmën e saktësisë së shkëmbimit.
Ekziston edhe një rrugë e mesme: stërvituni në cloud, vlerësoni lokalisht. ka nevojë për kartën 80 GB dhe nuk i intereson vonesa, kështu që në distancë është e pakontestueshme. Vetëm cikli i vlerësimit ka një kufizim në kohë reale; dhe mbulojnë atë gjysmë.
Akoma pa krah në tavolinë?
Drejtoni një SO-100 të vërtetë në shfletues pa regjistrim, krahasoni pesë politikat e stërvitshme me numrat e tyre reale të vonesës, ose merrni me qira një GPU dhe stërvitni një. Tre mënyra për të filluar, asnjëra nuk kërkon harduer që nuk e zotëroni.
Provojeni pa harduerPyetje të shpeshta
A mund të ekzekutoj GR00T N1.7 në një Raspberry Pi nëse GPU është në distancë?▾
Po, kjo është arsyeja e ndarjes klient-server. Pi ekzekuton drajverat e lerobot, lexon dy kamera dhe një autobus serial, dhe dërgon vëzhgimet në serverin e politikës; ai nuk ngarkon kurrë modelin. Kufizimi kalon nga VRAM në gjerësinë e brezit të ngarkimit: dy korniza RGB 640x480 të pakompresuara janë 1,843,200 bajt për thirrje, dhe asnjëra prej tyre nuk i kompreson.
Sa vonesë shton realisht rrjeti?▾
Koha e udhëtimit vajtje-ardhje plus koha e transferimit të vëzhgimit. Koha e transferimit është 14.7 Mbit e ndarë me gjerësinë e brezit tuaj të ngarkimit: afërsisht 147 ms në një lidhje 100 Mbit/s, 1.47 s në një lidhje 10 Mbit/s. Të dyja shtohen mbi kohën e inferencës së vetë modelit, të cilën AY-Robots e liston si 152 ms për GR00T N1.7 dhe 485 ms për Pi0.5. Mateni me ping dhe iperf3 kundër pod-it, jo një serveri të testit të shpejtësisë.
A është inferenca në distancë mjaftueshëm e mirë për një detyrë reale?▾
Për marrje dhe vendosje të ngadaltë, të qëllimshme, po. Për çdo gjë reaktive, jo. Udhëzuesi i vendosjes i NVIDIA-s e vendos kërkesën sinkrone me një hap në afërsisht 33 ms nga fillimi në fund në 30 FPS, dhe thekson se kapja, rrjeti, inferenca dhe post-përpunimi e tejkalojnë rregullisht këtë pa përfshirë internetin.
Cilin port përdorin serverat dhe a është e sigurt ta hapësh atë?▾
PolicyServer i Isaac-GR00T përdor portin 5555 mbi ZeroMQ si parazgjedhje dhe lidh 0.0.0.0 në CLI-në e tij. lerobot përdor portin 8080 mbi gRPC si parazgjedhje dhe lidh localhost. Asnjëra nuk është e sigurt për t'u ekspozuar: klasa GR00T mbështet një api_token por run_gr00t_server.py nuk e kalon kurrë një të tillë, dhe lerobot 'pickle'-on të dhënat mbi një kanal gRPC të pasigurt, i cili është CVE-2026-25874. Lidhuni me loopback dhe përdorni një tunel SSH.
A e rregullon përmirësimi i lerobot CVE-2026-25874?▾
Jo, që nga 23 gushti 2026. Regjistrimi i CVE liston LeRobot deri në 0.5.1 si të prekur dhe PyPI dërgon 0.6.1, por kërkesa për të hequr 'pickle' nga tubacioni asinkron është ende e hapur, dhe policy_server.py në main ende thërret pickle.loads mbi të dhënat e kërkesës. Trajtojeni izolimin e rrjetit si zbutje, jo një rritje versioni, dhe supozoni se klienti në anën e robotit është gjithashtu në fushëveprim.
A mund të përdor klientin asinkron të lerobot me një pikë kontrolli GR00T?▾
Po. lerobot 0.6.1 liston groot në SUPPORTED_POLICIES së bashku me act, smolvla, diffusion, tdmpc, vqbet, pi0 dhe pi05, dhe të dy so100_follower dhe so101_follower janë në SUPPORTED_ROBOTS. Kaloni --policy_type=groot dhe drejtoni --pretrained_name_or_path te pika juaj e kontrollit. Ju merrni ekzekutim asinkron, të cilin shembulli GR00T SO-100 nuk e zbaton, me koston e transportit 'pickle'.
Versioni i shkurtër
Inferenca në distancë për një 3 B politikë është një problem inxhinierik i zgjidhur me një problem fizik të pazgjidhur të bashkangjitur. Inxhinieria janë dy komanda dhe një tunel SSH. Fizika është se një vëzhgim prej 1.8 MB duhet të arrijë një GPU në një vend tjetër dhe të kthehet para se krahu të mbarojë veprimet. Bëni llogaritjet para se të merrni me qira diçka, zgjidhni një detyrë që toleron një vëzhgim të vjetër, dhe rrisni horizontin e ekzekutimit në vend që të shpresoni se lidhja do të përmirësohet.
Nëse nuk keni regjistruar ende një grup të dhënash, regjistroni grupin tuaj të parë të të dhënave dhe udhëzuesi i konfigurimit të SO-100 vijnë të parët, dhe hyrja e formatit të grupit të të dhënave LeRobot shpjegon se çfarë shkruan regjistruesi. Sfondi është në modelet vizion-gjuhë-veprim dhe puna e politikës së përputhjes së rrjedhës; hyrja në arenë lidh çdo numër referencë me një burim.
Sources
- NVIDIA Isaac-GR00T: depo N1.7 dhe README (pragu i inferencës 16 GB, instalimi, shtylla kurrizore e mbyllur Cosmos-Reason2-2B, kufizimi FFmpeg)
- run_gr00t_server.py: CLI i serverit të politikave GR00T, parazgjedhjet e ServerConfig (host 0.0.0.0, port 5555) dhe shtegu i ReplayPolicy
- server_client.py: PolicyServer dhe PolicyClient, kufiri allow_pickle=False i MsgSerializer, api_token, timeout_ms
- eval_so100.py: klienti i politikave SO-100, parazgjedhjet e EvalConfig dhe cikli i kontrollit sinkron
- Isaac-GR00T SO100/SO101 shembull: konvertimi i grupit të të dhënave, rregullimi i imët dhe komandat e vlerësimit me qark të mbyllur
- Isaac-GR00T Real-World Deployment Guide: buxheti sinkron 33 ms, stop-and-go, madhësia e copës së veprimit, statusi i RTC
- Isaac-GR00T Hardware Recommendation: frekuenca e inferencës për GPU dhe minimumi 10 Hz
- Isaac-GR00T Deployment and Inference Guide: rezultatet e referencës së vonesës për komponent
- LeRobot: Udhëzues për Inferencën Asinkrone (PolicyServer, RobotClient, tabela e dokumentuar e parametrave)
- lerobot async_inference/configs.py: parazgjedhjet e PolicyServerConfig dhe RobotClientConfig, regjistri AGGREGATE_FUNCTIONS
- lerobot async_inference/policy_server.py: pickle.loads në të dhënat e kërkesës, add_insecure_port, emrat e thirrjeve gRPC
- lerobot robot_client.py: gRPC transport, pickle serialization, regjistrimi i vonesës
- CVE-2026-25874: LeRobot ekzekutimi i kodit në distancë me deserializim të pasigurt përmes gRPC, i prekur deri në 0.5.1
- Black, Galliker dhe Levine, Ekzekutimi në Kohë Reale i Politikave të Rrjedhës me Ndarje Veprimesh (ndarje në kohë reale)
- Runpod GPU pricing: tarifat orare të cloud-it komunitar dhe të sigurt për A100, H100, L40S dhe 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