
Mesin robot anda tiada GPU. Letakkan pelayan polisi GR00T pada GPU awan sewa, strim cebisan tindakan ke lengan, dan ketahui dengan tepat kos rangkaian anda.
Raspberry Pi cukup untuk menggerakkan melalui bas bersiri dan menarik bingkai daripada dua kamera USB. Ia tidak cukup untuk menjalankan model tiga bilion parameter : README NVIDIA meletakkan inferens GR00T N1.7 pada satu GPU dengan 16 GB atau lebih VRAM. Untuk melihat apa yang dilakukan oleh checkpoint anda yang telah ditala halus pada lengan tanpa membeli kad, letakkan polisi pada GPU awan yang disewa, kekalkan gelung robot pada mesin dengan port USB, dan hantar pemerhatian serta cebisan tindakan melalui rangkaian.
Ia berfungsi, ia tidak percuma, dan harganya tidak tersebar secara sekata merentasi tugas. Di bawah: pelayan polisi NVIDIA sendiri, tindanan async lerobot, aritmetik yang menyatakan terlebih dahulu sama ada pautan atas anda cukup pantas, dan laluan platform. Kesemuanya telah disemak terhadap cawangan utama Isaac-GR00T (N1.7 GA) dan lerobot 0.6.1 pada 23 Ogos 2026.
Apa yang perlu anda tahu
- •GR00T N1.7, GR00T N1.5 dan Pi0.5 adalah model parameter kira-kira 3 B. Tiada satu pun yang sesuai pada pengawal robot tanpa GPU diskret.
- •Isaac-GR00T dan lerobot kedua-duanya menyediakan pembahagian klien-pelayan. Anda tidak menulis pengangkutan.
- •Pemerhatian mendominasi kos wayar, bukan tindakan: dua bingkai RGB 640x480 yang tidak dimampatkan adalah 1,843,200 bait, kira-kira 14.7 Mbit setiap panggilan, dan tiada tindanan yang memampatkannya.
- •AY-Robots menyenaraikan 20 hingga 485 ms setiap langkah tindakan mengikut model. Perjalanan pergi balik internet menambah di atas itu.
- •Inferens jauh sesuai untuk pilih-dan-letak yang perlahan, bukan gerakan reaktif yang pantas. Horizon pelaksanaan yang lebih panjang membeli masa dan mengorbankan kesegaran pemerhatian.
- •Tiada pelayan yang selamat pada IP awam seperti yang dihantar, dan lerobot membawa RCE yang tidak ditampal. Terowongkannya.
Mengapa polisi tidak akan muat pada mesin robot
Dua daripada lima polisi yang boleh dilatih oleh AY-Robots berjalan pada kad stesen kerja, tiga tidak. Kolum di bawah adalah bagi setiap langkah tindakan, dan itulah nombor yang bersaing dengan perjalanan pergi balik rangkaian anda.
| Polisi | Parameter | Inferens setiap langkah tindakan | Tahap GPU untuk latihan | Episod minimum | Format set data |
|---|---|---|---|---|---|
| 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 |

