
Mesin robot Anda tidak memiliki GPU. Tempatkan server kebijakan GR00T pada GPU cloud sewaan, alirkan potongan aksi ke lengan, dan pelajari dengan tepat berapa biaya jaringan untuk Anda.
Raspberry Pi cukup untuk menggerakkan melalui bus serial dan mengambil frame dari dua kamera USB. Ini tidak cukup untuk menjalankan model tiga miliar parameter : README NVIDIA menempatkan inferensi GR00T N1.7 pada satu GPU dengan VRAM 16 GB atau lebih. Untuk melihat apa yang dilakukan checkpoint GR00T N1.7 Anda yang telah disetel dengan baik pada lengan tanpa membeli kartu, tempatkan kebijakan pada GPU cloud sewaan, pertahankan loop robot pada mesin dengan port USB, dan kirim observasi serta potongan aksi melalui jaringan.
Ini berfungsi, tidak gratis, dan harganya tidak merata di semua tugas. Di bawah: server kebijakan NVIDIA sendiri, tumpukan asinkron lerobot, perhitungan yang menyatakan sebelumnya apakah uplink Anda cukup cepat, dan rute platform. Semua ini diperiksa terhadap cabang utama Isaac-GR00T (N1.7 GA) dan lerobot 0.6.1 pada 23 Agustus 2026.
Yang perlu Anda ketahui
- •GR00T N1.7, GR00T N1.5, dan Pi0.5 adalah model dengan sekitar 3 miliar parameter. Tidak ada yang muat di pengontrol robot tanpa GPU diskrit.
- •Isaac-GR00T dan lerobot keduanya menyediakan pemisahan klien-server. Anda tidak menulis transportnya.
- •Observasi mendominasi biaya transmisi, bukan aksi: dua frame RGB 640x480 yang tidak terkompresi adalah 1.843.200 byte, sekitar 14.7 Mbit per panggilan, dan tidak ada tumpukan yang mengompresnya.
- •AY-Robots mencantumkan 20 hingga 485 ms per langkah aksi berdasarkan model. Waktu pulang-pergi internet ditambahkan di atas itu.
- •Inferensi jarak jauh cocok untuk pengambilan dan penempatan yang lambat, bukan gerakan reaktif yang cepat. Horizon eksekusi yang lebih panjang membeli waktu dan mengorbankan kesegaran observasi.
- •Tidak ada server yang aman pada IP publik seperti yang dikirimkan, dan lerobot memiliki RCE yang belum ditambal. Lakukan tunneling.
Mengapa kebijakan tidak akan muat di mesin robot
Dua dari lima kebijakan AY-Robots yang dapat dilatih berjalan pada kartu workstation, tiga tidak. Kolom di bawah ini adalah per langkah tindakan, dan itulah angka yang bersaing dengan waktu pulang-pergi jaringan Anda.
| Kebijakan | Parameter | Inferensi per langkah tindakan | Tingkat GPU untuk pelatihan | Episode minimum | Format dataset |
|---|---|---|---|---|---|
| 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 |

