Сторінка спроби AY-Robots: три способи розпочати без володіння роботом, включаючи оренду графічного процесора для висновку політик
GR00T N1.7Віддалений висновокХмарний графічний процесорLeRobotSO-100Затримка

Запуск висновку GR00T без локального графічного процесора

AY-Robots ResearchAugust 23, 202619 хв читання

Ваша роботизована машина не має графічного процесора. Розмістіть сервер політик GR00T на орендованому хмарному графічному процесорі, передавайте фрагменти дій до маніпулятора і дізнайтеся, скільки саме коштує вам мережа.

Raspberry Pi достатньо, щоб керувати через послідовну шину та отримувати кадри з двох USB-камер. Цього недостатньо для запуску тримільярдного параметра : README від NVIDIA вказує, що інференс GR00T N1.7 вимагає однієї GPU з 16 ГБ або більше 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 постачаються з розділенням на клієнт-сервер. Вам не потрібно писати транспорт.
  • Спостереження домінують у вартості передачі даних, а не дії: два нестиснуті кадри RGB 640x480 становлять 1 843 200 байт, близько 14.7 Мбіт за виклик, і жоден стек їх не стискає.
  • AY-Robots вказує від 20 до 485 мс на крок дії залежно від моделі. Час передачі даних через Інтернет додається до цього.
  • Віддалений інференс підходить для повільних операцій типу «взяти-покласти», а не для швидкого реактивного руху. Довший горизонт виконання виграє час і коштує свіжості спостережень.
  • Жоден із серверів не є безпечним на публічній 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 мс на крок працює на роботі, і ви більше ніколи про це не думаєте. з 485 мс витрачає третину секунди, перш ніж пакет покине вашу будівлю. та додають сторону точності.

ACT не має базової моделі

GR00T N1.7, GR00T N1.5 та Pi0.5 починаються з контрольної точки постачальника (nvidia/GR00T-N1.7-3B, nvidia/GR00T-N1.5-3B, lerobot/pi05_base). ACT не існує, доки ви не навчите його на власному завданні, тому немає нічого для віддаленого обслуговування, доки не буде виконано завдання навчання. Дивіться ACT on 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 async inference
Точка входу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, усі інтерфейсиlocalhost
Автентифікаціяapi_token supported by the class, not passed by the CLInone
Таймаут клієнта15000 ms (PolicyClient timeout_ms)2 s observation queue timeout
Модель виконаннясинхронна: блокувати, потім виконувати фрагментасинхронна: виконувати, поки обчислюється наступний фрагмент

Рядок серіалізації має більше значення, ніж здається. GR00T's MsgSerializer відмовляється від корисних навантажень ndarray типу object-dtype в обох напрямках, оскільки msgpack_numpy інакше передав би їх до pickle. lerobot натомість використовує pickle: policy_server.py викликає pickle.loads для даних запиту, robot_client.py використовує pickle для спостереження, яке він надсилає. Це прийнятно в довіреній локальній мережі, але неприйнятно, якщо порт стає доступним з інтернету.

Маршрут A: Власний сервер політик 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.

Маршрут B: асинхронний висновок 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 old + 0.7 new; 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 9.8 від NVD, базова оцінка 4.0 9.3 від призначаючої CNA. Запис вказує LeRobot до 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 Мбіт, і жоден стек не стискає це за допомогою JPEG. Блок, що повертається, складається з кількох десятків кроків по 6 чисел з плаваючою комою. Ваша швидкість вивантаження вирішує все, а не швидкість завантаження.

Пропускна здатність вивантаженняЧас для передачі одного спостереження (14.7 Мбіт)Висновок для маніпулятора з 30 FPS
10 Мбіт/с, типова домашня швидкість вивантаження~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 при поєднанні з чанкуванням у реальному часі, тоді як eval_so100.py постачається з горизонтом виконання 8. Вісім кроків при 30 FPS — це 267 мс руху за виклик, і все інше має вписатися в цей час.

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 Мбіт/с, затримка 30 мс, GR00T N1.7

