Страницата за изпробване на AY-Robots: три начина да започнете без да притежавате робот, включително наемане на GPU за извод на политики
GR00T N1.7Отдалечен изводОблачен GPULeRobotSO-100Латентност

Изпълнение на GR00T извод без локален GPU

AY-Robots ResearchAugust 23, 202619 мин четене

Вашата роботизирана машина няма 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-tuning152 msA100 80 GB or H100 80 GB50LeRobot v2.0 or v2.1
GR00T N1.5~3 B165 msA100 80 GB or H100 80 GB50LeRobot v2.0 or v2.1
Pi0.5~3 B, PaliGemma backbone485 msA100 80 GB or H100 80 GB50LeRobot v3.0
SmolVLA~450 M245 msRTX 4090 or any 24 GB card30LeRobot v3.0
ACT~80 M20 msRTX 4090 or any 24 GB card50LeRobot v3.0
Страницата с политики на AY-Robots, сравняваща петте обучими политики по параметри, ниво на GPU, латентност на извода и минимален брой епизоди
Същите пет реда на /policies. Колоната за латентност решава дали дадена политика ще издържи мрежов скок.

Разглеждайте това като решение, а не като любопитен факт. при 20 ms на стъпка работи на машината на робота и никога повече не мислите за това. при 485 ms е изразходвал една трета от секундата, преди пакет да напусне вашата сграда. Сравнението на и добавят страната на точността.

ACT няма базов модел

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 PolicyServerlerobot асинхронно извеждане
Входна точкаgr00t/eval/run_gr00t_server.pypython -m lerobot.async_inference.policy_server
ТранспортZeroMQ REQ/REPgRPC, add_insecure_port / insecure_channel
Сериализацияmsgpack + msgpack_numpy, allow_pickle=False enforcedpickle.dumps / pickle.loads, marked # nosec
Порт по подразбиране55558080
Обвързване по подразбиране0.0.0.0, all interfaceslocalhost
Удостоверяванеapi_token, поддържан от класа, не се предава от CLInone
Таймаут на клиента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. 1
    Инсталирайте GR00T на наетия GPU сървър

    Подмодулите са задължителни, а git-lfs трябва да съществува преди клонирането, иначе parquet файловете в demo_data ще пристигнат като указатели. flash-attn и TensorRT идват с инсталацията по подразбиране. Капанът при ново изображение на под: torchcodec 0.8.0 е единственият поддържан видео бекенд и зарежда само FFmpeg 4 до 7. Ubuntu 25.10 и 26.04 идват с FFmpeg 8, така че GR00T се проваля с Could not load libtorchcodec. Инсталирайте FFmpeg под версия 8 и поставете неговите библиотеки в LD_LIBRARY_PATH.

    bash
    sudo apt install git-lfs && git lfs install
    curl -LsSf https://astral.sh/uv/install.sh | sh
    sudo apt-get update && sudo apt-get install -y ffmpeg
    
    git clone --recurse-submodules https://github.com/NVIDIA/Isaac-GR00T
    cd Isaac-GR00T
    uv sync --python 3.12
    uv run python -c "import gr00t; print('GR00T installed successfully')"
  2. 2
    Удостоверяване срещу затворения гръбнак

    Всяка контролна точка на GR00T N1.7, включително вашата собствена фина настройка, зарежда затворения nvidia/Cosmos-Reason2-2B при първо използване. Заявете достъп на страницата на модела и влезте в пода, в противен случай зареждането ще се провали с GatedRepoError.

    bash
    uv run huggingface-cli login
    # or:  export HF_TOKEN=<your_token>
  3. 3
    Стартирайте сървъра за политики

    Насочете --model-path към вашата директория с контролни точки; по този път сървърът игнорира --modality-config-path, който се чете само по пътя за преиграване. Пропуснете --model-path и вместо това предайте --dataset-path плюс --execution-horizon за ReplayPolicy, която преиграва записани действия, най-евтиният начин да докажете, че окабеляването работи.

    bash
    uv run python gr00t/eval/run_gr00t_server.py \
      --model-path /workspace/so100_finetune/checkpoint-10000 \
      --embodiment-tag NEW_EMBODIMENT \
      --device cuda:0 \
      --host 127.0.0.1 --port 5555
  4. 4
    Тунелирайте порт 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. 5
    Стартирайте клиента на робота до сервомоторите

    Клиентът се нуждае от собствена uv среда: той иска драйверите за роботи на lerobot, а не стека за обучение. eval_so100.py импортира so100_follower, so101_follower и koch_follower, така че предайте --robot.type, съответстващ на вашата ръка (README нагоре по веригата използва so101_follower). Ключовете на камерата трябва да съответстват на обучението: адаптерът чете точно front и wrist, а размяната им показва на политиката грешен изглед.

    bash
    cd gr00t/eval/real_robot/SO100
    uv sync
    uv pip install --no-deps -e ../../../../
    
    uv run --no-sync python eval_so100.py \
      --robot.type=so100_follower \
      --robot.port=/dev/ttyACM0 \
      --robot.id=orange_follower \
      --robot.cameras="{ front: {type: opencv, index_or_path: 6, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30}}" \
      --policy_host=127.0.0.1 \
      --policy_port=5555 \
      --lang_instruction="pick up the red block and put it in the bin"
