Stránka AY-Robots try: tři způsoby, jak začít bez vlastnictví robota, včetně pronájmu GPU pro inferenci politik
GR00T N1.7Vzdálená inferenceCloud GPULeRobotSO-100Latence

Spusťte GR00T inferenci bez lokální GPU

AY-Robots ResearchAugust 23, 202619 min čtení

Váš robotický stroj nemá GPU. Umístěte GR00T policy server na pronajatou cloudovou GPU, streamujte akční bloky do ramene a zjistěte přesně, co vás síť stojí.

Raspberry Pi stačí k řízení přes sériovou sběrnici a stahování snímků ze dvou USB kamer. Nestačí však k provozu tří miliardového parametrového : README společnosti NVIDIA uvádí inferenci GR00T N1.7 na jedné GPU s 16 GB nebo více VRAM. Chcete-li vidět, co váš jemně vyladěný checkpoint dělá na rameni bez nákupu karty, umístěte politiku na pronajatou cloudovou GPU, udržujte robotickou smyčku na stroji s USB porty a posílejte pozorování a akční bloky přes síť.

Funguje to, není to zdarma a cena není rovnoměrně rozložena mezi úkoly. Níže: vlastní server politik NVIDIA, asynchronní zásobník lerobot, aritmetika, která předem určí, zda je váš uplink dostatečně rychlý, a platformní cesta. Vše ověřeno proti hlavní větvi Isaac-GR00T (N1.7 GA) a lerobot 0.6.1 k 23. srpnu 2026.

Co potřebujete vědět

  • GR00T N1.7, GR00T N1.5 a Pi0.5 jsou modely s přibližně 3 miliardami parametrů. Žádný se nevejde na řídicí jednotku robota bez diskrétní GPU.
  • Isaac-GR00T a lerobot oba dodávají rozdělení klient-server. Transport nepíšete vy.
  • Pozorování dominují nákladům na přenos, nikoli akce: dva nekomprimované 640x480 RGB snímky jsou 1,843,200 bajtů, asi 14.7 Mbit na volání, a ani jeden zásobník je nekomprimuje.
  • AY-Robots uvádí 20 až 485 ms na akční krok podle modelu. K tomu se připočítávají internetové odezvy.
  • Vzdálená inference se hodí pro pomalé úkoly typu pick-and-place, nikoli pro rychlý reaktivní pohyb. Delší horizont provádění kupuje čas a stojí svěžest pozorování.
  • Žádný server není bezpečný na veřejné IP adrese v dodané podobě a lerobot obsahuje neopravenou RCE. Tunelujte jej.

Proč se politika nevejde na stroj robota

Dvě z pěti politik, které AY-Robots dokáže trénovat, běží na kartě pracovní stanice, tři nikoli. Sloupec níže je na jeden akční krok, a to je číslo, které konkuruje vaší síťové odezvě.

PolitikaParametryInference na akční krokÚroveň GPU pro tréninkMinimální epizodyFormát datové sady
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
Stránka politik AY-Robots porovnávající pět trénovatelných politik podle parametrů, úrovně GPU, latence inference a minimálního počtu epizod
Stejných pět řádků na /policies. Sloupec latence rozhoduje, zda politika přežije síťový skok.

Čtěte to jako rozhodnutí, ne jako zajímavost. s 20 ms na krok běží na robotickém stroji a už na to nikdy nemusíte myslet. s 485 ms strávila třetinu sekundy, než paket opustí vaši budovu. Porovnání a přidávají stranu přesnosti.

ACT nemá základní model

GR00T N1.7, GR00T N1.5 a Pi0.5 začínají z kontrolního bodu dodavatele (nvidia/GR00T-N1.7-3B, nvidia/GR00T-N1.5-3B, lerobot/pi05_base). ACT neexistuje, dokud jej nevytrénujete na svém vlastním úkolu, takže není nic, co by se dalo vzdáleně obsluhovat, dokud neproběhne tréninková úloha. Viz ACT on SO-100.

Dva již existující klient-server zásobníky