Збільшення горизонту — це грубе і не безкоштовне рішення: рука діє на основі спостереження, яке вже застаріло. Принципове рішення — це чанкування в реальному часі (RTC), яке обчислює наступний чанк, поки виконується поточний, заморожує дії, які гарантовано будуть виконані, і доповнює решту; стаття про 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 за допомогою чанкування дій. Друга камера веде вас у неправильному напрямку.

Виміряйте, перш ніж довіряти

Кожне число вище є прогнозом. Чотири команди перетворюють його на вимірювання, яке варто виконати, перш ніж виділяти годину роботи пода на завдання, яке ніколи не спрацювало б.

  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, дві камери, послідовний порт, і ви міняєте контрольні точки, не торкаючись її.
Компроміси
  • Нестиснені спостереження домінують у вартості передачі даних, а домашня швидкість завантаження є обмежувальним фактором.
  • Джиттер шкодить більше, ніж затримка: з'єднання із середньою затримкою 40 мс і піками до 300 мс заїкається там, де стабільне з'єднання 120 мс працює безперебійно.
  • Швидкі реактивні завдання не витримують повного циклу передачі даних на будь-якому горизонті.
  • Обидва сервери постачаються без автентифікації у формі CLI, тому робота з тунелюванням лягає на вас.
  • Перерване з'єднання посередині фрагмента залишає руку з застарілою дією. Додайте власний сторожовий таймер на стороні робота.
ЗавданняПрацює через публічний інтернет?Чому
Вибрати статичний об'єкт, помістити його в контейнерТакНічого не рухається між спостереженням та дією.
Складати блоки в розміреному темпіТак, при action_horizon 16 або більшеПомилки накопичуються досить повільно, щоб виправити їх у наступному фрагменті.
Відкрити шухляду, вставити об'єктЗазвичайБагато контактів, але повільно. Слідкуйте за зупинками та рухом при контакті.
Слідувати за рухомим об'єктомНіПолітика діє на основі спостереження віком від 300 мс до 1 с.
Ловити, балансувати або відновлюватися після ковзанняНіВікно корекції коротше одного повного циклу передачі даних.
Синхронний замкнутий цикл 30 ГцНіБюджет становить 33 мс від початку до кінця. Навіть локальна мережа має труднощі.

Якщо віддалений запуск заїкається в одній і тій же точці кожного епізоду, мережа, ймовірно, не є причиною. Політика, яка щоразу вагається на одному й тому ж куті суглоба, зазвичай є проблемою даних; дивіться сторінки режимів відмов, зокрема політику, яка працює лише в одній конфігурації та втрати падають, але політика нічого не робить.

Робити це самостійно проти робити це на 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 не припиняє зростати, коли робот зупиняється. Більшість грошей, втрачених на віддаленому виведенні, йде на сервер, який залишався увімкненим після того, як усі пішли. Встановіть будильник або автоматизуйте вимкнення.

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

Скільки коштує віддалена сесія інференсу

Важливі два показники: погодинна ставка картки та час, протягом якого ви її використовуєте. Перший опублікований; другий дивує людей.

КартаRunpod community cloudRunpod secure cloudПідходить для
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Найшвидший рівень; показник NVIDIA 11.7 Гц для H100 80GB HBM3
L40S 48 GB0.79 USD/h0.99 USD/hЛише для висновків, вище порогу 16 ГБ
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 ГБ, від 1 до 3 USD для SmolVLA або ACT. Сесія висновків перевершує тренувальний запуск за вартістю лише тоді, якщо ви її зупините, для чого й призначений сторожовий таймер простою. Дивіться документацію з виставлення рахунків та сторінку цін.

