
Вашата роботизирана машина няма GPU. Поставете GR00T сървъра за политики на нает облачен GPU, предавайте пакети от действия към ръката и разберете точно колко ви струва мрежата.
Един Raspberry Pi е достатъчен, за да управлява през серийна шина и да извлича кадри от две USB камери. Не е достатъчно да се изпълнява тримилиарден параметър : README на NVIDIA поставя извода на GR00T N1.7 на един GPU с 16 GB или повече VRAM. За да видите какво прави вашият фино настроен чекпойнт на ръката, без да купувате карта, поставете политиката на нает облачен GPU, запазете цикъла на робота на машината с USB портовете и изпращайте наблюдения и части от действия по мрежата.
Работи, не е безплатно и цената не е равномерно разпределена между задачите. По-долу: собственият сървър за политики на NVIDIA, асинхронният стек на lerobot, аритметиката, която предварително казва дали вашата връзка за качване е достатъчно бърза, и маршрутът на платформата. Всичко това е проверено спрямо основния клон на Isaac-GR00T (N1.7 GA) и lerobot 0.6.1 на 23 август 2026 г.
Какво трябва да знаете
- •GR00T N1.7, GR00T N1.5 и Pi0.5 са модели с приблизително 3 милиарда параметъра. Нито един не се побира на контролер на робот без дискретен GPU.
- •Isaac-GR00T и lerobot предлагат разделение клиент-сървър. Вие не пишете транспорта.
- •Наблюденията доминират цената на мрежовия трафик, а не действията: два некомпресирани 640x480 RGB кадъра са 1,843,200 байта, около 14.7 Mbit на повикване, и нито един стек не ги компресира.
- •AY-Robots изброява от 20 до 485 ms на стъпка на действие според модела. Интернет кръговите пътувания се добавят към това.
- •Отдалеченият извод е подходящ за бавно вземане и поставяне, а не за бързо реактивно движение. По-дългият хоризонт на изпълнение печели време и струва свежест на наблюдението.
- •Нито един сървър не е безопасен на публичен IP адрес, както е доставен, а този на lerobot съдържа непачнат RCE. Тунелирайте го.
Защо политиката няма да се побере на машината на робота
Две от петте политики, които AY-Robots може да обучи, работят на работна станция, три не. Колоната по-долу е за стъпка на действие и това е числото, което се конкурира с времето за двупосочно пътуване на вашата мрежа.
| Политика | Параметри | Извод за стъпка на действие | Ниво на GPU за обучение | Мин. епизоди | Формат на набора от данни |
|---|---|---|---|---|---|
| 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 |