Isaac-GR00T dodává ZeroMQ request-reply server; lerobot dodává gRPC server postavený na asynchronní inferenci. Oba přijímají GR00T kontrolní bod. Seznam podporovaných politik lerobot v async_inference/constants.py je act, smolvla, diffusion, tdmpc, vqbet, pi0, pi05 a groot; jeho seznam robotů je so100_follower, so101_follower, bi_so_follower a omx_follower.

Isaac-GR00T PolicyServerlerobot asynchronní inference
Vstupní bodgr00t/eval/run_gr00t_server.pypython -m lerobot.async_inference.policy_server
TransportZeroMQ REQ/REPgRPC, add_insecure_port / insecure_channel
Serializacemsgpack + msgpack_numpy, allow_pickle=False enforcedpickle.dumps / pickle.2 s časový limit fronty pozorování
Model prováděnísynchronní: blokovat, poté provést kusasynchronní: provádět, zatímco se počítá další kus

Řádek serializace je důležitější, než se zdá. GR00T's MsgSerializer odmítá payloady ndarray typu object-dtype v obou směrech, protože msgpack_numpy by je jinak předal pickle. lerobot místo toho používá pickle: policy_server.py volá pickle.loads na data požadavku, robot_client.py serializuje pozorování, které odesílá. Obhajitelné v důvěryhodné LAN, neobhajitelné, jakmile je port dosažitelný z internetu.

Trasa A: Vlastní GR00T policy server od NVIDIA

Toto je cesta, kterou NVIDIA dokumentuje pro hardware SO-100 a SO-101, a ta, kterou použijete, pokud váš checkpoint vzešel z examples/finetune.sh s --embodiment-tag NEW_EMBODIMENT. Tyto kroky doplňují to, co původní README vynechává: jak dostat port k robotovi, aniž by byl vystaven všem ostatním.

  1. 1
    Nainstalujte GR00T na pronajatý GPU box

    Submoduly jsou vyžadovány a git-lfs musí existovat před klonováním, jinak soubory parquet v demo_data dorazí jako ukazatele. flash-attn a TensorRT jsou součástí výchozí instalace. Úskalí na čerstvém obrazu podu: torchcodec 0.8.0 je jediný podporovaný video backend a načítá pouze FFmpeg 4 až 7. Ubuntu 25.10 a 26.04 dodávají FFmpeg 8, takže GR00T selže s Could not load libtorchcodec. Nainstalujte FFmpeg nižší než 8 a umístěte jeho knihovny do 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
    Ověření proti gated backbone

    Každý checkpoint GR00T N1.7, včetně vašeho vlastního fine-tune, načítá při prvním použití gated nvidia/Cosmos-Reason2-2B. Požádejte o přístup na stránce modelu a přihlaste se na podu, jinak načítání selže s GatedRepoError.

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

    Nasměrujte --model-path na váš adresář checkpointu; na této cestě server ignoruje --modality-config-path, který se čte pouze na cestě pro přehrávání. Vyřaďte --model-path a místo toho předejte --dataset-path plus --execution-horizon pro ReplayPolicy, která přehrává zaznamenané akce, což je nejlevnější způsob, jak ověřit funkčnost zapojení.

    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
    Tunelujte port 5555 k robotickému stroji

    Vytvořte vazbu na loopback, jak je uvedeno výše, a přeneste port přes SSH nebo síť ve stylu WireGuard. To zajišťuje šifrování a autentizaci, které ZeroMQ socket neposkytuje, a to za přibližně milisekundu.

    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
    Spusťte klienta robota vedle serv

    Klient potřebuje své vlastní uv prostředí: chce ovladače robotů lerobot, nikoli tréninkový stack. eval_so100.py importuje so100_follower, so101_follower a koch_follower, takže předejte --robot.type odpovídající vaší paži (původní README používá so101_follower). Klíče kamer musí odpovídat tréninku: adaptér čte přesně front a wrist, a jejich prohození ukáže politice špatný pohled.

    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"
Dvě výchozí nastavení, která vás potrápí