Две настройки по подразбиране, които ще ви създадат проблеми

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 контролна точка.

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

# robot machine, after tunnelling 8080
python -m lerobot.async_inference.robot_client \
    --server_address=127.0.0.1:8080 \
    --robot.type=so100_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=follower_so100 \
    --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30}}" \
    --task="pick up the red block and put it in the bin" \
    --policy_type=groot \
    --pretrained_name_or_path=<user>/my_groot_finetune \
    --policy_device=cuda \
    --actions_per_chunk=50 \
    --chunk_size_threshold=0.5 \
    --debug_visualize_queue_size=True
Сървър за политики на GPU, клиент на робота на машината с USB портове

Сървърът стартира празен: той не знае каква политика обслужва, докато първото ръкостискане на клиента не му каже, което е удобно на нает под. Двата регулатора, които решават дали ръката се движи плавно, са actions_per_chunk и chunk_size_threshold (документацията на lerobot нарича второто g, по името на статията SmolVLA), а документираните и доставените стойности не съвпадат.

ПараметърСтойност в кода на lerobot 0.6.1Какво правиЗабележка
actions_per_chunkбез подразбиране, задължителноДействия, върнати на извикванеТаблицата в документацията посочва 50; полето на dataclass няма подразбиране, така че CLI изисква стойност
chunk_size_threshold0.5Съотношение на запълване на опашката, при което или под което клиентът изпраща ново наблюдениеТаблицата в документацията казва 0.7; кодът и собственият пример на документацията казват 0.5
fps30Скорост на управление на клиента, задава environment_dt = 1/fpsНамалете го, ако опашката продължава да се изпразва
inference_latency1/30 s (33.3 ms)Целева латентност на извода на сървъраЦел, а не измерване
obs_queue_timeout2 sКолко дълго сървърът чака на опашката за наблюденияБавната връзка нагоре се проявява първо тук
aggregate_fn_nameweighted_averageКак се смесват припокриващи се региони на части0.3 старо + 0.7 ново; също се доставят latest_only, average и conservative. Регистърът е AGGREGATE_FUNCTIONS в configs.py, а не robot_client.py, както твърди документацията.
Сървърът за политики на lerobot има незакърпена RCE

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 движение на извикване и всичко останало трябва да се побере в това време.

text
observation upload   14.7 Mbit / 100 Mbit/s   = 147 ms
network round trip                            =  30 ms
model inference (AY-Robots figure, N1.7)      = 152 ms
action chunk return + deserialize             =  ~2 ms
                                                -------
total per call                                  331 ms

budget at action_horizon = 8   ->  267 ms   FAIL, arm pauses ~64 ms per chunk
budget at action_horizon = 16  ->  533 ms   fits, with headroom
budget at action_horizon = 32  -> 1067 ms   fits, observations now ~1 s stale
Работен пример: 100 Mbit/s ъплинк, 30 ms време за двупосочно пътуване, GR00T N1.7