Разглеждайте това като решение, а не като любопитен факт. при 20 ms на стъпка работи на машината на робота и никога повече не мислите за това. при 485 ms е изразходвал една трета от секундата, преди пакет да напусне вашата сграда. Сравнението на и добавят страната на точността.
GR00T N1.7, GR00T N1.5 и Pi0.5 започват от контролна точка на доставчик (nvidia/GR00T-N1.7-3B, nvidia/GR00T-N1.5-3B, lerobot/pi05_base). ACT не съществува, докато не го обучите за ваша собствена задача, така че няма какво да се обслужва дистанционно, докато не приключи задача за обучение. Вижте ACT на SO-100.
Двата клиент-сървър стека, които вече съществуват
Isaac-GR00T предоставя ZeroMQ сървър за заявки-отговори; lerobot предоставя gRPC сървър, изграден около асинхронно извеждане. И двата приемат GR00T контролна точка. Поддържаният списък с политики на lerobot в async_inference/constants.py е act, smolvla, diffusion, tdmpc, vqbet, pi0, pi05 и groot; неговият списък с роботи е so100_follower, so101_follower, bi_so_follower и omx_follower.
| Isaac-GR00T PolicyServer | lerobot асинхронно извеждане | |
|---|---|---|
| Входна точка | gr00t/eval/run_gr00t_server.py | python -m lerobot.async_inference.policy_server |
| Транспорт | ZeroMQ REQ/REP | gRPC, add_insecure_port / insecure_channel |
| Сериализация | msgpack + msgpack_numpy, allow_pickle=False enforced | pickle.dumps / pickle.loads, marked # nosec |
| Порт по подразбиране | 5555 | 8080 |
| Обвързване по подразбиране | 0.0.0.0, all interfaces | localhost |
| Удостоверяване | api_token, поддържан от класа, не се предава от CLI | none |
| Таймаут на клиента | 15000 ms (PolicyClient timeout_ms) | 2 s observation queue timeout |
| Модел на изпълнение | синхронно: блокира, след което изпълнява частта | асинхронно: изпълнява, докато следващата част се изчислява |
Редът за сериализация е по-важен, отколкото изглежда. MsgSerializer на GR00T отказва полезни товари от ndarray с тип обект в двете посоки, защото в противен случай msgpack_numpy би ги предал на pickle. lerobot вместо това използва pickle: policy_server.py извиква pickle.loads върху данните от заявката, robot_client.py сериализира наблюдението, което изпраща. Защитимо в доверена LAN мрежа, незащитимо, след като портът е достъпен от интернет.
Маршрут А: Собствен GR00T сървър за политики на NVIDIA
Това е пътят, който NVIDIA документира за хардуер SO-100 и SO-101, и този, който да използвате, ако вашата контролна точка е създадена от examples/finetune.sh с --embodiment-tag NEW_EMBODIMENT. Стъпките добавят това, което README нагоре по веригата пропуска: как да прехвърлите порта към робота, без да го излагате на всички останали.
- 1Инсталирайте GR00T на наетия GPU сървър
Подмодулите са задължителни, а git-lfs трябва да съществува преди клонирането, иначе parquet файловете в
demo_dataще пристигнат като указатели. flash-attn и TensorRT идват с инсталацията по подразбиране. Капанът при ново изображение на под:torchcodec0.8.0 е единственият поддържан видео бекенд и зарежда само FFmpeg 4 до 7. Ubuntu 25.10 и 26.04 идват с FFmpeg 8, така че GR00T се проваля сCould not load libtorchcodec. Инсталирайте FFmpeg под версия 8 и поставете неговите библиотеки в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')" - 2Удостоверяване срещу затворения гръбнак
Всяка контролна точка на GR00T N1.7, включително вашата собствена фина настройка, зарежда затворения
nvidia/Cosmos-Reason2-2Bпри първо използване. Заявете достъп на страницата на модела и влезте в пода, в противен случай зареждането ще се провали сGatedRepoError.bashuv run huggingface-cli login # or: export HF_TOKEN=<your_token> - 3Стартирайте сървъра за политики
Насочете
--model-pathкъм вашата директория с контролни точки; по този път сървърът игнорира--modality-config-path, който се чете само по пътя за преиграване. Пропуснете--model-pathи вместо това предайте--dataset-pathплюс--execution-horizonза ReplayPolicy, която преиграва записани действия, най-евтиният начин да докажете, че окабеляването работи.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 - 4Тунелирайте порт 5555 към машината на робота
Свържете се с loopback, както по-горе, и пренесете порта през SSH или мрежа от типа на WireGuard. Това осигурява криптирането и удостоверяването, които ZeroMQ сокетът не предоставя, за около милисекунда.
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Стартирайте клиента на робота до сервомоторите
Клиентът се нуждае от собствена uv среда: той иска драйверите за роботи на lerobot, а не стека за обучение.
eval_so100.pyимпортира so100_follower, so101_follower и koch_follower, така че предайте--robot.type, съответстващ на вашата ръка (README нагоре по веригата използва so101_follower). Ключовете на камерата трябва да съответстват на обучението: адаптерът чете точноfrontиwrist, а размяната им показва на политиката грешен изглед.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 по подразбиране използва --host 0.0.0.0, свързвайки всеки интерфейс: на под с публичен IP това е отворена крайна точка за извод. А класът PolicyServer приема api_token и го валидира за всяка заявка, но run_gr00t_server.py никога не подава такъв, така че CLI сървърът е без удостоверяване, независимо какво конфигурирате. Свържете се към 127.0.0.1 и тунелирайте. ZMQError: Address already in use означава, че порт 5555 е зает; подайте --port.
Маршрут Б: асинхронен извод с lerobot
lerobot решава различен проблем. Вместо да блокира робота, докато моделът мисли, клиентът продължава да преминава през опашката, която вече има, докато сървърът изчислява следващия сегмент. Това е разделяне на действията на сегменти развито по-нататък, асинхронният стек, въведен със SmolVLA. Работи и с 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=TrueСървърът стартира празен: той не знае каква политика обслужва, докато първото ръкостискане на клиента не му каже, което е удобно на нает под. Двата регулатора, които решават дали ръката се движи плавно, са actions_per_chunk и chunk_size_threshold (документацията на lerobot нарича второто g, по името на статията SmolVLA), а документираните и доставените стойности не съвпадат.
| Параметър | Стойност в кода на lerobot 0.6.1 | Какво прави | Забележка |
|---|---|---|---|
| actions_per_chunk | без подразбиране, задължително | Действия, върнати на извикване | Таблицата в документацията посочва 50; полето на dataclass няма подразбиране, така че CLI изисква стойност |
| chunk_size_threshold | 0.5 | Съотношение на запълване на опашката, при което или под което клиентът изпраща ново наблюдение | Таблицата в документацията казва 0.7; кодът и собственият пример на документацията казват 0.5 |
| fps | 30 | Скорост на управление на клиента, задава environment_dt = 1/fps | Намалете го, ако опашката продължава да се изпразва |
| inference_latency | 1/30 s (33.3 ms) | Целева латентност на извода на сървъра | Цел, а не измерване |
| obs_queue_timeout | 2 s | Колко дълго сървърът чака на опашката за наблюдения | Бавната връзка нагоре се проявява първо тук |
| aggregate_fn_name | weighted_average | Как се смесват припокриващи се региони на части | 0.3 старо + 0.7 ново; също се доставят latest_only, average и conservative. Регистърът е AGGREGATE_FUNCTIONS в configs.py, а не robot_client.py, както твърди документацията. |
CVE-2026-25874 е неудостоверено отдалечено изпълнение на код в асинхронния изводен пайплайн на lerobot: pickle.loads() върху данни, получени по неудостоверен gRPC канал без TLS, достъпно чрез извикванията SendPolicyInstructions, SendObservations и GetActions. CWE-502, CVSS 3.1 base score 9.8 from NVD, 4.0 base score 9.3 from the assigning CNA. Записът изброява LeRobot through 0.5.1 като засегнат и назовава както сървъра за политики, така и клиента на робота, така че машината до вашата ръка е в обхват. Надграждането не е решението: записът цитира проблем 3047 нагоре по веригата и пача, PR 3048, който заменя pickle със safetensors плюс JSON, и на 23 август 2026 г. и двата все още са отворени. policy_server.py на main все още извиква pickle.loads върху данни от заявки, докато serve() се свързва с add_insecure_port. Свържете се с loopback и никога не пренасочвайте порт 8080.
Аритметиката, която решава дали вашата връзка е достатъчно бърза
Хората пропускат това и след това прекарват един ден в . Отнема две минути и почти винаги е решаващо.
Коментираният речник за наблюдение в eval_so100.py на NVIDIA казва какво се предава по мрежата: два масива с форма (480, 640, 3) в uint8, шест плаващи стойности за ставите, езиков низ. Това са 921,600 байта на кадър, 1,843,200 байта за две камери, около 14.7 Mbit, и нито един стек не го компресира с JPEG. Връщащият се пакет е няколко десетки стъпки от 6 плаващи стойности. Вашият ъплоуд решава всичко, а не вашият даунлоуд.
| Скорост на качване | Време за изпращане на едно наблюдение (14.7 Mbit) | Присъда за ръка с 30 FPS |
|---|---|---|
| 10 Mbit/s, типичен домашен ъплоуд | ~1.47 s | Неизползваемо. Ръката спира между всеки пакет. |
| 25 Mbit/s | ~0.59 s | Само бавно взимане и поставяне, с дълъг хоризонт на изпълнение. |
| 50 Mbit/s | ~0.29 s | Работещо за целенасочени задачи. |
| 100 Mbit/s | ~0.15 s | Добре за взимане и поставяне, видимо при бързо движение. |
| 1 Gbit/s оптична връзка или център за данни | ~0.015 s | Моделът става тясното място вместо това. |
Бюджетът, в който трябва да се впишете
Клиентът GR00T SO-100 е синхронен: той извиква policy.get_action(obs), изпълнява първите action_horizon стъпки от блока при 30 FPS, след което извиква отново. Размерът на блока и хоризонтът са различни числа: ръководството за внедряване на NVIDIA препоръчва размер на блока за действие от 16, поне 32 при комбиниране с chunking в реално време, докато eval_so100.py предоставя хоризонт на изпълнение от 8. Осем стъпки при 30 FPS са 267 ms движение на извикване и всичко останало трябва да се побере в това време.
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Увеличаването на хоризонта е грубо решение и не е безплатно: ръката действа въз основа на наблюдение, което вече е старо. Принципното решение е chunking в реално време (real-time chunking), което изчислява следващия блок, докато текущият се изпълнява, замразява действията, гарантирани за изпълнение, и довършва останалите; документът за RTC го описва като устойчиво на забавяне на извода без преобучение. Проверете първо какво е състоянието му. NVIDIA отбелязва RTC като експериментално, ниско ниво на моделна примитива, достъпна чрез action_head.get_action(..., options={"rtc_overlap_steps": ..., "rtc_frozen_steps": ...}), не е свързано с Gr00tPolicy или пътя сървър-клиент, където options е неизползвано, без тестове и без пример. Чрез сървър за политики получавате асинхронно изпълнение, а не RTC.
NVIDIA тества GR00T N1.7 от край до край при 4 стъпки на денойзинг с една камера. На H100 80GB HBM3: 85.8 ms (11.7 Hz) в PyTorch eager, 48.6 ms (20.6 Hz) с torch.compile, 27.9 ms (35.9 Hz) с пълния TensorRT пайплайн. L40 в eager режим отнема 128.3 ms (7.8 Hz). NVIDIA нарича 10 Hz препоръчителния минимум за типична манипулация, а под 10 Hz е подходящо само за бавни, нереактивни задачи. Това са препланиране скорости: политика от 10 Hz все още може да управлява ръка с 30 FPS чрез action chunking. Втора камера ви движи в грешна посока.
Измерете го, преди да му се доверите
Всяко число по-горе е прогноза. Четири команди го превръщат в измерване, което си струва да се изпълни, преди да се ангажира pod-час за задача, която никога нямаше да проработи.
- 1Получете необработеното време за двупосочно пътуване
Спрямо пода, а не CDN. Следете отклонението толкова внимателно, колкото и средната стойност: трептенето кара ръката да заеква, а не средната латентност.
bashping -c 50 <pod-host> # the mdev column is the number that predicts stutter - 2Измерете връзката за качване, която имате, а не тази, за която плащате
Качването в жилищни условия обикновено е част от изтеглянето и това е числото в таблицата за честотна лента по-горе.
bash# on the pod iperf3 -s # on the robot machine, -R omitted so this measures upload iperf3 -c <pod-host> -t 30 - 3Прочетете собствения лог за латентност на клиента
Клиентът на робота lerobot записва латентността от сървър към клиент и времето за десериализация за всеки блок. По маршрут B не се нуждаете от външни инструменти.
textReceived action chunk for step #240 | Latest action: #232 | Incoming actions: 240:289 | Network latency (server->client): 187.44ms | Deserialization time: 3.10ms - 4Наблюдавайте изпразването на опашката за действия
Подайте
--debug_visualize_queue_size=Trueи клиентът ще изчертае размера на опашката по време на изпълнение. Ако многократно достига нула, значи сте извън бюджета: намалете fps, увеличете actions_per_chunk или увеличете chunk_size_threshold, така че наблюденията да се изпращат по-често.bashpython -m lerobot.async_inference.robot_client \ ... \ --debug_visualize_queue_size=True
За какво всъщност е добър отдалеченият инференс
- Можете да оцените политика с 3 милиарда параметъра на реален хардуер, без да притежавате карта, която струва повече от ръката.
- GPU-то се наема на час, така че неуспешна контролна точка струва няколко долара.
- Страната на робота остава малка: драйвери на lerobot, две камери, сериен порт и сменяте контролните точки, без да я докосвате.
- Некомпресираните наблюдения доминират разходите за пренос, а домашният ъплоуд е ограничаващият фактор.
- Трептенето (jitter) вреди повече от латентността: връзка със средно 40 ms и пикове до 300 ms заеква, докато стабилна връзка от 120 ms не.
- Бързите реактивни задачи не оцеляват при двупосочното пътуване при какъвто и да е хоризонт.
- И двата сървъра се доставят без удостоверяване във формат CLI, така че работата по тунелирането е ваша.
- Прекъсната връзка по средата на пакета оставя ръката да държи остаряло действие. Добавете свой собствен робот-страж от страна на робота.
| Задача | Работи ли през публичния интернет? | Защо |
|---|---|---|
| Вземете статичен обект, поставете го в кошче | Да | Нищо не се движи между наблюдението и действието. |
| Подредете блокове с премерено темпо | Да, при action_horizon 16 или повече | Грешките се натрупват достатъчно бавно, за да бъдат коригирани в следващия пакет. |
| Отворете чекмедже, поставете обект | Обикновено | Богато на контакт, но бавно. Внимавайте за спиране и тръгване при контакт. |
| Следвайте движещ се обект | Не | Политиката действа въз основа на наблюдение, старо от 300 ms до 1 s. |
| Хванете, балансирайте или се възстановете от подхлъзване | Не | Прозорецът за корекция е по-къс от едно двупосочно пътуване. |
| 30 Hz синхронна затворена верига | Не | Бюджетът е 33 ms от край до край. Дори LAN се затруднява. |
Ако отдалечено изпълнение заеква в една и съща точка във всеки епизод, мрежата вероятно не е причината. Политика, която се колебае при един и същ ъгъл на ставата всеки път, обикновено е проблем с данните; вижте страниците за режими на отказ, по-специално политика, която работи само в една настройка и загубата намалява, но политиката не прави нищо.
Да го направите сами срещу да го направите на AY-Robots
- Наемете GPU на спот пазар и изчакайте достатъчно VRAM на цена, която ви харесва.
- Инсталирайте CUDA, uv, ffmpeg torchcodec, който се поддържа, и GR00T стека с подмодули.
- Заявете достъп до затворения
nvidia/Cosmos-Reason2-2Bбекбон и поставете токен на подовата инстанция. - Изтеглете своя чекпойнт на подовата инстанция.
- Стартирайте сървъра на loopback, след което изградете SSH тунел от машината на робота.
- Инсталирайте втора среда на машината на робота за клиента и драйверите.
- Съпоставете ключовете на камерата, имената на ставите и езиковата инструкция с това, което е видял чекпойнтът.
- Наблюдавайте подовата инстанция. Забравен A100, работещ през нощта, струва повече от експеримента.
Сметката за GPU не спира, когато роботът спре. Повечето пари, загубени при отдалечен инференс, отиват за сървър, който е останал активен, след като всички са си тръгнали. Настройте аларма или автоматизирайте деинсталацията.
- Изберете обучената политика, която искате да изпълните.
/api/inference/podавтоматично осигурява облачна GPU подова инстанция, която обслужва тази политика.- Локалният клиент на робота комуникира с тази крайна точка. Базовите чекпойнти са на самите доставчици:
nvidia/GR00T-N1.7-3B,nvidia/GR00T-N1.5-3B,lerobot/pi05_base. ACT няма такива. - Подовите инстанции имат механизъм за наблюдение на неактивност и се унищожават след период на бездействие, така че нищо не продължава да таксува безшумно.
- Същите операции са достъпни от терминал и за AI агенти, така че цикълът може да бъде скриптиран.
Автоматичното осигуряване премахва работата по настройка и сметката за забравена подова инстанция, но не и физиката. Инференсът все още трябва да е близо до сервомоторите за бързи задачи: контролният цикъл е от 20 до 485 ms на стъпка на действие в зависимост от модела, а публичните интернет пътувания отгоре превръщат работещата политика в колеблива.
- Ръководство за клиента за локалната страна на връзката
- Изпълнете първата си политика за ръководството
- CLI и MCP сървър за скриптираната версия
- Документация за сигурност