run_gr00t_server.py ve výchozím nastavení používá --host 0.0.0.0, čímž váže každé rozhraní: na podu s veřejnou IP adresou je to otevřený inferenční endpoint. Třída PolicyServer přijímá api_token a ověřuje jej pro každý požadavek, ale run_gr00t_server.py jej nikdy nepředává, takže CLI server je neověřený, ať už konfigurujete cokoli. Vážte na 127.0.0.1 a tunelujte. Chyba ZMQError: Address already in use znamená, že port 5555 je obsazen; předejte --port.

Trasa B: asynchronní inference lerobot

lerobot řeší jiný problém. Namísto blokování robota, zatímco model přemýšlí, klient pokračuje v procházení fronty, kterou již má, zatímco server počítá další chunk. Toto je chunkování akcí posunuté dál, asynchronní stack představený se SmolVLA. Funguje to i s GR00T checkpointem.

bash
# GPU machine
pip install -e ".[async]"
python -m lerobot.async_inference.policy_server \
     --host=127.0.0.1 \
     --port=8080

# robot machine, after tunnelling 8080
python -m lerobot.async_inference.robot_client \
    --server_address=127.0.0.1:8080 \
    --robot.type=so100_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=follower_so100 \
    --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30}}" \
    --task="pick up the red block and put it in the bin" \
    --policy_type=groot \
    --pretrained_name_or_path=<user>/my_groot_finetune \
    --policy_device=cuda \
    --actions_per_chunk=50 \
    --chunk_size_threshold=0.5 \
    --debug_visualize_queue_size=True
Policy server na GPU, robotický klient na stroji s USB porty

Server se spouští prázdný: neví, jakou politiku obsluhuje, dokud mu to neřekne první handshake klienta, což je výhodné na pronajatém podu. Dva parametry, které rozhodují, zda se rameno pohybuje plynule, jsou actions_per_chunk a chunk_size_threshold (dokumentace lerobot nazývá druhý parametr g, podle článku SmolVLA), a dokumentované hodnoty se neshodují s dodanými hodnotami.

ParametrHodnota v kódu lerobot 0.6.1Co děláPoznámka
actions_per_chunkbez výchozí hodnoty, povinnéAkce vrácené na jedno voláníTabulka v dokumentaci uvádí 50; pole dataclass nemá výchozí hodnotu, takže CLI vyžaduje hodnotu
chunk_size_threshold0.5Poměr zaplnění fronty, při kterém nebo pod kterým klient odesílá novou observaciTabulka v dokumentaci uvádí 0.7; kód a vlastní příklad v dokumentaci uvádí 0.5
fps30Řídicí frekvence klienta, nastavuje environment_dt = 1/fpsSnižte ji, pokud se fronta neustále vyprazdňuje
inference_latency1/30 s (33.3 ms)Cílová latence inference na serveruCíl, nikoli měření
obs_queue_timeout2 sJak dlouho server čeká na frontu observacíPomalý uplink se projeví nejprve zde
aggregate_fn_nameweighted_averageJak se prolínají překrývající se oblasti chunků0.3 staré + 0.7 nové; dodávají se také latest_only, average a conservative. Registr je AGGREGATE_FUNCTIONS v configs.py, nikoli robot_client.py, jak tvrdí dokumentace
Server politik lerobot má neopravenou RCE

CVE-2026-25874 je neautentizované vzdálené spuštění kódu v asynchronní inferenční pipeline lerobot: pickle.loads() na datech přijatých přes neautentizovaný gRPC kanál bez TLS, dosažitelné prostřednictvím volání SendPolicyInstructions, SendObservations a GetActions. CWE-502, základní skóre CVSS 3.1 9.8 z NVD, základní skóre 4.0 9.3 od přidělující CNA. Záznam uvádí LeRobot až do verze 0.5.1 jako postižený a jmenuje jak server politik, tak klienta robota, takže stroj vedle vašeho ramene je v rozsahu. Upgrade není řešením: záznam cituje upstream problém 3047 a patch, PR 3048, který vyměňuje pickle za safetensors plus JSON, a k 23. srpnu 2026 jsou oba stále otevřené. policy_server.py na main stále volá pickle.loads na data požadavku, zatímco serve() se váže s add_insecure_port. Vázejte se na loopback a nikdy nepřesměrovávejte port 8080.