Увеличаването на хоризонта е грубо решение и не е безплатно: ръката действа въз основа на наблюдение, което вече е старо. Принципното решение е 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. 1
    Получете необработеното време за двупосочно пътуване

    Спрямо пода, а не CDN. Следете отклонението толкова внимателно, колкото и средната стойност: трептенето кара ръката да заеква, а не средната латентност.

    bash
    ping -c 50 <pod-host>
    # the mdev column is the number that predicts stutter
  2. 2
    Измерете връзката за качване, която имате, а не тази, за която плащате

    Качването в жилищни условия обикновено е част от изтеглянето и това е числото в таблицата за честотна лента по-горе.

    bash
    # on the pod
    iperf3 -s
    
    # on the robot machine, -R omitted so this measures upload
    iperf3 -c <pod-host> -t 30
  3. 3
    Прочетете собствения лог за латентност на клиента

    Клиентът на робота lerobot записва латентността от сървър към клиент и времето за десериализация за всеки блок. По маршрут B не се нуждаете от външни инструменти.

    text
    Received action chunk for step #240 | Latest action: #232 |
      Incoming actions: 240:289 |
      Network latency (server->client): 187.44ms |
      Deserialization time: 3.10ms
  4. 4
    Наблюдавайте изпразването на опашката за действия

    Подайте --debug_visualize_queue_size=True и клиентът ще изчертае размера на опашката по време на изпълнение. Ако многократно достига нула, значи сте извън бюджета: намалете fps, увеличете actions_per_chunk или увеличете chunk_size_threshold, така че наблюденията да се изпращат по-често.

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

За какво всъщност е добър отдалеченият инференс

Политика на нает GPU, ръка на бюрото ви
Предимства
  • Можете да оцените политика с 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

  1. Наемете GPU на спот пазар и изчакайте достатъчно VRAM на цена, която ви харесва.
  2. Инсталирайте CUDA, uv, ffmpeg torchcodec, който се поддържа, и GR00T стека с подмодули.
  3. Заявете достъп до затворения nvidia/Cosmos-Reason2-2B бекбон и поставете токен на подовата инстанция.
  4. Изтеглете своя чекпойнт на подовата инстанция.
  5. Стартирайте сървъра на loopback, след което изградете SSH тунел от машината на робота.
  6. Инсталирайте втора среда на машината на робота за клиента и драйверите.
  7. Съпоставете ключовете на камерата, имената на ставите и езиковата инструкция с това, което е видял чекпойнтът.
  8. Наблюдавайте подовата инстанция. Забравен A100, работещ през нощта, струва повече от експеримента.
Неактивната подова инстанция е истинската цена

Сметката за GPU не спира, когато роботът спре. Повечето пари, загубени при отдалечен инференс, отиват за сървър, който е останал активен, след като всички са си тръгнали. Настройте аларма или автоматизирайте деинсталацията.

Страницата на AY-Robots MCP сървъра, изброяваща платформени операции, изложени като инструменти за AI агенти
Страницата на MCP: операции за осигуряване и инференс, изложени като инструменти, които агент може да извика.

Какво струва една отдалечена инференс сесия

Две числа са от значение: почасовата ставка на картата и колко дълго я оставяте да работи. Първото е публикувано; второто изненадва хората.

КартаRunpod общностен облакRunpod защитен облакПодходяща за
A100 PCIe 80 GB1.19 USD/h1.39 USD/hGR00T N1.7, GR00T N1.5, Pi0.5
A100 SXM 80 GB1.39 USD/h1.59 USD/hСъщата, малко по-бърза
H100 PCIe 80 GB1.99 USD/h2.89 USD/hНай-бързо ниво; 11.7 Hz eager стойността на NVIDIA е за H100 80GB HBM3
L40S 48 GB0.79 USD/h0.99 USD/hСамо за инференция, над 16 GB праг
RTX 4090 24 GB0.34 USD/h0.74 USD/hSmolVLA, 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. Вижте документацията за таксуване и страницата за цени.

Таблицата с разходите на AY-Robots, показваща кой GPU е необходим за всяка политика, типично време за изпълнение и цена, и епизоди преди дадена политика да стане полезна
Таблицата с разходите на /try: коя карта е необходима за всеки модел и колко струва едно типично изпълнение.

Ако предпочитате мрежата да не е в цикъла

Отдалеченият инференс решава хардуерен проблем и създава проблем с латентността. Понякога по-добрият отговор е политика, която отговаря на хардуера, с който разполагате.

  • 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

Sources

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started