Stránka průvodce AY-Robots pro trénování GR00T N1.7 na rameni SO-100, ukazující požadovanou úroveň GPU, formát datasetu a výchozí nastavení trénovacího programu
GR00T N1.7SO-100DolaďováníLeRobotVLA

Jak trénovat GR00T N1.7 na vlastním SO-100 datasetu

AY-Robots ResearchAugust 23, 202628 min čtení

Ověřený návod pro dolaďování NVIDIA GR00T N1.7 na SO-100 LeRobot datasetu: skutečné flagy, modality.json, požadavek v2.1, co stojí spuštění a úskalí.

NVIDIA dodává příklad jemného doladění přesně pro rameno, které pravděpodobně vlastníte. Uvnitř úložiště Isaac-GR00T je složka s názvem demo_data/cube_to_bowl_5: pět epizod, 4 148 snímků při 30 fps, již zapsaných jako LeRobot v2.1, s odpovídající konfigurací modality pod examples/SO100/. Jeho meta/info.json hlásí robot_type: so101_follower, což je v LeRobot stejná konfigurační třída jako so100_follower. To je skutečně užitečné, protože to znamená, že referenční cesta pro GR00T N1.7 na šest-stupňovém volnosti hobby rameni je udržována lidmi, kteří model napsali. Není to zmenšená humanoidní ukázka, je to stejné rameno.

Špatná zpráva je vzdálenost mezi I recorded 60 episodes a the arm does the task. Existuje asi šest míst, kde tento pipeline selže tiše, spíše než hlasitě, a čtyři z nich se nacházejí v souborech, které většina lidí nikdy neotevře: meta/modality.json, konfigurace dat Pythonu, meta/relative_stats.json, a vlastní řetězec verze datové sady. Tento průvodce provede manuální cestou od začátku do konce se skutečnými příkazy, poté ukáže stejnou úlohu jako formulář na AY-Robots. Vše níže bylo zkontrolováno proti hlavní větvi Isaac-GR00T k 20. srpnu 2026 (řada n1.7-release) a lerobot 0.6.1, publikovanému na PyPI 3. srpna 2026. Upstream se rychle mění, a pokud byl nějaký příznak přejmenován, tento článek to uvádí.

Co potřebujete vědět, než začnete

  • Jemné doladění GR00T N1.7 vyžaduje 40 GB nebo více VRAM. NVIDIA doporučuje uzly H100 nebo L40. 24 GB RTX 4090 tuto práci nezvládne, i když bude trénovat SmolVLA a ACT.
  • Datová sada musí být LeRobot v2 (v2.0 nebo v2.1) plus GR00T-specifický meta/modality.json. Datová sada LeRobot v3.0 se nenačte a musí být převedena na nižší verzi.
  • Vstupním bodem je gr00t/experiment/launch_finetune.py, CLI tyro. Nemá příznak --seed, takže spuštění nejsou bitově reprodukovatelná.
  • Pro vlastní rameno je tag embodiment NEW_EMBODIMENT, a tento tag činí --modality-config-path povinným.
  • Dodávaný recept SO-100 předpovídá klouby ramene jako RELATIVNÍ delty a chapadlo jako ABSOLUTNÍ cíl. Obrácení tohoto párování je tiché selhání, nikoli chyba.
  • Na AY-Robots je stejná úloha formulář: 20000 kroků, dávka 32, rychlost učení 1e-4, zhruba 4 až 12 USD na úrovni A100 80 GB nebo H100.

Co GR00T N1.7 skutečně je

GR00T N1.7 je vizuálně-jazykový akční model s uspořádáním duálního systému popsaným v původním článku GR00T N1: vizuálně-jazykovým modulem, který čte kamery a instrukce, a difuzním transformátorem, který to převádí na blok souvislých motorických příkazů. N1.7 nahradil první polovinu. Původní páteř Eagle z N1.6 byla odstraněna a nahrazena nvidia/Cosmos-Reason2-2B na architektuře Qwen3-VL a model byl předtrénován na přibližně 20 000 hodinách egocentrického lidského videa navíc k datům robota. Vlastní zpráva NVIDIA uvádí číslo 20 854 hodin a uvádí, že přechod z 1k na 20k hodin více než zdvojnásobuje průměrné dokončení úkolu.

Druhá polovina se také změnila, a to způsoby, které jsou důležité pro váš běh. Akční hlava klesla z 32 difuzních vrstev na 16, předpokládaný akční blok se zvětšil z 16 kroků na 40 a maximální šířka stavu a akce se změnila z 29 na 132. Tato tři čísla pocházejí ze záznamu změn v README repozitáře; vlastní spouštěcí příspěvek NVIDIA stále popisuje Systém 1 jako 32vrstvý DiT, takže tam, kde se tyto dva zdroje liší, důvěřujte repozitáři, který se chystáte klonovat. Akce jsou ve výchozím nastavení vyjádřeny v relativním prostoru koncového efektoru, jako delty od aktuální pozice spíše než absolutní cíle, což umožňuje přenos manipulačních priorit naučených z lidského videa do řízení robota. Samotná hlava je difuzní transformátor s flow-matching, stejná rodina jako Pi0.5, ale s jinou páteří před ním. Pokud stále používáte předchozí generaci, N1.7 proti N1.5 pojednává o tom, zda upgrade ospravedlňuje přepracování vašeho pipeline.

VlastnostHodnotaZdroj
Parametry3,000,000,000Karta modelu Hugging Face
Vizuálně-jazyková páteřnvidia/Cosmos-Reason2-2B (Qwen3-VL), gated on Hugging FaceREADME repozitáře
Akční hlavaFlow-matching diffusion transformer, 16 layers (N1.6 had 32)README repozitáře
Předpokládaný akční horizont40 steps for the base checkpoint (N1.6 had 16)getting_started/policy.md a README repozitáře
Maximální šířka stavu a akce132 (N1.6 had 29)README repozitáře
Licence kóduApache 2.0Repozitář Isaac-GR00T
Licence vahNVIDIA Open Model License AgreementKarta modelu
Latence, H100 80 GB, PyTorch eager, 4 kroky denoisingu, 1 kamera85.8 ms end to end, 11.7 HzTabulka časování karty modelu
Stejný hardware, plný pipeline TensorRT27.9 ms end to end, 35.9 HzTabulka časování karty modelu
Latence, kterou AY-Robots uvádí pro svůj nasazený GR00T N1.7152 ms per action stepKatalog politik AY-Robots