Aritmetika, která rozhoduje, zda je vaše připojení dostatečně rychlé

Lidé to přeskočí a pak stráví den s . Trvá to dvě minuty a téměř vždy je to rozhodující.

Komentovaný slovník pozorování v NVIDIA eval_so100.py říká, co jde po drátu: dvě pole tvaru (480, 640, 3) v uint8, šest kloubových floatů, jazykový řetězec. To je 921 600 bajtů na snímek, 1 843 200 bajtů pro dvě kamery, asi 14.7 Mbit, a ani jeden stack to nekomprimuje do JPEG. Vrácený chunk je několik desítek kroků po 6 floatech. Váš upload rozhoduje o všem, ne váš download.

Šířka pásma pro uploadČas pro odeslání jednoho pozorování (14.7 Mbit)Verdikt pro rameno s 30 FPS
10 Mbit/s, typický domácí upload~1.47 sNepoužitelné. Rameno se zastaví mezi každým chunkem.
25 Mbit/s~0.59 sPouze pomalé uchopování a umisťování, s dlouhým horizontem provedení.
50 Mbit/s~0.29 sPoužitelné pro záměrné úkoly.
100 Mbit/s~0.15 sDobré pro uchopování a umisťování, viditelné při rychlém pohybu.
1 Gbit/s optika nebo datacentrum~0.015 sMísto toho se modelem stane úzké hrdlo.

Rozpočet, do kterého se musíte vejít

Klient GR00T SO-100 je synchronní: volá policy.get_action(obs), provede prvních action_horizon kroků bloku při 30 FPS a poté volá znovu. Velikost bloku a horizont jsou různá čísla: průvodce nasazením NVIDIA doporučuje velikost bloku akcí 16, alespoň 32 v kombinaci s chunkingem v reálném čase, zatímco eval_so100.py dodává horizont provádění 8. Osm kroků při 30 FPS je 267 ms pohybu na jedno volání a vše ostatní se do toho musí vejít.

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
Příklad: 100 Mbit/s uplink, 30 ms doba odezvy, GR00T N1.7

Zvýšení horizontu je hrubé řešení a není zadarmo: rameno reaguje na pozorování, které je nyní staré. Principálním řešením je chunking v reálném čase, který vypočítá další blok, zatímco běží ten aktuální, zmrazí akce, které jsou zaručeny k provedení, a zbytek doplní; článek o RTC uvádí, že je robustní vůči zpoždění inference bez nutnosti přeškolení. Nejprve zkontrolujte, jak to vypadá. NVIDIA označuje RTC jako experimentální, nízkoúrovňovou modelovou primitivu dostupnou přes action_head.get_action(..., options={"rtc_overlap_steps": ..., "rtc_frozen_steps": ...}), která není zapojena do Gr00tPolicy ani do cesty server-klient, kde je options nepoužito, bez testů a bez příkladu. Přes policy server získáte asynchronní provádění, nikoli RTC.

Co model stojí, než se zapojí síť

NVIDIA benchmarkuje GR00T N1.7 end-to-end se 4 kroky denoisingu s jednou kamerou. Na H100 80GB HBM3: 85.8 ms (11.7 Hz) v PyTorch eager, 48.6 ms (20.6 Hz) s torch.compile, 27.9 ms (35.9 Hz) s plnou pipeline TensorRT. L40 v eager režimu trvá 128.3 ms (7.8 Hz). NVIDIA označuje 10 Hz jako doporučené minimum pro typickou manipulaci a pod 10 Hz jako vhodné pouze pro pomalé, nereaktivní úkoly. To jsou rychlosti přepočítávání plánu: politika s 10 Hz může stále řídit rameno s 30 FPS pomocí chunkingu akcí. Druhá kamera vás posune špatným směrem.

Změřte to, než tomu budete věřit