Baca ini sebagai keputusan, bukan maklumat remeh. pada 20 ms setiap langkah berjalan pada mesin robot dan anda tidak perlu memikirkannya lagi. pada 485 ms telah menghabiskan sepertiga saat sebelum paket meninggalkan bangunan anda. dan menambah sisi ketepatan.
GR00T N1.7, GR00T N1.5 dan Pi0.5 bermula dari pusat pemeriksaan vendor (nvidia/GR00T-N1.7-3B, nvidia/GR00T-N1.5-3B, lerobot/pi05_base). ACT tidak wujud sehingga anda melatihnya untuk tugas anda sendiri, jadi tiada apa-apa untuk diservis dari jauh sehingga tugas latihan telah dijalankan. Lihat ACT on SO-100.
Dua tindanan klien-pelayan yang sedia ada
Isaac-GR00T menghantar pelayan permintaan-balas ZeroMQ; lerobot menghantar pelayan gRPC yang dibina berdasarkan inferens tak segerak. Kedua-duanya menerima GR00T pusat pemeriksaan. Senarai polisi yang disokong lerobot dalam async_inference/constants.py ialah act, smolvla, diffusion, tdmpc, vqbet, pi0, pi05 dan groot; senarai robotnya ialah so100_follower, so101_follower, bi_so_follower dan omx_follower.
| Isaac-GR00T PolicyServer | lerobot async inference | |
|---|---|---|
| Titik masuk | gr00t/eval/run_gr00t_server.py | python -m lerobot.async_inference.policy_server |
| Pengangkutan | ZeroMQ REQ/REP | gRPC, add_insecure_port / insecure_channel |
| Penyirian | msgpack + msgpack_numpy, allow_pickle=False enforced | pickle.dumps / pickle.loads, marked # nosec |
| Port lalai | 5555 | 8080 |
| Ikatan lalai | 0.0.0.0, semua antara muka | localhost |
| Pengesahan | api_token supported by the class, not passed by the CLI | tiada |
| Tamat masa klien | 15000 ms (PolicyClient timeout_ms) | 2 s tamat masa barisan pemerhatian |
| Model pelaksanaan | segerak: sekat, kemudian laksanakan cebisan | tak segerak: laksanakan semasa cebisan seterusnya dikira |
Baris siri (serialization) lebih penting daripada yang kelihatan. GR00T's MsgSerializer menolak muatan ndarray object-dtype dalam kedua-dua arah, kerana msgpack_numpy akan menyerahkannya kepada pickle. lerobot menggunakan pickle sebaliknya: policy_server.py memanggil pickle.loads pada data permintaan, robot_client.py menggunakan pickle untuk pemerhatian yang dihantarnya. Boleh dipertahankan pada LAN yang dipercayai, tidak boleh dipertahankan apabila port boleh dicapai dari internet.
Laluan A: Pelayan polisi GR00T milik NVIDIA
Ini adalah laluan yang didokumenkan oleh NVIDIA untuk perkakasan SO-100 dan SO-101, dan yang perlu digunakan jika titik semak anda datang daripada examples/finetune.sh dengan --embodiment-tag NEW_EMBODIMENT. Langkah-langkah ini menambah apa yang ditinggalkan oleh README hulu: mendapatkan port ke robot tanpa mendedahkannya kepada orang lain.
- 1Pasang GR00T pada kotak GPU sewa
Submodul diperlukan, dan git-lfs mesti wujud sebelum klon atau fail parquet dalam
demo_datatiba sebagai penunjuk. flash-attn dan TensorRT disertakan dengan pemasangan lalai. Perangkap pada imej pod baharu:torchcodec0.8.0 adalah satu-satunya backend video yang disokong dan hanya memuatkan FFmpeg 4 hingga 7. Ubuntu 25.10 dan 26.04 menghantar FFmpeg 8, jadi GR00T gagal denganCould not load libtorchcodec. Pasang FFmpeg di bawah versi 8 dan letakkan pustakanya padaLD_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')" - 2Sahkan terhadap tulang belakang berpagar
Setiap titik semak GR00T N1.7, termasuk penalaan halus anda sendiri, memuatkan
nvidia/Cosmos-Reason2-2Byang berpagar pada penggunaan pertama. Minta akses pada halaman model dan log masuk pada pod, atau pemuatan akan gagal denganGatedRepoError.bashuv run huggingface-cli login # or: export HF_TOKEN=<your_token> - 3Mulakan pelayan polisi
Tujukan
--model-pathke direktori titik semak anda; pada laluan itu pelayan mengabaikan--modality-config-path, yang hanya dibaca pada laluan ulang tayang. Abaikan--model-pathdan hantar--dataset-pathserta--execution-horizonsebaliknya untuk ReplayPolicy yang memainkan semula tindakan yang direkodkan, cara termurah untuk membuktikan pendawaian berfungsi.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 - 4Terowong port 5555 ke mesin robot
Ikat ke gelung balik (loopback), seperti di atas, dan bawa port melalui SSH atau jaringan gaya WireGuard. Itu menyediakan penyulitan dan pengesahan yang tidak dimiliki oleh soket ZeroMQ, untuk kira-kira satu milisaat.
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 - 5Jalankan klien robot di sebelah servo
Klien memerlukan persekitaran uv sendiri: ia mahukan pemacu robot lerobot, bukan timbunan latihan.
eval_so100.pymengimport so100_follower, so101_follower dan koch_follower, jadi hantar--robot.typeyang sepadan dengan lengan anda (README hulu menggunakan so101_follower). Kunci kamera mesti sepadan dengan latihan: penyesuai membaca dengan tepatfrontdanwrist, dan menukarnya menunjukkan polisi pandangan yang salah.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 lalai kepada --host 0.0.0.0, mengikat setiap antara muka: pada pod dengan IP awam yang merupakan titik akhir inferens terbuka. Dan kelas PolicyServer menerima api_token dan mengesahkannya setiap permintaan, tetapi run_gr00t_server.py tidak pernah meluluskannya, jadi pelayan CLI tidak disahkan walau apa pun yang anda konfigurasikan. Ikat kepada 127.0.0.1 dan terowong. ZMQError: Address already in use bermaksud port 5555 sedang digunakan; hantar --port.
Laluan B: inferens async lerobot
lerobot menyelesaikan masalah yang berbeza. Daripada menyekat robot semasa model berfikir, klien terus melangkah melalui barisan yang sedia ada sementara pelayan mengira segmen seterusnya. Ini adalah pengecilan tindakan yang diperluaskan lagi, tindanan tak segerak yang diperkenalkan dengan SmolVLA. Ia juga berfungsi dengan titik semak 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=TruePelayan bermula kosong: ia tidak tahu dasar mana yang disediakannya sehingga jabat tangan pertama klien memberitahunya, yang mudah pada pod sewaan. Dua tetapan yang menentukan sama ada lengan bergerak dengan lancar ialah actions_per_chunk dan chunk_size_threshold (dokumen lerobot memanggil yang kedua g, sempena kertas SmolVLA), dan nilai yang didokumenkan serta nilai yang dihantar tidak sepadan.
| Parameter | Nilai dalam kod lerobot 0.6.1 | Fungsi | Nota |
|---|---|---|---|
| actions_per_chunk | tiada lalai, diperlukan | Tindakan yang dikembalikan setiap panggilan | Jadual dokumen menyenaraikan 50; medan dataclass tiada lalai, jadi CLI memerlukan nilai |
| chunk_size_threshold | 0.5 | Nisbah isian barisan pada atau di bawah mana klien menghantar pemerhatian baharu | Jadual dokumen menyatakan 0.7; kod dan contoh dokumen sendiri menyatakan 0.5 |
| fps | 30 | Kadar kawalan klien, menetapkan environment_dt = 1/fps | Turunkannya jika barisan terus kosong |
| inference_latency | 1/30 s (33.3 ms) | Latensi inferens sasaran pada pelayan | Sasaran, bukan ukuran |
| obs_queue_timeout | 2 s | Berapa lama pelayan menunggu pada barisan pemerhatian | Pautan naik yang perlahan akan kelihatan di sini dahulu |
| aggregate_fn_name | weighted_average | Bagaimana kawasan chunk yang bertindih dicampur | 0.3 old + 0.7 new; latest_only, average dan conservative juga dihantar. Daftar adalah AGGREGATE_FUNCTIONS dalam configs.py, bukan robot_client.py seperti yang didakwa oleh dokumen |
CVE-2026-25874 ialah pelaksanaan kod jauh tanpa pengesahan dalam saluran paip inferens tak segerak lerobot: pickle.loads() pada data yang diterima melalui saluran gRPC tanpa pengesahan tanpa TLS, boleh dicapai melalui panggilan SendPolicyInstructions, SendObservations dan GetActions. CWE-502, skor asas CVSS 3.1 9.8 dari NVD, skor asas 4.0 9.3 dari CNA yang menetapkan. Rekod menyenaraikan LeRobot sehingga 0.5.1 sebagai terjejas dan menamakan kedua-dua pelayan dasar dan klien robot, jadi mesin di sebelah lengan anda berada dalam skop. Menaik taraf bukanlah penyelesaian: rekod memetik isu hulu 3047 dan tampalan, PR 3048, yang menukar pickle untuk safetensors ditambah JSON, dan pada 23 Ogos 2026 kedua-duanya masih terbuka. policy_server.py pada main masih memanggil pickle.loads pada data permintaan manakala serve() mengikat dengan add_insecure_port. Ikat kepada gelung balik dan jangan sekali-kali memajukan port 8080.
Aritmetik yang menentukan sama ada pautan anda cukup pantas
Orang ramai melangkau ini dan kemudian menghabiskan sehari untuk . Ia mengambil masa dua minit dan ia hampir selalu menentukan.
Dict pemerhatian yang dikomen dalam NVIDIA's eval_so100.py menyatakan apa yang dihantar melalui wayar: dua tatasusunan berbentuk (480, 640, 3) dalam uint8, enam float sendi, satu rentetan bahasa. Itu adalah 921,600 bait setiap bingkai, 1,843,200 bait untuk dua kamera, kira-kira 14.7 Mbit, dan tiada satu pun timbunan memampatkannya dengan JPEG. Bahagian yang kembali adalah beberapa dozen langkah 6 float. Muat naik anda menentukan segalanya, bukan muat turun anda.
| Lebar jalur muat naik | Masa untuk menghantar satu pemerhatian (14.7 Mbit) | Keputusan untuk lengan 30 FPS |
|---|---|---|
| 10 Mbit/s, muat naik rumah biasa | ~1.47 s | Tidak boleh digunakan. Lengan berhenti antara setiap cebisan. |
| 25 Mbit/s | ~0.59 s | Hanya ambil-dan-letak yang perlahan, dengan ufuk pelaksanaan yang panjang. |
| 50 Mbit/s | ~0.29 s | Boleh digunakan untuk tugas yang disengajakan. |
| 100 Mbit/s | ~0.15 s | Baik untuk ambil-dan-letak, kelihatan pada pergerakan pantas. |
| 1 Gbit/s gentian atau pusat data | ~0.015 s | Model menjadi kesesakan sebaliknya. |
Bajet yang perlu anda penuhi
Klien GR00T SO-100 adalah segerak: ia memanggil policy.get_action(obs), melaksanakan action_horizon langkah pertama daripada ketulan pada 30 FPS, kemudian memanggil semula. Saiz ketulan dan horizon adalah nombor yang berbeza: panduan penggunaan NVIDIA mengesyorkan saiz ketulan tindakan 16, sekurang-kurangnya 32 apabila digabungkan dengan chunking masa nyata, manakala eval_so100.py menyediakan horizon pelaksanaan 8. Lapan langkah pada 30 FPS adalah 267 ms pergerakan setiap panggilan, dan segala-galanya perlu muat di dalamnya.
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 staleMeningkatkan horizon adalah penyelesaian kasar dan bukan percuma: lengan bertindak berdasarkan pemerhatian yang kini sudah lama. Penyelesaian berprinsip adalah chunking masa nyata, yang mengira ketulan seterusnya semasa yang semasa berjalan, membekukan tindakan yang dijamin akan dilaksanakan dan melengkapkan selebihnya; kertas RTC melaporkannya sebagai teguh terhadap kelewatan inferens tanpa latihan semula. Semak kedudukannya terlebih dahulu. NVIDIA menandakan RTC sebagai eksperimen, primitif model peringkat rendah yang boleh dicapai melalui action_head.get_action(..., options={"rtc_overlap_steps": ..., "rtc_frozen_steps": ...}), tidak disambungkan ke Gr00tPolicy atau laluan pelayan-klien, di mana options tidak digunakan, tanpa ujian dan tanpa contoh. Melalui pelayan polisi anda mendapat pelaksanaan tak segerak, bukan RTC.
NVIDIA menanda aras GR00T N1.7 hujung ke hujung pada 4 langkah denoising dengan satu kamera. Pada H100 80GB HBM3: 85.8 ms (11.7 Hz) dalam PyTorch eager, 48.6 ms (20.6 Hz) dengan torch.compile, 27.9 ms (35.9 Hz) dengan saluran paip penuh TensorRT. L40 dalam mod eager mengambil 128.3 ms (7.8 Hz). NVIDIA menyatakan 10 Hz sebagai minimum yang disyorkan untuk manipulasi biasa, dan di bawah 10 Hz hanya sesuai untuk tugas yang perlahan dan tidak reaktif. Itu adalah kadar perancangan semula: polisi 10 Hz masih boleh memacu lengan 30 FPS melalui chunking tindakan. Kamera kedua menggerakkan anda ke arah yang salah.
Ukur sebelum anda percaya
Setiap nombor di atas adalah ramalan. Empat arahan mengubahnya menjadi ukuran, yang patut dijalankan sebelum memperuntukkan jam pod untuk tugas yang tidak akan berjaya.
- 1Dapatkan perjalanan pergi balik mentah
Terhadap pod, bukan CDN. Perhatikan sisihan sama rapat dengan purata: jitter menyebabkan lengan tersentak, bukan latensi purata.
bashping -c 50 <pod-host> # the mdev column is the number that predicts stutter - 2Ukur pautan atas yang anda miliki, bukan yang anda bayar
Muat naik kediaman biasanya sebahagian kecil daripada muat turun, dan ia adalah nombor dalam jadual lebar jalur di atas.
bash# on the pod iperf3 -s # on the robot machine, -R omitted so this measures upload iperf3 -c <pod-host> -t 30 - 3Baca log latensi klien sendiri
Klien robot lerobot mencatat latensi pelayan-ke-klien dan masa penyahserialan untuk setiap cebisan. Pada laluan B anda tidak memerlukan alat luaran.
textReceived action chunk for step #240 | Latest action: #232 | Incoming actions: 240:289 | Network latency (server->client): 187.44ms | Deserialization time: 3.10ms - 4Perhatikan barisan tindakan mengalir keluar
Luluskan
--debug_visualize_queue_size=Truedan klien akan memplot saiz barisan pada masa jalan. Jika ia berulang kali mencapai sifar, anda kehabisan bajet: kurangkan fps, tingkatkan actions_per_chunk, atau tingkatkan chunk_size_threshold supaya pemerhatian dihantar lebih kerap.bashpython -m lerobot.async_inference.robot_client \ ... \ --debug_visualize_queue_size=True
Untuk apa sebenarnya inferens jauh berguna
- Anda boleh menilai polisi parameter 3 B pada perkakasan sebenar tanpa memiliki kad yang berharga lebih daripada lengan.
- GPU disewa mengikut jam, jadi titik semak yang gagal berharga beberapa dolar.
- Bahagian robot kekal kecil: pemacu lerobot, dua kamera, port bersiri, dan anda menukar titik semak tanpa menyentuhnya.
- Pemerhatian tanpa mampatan mendominasi kos wayar, dan muat naik kediaman adalah kekangan yang mengikat.
- Jitter lebih memudaratkan daripada kependaman: pautan purata 40 ms dengan lonjakan hingga 300 ms tersangkut manakala pautan stabil 120 ms tidak.
- Tugas reaktif pantas tidak bertahan dalam perjalanan pergi balik pada mana-mana horizon.
- Kedua-dua pelayan dihantar tanpa pengesahan dalam bentuk CLI, jadi kerja terowong adalah tanggungjawab anda.
- Sambungan terputus di tengah-tengah cebisan meninggalkan lengan memegang tindakan yang lapuk. Tambah robot pengawas anda sendiri di sisi robot.
| Tugas | Berfungsi melalui internet awam? | Mengapa |
|---|---|---|
| Pilih objek statik, letakkannya dalam tong | Ya | Tiada apa-apa yang bergerak antara pemerhatian dan tindakan. |
| Susun blok pada kadar yang sengaja | Ya, pada action_horizon 16 atau lebih | Ralat terkumpul cukup perlahan untuk diperbaiki pada cebisan seterusnya. |
| Buka laci, masukkan objek | Biasanya | Kaya sentuhan tetapi perlahan. Perhatikan berhenti-dan-pergi pada sentuhan. |
| Ikut objek bergerak | Tidak | Polisi bertindak berdasarkan pemerhatian berusia 300 ms hingga 1 s. |
| Tangkap, imbangkan, atau pulih daripada tergelincir | Tidak | Tetingkap pembetulan lebih pendek daripada satu perjalanan pergi balik. |
| Gelung tertutup segerak 30 Hz | Tidak | Bajet adalah 33 ms hujung ke hujung. Malah LAN pun bergelut. |
Jika larian jauh tersangkut pada titik yang sama dalam setiap episod, rangkaian mungkin bukan puncanya. Polisi yang teragak-agak pada sudut sendi yang sama setiap kali biasanya adalah masalah data; lihat halaman mod kegagalan, khususnya polisi yang hanya berfungsi dalam satu persediaan dan kerugian jatuh tetapi polisi tidak melakukan apa-apa.
Melakukannya sendiri berbanding melakukannya di AY-Robots
- Sewa GPU di pasaran spot dan tunggu VRAM yang mencukupi pada harga yang anda suka.
- Pasang CUDA, uv, torchcodec ffmpeg yang diterima, dan timbunan GR00T dengan submodul.
- Minta akses kepada tulang belakang `nvidia/Cosmos-Reason2-2B` yang berpagar dan letakkan token pada pod.
- Tarik checkpoint anda ke pod.
- Mulakan pelayan pada loopback, kemudian bina terowong SSH dari mesin robot.
- Pasang persekitaran kedua pada mesin robot untuk klien dan pemacu.
- Padankan kunci kamera, nama sendi dan arahan bahasa dengan apa yang dilihat oleh checkpoint.
- Pantau pod. A100 yang terlupa berjalan semalaman menelan belanja lebih daripada eksperimen.
Bil GPU tidak berhenti apabila robot berhenti. Kebanyakan wang yang hilang pada inferens jauh pergi ke pelayan yang kekal aktif selepas semua orang pergi. Tetapkan penggera, atau automatikkan pembongkaran.
- Pilih polisi terlatih yang anda ingin jalankan.
- `/api/inference/pod` secara automatik menyediakan pod GPU awan yang melayani polisi tersebut.
- Klien robot tempatan berkomunikasi dengan titik akhir tersebut. Checkpoint asas adalah milik vendor sendiri: `nvidia/GR00T-N1.7-3B`, `nvidia/GR00T-N1.5-3B`, `lerobot/pi05_base`. ACT tiada.
- Pod membawa pengawas terbiar dan memusnahkan diri sendiri selepas tempoh terbiar, jadi tiada apa yang terus dibil secara senyap.
- Operasi yang sama tersedia dari terminal dan kepada agen AI, jadi gelung boleh diskripkan.
Penyediaan automatik menghilangkan kerja persediaan dan bil pod yang terlupa, bukan fizik. Inferens masih perlu berada di sebelah servo untuk tugas pantas: gelung kawalan adalah 20 hingga 485 ms setiap langkah tindakan bergantung pada model, dan perjalanan pergi balik internet awam di atas itu mengubah polisi yang berfungsi menjadi polisi yang ragu-ragu.
- Panduan klien untuk bahagian sambungan tempatan
- Jalankan polisi pertama anda untuk panduan langkah demi langkah
- CLI dan pelayan MCP untuk versi berskrip
- Dokumen keselamatan