Tyto poslední tři řádky vysvětlují většinu zklamání, které lidé uvádějí. Titulních 27.9 ms je engine TensorRT na H100 s jednou kamerou a čtyřmi kroky denoisingu. Čistý PyTorch na stejné kartě je 85.8 ms a karta modelu uvádí rozdíl 3.08x. Ani jedno číslo nezahrnuje obslužnou vrstvu, druhou kameru nebo síťový skok. Hodnota 152 ms na akční krok, kterou AY-Robots uvádí pro svůj nasazený GR00T N1.7, je údaj s obsluhou v cyklu, a k tomu se přidává zpáteční cesta přes veřejný internet. Více o tom na konci. Pro srovnání čísel s jinými modely, GR00T N1.7 proti Pi0.5 a GR00T N1.7 proti SmolVLA je uvádějí vedle sebe.

Stránka modelu AY-Robots pro GR00T N1.7 zobrazující počet parametrů, úroveň GPU, latenci inference a uvedené silné stránky a omezení modelu
Stránka /policies/groot-n1-7 obsahuje stejný proužek specifikací, který byste jinak ručně sestavili z karty modelu a souboru README repozitáře.

Co je potřeba pro spuštění, než cokoli napíšete

PožadavekJemné doladěníInference
VRAM, doporučení NVIDIA40 GB nebo více, doporučeno H100 nebo L4016 GB nebo více, funguje RTX 4090
Python a CUDA na dGPU3.12 a CUDA 12.83.12 a CUDA 12.8
Video backendtorchcodec 0.8.0, pouze FFmpeg 4 až 7stejné
Formát datové sadyLeRobot v2 plus meta/modality.jsonnepoužitelné
Přístup k Hugging Faceschváleno pro nvidia/Cosmos-Reason2-2Bstejné
Další nástrojegit-lfs a uvuv
Úroveň GPU AY-Robots pro tréninkový model groot1.7A100 80 GB nebo H100 80 GBpod automaticky zřízen
Uzavřená páteřní síť vás zastaví při prvním spuštění

Každý checkpoint GR00T, včetně základního nvidia/GR00T-N1.7-3B, načítá nvidia/Cosmos-Reason2-2B při prvním použití a tento repozitář je uzavřený. Soubor README přesně uvádí chybu: načítání modelu selže s GatedRepoError / 401 Client Error. Co však nezmiňuje, je, kdy k tomu dojde, což je poté, co si pronajmete kartu a spuštění již začalo. Požádejte o přístup na stránce modelu a poté spusťte uv run huggingface-cli login nebo exportujte HF_TOKEN, než si cokoli pronajmete.

Krok 0: samotné epizody

Vše níže předpokládá, že již máte nahrané epizody. Pokud ne, je to skutečný první krok a je to ten, který rozhoduje o tom, jak dobrý může být výsledek, protože učení napodobováním nemůže obnovit informace, které nejsou v datech. Nejprve zkalibrujte obě ramena, poté ovládejte následovníka pomocí vedoucího ramene zatímco lerobot-record zapisuje soubory parquet a streamy z kamer. Pokud kalibrace je vypnutá, hodnoty kloubů ve vašem datasetu popisují mírně odlišného robota, než ten, který později provede politiku, a žádné množství tréninku to nenapraví.

bash
lerobot-record \
    --robot.type=so100_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_follower_arm \
    --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30}}" \
    --teleop.type=so100_leader \
    --teleop.port=/dev/ttyACM1 \
    --teleop.id=my_leader_arm \
    --dataset.repo_id=${HF_USER}/cube-into-bowl \
    --dataset.num_episodes=60 \
    --dataset.single_task="put the cube in the yellow bowl" \
    --display_data=true
lerobot-record na aktuálním LeRobotu. Délka epizody je standardně 60 s a doba resetu 60 s. so100_follower a so101_follower jsou oba registrovány proti stejné konfigurační třídě LeRobot, proto příklad Isaac-GR00T SO100 používá názvy so101; obojí funguje na SO-100. Názvy kamer, které zde zvolíte (front, wrist), jsou názvy, které se musí znovu objevit v modality.json.

Vlastní rada LeRobotu je nahrát alespoň 50 epizod, přibližně 10 pro každou polohu objektu, udržovat kamery pevné a zachovat konzistentní chování uchopení. Variace přidávejte později, ne na začátku. Pravidlo, které stojí za to si zapamatovat: pokud byste úkol nedokázali provést sami pouze z obrazů kamer, politika to také nedokáže. Pro nastavení specifické pro rameno, začínáme s SO-100 a stránka SO-100 LeRobot pokrývají porty, kalibraci a indexy kamer. Na AY-Robots to můžete provést také přes internet z prohlížeče pomocí teleoperace a nahrávat přímo ze sezení.

Krok 1: datová sada musí být LeRobot v2.1

Toto je nejčastější překážka. Aktuální CODEBASE_VERSION LeRobota na main je v3.0, takže cokoli, co dnes zaznamenáte s aktuálním toolchainem, bude ve verzi v3.0. Loader GR00T očekává v2. Repozitář jasně vysvětluje proč: mnoho upstreamových datových sad, jako jsou DROID, LIBERO a Bridge, je publikováno ve v2 a nativní podpora pro obě je plánována, ale zatím není dodána. Konverze je tedy na vás a běží ve vlastním virtualenvu z konkrétního důvodu: scripts/lerobot_conversion má svůj vlastní pyproject, který vyžaduje Python 3.10 nebo 3.11 a připíná lerobot k jednomu git commitu, zatímco Isaac-GR00T sám vyžaduje Python 3.12. Nainstalujte konvertor z kořenového adresáře repozitáře a místo toho získáte balíček gr00t, což je chyba, před kterou varuje jeho README. Pokud jste v tomto formátu noví, datová sada LeRobot v glosáři vysvětluje, co se v ní skutečně nachází.

bash
# from the Isaac-GR00T repo root
cd scripts/lerobot_conversion
uv venv
source .venv/bin/activate
uv pip install -e . --verbose

# pulls the dataset from the Hub and writes a v2.1 copy into the default cache
python convert_v3_to_v2.py --repo-id <your-hf-user>/<your-dataset>