Какво струва една отдалечена инференс сесия
Две числа са от значение: почасовата ставка на картата и колко дълго я оставяте да работи. Първото е публикувано; второто изненадва хората.
| Карта | Runpod общностен облак | Runpod защитен облак | Подходяща за |
|---|---|---|---|
| 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 | Същата, малко по-бърза |
| H100 PCIe 80 GB | 1.99 USD/h | 2.89 USD/h | Най-бързо ниво; 11.7 Hz eager стойността на NVIDIA е за H100 80GB HBM3 |
| L40S 48 GB | 0.79 USD/h | 0.99 USD/h | Само за инференция, над 16 GB праг |
| RTX 4090 24 GB | 0.34 USD/h | 0.74 USD/h | SmolVLA, ACT |
Тези цени са прочетени от страницата за цени на Runpod на 23 август 2026 г. и спот пазарите се променят. AY-Robots вместо това цитира цяло изпълнение: от 3 до 6 часа при 1.20 до 2.00 USD на час на ниво A100 или H100, около 4 до 12 USD за изпълнение на GR00T или Pi0.5; от 2 до 5 часа при 0.30 до 0.60 USD на час на ниво 24 GB, от 1 до 3 USD за SmolVLA или ACT. Сесията за инференция превъзхожда тренировъчното изпълнение по отношение на разходите само ако я спрете, за което служи idle watchdog. Вижте документацията за таксуване и страницата за цени.