Berapa kos sesi inferens jauh
Dua nombor penting: kadar jam kad, dan berapa lama anda membiarkannya berjalan. Yang pertama diterbitkan; yang kedua mengejutkan orang.
| Kad | Awan komuniti Runpod | Awan selamat Runpod | Sesuai untuk |
|---|---|---|---|
| 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 | Sama, sedikit lebih pantas |
| H100 PCIe 80 GB | 1.99 USD/h | 2.89 USD/h | Tahap terpantas; angka eager 11.7 Hz NVIDIA adalah untuk H100 80GB HBM3 |
| L40S 48 GB | 0.79 USD/h | 0.99 USD/h | Inferens sahaja, melebihi had 16 GB |
| RTX 4090 24 GB | 0.34 USD/h | 0.74 USD/h | SmolVLA, ACT |
Kadar tersebut dibaca dari halaman harga Runpod pada 23 Ogos 2026, dan pasaran spot sentiasa berubah. AY-Robots pula menawarkan keseluruhan larian: 3 hingga 6 jam pada 1.20 hingga 2.00 USD sejam pada tahap A100 atau H100, kira-kira 4 hingga 12 USD untuk larian GR00T atau Pi0.5; 2 hingga 5 jam pada 0.30 hingga 0.60 USD sejam pada tahap 24 GB, 1 hingga 3 USD untuk SmolVLA atau ACT. Sesi inferens mengalahkan larian latihan dari segi kos hanya jika anda menghentikannya, itulah tujuan pengawas terbiar (idle watchdog). Lihat dokumen pengebilan dan halaman harga.