# or, back in the repo root, keep it next to the SO-100 example
uv run --project scripts/lerobot_conversion \
  python scripts/lerobot_conversion/convert_v3_to_v2.py \
  --repo-id <your-hf-user>/<your-dataset> \
  --root examples/SO100/my_dataset_lerobot
Konvertor přijímá --repo-id, volitelný --root a --force-conversion, který smaže jakýkoli existující lokální snapshot a znovu jej stáhne. Zapíše codebase_version: v2.1 do meta/info.json.
Konverze přepíše na místě

Pokud datová sada v3.0 již existuje lokálně, skript vytvoří rozložení v2.1 vedle ní a poté provede výměnu: originál se přesune do sourozenecké složky s připojenou verzí, <name>_v3.0, a převedená kopie zaujme původní cestu. (Docstring samotného skriptu nazývá tuto složku _v30; kód připojuje řetězec verze, takže ve skutečnosti získáte _v3.0.) Druhé překvapení: výstup vždy skončí pod <root>/<repo-id>, takže --root examples/SO100/my_dataset_lerobot vám dá examples/SO100/my_dataset_lerobot/<your-hf-user>/<your-dataset>, a tato delší cesta je ta, kterou později vyžaduje --dataset-path. Když tréninková úloha odmítne vaši datovou sadu z důvodů verze, stránka o odmítnutí datové sady jako v3 uvádí přesné příznaky.

Struktura, kterou GR00T po konverzi vyžaduje, je klasické rozložení v2: meta/info.json, meta/episodes.jsonl, meta/tasks.jsonl, soubory parquet pod data/chunk-000/, soubory MP4 pod videos/chunk-000/observation.images./, a jeden dodatečný soubor, který standardní LeRobot nemá. V tomto dodatečném souboru se nachází většina zbývajících chyb.

Krok 2: modality.json, šest čísel, která rozhodují o všem

V datové sadě LeRobot jsou stav robota a akce uloženy jako plochá pole float32. Pro SO-100 mají obě tvar [6]: pět kloubů ramene a chapadlo. Demo datová sada je pojmenovává shoulder_pan.pos, shoulder_lift.pos, elbow_flex.pos, wrist_flex.pos, wrist_roll.pos, gripper.pos, ale tato jména jsou v info.json a nic v souboru parquet neříká, který index je který. meta/modality.json poskytuje toto mapování a GR00T bez něj nebude trénovat. Zde je ten, který repozitář dodává pro SO-100, doslovně.

json
{
  "state": {
    "single_arm": {
      "start": 0,
      "end": 5
    },
    "gripper": {
      "start": 5,
      "end": 6
    }
  },
  "action": {
    "single_arm": {
      "start": 0,
      "end": 5
    },
    "gripper": {
      "start": 5,
      "end": 6
    }
  },
  "video": {
    "front": {
      "original_key": "observation.images.front"
    },
    "wrist": {
      "original_key": "observation.images.wrist"
    }
  },
  "annotation": {
    "human.task_description": {
      "original_key": "task_index"
    }
  }
}
examples/SO100/modality.json. Indexy jsou založeny na nule a řídí se Pythonovským řezáním, takže single_arm je [0:5] a gripper je [5:6].

Zkopírujte jej do svého převedeného datasetu na meta/modality.json a přejmenujte klíče videí na skutečné názvy vašich kamer. Pokud jste nahrávali s jedinou stropní kamerou s názvem top, pak original_key je observation.images.top a uživatelsky přívětivý název je ten, na který se bude odkazovat vaše datová konfigurace. Tyto dva názvy se musí shodovat a ani jeden z nich nekontroluje ten druhý za vás. Jazyková anotace je horší, protože stejný klíč se musí objevit na třech místech.

VrstvaSouborFormát SO-100 použitý v repozitáři
Sloupec Parquetdata/chunk-*/episode_*.parquetannotation.human.task_description
Klíč modality.jsonmeta/modality.json, under "annotation", without the annotation. prefixhuman.task_description
modality_keys v datové konfiguraciyour so100_config.pyannotation.human.task_description
Proč klíč jazyka mate lidi

Segmenty za annotation. jsou zvoleny autorem datasetu. Demo data SO-100 používají annotation.human.task_description; LIBERO a SimplerEnv používají annotation.human.action.task_description. Oba jsou platné. Pokud jste zkopírovali konfiguraci z příkladu LIBERO a nasměrovali ji na vlastní nahrávku SO-100, jazykový kanál se vyřeší na nic a model se trénuje na prázdnou instrukci. Ztráta stále klesá. Politika stále něco dělá. Jen ignoruje, co jste jí řekli, aby udělala.

Krok 3: konfigurace dat, relativní rameno a absolutní chapadlo

Konfigurace modality je soubor Pythonu spíše než JSON, protože také rozhoduje o tom, jak je reprezentována každá akční skupina. Toto je část pracovního postupu N1.7, která v N1.5 v této podobě neexistovala, a část, kterou stojí za to si přečíst dvakrát. Dodávaná konfigurace SO-100 předpovídá pět kloubů paže jako RELATIVNÍ delty z aktuálního stavu a chapadlo jako ABSOLUTNÍ cílovou pozici, protože binární signál otevřeno/zavřeno se chová lépe jako cíl než jako delta.

python
from gr00t.configs.data.embodiment_configs import register_modality_config
from gr00t.data.embodiment_tags import EmbodimentTag
from gr00t.data.types import (
    ActionConfig, ActionFormat, ActionRepresentation, ActionType, ModalityConfig,
)

so100_config = {
    "video": ModalityConfig(
        delta_indices=[0],                       # current frame only
        modality_keys=["front", "wrist"],        # must match modality.json
    ),
    "state": ModalityConfig(
        delta_indices=[0],
        modality_keys=["single_arm", "gripper"],
    ),
    "action": ModalityConfig(
        delta_indices=list(range(0, 16)),        # predict 16 future steps
        modality_keys=["single_arm", "gripper"],
        action_configs=[
            ActionConfig(rep=ActionRepresentation.RELATIVE,   # arm joints
                         type=ActionType.NON_EEF,
                         format=ActionFormat.DEFAULT),
            ActionConfig(rep=ActionRepresentation.ABSOLUTE,   # gripper
                         type=ActionType.NON_EEF,
                         format=ActionFormat.DEFAULT),
        ],
    ),
    "language": ModalityConfig(
        delta_indices=[0],
        modality_keys=["annotation.human.task_description"],
    ),
}