Bacalah itu sebagai keputusan, bukan hal sepele. pada 20 ms per langkah berjalan di mesin robot dan Anda tidak akan memikirkannya lagi. pada 485 ms telah menghabiskan sepertiga detik sebelum paket meninggalkan gedung Anda. dan menambahkan sisi akurasi.
GR00T N1.7, GR00T N1.5, dan Pi0.5 dimulai dari checkpoint vendor (nvidia/GR00T-N1.7-3B, nvidia/GR00T-N1.5-3B, lerobot/pi05_base). ACT tidak ada sampai Anda melatihnya pada tugas Anda sendiri, jadi tidak ada yang bisa disajikan secara remote sampai pekerjaan pelatihan telah berjalan. Lihat ACT pada SO-100.
Dua tumpukan klien-server yang sudah ada
Isaac-GR00T mengirimkan server permintaan-balasan ZeroMQ; lerobot mengirimkan server gRPC yang dibangun di sekitar inferensi asinkron. Keduanya menerima GR00T checkpoint. Daftar kebijakan yang didukung lerobot di async_inference/constants.py adalah act, smolvla, diffusion, tdmpc, vqbet, pi0, pi05 dan groot; daftar robotnya adalah 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 |
| Transportasi | ZeroMQ REQ/REP | gRPC, add_insecure_port / insecure_channel |
| Serialisasi | msgpack + msgpack_numpy, allow_pickle=False enforced | pickle.dumps / pickle.loads, marked # nosec |
| Port default | 5555 | 8080 |
| Bind default | 0.0.0.0, semua antarmuka | localhost |
| Otentikasi | api_token didukung oleh kelas, tidak diteruskan oleh CLI | tidak ada |
| Batas waktu klien | 15000 ms (PolicyClient timeout_ms) | 2 s batas waktu antrean observasi |
| Model eksekusi | sinkron: blokir, lalu eksekusi potongan | asinkron: eksekusi saat potongan berikutnya dihitung |
Baris serialisasi lebih penting dari yang terlihat. GR00T's MsgSerializer menolak payload ndarray object-dtype di kedua arah, karena msgpack_numpy akan menyerahkannya ke pickle. lerobot menggunakan pickle sebagai gantinya: policy_server.py memanggil pickle.loads pada data permintaan, robot_client.py mem-pickle observasi yang dikirimnya. Dapat dipertahankan di LAN yang tepercaya, tidak dapat dipertahankan setelah port dapat dijangkau dari internet.
Rute A: Server kebijakan GR00T milik NVIDIA
Ini adalah jalur yang didokumentasikan NVIDIA untuk perangkat keras SO-100 dan SO-101, dan yang harus digunakan jika checkpoint Anda berasal dari examples/finetune.sh dengan --embodiment-tag NEW_EMBODIMENT. Langkah-langkah ini menambahkan apa yang tidak disebutkan dalam README upstream: mendapatkan port ke robot tanpa mengeksposnya ke orang lain.
- 1Instal GR00T di kotak GPU sewaan
Submodul diperlukan, dan git-lfs harus ada sebelum kloning atau file parquet di
demo_datatiba sebagai pointer. flash-attn dan TensorRT disertakan dengan instalasi default. Jebakan pada image pod yang baru:torchcodec0.8.0 adalah satu-satunya backend video yang didukung dan hanya memuat FFmpeg 4 hingga 7. Ubuntu 25.10 dan 26.04 mengirimkan FFmpeg 8, sehingga GR00T gagal denganCould not load libtorchcodec. Instal FFmpeg di bawah 8 dan letakkan pustakanya diLD_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')" - 2Autentikasi terhadap backbone yang digerbang
Setiap checkpoint GR00T N1.7, termasuk fine-tune Anda sendiri, memuat
nvidia/Cosmos-Reason2-2Byang digerbang pada penggunaan pertama. Minta akses di halaman model dan masuk ke pod, atau pemuatan akan gagal denganGatedRepoError.bashuv run huggingface-cli login # or: export HF_TOKEN=<your_token> - 3Mulai server kebijakan
Arahkan
--model-pathke direktori checkpoint Anda; pada jalur tersebut server mengabaikan--modality-config-path, yang hanya dibaca pada jalur replay. Hilangkan--model-pathdan berikan--dataset-pathditambah--execution-horizonsebagai gantinya untuk ReplayPolicy yang memutar ulang tindakan yang direkam, cara termurah untuk membuktikan bahwa pengkabelan 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 loopback, seperti di atas, dan bawa port melalui SSH atau mesh bergaya WireGuard. Itu menyediakan enkripsi dan autentikasi yang tidak dimiliki soket ZeroMQ, selama sekitar satu milidetik.
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 membutuhkan lingkungan uv-nya sendiri: ia menginginkan driver robot lerobot, bukan tumpukan pelatihan.
eval_so100.pymengimpor so100_follower, so101_follower, dan koch_follower, jadi berikan--robot.typeyang sesuai dengan lengan Anda (README upstream menggunakan so101_follower). Kunci kamera harus sesuai dengan pelatihan: adaptor membaca persisfrontdanwrist, dan menukarnya akan menunjukkan tampilan yang salah kepada kebijakan.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 secara default menggunakan --host 0.0.0.0, mengikat setiap antarmuka: pada pod dengan IP publik, itu adalah titik akhir inferensi terbuka. Dan kelas PolicyServer menerima api_token dan memvalidasinya per permintaan, tetapi run_gr00t_server.py tidak pernah meneruskannya, sehingga server CLI tidak terautentikasi apa pun yang Anda konfigurasikan. Ikat ke 127.0.0.1 dan buat terowongan. Sebuah ZMQError: Address already in use berarti port 5555 sudah digunakan; teruskan --port.
Rute B: Inferensi Asinkron LeRobot
LeRobot memecahkan masalah yang berbeda. Alih-alih memblokir robot saat model berpikir, klien terus melangkah melalui antrean yang sudah dimilikinya sementara server menghitung bagian berikutnya. Ini adalah pemotongan aksi yang dikembangkan lebih lanjut, tumpukan asinkron yang diperkenalkan dengan SmolVLA. Ini juga berfungsi dengan checkpoint 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=TrueServer dimulai dalam keadaan kosong: ia tidak tahu kebijakan mana yang dilayaninya sampai jabat tangan pertama klien memberitahukannya, yang nyaman pada pod sewaan. Dua pengaturan yang menentukan apakah lengan bergerak dengan mulus adalah actions_per_chunk dan chunk_size_threshold (dokumen lerobot menyebut yang kedua g, mengikuti makalah SmolVLA), dan nilai-nilai yang didokumentasikan serta nilai-nilai yang dikirimkan tidak sesuai.
| Parameter | Nilai dalam kode lerobot 0.6.1 | Fungsinya | Catatan |
|---|---|---|---|
| actions_per_chunk | tidak ada default, wajib | Aksi yang dikembalikan per panggilan | Tabel dokumen mencantumkan 50; bidang dataclass tidak memiliki nilai default, sehingga CLI menuntut nilai. |
| chunk_size_threshold | 0.5 | Rasio pengisian antrean di atau di bawah mana klien mengirimkan observasi baru | Tabel dokumen mengatakan 0.7; kode dan contoh dokumen itu sendiri mengatakan 0.5. |
| fps | 30 | Laju kontrol klien, mengatur environment_dt = 1/fps | Turunkan jika antrean terus mengosongkan diri |
| inference_latency | 1/30 s (33.3 ms) | Latensi inferensi target di server | Sebuah target, bukan pengukuran |
| obs_queue_timeout | 2 s | Berapa lama server menunggu antrean observasi | Uplink yang lambat akan terlihat di sini terlebih dahulu |
| aggregate_fn_name | weighted_average | Bagaimana wilayah chunk yang tumpang tindih dicampur | 0.3 lama + 0.7 baru; latest_only, average, dan conservative juga disertakan. Registri adalah AGGREGATE_FUNCTIONS di configs.py, bukan robot_client.py seperti yang diklaim dokumen. |
CVE-2026-25874 adalah eksekusi kode jarak jauh tanpa autentikasi dalam pipeline inferensi asinkron lerobot: pickle.loads() pada data yang diterima melalui saluran gRPC tanpa autentikasi tanpa TLS, dapat dijangkau melalui panggilan SendPolicyInstructions, SendObservations, dan GetActions. CWE-502, skor dasar CVSS 3.1 9.8 dari NVD, skor dasar 4.0 9.3 dari CNA yang menugaskan. Catatan tersebut mencantumkan LeRobot through 0.5.1 sebagai yang terpengaruh dan menyebutkan server kebijakan serta klien robot, sehingga mesin di sebelah lengan Anda termasuk dalam cakupan. Peningkatan bukan solusinya: catatan tersebut mengutip masalah upstream 3047 dan patch, PR 3048, yang menukar pickle dengan safetensors plus JSON, dan pada 23 Agustus 2026 keduanya masih terbuka. policy_server.py di main masih memanggil pickle.loads pada data permintaan sementara serve() mengikat dengan add_insecure_port. Ikat ke loopback dan jangan pernah meneruskan port 8080.
Aritmetika yang menentukan apakah tautan Anda cukup cepat
Orang-orang melewatkan ini dan kemudian menghabiskan sehari untuk . Ini memakan waktu dua menit dan hampir selalu menentukan.
Dict observasi yang dikomentari di NVIDIA's eval_so100.py mengatakan apa yang dikirim melalui jaringan: dua array dengan bentuk (480, 640, 3) dalam uint8, enam float sendi, sebuah string bahasa. Itu adalah 921.600 byte per bingkai, 1.843.200 byte untuk dua kamera, sekitar 14,7 Mbit, dan tidak ada tumpukan yang mengompresnya dengan JPEG. Potongan data yang kembali adalah beberapa lusin langkah dari 6 float. Unggahan Anda yang menentukan segalanya, bukan unduhan Anda.
| Bandwidth unggah | Waktu untuk mengirim satu observasi (14,7 Mbit) | Putusan untuk lengan 30 FPS |
|---|---|---|
| 10 Mbit/s, unggahan rumah biasa | ~1.47 s | Tidak dapat digunakan. Lengan berhenti di antara setiap potongan data. |
| 25 Mbit/s | ~0.59 s | Hanya untuk pick-and-place lambat, dengan horizon eksekusi yang panjang. |
| 50 Mbit/s | ~0.29 s | Dapat digunakan untuk tugas-tugas yang disengaja. |
| 100 Mbit/s | ~0.15 s | Baik untuk pick-and-place, terlihat pada gerakan cepat. |
| 1 Gbit/s serat optik atau pusat data | ~0.015 s | Model menjadi hambatan utama. |
Anggaran yang harus Anda penuhi
Klien GR00T SO-100 bersifat sinkron: ia memanggil policy.get_action(obs), mengeksekusi action_horizon langkah dari chunk pada 30 FPS, lalu memanggil lagi. Ukuran chunk dan horizon adalah angka yang berbeda: panduan deployment NVIDIA merekomendasikan ukuran chunk aksi 16, setidaknya 32 jika digabungkan dengan chunking real-time, sementara eval_so100.py mengirimkan horizon eksekusi 8. Delapan langkah pada 30 FPS adalah 267 ms gerakan per panggilan, dan semua hal lain harus 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 solusi kasar dan bukan tanpa biaya: lengan bertindak berdasarkan observasi yang sudah usang. Solusi berprinsip adalah chunking real-time (RTC), yang menghitung chunk berikutnya saat chunk saat ini berjalan, membekukan tindakan yang dijamin akan dieksekusi dan mengisi sisanya; makalah RTC melaporkannya sebagai tangguh terhadap penundaan inferensi tanpa pelatihan ulang. Periksa statusnya terlebih dahulu. NVIDIA menandai RTC sebagai eksperimental, sebuah primitif model tingkat rendah yang dapat diakses melalui action_head.get_action(..., options={"rtc_overlap_steps": ..., "rtc_frozen_steps": ...}), tidak terhubung ke Gr00tPolicy atau jalur server-klien, di mana options tidak digunakan, tanpa pengujian dan tanpa contoh. Melalui server kebijakan, Anda mendapatkan eksekusi asinkron, bukan RTC.
NVIDIA melakukan benchmark GR00T N1.7 secara end-to-end 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 pipeline penuh TensorRT. L40 dalam mode eager membutuhkan 128.3 ms (7.8 Hz). NVIDIA menyebut 10 Hz sebagai minimum yang direkomendasikan untuk manipulasi tipikal, dan di bawah 10 Hz hanya cocok untuk tugas yang lambat dan tidak reaktif. Itu adalah tingkat perencanaan ulang: kebijakan 10 Hz masih dapat menggerakkan lengan 30 FPS melalui chunking aksi. Kamera kedua akan membawa Anda ke arah yang salah.
Ukur sebelum Anda percaya
Setiap angka di atas adalah prediksi. Empat perintah mengubahnya menjadi pengukuran, yang patut dijalankan sebelum mengalokasikan pod-hour untuk tugas yang tidak akan pernah berhasil.
- 1Dapatkan waktu pulang-pergi mentah
Terhadap pod, bukan CDN. Perhatikan deviasi sedekat mungkin dengan rata-rata: jitter menyebabkan lengan tersendat, bukan latensi rata-rata.
bashping -c 50 <pod-host> # the mdev column is the number that predicts stutter - 2Ukur uplink yang Anda miliki, bukan yang Anda bayar
Unggahan residensial biasanya sebagian kecil dari unduhan, dan itu adalah angka dalam tabel bandwidth 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 server-ke-klien dan waktu deserialisasi untuk setiap chunk. Pada rute B Anda tidak memerlukan alat eksternal.
textReceived action chunk for step #240 | Latest action: #232 | Incoming actions: 240:289 | Network latency (server->client): 187.44ms | Deserialization time: 3.10ms - 4Perhatikan antrean aksi mengering
Lewati
--debug_visualize_queue_size=Truedan klien akan memplot ukuran antrean saat runtime. Jika berulang kali mencapai nol, Anda kehabisan anggaran: turunkan fps, naikkan actions_per_chunk, atau naikkan chunk_size_threshold agar observasi lebih sering keluar.bashpython -m lerobot.async_inference.robot_client \ ... \ --debug_visualize_queue_size=True
Untuk apa sebenarnya inferensi jarak jauh itu berguna
- Anda dapat mengevaluasi kebijakan parameter 3 B pada perangkat keras nyata tanpa memiliki kartu yang harganya lebih mahal dari lengan robot.
- GPU disewa per jam, jadi checkpoint yang gagal hanya memakan biaya beberapa dolar.
- Sisi robot tetap kecil: driver lerobot, dua kamera, port serial, dan Anda dapat menukar checkpoint tanpa menyentuhnya.
- Observasi yang tidak terkompresi mendominasi biaya transmisi, dan unggahan residensial adalah kendala utama.
- Jitter lebih merugikan daripada latensi: tautan dengan rata-rata 40 ms dan lonjakan hingga 300 ms akan tersendat, sementara tautan stabil 120 ms tidak.
- Tugas reaktif cepat tidak dapat bertahan dalam perjalanan pulang-pergi pada horizon mana pun.
- Kedua server dikirim tanpa otentikasi dalam bentuk CLI, jadi pekerjaan tunneling adalah tanggung jawab Anda.
- Koneksi terputus di tengah chunk membuat lengan memegang aksi yang usang. Tambahkan watchdog Anda sendiri di sisi robot.
| Tugas | Berfungsi melalui internet publik? | Mengapa |
|---|---|---|
| Pilih objek statis, letakkan di wadah | Ya | Tidak ada yang bergerak antara observasi dan aksi. |
| Susun balok dengan kecepatan yang disengaja | Ya, pada action_horizon 16 atau lebih | Kesalahan terakumulasi cukup lambat untuk diperbaiki pada chunk berikutnya. |
| Buka laci, masukkan objek | Biasanya | Banyak kontak tetapi lambat. Perhatikan gerakan berhenti-dan-jalan saat kontak. |
| Ikuti objek bergerak | Tidak | Kebijakan bertindak berdasarkan observasi yang berusia 300 ms hingga 1 detik. |
| Menangkap, menyeimbangkan, atau pulih dari selip | Tidak | Jendela koreksi lebih pendek dari satu perjalanan pulang-pergi. |
| Loop tertutup sinkron 30 Hz | Tidak | Anggarannya adalah 33 ms ujung ke ujung. Bahkan LAN pun kesulitan. |
Jika eksekusi jarak jauh tersendat pada titik yang sama di setiap episode, jaringan mungkin bukan penyebabnya. Kebijakan yang ragu-ragu pada sudut sendi yang sama setiap kali biasanya merupakan masalah data; lihat halaman mode kegagalan, khususnya kebijakan yang hanya berfungsi dalam satu pengaturan dan loss turun tetapi kebijakan tidak melakukan apa-apa.
Melakukannya sendiri vs melakukannya di AY-Robots
- Sewa GPU di pasar spot dan tunggu VRAM yang cukup dengan harga yang Anda inginkan.
- Instal CUDA, uv, torchcodec ffmpeg yang diterima, dan GR00T stack dengan submodule.
- Minta akses ke backbone `nvidia/Cosmos-Reason2-2B` yang dibatasi dan letakkan token di pod.
- Tarik checkpoint Anda ke pod.
- Mulai server di loopback, lalu bangun terowongan SSH dari mesin robot.
- Instal lingkungan kedua di mesin robot untuk klien dan driver.
- Cocokkan kunci kamera, nama sambungan, dan instruksi bahasa dengan apa yang dilihat checkpoint.
- Awasi pod. A100 yang terlupakan berjalan semalaman menghabiskan biaya lebih dari eksperimen.
Tagihan GPU tidak berhenti saat robot berhenti. Sebagian besar uang yang hilang pada inferensi jarak jauh masuk ke server yang tetap aktif setelah semua orang pergi. Atur alarm, atau otomatiskan pembongkaran.
- Pilih kebijakan terlatih yang ingin Anda jalankan.
- `/api/inference/pod` secara otomatis menyediakan pod GPU cloud yang melayani kebijakan tersebut.
- Klien robot lokal berbicara dengan endpoint tersebut. Checkpoint dasar adalah milik vendor sendiri: `nvidia/GR00T-N1.7-3B`, `nvidia/GR00T-N1.5-3B`, `lerobot/pi05_base`. ACT tidak memiliki satupun.
- Pod membawa watchdog yang menganggur dan menghancurkan dirinya sendiri setelah periode menganggur, sehingga tidak ada yang terus menagih secara diam-diam.
- Operasi yang sama tersedia dari terminal dan untuk agen AI, sehingga loop dapat diskrip.
Penyediaan otomatis menghilangkan pekerjaan penyiapan dan tagihan pod yang terlupakan, bukan fisika. Inferensi masih harus berada di samping servo untuk tugas cepat: loop kontrol adalah 20 hingga 485 ms per langkah tindakan tergantung pada model, dan perjalanan pulang-pergi internet publik di atas itu mengubah kebijakan yang berfungsi menjadi kebijakan yang ragu-ragu.
- Panduan klien untuk sisi lokal koneksi
- Jalankan kebijakan pertama Anda untuk panduan
- CLI dan server MCP untuk versi yang diskrip
- Dokumen keamanan