Ако предпочитате мрежата да не е в цикъла
Отдалеченият инференс решава хардуерен проблем и създава проблем с латентността. Понякога по-добрият отговор е политика, която отговаря на хардуера, с който разполагате.
- ACT, приблизително 80 M параметъра и 20 ms на стъпка на действие, минимум 50 епизода, всяка 24 GB карта. При повтаряща се настройка за една задача често превъзхожда отдалечен 3 B модел, защото никога не чака пакет.
- SmolVLA, приблизително 450 M параметъра и 245 ms на стъпка на действие, минимум 30 епизода. Той запазва езиковото кондициониране, което липсва на ACT, а документацията на lerobot го оценява на около 2 GB по време на инференс срещу приблизително 14 GB за PI0.
- ACT vs GR00T N1.7 за половината от компромиса, свързана с точността.
Има и среден път: обучение в облака, оценка локално. изисква 80 GB карта и не се интересува от латентност, така че отдалечено е безспорно. Само цикъла за оценка има ограничение в реално време; и покриват тази половина.
Все още нямате ръка на бюрото?
Управлявайте истински SO-100 в браузъра без регистрация, сравнете петте обучими политики с техните реални стойности на латентност или наемете GPU и обучете една. Три начина да започнете, нито един от които не изисква хардуер, който не притежавате.
Изпробвайте го без хардуерЧесто задавани въпроси
Мога ли да стартирам GR00T N1.7 на Raspberry Pi, ако GPU е отдалечен?▾
Да, за това служи разделението клиент-сървър. Pi стартира драйверите на lerobot, чете две камери и серийна шина и изпраща наблюдения към сървъра за политики; той никога не зарежда модела. Ограничението се премества от VRAM към пропускателна способност за качване: две некомпресирани 640x480 RGB кадъра са 1,843,200 байта на извикване и нито един от стековете не ги компресира.
Колко латентност всъщност добавя мрежата?▾
Време за двупосочно пътуване плюс време за прехвърляне на наблюдение. Времето за прехвърляне е 14.7 Mbit, разделено на вашата пропускателна способност за качване: приблизително 147 ms при 100 Mbit/s връзка, 1.47 s при 10 Mbit/s връзка. И двете се добавят към собственото време за извод на модела, което AY-Robots посочва като 152 ms за GR00T N1.7 и 485 ms за Pi0.5. Измерете с ping и iperf3 срещу подовата станция, а не срещу сървър за тест на скоростта.
Достатъчен ли е отдалеченият извод за реална задача?▾
За бавно, целенасочено взимане и поставяне – да. За всичко реактивно – не. Ръководството за внедряване на NVIDIA поставя изискването за синхронна еднократна стъпка на приблизително 33 ms от край до край при 30 FPS и отбелязва, че заснемането, мрежата, изводът и последващата обработка рутинно надвишават това без участието на интернет.
Кой порт използват сървърите и безопасно ли е да се отвори?▾
PolicyServer на Isaac-GR00T по подразбиране използва порт 5555 през ZeroMQ и свързва 0.0.0.0 в своя CLI. lerobot по подразбиране използва порт 8080 през gRPC и свързва localhost. Нито едно от двете не е безопасно за излагане: класът GR00T поддържа api_token, но run_gr00t_server.py никога не предава такъв, а lerobot сериализира данни през несигурен gRPC канал, което е CVE-2026-25874. Свържете към loopback и използвайте SSH тунел.
Поправя ли надграждането на lerobot CVE-2026-25874?▾
Не към 23 август 2026 г. Записът на CVE изброява LeRobot до 0.5.1 като засегнат и PyPI доставя 0.6.1, но заявката за изтегляне, която би премахнала pickle от асинхронния пайплайн, все още е отворена, а policy_server.py на main все още извиква pickle.loads върху данните от заявката. Третирайте мрежовата изолация като смекчаваща мярка, а не като надграждане на версията, и приемете, че клиентът от страна на робота също е в обхвата.
Мога ли да използвам асинхронния клиент на lerobot с GR00T контролна точка?▾
Да. lerobot 0.6.1 изброява groot в SUPPORTED_POLICIES заедно с act, smolvla, diffusion, tdmpc, vqbet, pi0 и pi05, а so100_follower и so101_follower са в SUPPORTED_ROBOTS. Подайте --policy_type=groot и насочете --pretrained_name_or_path към вашата контролна точка. Получавате асинхронно изпълнение, което примерът GR00T SO-100 не реализира, за сметка на pickle транспорта.
Накратко
Отдалечен извод за 3 B политика е решен инженерен проблем с нерешен физически проблем. Инженерната част са две команди и SSH тунел. Физиката е, че наблюдение от 1.8 MB трябва да достигне до GPU в друга държава и да се върне, преди ръката да изчерпи действията си. Направете изчисленията, преди да наемете каквото и да е, изберете задача, която толерира остаряло наблюдение, и увеличете хоризонта на изпълнение, вместо да се надявате връзката да се подобри.
Ако все още не сте записали набор от данни, , а е на първо място, и обяснява какво записва рекордерът. Контекстът е в и ; свързва всеки бенчмарк номер с източник.
Sources
- NVIDIA Isaac-GR00T: N1.7 хранилище и README (16 GB минимална памет за инференция, инсталация, затворен Cosmos-Reason2-2B гръбнак, FFmpeg ограничение)
- run_gr00t_server.py: CLI на сървъра за политики GR00T, настройки по подразбиране на ServerConfig (хост 0.0.0.0, порт 5555) и пътят до ReplayPolicy
- server_client.py: PolicyServer и PolicyClient, границата allow_pickle=False на MsgSerializer, api_token, timeout_ms
- eval_so100.py: клиентът за политики SO-100, настройки по подразбиране на EvalConfig и синхронният контролен цикъл
- Isaac-GR00T SO100/SO101 пример: преобразуване на набор от данни, фино настройване и команди за оценка в затворен цикъл
- Isaac-GR00T Ръководство за внедряване в реалния свят: синхронният бюджет от 33 ms, стоп-и-старт, размер на парчето действие, RTC статус
- Isaac-GR00T Препоръка за хардуер: честота на инференция на GPU и минимум 10 Hz
- Isaac-GR00T Ръководство за внедряване и инференция: резултати от бенчмарк за латентност на компонент
- LeRobot: Урок за асинхронна инференция (PolicyServer, RobotClient, документираната таблица с параметри)
- lerobot async_inference/configs.py: настройки по подразбиране на PolicyServerConfig и RobotClientConfig, регистър AGGREGATE_FUNCTIONS
- lerobot async_inference/policy_server.py: pickle.loads върху данни от заявка, add_insecure_port, имената на gRPC извикванията
- lerobot async_inference/robot_client.py: gRPC транспорт, pickle сериализация, регистриране на латентност
- CVE-2026-25874: LeRobot опасно десериализиране, изпълнение на отдалечен код чрез gRPC, засегнати версии до 0.5.1
- Black, Galliker и Levine, Real-Time Execution of Action Chunking Flow Policies (разделяне в реално време)
- Runpod цени за GPU: почасови тарифи за общностен и сигурен облак за A100, H100, L40S и 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