Každé číslo výše je předpověď. Čtyři příkazy z ní udělají měření, které stojí za to spustit, než se zavážete k pod-hodině na úkol, který by nikdy nefungoval.

  1. 1
    Získejte syrovou dobu odezvy

    Proti podu, ne CDN. Sledujte odchylku stejně pozorně jako průměr: chvění způsobuje zadrhávání ramene, nikoli průměrná latence.

    bash
    ping -c 50 <pod-host>
    # the mdev column is the number that predicts stutter
  2. 2
    Změřte uplink, který máte, ne ten, za který platíte

    Domácí upload je obvykle zlomek downloadu, a je to číslo v tabulce šířky pásma výše.

    bash
    # on the pod
    iperf3 -s
    
    # on the robot machine, -R omitted so this measures upload
    iperf3 -c <pod-host> -t 30
  3. 3
    Přečtěte si vlastní log latence klienta

    Robotický klient lerobot zaznamenává latenci server-klient a dobu deserializace pro každý chunk. Na trase B nepotřebujete žádné externí nástroje.

    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
    Sledujte vyprazdňování fronty akcí

    Předejte --debug_visualize_queue_size=True a klient vykreslí velikost fronty za běhu. Pokud opakovaně dosáhne nuly, vyčerpali jste rozpočet: snižte fps, zvyšte actions_per_chunk, nebo zvyšte chunk_size_threshold, aby pozorování odcházela častěji.

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

K čemu je vzdálená inference skutečně dobrá

Politika na pronajatém GPU, rameno na vašem stole
Výhody
  • Můžete vyhodnotit politiku s 3 miliardami parametrů na skutečném hardwaru, aniž byste vlastnili kartu, která stojí více než rameno.
  • GPU se pronajímá na hodinu, takže neúspěšný kontrolní bod stojí pár dolarů.
  • Strana robota zůstává malá: ovladače lerobot, dvě kamery, sériový port, a kontrolní body měníte, aniž byste se jí dotkli.
Kompromisy
  • Nekomprimovaná pozorování dominují nákladům na přenos dat a rezidenční upload je omezujícím faktorem.
  • Jitter bolí více než latence: spojení s průměrem 40 ms a špičkami 300 ms se zadrhává, zatímco stabilní spojení 120 ms nikoli.
  • Rychlé reaktivní úkoly nepřežijí zpáteční cestu v žádném časovém horizontu.
  • Oba servery se dodávají neověřené ve formě CLI, takže práce s tunelováním je na vás.
  • Přerušené spojení uprostřed bloku zanechá rameno s neaktuální akcí. Přidejte si vlastního hlídacího psa na straně robota.
ÚkolFunguje přes veřejný internet?Proč
Vyberte statický objekt, umístěte jej do košeYesMezi pozorováním a akcí se nic nepohybuje.
Skládejte bloky záměrným tempemYes, at action_horizon 16 or moreChyby se hromadí dostatečně pomalu, aby je bylo možné opravit v dalším bloku.
Otevřete zásuvku, vložte objektObvykleBohaté na kontakt, ale pomalé. Sledujte zastavování a rozjíždění při kontaktu.
Sledujte pohybující se objektNoPolitika reaguje na pozorování staré 300 ms až 1 s.
Chyťte, vyvažte nebo se zotavte z prokluzuNoKorekční okno je kratší než jedna zpáteční cesta.
30 Hz synchronní uzavřená smyčkaNoRozpočet je 33 ms end-to-end. I LAN má potíže.

Pokud se vzdálený běh zadrhává ve stejném bodě v každé epizodě, síť pravděpodobně není příčinou. Politika, která pokaždé váhá ve stejném úhlu kloubu, je obvykle problém s daty; viz stránky s režimy selhání, zejména politika, která funguje pouze v jednom nastavení a ztráta klesá, ale politika nic nedělá.

Dělat to sami vs. dělat to na AY-Robots

  1. Pronajměte si GPU na spotovém trhu a počkejte na dostatek VRAM za cenu, která vám vyhovuje.
  2. Nainstalujte CUDA, uv, ffmpeg torchcodec a GR00T stack se submoduly.
  3. Požádejte o přístup k omezené páteři `nvidia/Cosmos-Reason2-2B` a umístěte token na pod.
  4. Stáhněte svůj kontrolní bod na pod.
  5. Spusťte server na loopbacku a poté vytvořte SSH tunel z robotického stroje.
  6. Nainstalujte druhé prostředí na robotický stroj pro klienta a ovladače.
  7. Přizpůsobte klíče kamery, názvy kloubů a jazykovou instrukci tomu, co viděl kontrolní bod.
  8. Sledujte pod. Zapomenutý A100 běžící přes noc stojí více než experiment.