Berapa biaya sesi inferensi jarak jauh
Dua angka penting: tarif per jam kartu, dan berapa lama Anda membiarkannya berjalan. Yang pertama dipublikasikan; yang kedua mengejutkan orang.
| Kartu | Runpod community cloud | Runpod secure cloud | Cocok 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 cepat |
| H100 PCIe 80 GB | 1.99 USD/h | 2.89 USD/h | Tingkat tercepat; angka eager 11.7 Hz NVIDIA adalah untuk H100 80GB HBM3 |
| L40S 48 GB | 0.79 USD/h | 0.99 USD/h | Hanya inferensi, di atas batas 16 GB |
| RTX 4090 24 GB | 0.34 USD/h | 0.74 USD/h | SmolVLA, ACT |
Tarif tersebut dibaca dari halaman harga Runpod pada 23 Agustus 2026, dan pasar spot bergerak. AY-Robots mengutip seluruh jalankan sebagai gantinya: 3 hingga 6 jam dengan 1.20 hingga 2.00 USD per jam pada tingkat A100 atau H100, sekitar 4 hingga 12 USD untuk jalankan GR00T atau Pi0.5; 2 hingga 5 jam dengan 0.30 hingga 0.60 USD per jam pada tingkat 24 GB, 1 hingga 3 USD untuk SmolVLA atau ACT. Sesi inferensi mengalahkan jalankan pelatihan dalam biaya hanya jika Anda menghentikannya, itulah fungsi idle watchdog. Lihat dokumen penagihan dan halaman harga.