Jika anda lebih suka tidak melibatkan rangkaian
Inferens jarak jauh menyelesaikan masalah perkakasan dan mewujudkan masalah kependaman. Kadangkala jawapan yang lebih baik adalah polisi yang sesuai dengan perkakasan yang anda miliki.
- ACT, kira-kira 80 J parameter dan 20 ms setiap langkah tindakan, minimum 50 episod, mana-mana kad 24 GB. Dalam persediaan tugas tunggal yang berulang, ia sering mengatasi model 3 B jarak jauh, kerana ia tidak pernah menunggu paket.
- SmolVLA, kira-kira 450 J parameter dan 245 ms setiap langkah tindakan, minimum 30 episod. Ia mengekalkan pengkondisian bahasa yang tiada pada ACT, dan dokumen lerobot meletakkannya pada kira-kira 2 GB pada masa inferens berbanding kira-kira 14 GB untuk PI0.
- ACT vs GR00T N1.7 untuk separuh ketepatan dalam pertukaran.
Terdapat juga jalan tengah: latih di awan, nilai secara tempatan. Penalaan halus memerlukan kad 80 GB dan tidak kisah tentang kependaman, jadi melatih GR00T N1.7 pada SO-100 dari jauh adalah tidak kontroversi. Hanya gelung penilaian yang mempunyai kekangan masa nyata; dokumen latihan dan matriks model-dan-lengan meliputi separuh itu.
Belum ada lengan robot di meja?
Pandu SO-100 sebenar dalam pelayar tanpa pendaftaran, bandingkan lima polisi yang boleh dilatih dengan nombor kependaman sebenar mereka, atau sewa GPU dan latih satu. Tiga cara untuk bermula, tiada satu pun memerlukan perkakasan yang anda tidak miliki.
Cuba tanpa perkakasanSoalan lazim
Bolehkah saya menjalankan GR00T N1.7 pada Raspberry Pi jika GPU berada di lokasi terpencil?▾
Ya, itulah tujuan pembahagian klien-pelayan. Pi menjalankan pemacu lerobot, membaca dua kamera dan bas bersiri, dan menghantar pemerhatian kepada pelayan polisi; ia tidak pernah memuatkan model. Kekangan beralih daripada VRAM kepada lebar jalur muat naik: dua bingkai RGB 640x480 yang tidak dimampatkan adalah 1,843,200 bait setiap panggilan, dan tiada satu pun tumpukan memampatkannya.
Berapa banyak kependaman yang sebenarnya ditambah oleh rangkaian?▾
Masa pergi balik ditambah masa pemindahan pemerhatian. Masa pemindahan ialah 14.7 Mbit dibahagikan dengan lebar jalur muat naik anda: kira-kira 147 ms pada pautan 100 Mbit/s, 1.47 s pada pautan 10 Mbit/s. Kedua-duanya berada di atas masa inferens model itu sendiri, yang AY-Robots senaraikan sebagai 152 ms untuk GR00T N1.7 dan 485 ms untuk Pi0.5. Ukur dengan ping dan iperf3 terhadap pod, bukan pelayan ujian kelajuan.
Adakah inferens jauh cukup baik untuk tugas sebenar?▾
Untuk pilih-dan-letak yang perlahan dan sengaja, ya. Untuk apa-apa yang reaktif, tidak. Panduan penempatan NVIDIA meletakkan keperluan langkah tunggal segerak pada kira-kira 33 ms hujung ke hujung pada 30 FPS, dan menyatakan bahawa penangkapan, rangkaian, inferens dan pasca-pemprosesan secara rutin melebihi itu tanpa melibatkan internet.
Port manakah yang digunakan oleh pelayan dan adakah selamat untuk membukanya?▾
PolicyServer Isaac-GR00T lalai kepada port 5555 melalui ZeroMQ dan mengikat 0.0.0.0 dalam CLI-nya. lerobot lalai kepada port 8080 melalui gRPC dan mengikat localhost. Kedua-duanya tidak selamat untuk didedahkan: kelas GR00T menyokong api_token tetapi run_gr00t_server.py tidak pernah menghantarnya, dan lerobot mem-pickle data melalui saluran gRPC yang tidak selamat, iaitu CVE-2026-25874. Ikat kepada gelung balik dan gunakan terowong SSH.
Adakah menaik taraf lerobot membetulkan CVE-2026-25874?▾
Tidak setakat 23 Ogos 2026. Rekod CVE menyenaraikan LeRobot sehingga 0.5.1 sebagai terjejas dan PyPI menghantar 0.6.1, tetapi permintaan tarik yang akan membuang pickle daripada saluran paip async masih terbuka, dan policy_server.py pada main masih memanggil pickle.loads pada data permintaan. Anggap pengasingan rangkaian sebagai mitigasi, bukan peningkatan versi, dan anggap klien di sisi robot juga termasuk dalam skop.
Bolehkah saya menggunakan klien async lerobot dengan titik semak GR00T?▾
Ya. lerobot 0.6.1 menyenaraikan groot dalam SUPPORTED_POLICIES bersama act, smolvla, diffusion, tdmpc, vqbet, pi0 dan pi05, dan kedua-dua so100_follower dan so101_follower berada dalam SUPPORTED_ROBOTS. Luluskan --policy_type=groot dan halakan --pretrained_name_or_path pada titik semak anda. Anda mendapat pelaksanaan tak segerak, yang tidak dilaksanakan oleh contoh GR00T SO-100, dengan kos pengangkutan pickle.
Versi ringkas
Inferens jauh untuk polisi 3 B adalah masalah kejuruteraan yang telah diselesaikan dengan masalah fizik yang belum diselesaikan. Kejuruteraan melibatkan dua arahan dan terowong SSH. Fizik pula ialah pemerhatian 1.8 MB perlu sampai ke GPU di negara lain dan kembali sebelum lengan kehabisan tindakan. Lakukan pengiraan sebelum menyewa apa-apa, pilih tugas yang boleh menerima pemerhatian lapuk, dan tingkatkan ufuk pelaksanaan daripada mengharapkan pautan bertambah baik.
Jika anda belum merekodkan set data, rekodkan set data pertama anda dan panduan persediaan SO-100 didahulukan, dan entri format set data LeRobot menerangkan apa yang direkodkan oleh perakam. Latar belakang adalah dalam model tindakan bahasa-penglihatan dan kerja polisi padanan aliran; entri arena memautkan setiap nombor penanda aras kepada sumber.
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
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