register_modality_config(so100_config, embodiment_tag=EmbodimentTag.NEW_EMBODIMENT)
examples/SO100/so100_config.py, zkráceno na podstatné. NON_EEF znamená kloubový prostor; EEF by očekával devítirozměrný vektor x, y, z plus 6D rotaci.

Dva detaily zde vás budou stát den, pokud je neznáte. Zaprvé, action_configs je poziční: dokumentace vyžaduje stejnou délku a stejné pořadí jako modality_keys, a jsou nekompromisní ohledně důsledků chyby, což je tiché použití špatné reprezentace. Vaše chapadlo se trénuje jako delta a vaše paže jako absolutní cíl, a bez chybové zprávy. Zadruhé, register_modality_config tvrdí, že tag není již registrován, takže druhá konfigurace NEW_EMBODIMENT ve stejném procesu Pythonu selže s Embodiment tag ... already registered. Nemůžete importovat dvě z těchto konfigurací do jednoho skriptu. Třetí pravidlo je vynuceno později, při nasazení: akční delta_indices musí být souvislý rozsah začínající nulou. Řídké okno jako [0, 4, 8] je odmítnuto, protože vše navazující indexuje předpovězený blok lineárně a jinak by provedlo špatné řádky.

Změňte delta_indices a musíte znovu vygenerovat statistiky

Normalizační statistiky, zejména meta/relative_stats.json, jsou vypočítány pro délku horizontu, kterou jste měli při jejich generování. Zkrátíte-li akční horizont z 16 na 8 bez opětovného generování, trénink selže s IndexError: boolean index did not match indexed array ... dimension is 8 but corresponding boolean dimension is 16. Oprava je jeden příkaz: python gr00t/data/stats.py --dataset-path <path> --embodiment-tag NEW_EMBODIMENT --modality-config-path examples/SO100/so100_config.py. Spusťte jej po jakékoli změně delta_indices.

Krok 4: prostředí

N1.7 přesunul repozitář na a Python 3.12. Stará cesta přes conda plus pip install -e . stále existuje ve sbalené sekci README, ale upozorňuje, že závislosti GPU včetně flash-attn a TensorRT mohou vyžadovat ruční instalaci. Použijte uv, pokud nemáte konkrétní důvod to nedělat. Co se týče flash-attn, jeden detail zabrání zmatkům: uvidíte Installing flash-attn vytištěno při každém uv run. Neprobíhá opětovné sestavování. uv znovu ověřuje wheel připnutý k URL, který je již v mezipaměti, a trvá to dvě nebo tři sekundy.

  1. 1
    Nainstalujte git-lfs, poté klonujte se submoduly

    git-lfs je povinný, nikoli volitelný. Bez něj se soubory parquet v demo_data/ stáhnou jako zástupné ukazatele a demo běh selže na datové sadě, která se ve výpisu souborů jeví jako přítomná.

    bash
    sudo apt install git-lfs && git lfs install
    git clone --recurse-submodules https://github.com/NVIDIA/Isaac-GR00T
    cd Isaac-GR00T
  2. 2
    Nainstalujte uv a synchronizujte prostředí

    Výchozí instalace stáhne závislosti GPU včetně flash-attn a TensorRT. Na čistém obraze A100 nebo H100 je to nejdelší jednotlivý krok, takže jej proveďte, než se začnete věnovat čemukoli jinému.

    bash
    curl -LsSf https://astral.sh/uv/install.sh | sh
    sudo apt-get update && sudo apt-get install -y ffmpeg
    uv sync --python 3.12
    uv run python -c "import gr00t; print('GR00T installed successfully')"
  3. 3
    Ověření proti Hugging Face

    Udělejte to před prvním spuštěním tréninku, ne až poté, co selže po osmi minutách.

    bash
    uv run huggingface-cli login   # or: export HF_TOKEN=<your_token>
  4. 4
    Kontrola funkčnosti na dodaných demo datech SO-100

    Než se dotknete vlastního záznamu, spusťte 2000 kroků na demo_data/cube_to_bowl_5. Je to pět epizod, dokončí se rychle a prokáže prostředí spíše než vaše data. Pokud tento běh selže, nic, co uděláte se svou datovou sadou, nepomůže.

    bash
    CUDA_VISIBLE_DEVICES=0 uv run python \
        gr00t/experiment/launch_finetune.py \
        --base-model-path nvidia/GR00T-N1.7-3B \
        --dataset-path demo_data/cube_to_bowl_5 \
        --embodiment-tag NEW_EMBODIMENT \
        --modality-config-path examples/SO100/so100_config.py \
        --num-gpus 1 \
        --output-dir /tmp/test_finetune \
        --max-steps 2000 \
        --global-batch-size 32 \
        --dataloader-num-workers 4
Dvě pasti prostředí, které vypadají jako chyby modelu

FFmpeg 8. torchcodec 0.8.0 podporuje pouze FFmpeg 4 až 7 a Ubuntu 25.10 a novější dodávají verzi 8. Chyba je Could not load libtorchcodec, což vypadá spíše jako poškozená instalace než konflikt verzí. Nainstalujte starší runtime, například conda install -c conda-forge 'ffmpeg<8', a umístěte jeho knihovny do LD_LIBRARY_PATH. CUDA_HOME není nastaveno. Jemné doladění zcela selže. Spusťte bash scripts/deployment/dgpu/install_deps.sh jednou, nebo jen export CUDA_HOME=/usr/local/cuda.

Krok 5: příkaz pro jemné doladění a jaké jsou skutečné výchozí hodnoty jeho příznaků

Vyměňte demo datovou sadu za svou vlastní a přidejte ovládací prvky, které skutečně chcete. Níže je uvedena úplná forma, kterou repozitář používá ve svém vlastním tutoriálu pro nové ztělesnění, včetně příznaků pro augmentaci a ukládání kontrolních bodů, které krátký příklad v README vynechává. Toto je v užším smyslu: jazyková páteř a vizuální kodér zůstávají zmrazené a trénuje se projektor a difuzní akční hlava.

bash
export NUM_GPUS=1
CUDA_VISIBLE_DEVICES=0 uv run python \
    gr00t/experiment/launch_finetune.py \
    --base-model-path nvidia/GR00T-N1.7-3B \
    --dataset-path ./my_dataset_lerobot \
    --embodiment-tag NEW_EMBODIMENT \
    --modality-config-path examples/SO100/so100_config.py \
    --num-gpus $NUM_GPUS \
    --output-dir /tmp/so100 \
    --save-total-limit 5 \
    --save-steps 2000 \
    --max-steps 20000 \
    --use-wandb \
    --global-batch-size 32 \
    --color-jitter-params brightness 0.3 contrast 0.4 saturation 0.5 hue 0.08 \
    --dataloader-num-workers 4