Jika Anda lebih suka tidak melibatkan jaringan dalam loop
Inferensi jarak jauh memecahkan masalah perangkat keras dan menciptakan masalah latensi. Terkadang jawaban yang lebih baik adalah kebijakan yang sesuai dengan perangkat keras yang Anda miliki.
- ACT, sekitar 80 juta parameter dan 20 ms per langkah aksi, 50 episode minimum, kartu 24 GB apa pun. Dalam pengaturan tugas tunggal yang berulang, ini sering mengalahkan model 3 B jarak jauh, karena tidak pernah menunggu paket.
- SmolVLA, sekitar 450 juta parameter dan 245 ms per langkah aksi, 30 episode minimum. Ini mempertahankan pengkondisian bahasa yang tidak dimiliki ACT, dan dokumen lerobot menempatkannya sekitar 2 GB pada waktu inferensi dibandingkan sekitar 14 GB untuk PI0.
- ACT vs GR00T N1.7 untuk separuh akurasi dari pertukaran.
Ada juga jalan tengah: latih di cloud, evaluasi secara lokal. Penyetelan halus membutuhkan kartu 80 GB dan tidak peduli dengan latensi, jadi melatih GR00T N1.7 pada SO-100 secara jarak jauh tidak kontroversial. Hanya loop evaluasi yang memiliki batasan waktu nyata; dokumen pelatihan dan matriks model dan lengan mencakup separuh itu.
Belum ada lengan robot di meja?
Kendalikan SO-100 sungguhan di browser tanpa perlu mendaftar, bandingkan lima kebijakan yang dapat dilatih dengan angka latensi nyatanya, atau sewa GPU dan latih salah satunya. Tiga cara untuk memulai, tidak ada yang membutuhkan perangkat keras yang tidak Anda miliki.
Coba tanpa perangkat kerasPertanyaan yang sering diajukan
Bisakah saya menjalankan GR00T N1.7 di Raspberry Pi jika GPU-nya jarak jauh?▾
Ya, itulah tujuan pemisahan klien-server. Pi menjalankan driver lerobot, membaca dua kamera dan bus serial, dan mengirimkan observasi ke server policy; ia tidak pernah memuat model. Batasan berpindah dari VRAM ke bandwidth unggah: dua frame RGB 640x480 yang tidak terkompresi adalah 1.843.200 byte per panggilan, dan tidak ada stack yang mengompresnya.
Berapa banyak latensi yang sebenarnya ditambahkan oleh jaringan?▾
Waktu pulang-pergi ditambah waktu transfer observasi. Waktu transfer adalah 14.7 Mbit dibagi dengan bandwidth unggah Anda: kira-kira 147 ms pada tautan 100 Mbit/s, 1.47 s pada tautan 10 Mbit/s. Keduanya berada di atas waktu inferensi model itu sendiri, yang AY-Robots daftarkan sebagai 152 ms untuk GR00T N1.7 dan 485 ms untuk Pi0.5. Ukur dengan ping dan iperf3 terhadap pod, bukan server uji kecepatan.
Apakah inferensi jarak jauh cukup baik untuk tugas nyata?▾
Untuk tugas pick-and-place yang lambat dan disengaja, ya. Untuk apa pun yang reaktif, tidak. Panduan deployment NVIDIA menetapkan persyaratan langkah tunggal sinkron sekitar 33 ms ujung ke ujung pada 30 FPS, dan mencatat bahwa penangkapan, jaringan, inferensi, dan pasca-pemrosesan secara rutin melebihi itu tanpa melibatkan internet.
Port mana yang digunakan server dan apakah aman untuk membukanya?▾
PolicyServer Isaac-GR00T secara default menggunakan port 5555 melalui ZeroMQ dan mengikat 0.0.0.0 di CLI-nya. lerobot secara default menggunakan port 8080 melalui gRPC dan mengikat localhost. Keduanya tidak aman untuk diekspos: kelas GR00T mendukung api_token tetapi run_gr00t_server.py tidak pernah meneruskannya, dan lerobot mem-pickle data melalui saluran gRPC yang tidak aman, yang merupakan CVE-2026-25874. Ikat ke loopback dan gunakan terowongan SSH.
Apakah peningkatan lerobot memperbaiki CVE-2026-25874?▾
Tidak per 23 Agustus 2026. Catatan CVE mencantumkan LeRobot hingga 0.5.1 sebagai yang terpengaruh dan PyPI mengirimkan 0.6.1, tetapi permintaan pull yang akan menghapus pickle dari pipeline asinkron masih terbuka, dan policy_server.py di main masih memanggil pickle.loads pada data permintaan. Perlakukan isolasi jaringan sebagai mitigasi, bukan peningkatan versi, dan asumsikan klien sisi robot juga termasuk dalam cakupan.
Bisakah saya menggunakan klien asinkron lerobot dengan checkpoint GR00T?▾
Ya. lerobot 0.6.1 mencantumkan groot di SUPPORTED_POLICIES bersama act, smolvla, diffusion, tdmpc, vqbet, pi0, dan pi05, dan so100_follower serta so101_follower ada di SUPPORTED_ROBOTS. Teruskan --policy_type=groot dan arahkan --pretrained_name_or_path ke checkpoint Anda. Anda mendapatkan eksekusi asinkron, yang tidak diimplementasikan oleh contoh GR00T SO-100, dengan biaya transportasi pickle.
Versi singkat
Inferensi jarak jauh untuk 3 B policy adalah masalah rekayasa yang terpecahkan dengan masalah fisika yang belum terpecahkan. Rekayasa tersebut adalah dua perintah dan terowongan SSH. Fisikanya adalah bahwa observasi 1.8 MB harus mencapai GPU di negara lain dan kembali sebelum lengan kehabisan tindakan. Lakukan perhitungan sebelum menyewa apa pun, pilih tugas yang mentolerir observasi yang usang, dan tingkatkan horizon eksekusi daripada berharap tautan membaik.
Jika Anda belum merekam dataset, rekam dataset pertama Anda dan panduan pengaturan SO-100 didahulukan, dan entri format dataset LeRobot menjelaskan apa yang direkam oleh perekam. Latar belakangnya ada di model aksi bahasa-visi dan karya kebijakan pencocokan aliran; entri arena menautkan setiap angka benchmark ke sumber.
Sources
- NVIDIA Isaac-GR00T: repositori N1.7 dan README (batas bawah inferensi 16 GB, instalasi, backbone Cosmos-Reason2-2B yang digerbang, batasan FFmpeg)
- run_gr00t_server.py: CLI server kebijakan GR00T, default ServerConfig (host 0.0.0.0, port 5555) dan jalur ReplayPolicy
- server_client.py: PolicyServer dan PolicyClient, batas allow_pickle=False MsgSerializer, api_token, timeout_ms
- eval_so100.py: klien kebijakan SO-100, default EvalConfig dan loop kontrol sinkron
- Isaac-GR00T SO100/SO101 contoh: konversi dataset, penyetelan halus dan perintah evaluasi loop tertutup
- Isaac-GR00T Panduan Penerapan Dunia Nyata: anggaran sinkron 33 ms, stop-and-go, ukuran chunk aksi, status RTC
- Isaac-GR00T Rekomendasi Perangkat Keras: frekuensi inferensi per GPU dan minimum 10 Hz
- Isaac-GR00T Panduan Penerapan dan Inferensi: hasil benchmark latensi per komponen
- LeRobot: tutorial Inferensi Asinkron (PolicyServer, RobotClient, tabel parameter yang didokumentasikan)
- lerobot async_inference/configs.py: default PolicyServerConfig dan RobotClientConfig, registri AGGREGATE_FUNCTIONS
- lerobot async_inference/policy_server.py: pickle.loads pada data permintaan, add_insecure_port, nama panggilan gRPC
- lerobot robot_client.py: transport gRPC, serialisasi pickle, pencatatan latensi
- CVE-2026-25874: eksekusi kode jarak jauh deserialisasi tidak aman LeRobot melalui gRPC, terpengaruh hingga 0.5.1
- Black, Galliker dan Levine, Eksekusi Real-Time Kebijakan Aliran Chunking Aksi (chunking waktu nyata)
- Runpod harga GPU: tarif per jam cloud komunitas dan aman untuk A100, H100, L40S dan 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