Таблиця витрат AY-Robots, що показує, який графічний процесор потрібен кожній політиці, типовий час виконання та ціну, а також кількість епізодів до того, як політика стане корисною
Таблиця витрат на /try: яка карта потрібна кожній моделі та скільки зазвичай коштує запуск.

Якщо ви не бажаєте, щоб мережа була в циклі

Віддалений висновок вирішує проблему з обладнанням і створює проблему затримки. Іноді кращою відповіддю є політика, яка відповідає наявному у вас обладнанню.

  • ACT, приблизно 80 млн параметрів і 20 мс на крок дії, мінімум 50 епізодів, будь-яка карта на 24 ГБ. У повторюваній однозадачній конфігурації він часто перевершує віддалену модель 3 B, оскільки ніколи не чекає на пакет.
  • SmolVLA, приблизно 450 млн параметрів і 245 мс на крок дії, мінімум 30 епізодів. Він зберігає мовне кондиціонування, якого бракує ACT, а документація lerobot оцінює його приблизно в 2 ГБ під час висновку проти приблизно 14 ГБ для PI0.
  • ACT vs GR00T N1.7 для половини компромісу, що стосується точності.

Існує також проміжний шлях: тренування в хмарі, оцінка локально. Доопрацювання потребує карти на 80 ГБ і не переймається затримкою, тому тренування GR00T N1.7 на SO-100 віддалено є безспірним. Лише цикл оцінки має обмеження в реальному часі; документація з тренування та матриця моделей та маніпуляторів охоплюють цю половину.

Ще немає маніпулятора на столі?

Керуйте справжнім SO-100 у браузері без реєстрації, порівняйте п'ять політик, що піддаються тренуванню, з їхніми реальними показниками затримки, або орендуйте GPU та тренуйте одну. Три способи розпочати, жоден з яких не потребує обладнання, яким ви не володієте.

Спробуйте без обладнання

Часті запитання

Чи можу я запустити GR00T N1.7 на Raspberry Pi, якщо графічний процесор віддалений?

Так, для цього і існує розділення клієнт-сервер. Pi запускає драйвери lerobot, зчитує дві камери та послідовну шину, і надсилає спостереження на сервер політик; він ніколи не завантажує модель. Обмеження переходить від VRAM до пропускної здатності завантаження: два нестиснуті кадри RGB 640x480 становлять 1 843 200 байт за виклик, і жоден стек їх не стискає.

Скільки затримки насправді додає мережа?

Час туди-назад плюс час передачі спостережень. Час передачі становить 14.7 Мбіт, поділені на вашу пропускну здатність завантаження: приблизно 147 мс на каналі 100 Мбіт/с, 1.47 с на каналі 10 Мбіт/с. Обидва додаються до власного часу висновку моделі, який AY-Robots вказує як 152 мс для GR00T N1.7 та 485 мс для Pi0.5. Вимірюйте за допомогою ping та iperf3 проти пода, а не сервера тесту швидкості.

Чи достатньо віддаленого висновку для реального завдання?

Для повільного, обережного захоплення та розміщення — так. Для будь-чого реактивного — ні. Посібник з розгортання NVIDIA встановлює вимогу синхронного однокрокового виконання приблизно в 33 мс від початку до кінця при 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 у головній гілці все ще викликає 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 МБ має досягти графічного процесора в іншій країні та повернутися до того, як рука вичерпає дії. Зробіть розрахунки, перш ніж щось орендувати, оберіть завдання, яке толерує застаріле спостереження, і збільште горизонт виконання, замість того, щоб сподіватися на покращення зв'язку.

Якщо ви ще не записали набір даних, запишіть свій перший набір даних та посібник з налаштування SO-100 є першочерговими, а формат набору даних LeRobot запис пояснює, що записує реєстратор. Довідкова інформація міститься в моделях "зір-мова-дія" та роботі з політиками зіставлення потоків; запис арени посилається на джерело для кожного показника бенчмарку.

Sources

Sources

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started