Nečinný pod je skutečná cena

Účet za GPU se nezastaví, když se robot zastaví. Většina peněz ztracených na vzdálené inferenci jde na server, který zůstal v provozu poté, co všichni odešli. Nastavte si alarm, nebo automatizujte vypnutí.

The AY-Robots MCP server page listing platform operations exposed as tools to AI agents
Stránka MCP: operace zřizování a inference vystavené jako nástroje, které může agent volat.

Co stojí vzdálená inference

Důležitá jsou dvě čísla: hodinová sazba karty a jak dlouho ji necháte běžet. První je zveřejněno; druhé lidi překvapuje.

KartaRunpod komunitní cloudRunpod zabezpečený cloudVhodné pro
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/hStejné, trochu rychlejší
H100 PCIe 80 GB1.99 USD/h2.89 USD/hNejrychlejší úroveň; údaj NVIDIA 11.7 Hz pro eager je pro H100 80GB HBM3
L40S 48 GB0.79 USD/h0.99 USD/hPouze inference, nad hranicí 16 GB
RTX 4090 24 GB0.34 USD/h0.74 USD/hSmolVLA, ACT

Tyto sazby byly načteny z cenové stránky Runpodu 23. srpna 2026 a spotové trhy se pohybují. AY-Robots místo toho uvádí cenu za celý běh: 3 až 6 hodin za 1.20 až 2.00 USD za hodinu na úrovni A100 nebo H100, přibližně 4 až 12 USD za běh GR00T nebo Pi0.5; 2 až 5 hodin za 0.30 až 0.60 USD za hodinu na úrovni 24 GB, 1 až 3 USD za SmolVLA nebo ACT. Inference relace překoná tréninkový běh v nákladech pouze tehdy, pokud ji zastavíte, k čemuž slouží idle watchdog. Viz dokumentace k fakturaci a stránka s cenami.

Tabulka nákladů AY-Robots ukazující, jaké GPU každá politika potřebuje, typickou dobu běhu a cenu a počet epizod, než je politika užitečná
Tabulka nákladů na /try: jakou kartu každý model potřebuje a kolik typicky stojí běh.

Pokud byste raději neměli síť v cyklu

Vzdálená inference řeší hardwarový problém a vytváří problém s latencí. Někdy je lepší odpovědí politika, která odpovídá hardwaru, který máte.

  • ACT, přibližně 80 milionů parametrů a 20 ms na akční krok, minimálně 50 epizod, jakákoli 24 GB karta. V opakujícím se nastavení s jednou úlohou často překonává vzdálený 3 B model, protože nikdy nečeká na paket.
  • SmolVLA, přibližně 450 milionů parametrů a 245 ms na akční krok, minimálně 30 epizod. Zachovává jazykové podmínění, které ACT postrádá, a dokumentace lerobot uvádí jeho velikost přibližně 2 GB v době inference oproti zhruba 14 GB pro PI0.
  • ACT vs GR00T N1.7 pro přesnost, což je jedna polovina kompromisu.

Existuje také střední cesta: trénovat v cloudu, vyhodnocovat lokálně. Jemné ladění potřebuje 80 GB kartu a nezajímá se o latenci, takže trénování GR00T N1.7 na SO-100 vzdáleně je nesporné. Pouze vyhodnocovací smyčka má omezení v reálném čase; dokumentace k trénování a matice modelů a ramen pokrývají tuto polovinu.

Ještě nemáte rameno na stole?

Ovládejte skutečný SO-100 v prohlížeči bez registrace, porovnejte pět trénovatelných politik s jejich skutečnými čísly latence, nebo si pronajměte GPU a jednu vytrénujte. Tři způsoby, jak začít, žádný nevyžaduje hardware, který nevlastníte.

Vyzkoušejte to bez hardwaru

Často kladené otázky