Jedno GPU. Pro osm karet nahraďte spouštěč uv run torchrun --nproc_per_node=8 --master_port=29500 a nastavte --num-gpus 8. Použijte uv run torchrun, nikoli torchrun samotné, jinak získáte špatné prostředí.
PříznakVýchozí hodnota v FinetuneConfigCo dělá
--global-batch-size64Celková dávka napříč všemi GPU před akumulací gradientu. Dodávané příklady používají 32.
--learning-rate1e-4Stejná hodnota, kterou AY-Robots posílá pro svůj tréninkový model groot1.7.
--max-steps10000Celkový počet kroků optimalizátoru. Wrapper examples/finetune.sh má také výchozí hodnotu 10000.
--gradient-accumulation-steps1Násobí efektivní dávku. Hodnoty nad 1 vydají varování o akumulované velikosti.
--save-steps and --save-total-limit1000 and 5Frekvence kontrolních bodů a kolik jich je uchováno. Starší jsou smazány.
--weight-decay and --warmup-ratio1e-5 and 0.05Nastaveno explicitně také souborem examples/finetune.sh.
--state-dropout-prob0.2 in the CLI, 0.8 in the model configNáhodně vynechává proprioceptivní stav během tréninku. Snižte ji, pokud váš úkol závisí na stavu.
--tune-llm and --tune-visualFalse and FalsePáteř zůstává ve výchozím nastavení zmrazená.
--tune-projector and --tune-diffusion-modelTrue and TrueProjektor a difuzní akční hlava jsou to, co se skutečně trénuje.
--use-percentilesTrueNormalizuje pomocí q01 a q99 namísto syrových minim a maxim.
--dataloader-num-workers2Načítání je navrženo jako CPU-založené. Příklady to zvyšují na 4.
--seeddoes not existNa tomto CLI neexistuje příznak pro seed.

Ten poslední řádek není překlep. launch_finetune.py je CLI nástroj tyro vygenerovaný z datové třídy a tato datová třída nemá pole pro seed. Soubor README samostatně uvádí 5 až 6 procentní odchylku mezi spuštěními způsobenou nedeterministickou augmentací obrazu. Dvě spuštění se stejnými příznaky nebudou produkovat identické kontrolní body, což je velmi důležité, když se snažíte rozhodnout, zda změna hyperparametru pomohla, nebo zda jste měli štěstí. Pro srovnání, vlastní trénovací nástroj lerobotu má výchozí seed 1000 a recept LeRobot GR00T explicitně předává --seed=42 explicitně.

Validace je ve výchozím nastavení vypnutá a dokumentovaný příznak není v tomto CLI

Jemné ladění běží s eval_strategy="no", takže vůbec neexistuje křivka validační ztráty. Získáte pouze tréninkovou ztrátu a nic jiného. Průvodce pro nové ztělesnění vám říká, abyste ji zapnuli pomocí --eval-strategy steps --eval-steps 500, ale tento příznak neexistuje v launch_finetune.py: CLI je generováno tyro z datové třídy FinetuneConfig a eval_strategy, eval_steps a eval_batch_size jsou místo toho pole třídy TrainingConfig. Jejich výchozí hodnoty jsou "no", 500 a 2. Abyste se k nim dostali, použijte úplnější vstupní bod gr00t/experiment/launch_train.py, kde je vnořený příznak --training.eval-strategy. Tak či onak, klesající tréninková ztráta sama o sobě vám říká velmi málo o generalizaci, což je přesně situace popsaná na ztráta klesá, ale politika nic nedělá.

Co stojí běh s 20000 kroky

GR00T N1.7 potřebuje 80 GB kartu, takže otázka nákladů má úzkou odpověď. Na AY-Robots běží trénovací nástroj groot1.7 na úrovni A100 80 GB nebo H100 80 GB, kde běh trvá 3 až 6 hodin za 1.20 až 2.00 USD za hodinu na spotovém trhu. To je zhruba 4 až 12 USD za výchozí úlohu s 20000 kroky. Stejný úkol na SmolVLA nebo ACT běží na 24 GB kartě za 0.30 až 0.60 USD za hodinu a 1 až 3 USD za běh. To je skutečný kompromis: GR00T stojí zhruba čtyřikrát tolik za pokus a nemůžete ho spustit na 4090 pod vaším stolem.

ModelÚroveň GPUTypický běhTypické nákladyMinimální počet epizod
GR00T N1.7A100 80 GB or H100 80 GB3 to 6 hours4 to 12 USD50
GR00T N1.5A100 80 GB or H100 80 GB3 to 6 hours4 to 12 USD50
Pi0.5A100 80 GB or H100 80 GB3 to 6 hours4 to 12 USD50
SmolVLARTX 4090 or any 24 GB card2 to 5 hours1 to 3 USD30
ACTRTX 4090 or any 24 GB card2 to 5 hours1 to 3 USD50

Minimální počet epizod 50-epizod není cílem, ale minimem. Vlastní FAQ společnosti NVIDIA je náročnější: zhruba 100 trajektorií pro jednoduché uchopení a umístění na pevném místě, 500 a více pro složité nebo vícestupňové scény a 100 až 500 pro jemnou manipulaci. Pokud máte 20 epizod, věnujte odpoledne nahrávání namísto večerního ladění. průvodce sběrem dat popisuje, co odlišuje užitečnou epizodu od zbytečné, nahrajte svůj první dataset je krátká verze a sběr dat pro SO-100 je verze specifická pro rameno.

Krok 6: vyhodnocení v otevřené smyčce, než se dotknete ramene

Nepoužívejte čerstvý kontrolní bod na fyzickém rameni, abyste zjistili, zda trénink fungoval. Nejprve spusťte vyhodnocení v otevřené smyčce. Přehrává zaznamenanou epizodu, v každém kroku se ptá modelu na akce a vykresluje predikci proti skutečnosti s MSE a MAE. Nic to nestojí a zachytí to chyby mapování z kroků 2 a 3.