Mohu spustit GR00T N1.7 na Raspberry Pi, pokud je GPU vzdálené?

Ano, k tomu slouží rozdělení klient-server. Pi spouští ovladače lerobot, čte dvě kamery a sériovou sběrnici a odesílá pozorování na policy server; nikdy nenačítá model. Omezení se přesouvá z VRAM na šířku pásma pro upload: dva nekomprimované 640x480 RGB snímky jsou 1 843 200 bajtů na volání a ani jeden stack je nekomprimuje.

Kolik latence síť skutečně přidává?

Doba odezvy (round-trip time) plus doba přenosu pozorování. Doba přenosu je 14.7 Mbit děleno vaší šířkou pásma pro upload: zhruba 147 ms na 100 Mbit/s lince, 1.47 s na 10 Mbit/s lince. Obě se přičítají k vlastní době inference modelu, kterou AY-Robots uvádí jako 152 ms pro GR00T N1.7 a 485 ms pro Pi0.5. Měřte pomocí ping a iperf3 proti podu, nikoli proti serveru pro test rychlosti.

Je vzdálená inference dostatečně dobrá pro skutečný úkol?

Pro pomalé, záměrné úkoly typu pick-and-place, ano. Pro cokoli reaktivního, ne. Průvodce nasazením od NVIDIA uvádí požadavek na synchronní jednokrokovou operaci na zhruba 33 ms end-to-end při 30 FPS a poznamenává, že snímání, síť, inference a post-processing to běžně překračují i bez zapojení internetu.

Jaký port servery používají a je bezpečné ho otevřít?

PolicyServer Isaac-GR00T standardně používá port 5555 přes ZeroMQ a v CLI váže 0.0.0.0. lerobot standardně používá port 8080 přes gRPC a váže localhost. Ani jedno není bezpečné vystavit: třída GR00T podporuje api_token, ale run_gr00t_server.py ho nikdy nepředává, a lerobot serializuje data (pickles data) přes nezabezpečený gRPC kanál, což je CVE-2026-25874. Vážte na loopback a použijte SSH tunel.

Opravuje upgrade lerobot CVE-2026-25874?

K 23. srpnu 2026 ne. Záznam CVE uvádí LeRobot až do verze 0.5.1 jako postižený a PyPI dodává 0.6.1, ale pull request, který by odstranil pickle z asynchronní pipeline, je stále otevřený a policy_server.py na main stále volá pickle.loads na data požadavku. Považujte síťovou izolaci za zmírnění, nikoli za zvýšení verze, a předpokládejte, že klient na straně robota je také v rozsahu.

Mohu použít asynchronní klient lerobot s checkpointem GR00T?

Ano. lerobot 0.6.1 uvádí groot v SUPPORTED_POLICIES vedle act, smolvla, diffusion, tdmpc, vqbet, pi0 a pi05, a oba so100_follower a so101_follower jsou v SUPPORTED_ROBOTS. Předejte --policy_type=groot a nasměrujte --pretrained_name_or_path na váš checkpoint. Získáte asynchronní provádění, které příklad GR00T SO-100 neimplementuje, za cenu pickle transportu.

Stručná verze

Vzdálená inference pro 3 B politika je vyřešený inženýrský problém s nevyřešeným fyzikálním problémem. Inženýrství spočívá ve dvou příkazech a SSH tunelu. Fyzika spočívá v tom, že pozorování o velikosti 1.8 MB musí dosáhnout GPU v jiné zemi a vrátit se dříve, než rameno vyčerpá akce. Proveďte výpočty před pronájmem čehokoli, vyberte úkol, který toleruje zastaralé pozorování, a zvyšte horizont provádění, spíše než doufat, že se spojení zlepší.

Pokud jste ještě nezaznamenali datovou sadu, zaznamenejte svou první datovou sadu a průvodce nastavením SO-100 jsou na prvním místě a formát datové sady LeRobot položka vysvětluje, co zapisuje záznamník. Pozadí je v modelech vize-jazyk-akce a práci s politikou flow-matching; položka arény odkazuje každé číslo benchmarku na zdroj.

Sources

Sources

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started