bash
uv run python gr00t/eval/open_loop_eval.py \
    --dataset-path ./my_dataset_lerobot \
    --embodiment-tag NEW_EMBODIMENT \
    --model-path /tmp/so100/checkpoint-20000 \
    --traj-ids 0 \
    --execution-horizon 16 \
    --steps 400 \
    --modality-keys single_arm gripper
Grafy se ukládají do /tmp/open_loop_eval/traj_<id>.jpeg, pokud nepředáte --save-plot-path. Výchozí hodnoty: --execution-horizon 16, --steps 200, --denoising-steps 4, --traj-ids 0.

Repozitář záměrně odmítá zveřejnit cílovou MSE pro vlastní data, a to je správné rozhodnutí: číslo závisí na vašich akčních jednotkách, vašem úkolu a velikosti vašeho datového souboru, takže práh zkopírovaný z cizího ramene nic neznamená. Smysluplný je trend. Zde je referenční běh, který repozitář dokumentuje na jednom H100 s demo datovou sadou pěti epizod a 2000 kroky.

Kontrolní bodPrůměrné MSE na trajektorii 0Průměrné MAE na trajektorii 0
50087.55.63
100025.43.30
150013.22.18
200010.01.76

Tvar je signál, nikoli absolutní hodnoty. Chyba by měla stabilně klesat, jak se tréninkové kroky akumulují. Zprůměrováno přes všech pět tréninkových epizod, nikoli pouze trajektorii 0, konečný kontrolní bod repozitáře dosáhl přibližně 7.5 MSE a 1.5 MAE, takže i referenční běh se čte jinak v závislosti na tom, které epizody zprůměrujete. Zaznamenejte si vlastní základní linii na neupraveném demo příkazu, než cokoli změníte ve svých vlastních datech: pokud nemůžete reprodukovat známý funkční běh, nemůžete rozlišit chybu nastavení od problému s daty. Repozitář také mapuje běžné symptomy k příčinám a každý z nich je provozní, nikoli chyba modelu.

SymptomPravděpodobná příčina
MSE ploché nebo stoupající napříč kontrolními bodyPříliš nízká rychlost učení, nebo se data vůbec nenačítají. Zkontrolujte --dataset-path a dataloader workers.
Predikční křivka je plochá nebo konstantnímodality.json klíče nebo --modality-config-path se neshodují. Akční klíče nejsou namapovány.
MSE obrovské, nebo NaN ztráta během tréninkuNormalizace akcí a stavů. Ověřte meta/stats a že rozsahy akcí jsou fyzicky věrohodné.
Dobré na traj 0, špatné na vynechaných epizodáchNedostatek dat, nikoli chyba. Pět demo epizod nemůže zobecnit.

Jiná cesta: lerobot-train namísto Isaac-GR00T

Současná verze LeRobot, 0.6.1 na PyPI od 3. srpna 2026, nabízí druhý a zcela odlišný způsob, jak doladit stejné základní váhy. LeRobot zpřístupňuje GR00T N1.7 jako typ politiky a trénuje ji prostřednictvím vlastního lerobot-train vstupního bodu. Zde jsou důležité dvě věci. LeRobot CLI je sada konzolových skriptů, takže cokoli, co čtete a říká python lerobot/scripts/train.py je zastaralé a nebude fungovat. A LeRobot zcela odstranil podporu GR00T N1.5, odmítá kontrolní body a konfigurace N1.5 s poznámkou o migraci, takže pokud potřebujete N1.5 přes LeRobot, musíte připnout lerobot==0.5.1, poslední vydání, které ji podporuje, publikované 7. dubna 2026.

bash
pip install "lerobot[groot]" "lerobot[training]"
hf auth login

lerobot-train \
  --dataset.repo_id=$HF_USER/$DATASET_NAME \
  --dataset.image_transforms.enable=true \
  --policy.type=groot \
  --policy.device=cuda \
  --policy.base_model_path=nvidia/GR00T-N1.7-3B \
  --policy.embodiment_tag=new_embodiment \
  --policy.chunk_size=16 \
  --policy.n_action_steps=16 \
  --policy.use_relative_actions=true \
  --policy.relative_exclude_joints='["gripper"]' \
  --policy.use_bf16=true \
  --seed=42 \
  --batch_size=64 \
  --steps=20000 \
  --save_freq=5000 \
  --output_dir=$OUTPUT_DIR
Recept GR00T N1.7 nativní pro LeRobot. Všimněte si relative_exclude_joints: chapadlo je vyloučeno z relativních akcí, což je stejné rozhodnutí, jaké dělá so100_config.py s ActionRepresentation.ABSOLUTE.
AspektIsaac-GR00T launch_finetune.pylerobot-train --policy.type=groot
Verze datasetuPouze LeRobot v2, vyžaduje konverziNativní dataset LeRobot, bez downgrade
Mapování modalitymeta/modality.json plus Python datová konfiguracežádný modality.json; chování nastaveno pomocí flagů --policy.* na příkazové řádce
Seedžádný flag pro seed--seed, LeRobot výchozí 1000
Relativní akceActionConfig pro každý klíč v datové konfiguraci--policy.use_relative_actions plus --policy.relative_exclude_joints
Publikované referenční výsledkySO-100 open-loop MSE trend na demo datechSady LIBERO, průměr 96.5 procenta napříč čtyřmi sadami
Cesta nasazenírun_gr00t_server.py plus eval_so100.py přes ZMQlerobot-rollout, s chunkováním v reálném čase (queue_threshold by měl zůstat na nebo pod 5)
Spuštění jemného doladění svépomocí
Výhody
  • Každý flag je viditelný a měnitelný. Můžete odmrazit vizuální kodér, přesunout state_dropout_prob nebo zkrátit akční horizont.
  • Grafy s otevřenou smyčkou jsou lokální soubory. Porovnání checkpoint-5000 s checkpoint-20000 je shell příkaz.
  • Nezávisíte na tom, zda nějaká platforma zůstane online, a checkpoint se nachází na vašem disku ve standardním formátu.
  • Příklady benchmarků repozitáře pro LIBERO, SimplerEnv a DROID vám poskytnou známé dobré běhy k reprodukci, než budete důvěřovat vlastním datům.
Kompromisy
  • Prostředí je většina práce. Verze FFmpeg, CUDA_HOME, git-lfs, gated backbone, torchcodec: žádný z těchto problémů není problémem modelu a každý z nich zastaví běh.
  • Konverze z v3.0 na v2.1 vyžaduje samostatné virtuální prostředí s vlastním instalačním krokem a přepíše váš adresář datasetu na místě.
  • Pronájem GPU začíná účtovat, když začnete ladit, nikoli když začne trénink, a nic nezastaví instanci, když běh skončí.
  • Žádný seed znamená žádnou bit-po-bit reprodukovatelnost, navíc k 5 až 6 procentní varianci mezi běhy pouze z augmentace.

Dva způsoby, jak získat stejný checkpoint

Pronajmete si GPU a každý krok je ve vaší režii. Realisticky to poprvé zabere odpoledne a poté pokaždé dvacet minut.

  1. Nahrávejte epizody pomocí lerobot-record na SO-100. Získáte dataset LeRobot v3.0.
  2. Převeďte jej na v2.1 pomocí scripts/lerobot_conversion/convert_v3_to_v2.py ve vlastním virtuálním prostředí.
  3. Napište meta/modality.json a konfigurační soubor Python modality, registrovaný pod EmbodimentTag.NEW_EMBODIMENT.
  4. Pronajměte si 80 GB kartu, naklonujte s podmoduly, uv sync, autentizujte se proti Hugging Face.
  5. Spusťte launch_finetune.py, poté open_loop_eval.py na několika kontrolních bodech a porovnejte trend MSE, než se dotknete hardwaru.
  6. Stáhněte kontrolní bod ze stroje, než zničíte instanci, a poté vytvořte cestu pro obsluhu k rameni.
Krok, na který každý zapomene

Zkopírujte kontrolní bod z pronajaté instance, než ji vypnete. --save-total-limit 5 také znamená, že starší kontrolní body jsou s postupujícím tréninkem mazány, takže kontrolní bod, který jste chtěli v kroku 5000, již nemusí existovat v kroku 20000.

Tréninková matice AY-Robots s pěti modely politik jako řádky a čtyřmi robotickými rameny jako sloupce, přičemž každá buňka odkazuje na konkrétního průvodce tréninkem
Matice /train: pět modelů proti čtyřem ramenům. Řádek GR00T N1.7 také pokrývá SO-101, Koch v1.1 a LeKiwi.

Nahrání kontrolního bodu zpět na rameno

Isaac-GR00T používá rozdělení server-klient přes ZMQ. Politika běží na GPU a tenký klient na robotickém stroji odesílá pozorování a přijímá akční bloky. Příklad SO-100 je dostatečně kompletní k zkopírování: spusťte run_gr00t_server.py s vaším kontrolním bodem a --embodiment-tag NEW_EMBODIMENT, poté spusťte eval_so100.py na straně robota se sériovým portem, ID robota, indexy kamery a jazykovou instrukcí. Názvy kamer v tomto příkazu musí odpovídat uživatelským jménům z vašeho modality.json, nikoli číslům zařízení OS.

bash
# GPU side
uv run python gr00t/eval/run_gr00t_server.py \
  --model-path /tmp/so100/checkpoint-20000 \
  --embodiment-tag NEW_EMBODIMENT \
  --device cuda:0 \
  --host 0.0.0.0 --port 5555

# robot side, from gr00t/eval/real_robot/SO100
uv run --no-sync python eval_so100.py \
  --robot.type=so101_follower \
  --robot.port=/dev/ttyACM2 \
  --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=localhost --policy_port=5555 \
  --lang_instruction="put the cube in the yellow bowl"
--execution-horizon řídí, kolik z předpovězených kroků je provedeno před přeplánováním. Musí být nanejvýš rovno action_horizon politiky, a toto číslo je délka akčních delta_indices ve vaší konfiguraci modality, nikoli v konfiguraci základního modelu. Dodávaná konfigurace SO-100 předpovídá 16, takže 16 je váš strop; základní checkpoint nvidia/GR00T-N1.7-3B je nakonfigurován na 40, a policy.md jasně uvádí, že jemně doladěné checkpointy se mohou lišit. Překročíte-li to, obdržíte ValueError s uvedením obou čísel. 8 je hodnota, kterou dokumentace doporučuje pro nasazení v reálném čase. Starý název příznaku --action-horizon stále funguje, ale upozorňuje.
7.4 V, nikoli 12 V

Zatímco zapojujete rameno zpět: SO-100 používá sběrnicové serva Feetech STS3215 na 7.4 V napájecí liště. Napájení 12 V je zničí, a je to snadná chyba, pokud vlastníte i LeKiwi, jehož základna běží na 12 V, zatímco jeho rameno ne. Zkontrolujte napájení před prvním zapnutím, ne až po kouři. Viz hardwarová stránka SO-100 a SO-100 proti LeKiwi. Pokud se rameno zapne, ale nic se nepohybuje, servo nereaguje je místo, kde začít.

Nyní upřímná část o tom, kde běží politika, protože trénink a obsluha mají odlišné hardwarové požadavky. Jemné doladění vyžaduje 40 GB nebo více. Inference nikoli: README uvádí 16 GB nebo více a výslovně zmiňuje RTX 4090, takže karta, kterou již vlastníte, může obsluhovat checkpoint, který by nikdy nemohla vytvořit. To, co rozhoduje o tom, zda se politika zdá být citlivá, není VRAM, ale to, kde se nachází server. Na AY-Robots GR00T N1.7 je pouze cloudový, takže řídicí smyčka platí za zpáteční cestu přes veřejný internet navíc k 152 ms na akční krok, a pouze SmolVLA a ACT běží také lokálně. Pro pomalé zvedání a umisťování je vzdálený pod přežitelný. Pro cokoli reaktivního nikoli: politika se stává váhavou způsobem, který vypadá přesně jako selhání tréninku a není jím. ACT s 20 ms na akční krok je model, který toleruje nejtěsnější smyčku, SmolVLA se pohybuje na 245 ms, a žádné množství ladění latence nezíská zpět zpáteční cestu, která již byla vynaložena. Spuštění vaší první politiky provede obslužnou stranu od začátku do konce.

Co se skutečně pokazí

  • GatedRepoError při prvním spuštění. Nebyl vám udělen přístup k nvidia/Cosmos-Reason2-2B, nebo jste se neautentizovali. K tomu dochází poté, co se již spustily hodiny GPU.
  • Datová sada odmítnuta při načítání. Téměř vždy se jedná o datovou sadu v3.0. Převeďte ji na nižší verzi. Viz datová sada odmítnuta jako v3.
  • IndexError ohledně neshodných booleovských dimenzí. Změnili jste delta_indices a nevygenerovali jste znovu statistiky.
  • Nedostatek paměti u dávky 32. Snižte --global-batch-size a zvyšte --gradient-accumulation-steps, nebo snižte --num-shards-per-epoch, což konfigurace výslovně doporučuje, když je VRAM omezená. Viz nedostatek paměti během tréninku.
  • Ztráta klesá, politika nic nedělá. Ve výchozím nastavení neexistuje validační rozdělení, takže čistá tréninková křivka dokazuje jen velmi málo. Tato stránka se zabývá diagnostikou.
  • Funguje ve vašem nastavení a nikde jinde. Očekáváno u malé datové sady natočené za jedné světelné podmínky. NVIDIA doporučuje augmentaci barevného chvění plus 20 až 50 epizod napříč různým osvětlením. Více zde.
  • Chapák se nikdy správně nezavře. Zkontrolujte, zda je akce chapáku ABSOLUTNÍ a klouby ramene RELATIVNÍ, v tomto pořadí v action_configs. Chapák se nezavírá uvádí další příčiny.
  • Kamera se tiše odpojí uprostřed nahrávání. Epizoda se stále ukládá a klíč videa stále existuje, proto je to tak nepříjemné. Kamera nebyla detekována to pokrývá.

Celý index režimů selhání se nachází na . Pokud si vybíráte mezi modely, spíše než ladíte jeden, a mají čísla benchmarků s připojenými zdroji, a je porovnání, které většina lidí skutečně potřebuje, protože je to volba mezi modelem, který můžete trénovat na kartě pod vaším stolem, a modelem, pro který si musíte pronajmout 80 GB uzel k doladění. Pro pochopení, proč se tyto modely chovají tak, jak se chovají, je a stojí za to si přečíst jako první. A pokud ještě nevlastníte rameno, streamuje fyzické SO-100 bez nutnosti registrace.

Kolik epizod potřebuji, než se vyplatí doladit GR00T N1.7?

AY-Robots stanovuje minimální hranici 50 epizod pro tréninkový program groot1.7. Vlastní FAQ společnosti NVIDIA je náročnější: zhruba 100 trajektorií pro jednoduché uchopení a umístění na pevném místě, 500 nebo více pro složité nebo vícestupňové scény a 100 až 500 pro jemnou manipulaci. Pod 50 epizod je téměř vždy lepší nahrát více dat než ladit hyperparametry. Pokud se úspěšnost poté ustálí, NVIDIA doporučuje HG-DAgger: spusťte politiku, zasáhněte, když selže, a přidejte tyto korekce do datové sady.

Proč se moje datová sada nenačítá a jak poznám, jaká je to verze?

Otevřete meta/info.json a přečtěte codebase_version. Aktuální CODEBASE_VERSION LeRobota na main je v3.0, takže cokoli nahraného s nedávným toolchainem je v3.0, a GR00T loader očekává v2. Převeďte pomocí scripts/lerobot_conversion/convert_v3_to_v2.py z repozitáře Isaac-GR00T, který zapíše codebase_version: v2.1 do převedené datové sady. Skript běží ve vlastním virtualenvu, protože potřebuje jinou verzi lerobot než GR00T.

Mohu doladit GR00T N1.7 na RTX 4090?

Ne. NVIDIA doporučuje 40 GB nebo více VRAM pro doladění a uvádí uzly H100 nebo L40; jiné karty fungují, ale trvá to mnohem déle. Karta 4090 má 24 GB. AY-Robots nabízí GR00T N1.7 pouze na úrovni A100 80 GB a H100 80 GB ze stejného důvodu. Inference je jiná věc: 16 GB stačí k obsluze modelu, takže 4090 může spustit politiku, kterou nemůže trénovat. Pokud chcete VLA, kterou můžete trénovat na 24 GB, je to SmolVLA s přibližně 450 miliony parametrů nebo ACT s přibližně 80 miliony.

Proč dva běhy se stejnými příznaky dávají různé kontrolní body?

Protože launch_finetune.py nemá žádné semeno. Je to tyro CLI generované z dataclass, která neobsahuje pole pro semeno, takže nic nefixuje RNG. Repozitář samostatně uvádí 5 až 6 procentní variabilitu mezi běhy způsobenou nedeterministickou augmentací obrazu. Pokud záleží na reprodukovatelnosti, použijte místo toho cestu LeRobot: lerobot-train přijímá --seed a publikovaný recept GR00T předává --seed=42.

Mám použít Isaac-GR00T nebo lerobot-train?

Použijte Isaac-GR00T, pokud chcete referenční implementaci, kontrolu nad reprezentací akcí pro každý klíč, export TensorRT nebo příklady benchmarků k reprodukci, než budete důvěřovat vlastním datům. Použijte lerobot-train, pokud je vaše datová sada již LeRobot v3.0 a raději byste ji nepřeváděli, pokud chcete semeno, nebo pokud je zbytek vašeho stacku již LeRobot. Oba doladí stejné váhy nvidia/GR00T-N1.7-3B. Všimněte si, že LeRobot zcela zrušil podporu GR00T N1.5: kontrolní body N1.5 jsou odmítnuty s poznámkou o migraci a musíte připnout lerobot==0.5.1, abyste je mohli nadále používat.

Opravdu potřebuji kameru na zápěstí i přední kameru?

Dodávaná konfigurace SO-100 používá obě, a modality.json mapuje přední a zápěstní kameru jako samostatné video klíče. Můžete trénovat s jednou kamerou, a tabulka latence modelu je měřena s jednou kamerou, ale pohled ze zápěstí je to, co dává politice použitelné informace o chapáku v okamžiku kontaktu. Pokud se chapák zavře ve špatnou dobu ve vašich rolloutech, chybějící nebo špatně zaměřená kamera na zápěstí je jednou z prvních věcí, které je třeba zkontrolovat.

Dolaďte GR00T N1.7 na vašem SO-100 bez předchozího sestavení prostředí

Vyberte model, datovou sadu a hyperparametry ve formuláři. Backend pronajme A100 80 GB nebo H100 na spotovém trhu, spustí tréninkový program s dávkou 32, rychlostí učení 1e-4 a 20000 kroky a zapíše kontrolní body do objektového úložiště. Přibližně 4 až 12 USD za běh.

Otevřít průvodce tréninkem GR00T N1.7

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started