
Prófuð leiðbeining fyrir fínstillingu NVIDIA GR00T N1.7 á SO-100 LeRobot gagnasafni: raunverulegir fánar, modality.json, v2.1 krafan, hvað keyrsla kostar, og gildrurnar.
NVIDIA sendir með fínstillingardæmi fyrir nákvæmlega þann arm sem þú átt líklega. Inni í Isaac-GR00T geymslunni er mappa sem heitir demo_data/cube_to_bowl_5: fimm þættir, 4.148 rammar á 30 fps, þegar skrifaðir sem LeRobot v2.1, með samsvarandi stillingu fyrir mótun undir examples/SO100/. Þess meta/info.json skýrir frá robot_type: so101_follower, sem í LeRobot er sami stillingarflokkur og so100_follower. Það er sannarlega gagnlegt, því það þýðir að viðmiðunarleiðin fyrir GR00T N1.7 á sex-frelsisgráðu áhugamannaarmi er viðhaldið af fólkinu sem skrifaði líkanið. Þetta er ekki manngerð sýnikennsla minnkuð niður, þetta er sami armurinn.
Slæmu fréttirnar eru fjarlægðin á milli I recorded 60 episodes og the arm does the task. Það eru um sex staðir þar sem þessi pípa bilar hljóðlega frekar en hátt, og fjórir þeirra eru í skrám sem flestir opna aldrei: meta/modality.json, Python gagnastillingin, meta/relative_stats.json, og eigin útgáfustrengur gagnasafnsins. Þessi leiðbeining fer handvirka leiðina frá upphafi til enda með raunverulegum skipunum, sýnir síðan sama verkefni sem eyðublað á AY-Robots. Allt hér að neðan var athugað miðað við Isaac-GR00T aðalgreinina frá 20. ágúst 2026 (n1.7-útgáfulínan) og lerobot 0.6.1, gefið út á PyPI 3. ágúst 2026. Uppstreymi hreyfist hratt, og þar sem fána var breytt segir þessi grein frá því.
Það sem þú þarft að vita áður en þú byrjar
- •GR00T N1.7 fínstilling þarf 40 GB eða meira af VRAM. NVIDIA mælir með H100 eða L40 hnútum. 24 GB RTX 4090 mun ekki ráða við þetta verkefni, þó það muni þjálfa SmolVLA og ACT.
- •Gagnasafnið verður að vera LeRobot v2 (v2.0 eða v2.1) auk GR00T-sértæks meta/modality.json. LeRobot v3.0 gagnasafn hleðst ekki og þarf að breyta því niður.
- •Aðgangsstaðurinn er gr00t/experiment/launch_finetune.py, tyro CLI. Það hefur engan --seed fána, svo keyrslur eru ekki nákvæmlega endurgeranlegar.
- •Fyrir sérsniðinn arm er útfærslumerkið NEW_EMBODIMENT, og það merki gerir --modality-config-path skyldubundið.
- •Meðfylgjandi SO-100 uppskrift spáir fyrir um armliði sem HLUTFALLSLEGAR breytingar og gripinn sem ALGJÖRT markmið. Að fá þá pörun öfuga er hljóðlát bilun, ekki villa.
- •Á AY-Robots er sama verkefni eyðublað: 20000 skref, lota 32, námsferill 1e-4, um það bil 4 til 12 USD á A100 80 GB eða H100 flokki.
Hvað GR00T N1.7 raunverulega er
GR00T N1.7 er sjón-tungumál-aðgerðarlíkan með tvöföldu kerfisskipulagi sem lýst er í upprunalegu GR00T N1 greininni: sjón-tungumálseining sem les myndavélarnar og leiðbeiningarnar, og dreifingarspennir sem breytir því í samfelldan búnt af hreyfistýringum. N1.7 leysti fyrri helminginn af hólmi. Eagle burðarásinn frá N1.6 er horfinn, skipt út fyrir nvidia/Cosmos-Reason2-2B á Qwen3-VL arkitektúr, og líkanið var forþjálfað á um það bil 20.000 klukkustundum af sjálfhverfum mannlegum myndböndum auk vélmennagagna. Eigin skrif NVIDIA gefa upp töluna 20.854 klukkustundir og greina frá því að með því að fara úr 1k í 20k klukkustundir meira en tvöfaldast meðaltal verkefnalokunar.
Seinni helmingurinn breyttist líka, á vegu sem skipta máli fyrir keyrsluna þína. Aðgerðarhausinn fór úr 32 dreifingarlögum í 16, fyrirséð aðgerðarbútur stækkaði úr 16 skrefum í 40, og hámarks ástands- og aðgerðarbreidd fór úr 29 í 132. Þessar þrjár tölur koma úr breytingaskrá í README geymslunnar; eigin kynningarfærsla NVIDIA lýsir enn kerfi 1 sem 32 laga DiT, svo þar sem þau tvö eru ósammála, treystu geymslunni sem þú ert að klóna. Aðgerðir eru sjálfgefið gefnar upp í hlutfallslegu enda-áhrifara rými, frávikum frá núverandi stöðu frekar en algildum markmiðum, sem er það sem gerir það að verkum að forþekking á meðferð sem lærð er úr mannlegum myndböndum getur yfirfærst í vélmennastýringu yfirleitt. Hausinn sjálfur er flæðisjöfnunar dreifingarspennir, sama fjölskylda og Pi0.5 en með annarri burðarás fyrir framan hann. Ef þú ert enn á fyrri kynslóðinni, N1.7 á móti N1.5 fjallar um hvort uppfærslan réttlæti endurgerð leiðslunnar þinnar.
| Eiginleiki | Gildi | Hvaðan það kemur |
|---|---|---|
| Færibreytur | 3,000,000,000 | Hugging Face model card |
| Sjón-tungumálsgrind | nvidia/Cosmos-Reason2-2B (Qwen3-VL), gated on Hugging Face | repo README |
| Aðgerðarhaus | Flow-matching diffusion transformer, 16 layers (N1.6 had 32) | repo README |
| Fyrirséður aðgerðarsjóndeildarhringur | 40 steps for the base checkpoint (N1.6 had 16) | getting_started/policy.md and repo README |
| Hámarks ástands- og aðgerðarbreidd | 132 (N1.6 had 29) | repo README |
| Kóðaleyfi | Apache 2.0 | Isaac-GR00T repository |
| Þyngdarleyfi | NVIDIA Open Model License Agreement | model card |
| Seinkun, H100 80 GB, PyTorch eager, 4 afhávaðaskref, 1 myndavél | 85.8 ms end to end, 11.7 Hz | model card timing table |
| Sami vélbúnaður, TensorRT full leiðsla | 27.9 ms end to end, 35.9 Hz | model card timing table |
| Seinkun sem AY-Robots gefur upp fyrir þjónustað GR00T N1.7 | 152 ms per action step | AY-Robots policy catalog |
Þessar síðustu þrjár raðir útskýra mest af þeim vonbrigðum sem fólk greinir frá. Fyrirsögnin 27.9 ms er TensorRT vél á H100 með einni myndavél og fjórum afhávaðaskrefum. Venjulegt PyTorch á sama korti er 85.8 ms, og líkanakortið setur bilið á 3.08x. Engin tala inniheldur þjónustulag, aðra myndavél eða netstökk. 152 ms á aðgerðarskref sem AY-Robots gefur upp fyrir þjónustað GR00T N1.7 er talan með þjónustu í lykkjunni, og almenn internetferð fram og til baka bætist ofan á það. Meira um þetta í lokin. Fyrir tölurnar við hlið annarra líkana, GR00T N1.7 á móti Pi0.5 og GR00T N1.7 á móti SmolVLA sýna þær hlið við hlið.

Hvað keyrslan þarf áður en þú slærð inn eitthvað
| Krafa | Fínstilling | Ályktun |
|---|---|---|
| VRAM, leiðbeiningar frá NVIDIA | 40 GB eða meira, H100 eða L40 mælt með | 16 GB eða meira, RTX 4090 virkar |
| Python og CUDA á dGPU | 3.12 og CUDA 12.8 | 3.12 og CUDA 12.8 |
| Myndbandsbakendi | torchcodec 0.8.0, FFmpeg 4 til 7 eingöngu | sama |
| Snið gagnasafns | LeRobot v2 auk meta/modality.json | á ekki við |
| Aðgangur að Hugging Face | samþykkt fyrir nvidia/Cosmos-Reason2-2B | sama |
| Önnur verkfæri | git-lfs og uv | uv |
| AY-Robots GPU flokkur fyrir groot1.7 þjálfarann | A100 80 GB eða H100 80 GB | pod úthlutað sjálfkrafa |
Sérhver GR00T geymslustaður, þar á meðal grunn nvidia/GR00T-N1.7-3B, hleður nvidia/Cosmos-Reason2-2B við fyrstu notkun, og það geymslusvæði er lokað. README skráin lýsir biluninni nákvæmlega: hleðsla líkans mistekst með GatedRepoError / 401 Client Error. Það sem ekki er minnst á er hvenær það gerist, sem er eftir að þú hefur leigt kortið og keyrslan er hafin. Biðja um aðgang á líkanasíðunni, keyrðu síðan uv run huggingface-cli login eða flyttu út HF_TOKEN áður en þú leigir eitthvað.
Skref 0: þættirnir sjálfir
Allt hér að neðan gerir ráð fyrir að þú hafir þegar tekið upp þætti. Ef ekki, þá er það hið raunverulega fyrsta skref og það er það sem ræður því hversu góð niðurstaðan getur orðið, því herminám getur ekki endurheimt upplýsingar sem ekki eru í gögnunum. Kvörðuðu báða armana fyrst, keyrðu síðan fylgjandann með leiðtogaarmi á meðan lerobot-record skrifar parquet skrárnar og myndavélarstraumana. Ef kvörðun er röng, lýsa liðgildin í gagnasafninu þínu örlítið öðruvísi vélmenni en því sem síðar mun framkvæma stefnuna, og engin þjálfun lagar það.
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=trueRáð LeRobot er að taka upp að minnsta kosti 50 þætti með um 10 á hvern stað hlutar, halda myndavélunum föstum og halda griphegðun stöðugri. Bættu við breytileika síðar, ekki í upphafi. Þumalputtareglan sem vert er að muna: ef þú gætir ekki framkvæmt verkefnið sjálfur út frá myndavélarmyndunum einum saman, þá getur stefnan það ekki heldur. Fyrir uppsetningu sem er sértæk fyrir arminn, SO-100 byrjunarleiðbeiningar og SO-100 LeRobot síðan fjalla um tengi, kvörðun og myndavélarvísitölur. Á AY-Robots geturðu einnig gert þetta yfir internetið úr vafranum með því að nota fjarstýringu og tekið upp beint úr lotunni.
Skref 1: gagnasafnið verður að vera LeRobot v2.1
Þetta er ein algengasta hindrunin. Núverandi CODEBASE_VERSION á aðalgreininni er v3.0, svo allt sem þú tekur upp í dag með núverandi verkfærakeðju kemur út sem v3.0. Hleðslutæki GR00T gerir ráð fyrir v2. Geymslan er skýr um ástæðuna: mörg gagnasöfn uppstreymis eins og DROID, LIBERO og Bridge eru gefin út í v2, og innfæddur stuðningur við bæði er áætlaður en ekki sendur. Svo umbreytingin er á þína ábyrgð, og hún keyrir í eigin sýndarumhverfi af ákveðinni ástæðu: scripts/lerobot_conversion ber með sér eigið pyproject sem biður um Python 3.10 eða 3.11 og festir lerobot við eina git commit, á meðan Isaac-GR00T sjálft krefst Python 3.12. Settu upp breytirann frá rót geymslunnar og þú færð gr00t pakka í staðinn, sem eru mistökin sem README þess varar við. Ef þú ert nýr í sniðinu, þá útskýrir LeRobot gagnasafnið orðalistafærslan hvað er í raun og veru inni í einu slíku.
# 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_lerobotEf v3.0 gagnasafnið er þegar til staðbundið, byggir skriftan v2.1 skipulagið við hliðina á því og skiptir svo: upprunalega er fært í systurmöppu með útgáfunni bætt við, <name>_v3.0, og umbreytta afritið tekur upprunalegu slóðina. (Eigin docstring skriftunnar kallar þá möppu _v30; kóðinn bætir við útgáfustrengnum, svo það sem þú færð í raun er _v3.0.) Önnur óvænting: úttakið lendir alltaf undir <root>/<repo-id>, svo --root examples/SO100/my_dataset_lerobot gefur þér examples/SO100/my_dataset_lerobot/<your-hf-user>/<your-dataset>, og sú lengri slóð er sú sem --dataset-path vill síðar. Þegar þjálfunarverkefni hafnar gagnasafninu þínu vegna útgáfuástæðna, síðan um gagnasafninu hafnað sem v3 listar upp nákvæm einkenni.
Uppbyggingin sem GR00T vill eftir umbreytingu er klassískt v2 skipulag: meta/info.json, meta/episodes.jsonl, meta/tasks.jsonl, parquet skrár undir data/chunk-000/, MP4 skrár undir videos/chunk-000/observation.images.
Skref 2: modality.json, tölurnar sex sem ráða öllu
Í LeRobot gagnasafni eru ástand vélmennisins og aðgerðin geymd sem flatar float32 fylki. Fyrir SO-100 hafa bæði lögun [6]: fimm armliðir og griparmi. Kynningargagnasafnið nefnir þá shoulder_pan.pos, shoulder_lift.pos, elbow_flex.pos, wrist_flex.pos, wrist_roll.pos, gripper.pos, en þessi nöfn búa í info.json og ekkert í parquet skránni segir hvaða vísir er hvaða. meta/modality.json gefur þessa kortlagningu, og GR00T mun ekki þjálfa án hennar. Hér er sú sem geymslan sendir fyrir SO-100, orðrétt.
{
"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"
}
}
}Afritaðu það í umbreytt gagnasafn þitt á meta/modality.json og endurnefndu myndbandslyklana í það sem myndavélarnar þínar heita í raun. Ef þú tókst upp með einni yfirlitsmyndavél sem heitir top, þá er original_key observation.images.top og vinalega nafnið er það sem gagnastillingin þín mun vísa í. Þau tvö verða að vera sammála, og hvorugt þeirra athugar hitt fyrir þig. Tungumálaskýringin er verri, því sami lykillinn þarf að birtast á þremur stöðum.
| Lag | Skrá | SO-100 form notað í geymslunni |
|---|---|---|
| Parquet dálkur | data/chunk-*/episode_*.parquet | annotation.human.task_description |
| modality.json lykill | meta/modality.json, under "annotation", without the annotation. prefix | human.task_description |
| modality_keys í gagnastillingunni | your so100_config.py | annotation.human.task_description |
Hlutarnir á eftir annotation. eru valdir af þeim sem bjó til gagnasafnið. The SO-100 demo data uses annotation.human.task_description; LIBERO and SimplerEnv use annotation.human.action.task_description. Bæði eru gild. Ef þú afritaðir stillingu úr LIBERO dæmi og beindir henni á þína eigin SO-100 upptöku, leysist tungumálaleiðin í ekki neitt og líkanið þjálfast á tómri leiðbeiningu. Tap minnkar samt. Stefna gerir samt eitthvað. Það hunsar bara það sem þú baðst það um að gera.
Skref 3: gagnastillingin, hlutfallslegur armur og algjör gripur
Stillingar fyrir mótun (modality config) eru Python skrá frekar en JSON, því hún ákveður einnig hvernig hver aðgerðahópur er táknaður. Þetta er sá hluti N1.7 vinnuflæðisins sem var ekki til í sömu mynd í N1.5, og sá hluti sem vert er að lesa tvisvar. SO-100 stillingin sem fylgir spáir fyrir um fimm armliði sem RELATIVE hlutfallslegar (relative) breytingar frá núverandi ástandi og gripinn sem ABSOLUTE algilda (absolute) markstöðu, því tvíundar opnunar- eða lokunarmerki hegðar sér betur sem markmið en sem breyting.
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)Tvö smáatriði hér munu kosta þig heilan dag ef þú þekkir þau ekki. Í fyrsta lagi, action_configs er staðbundin: skjölun krefst sömu lengdar og sömu röðar og modality_keys, og þau eru skýr um afleiðingarnar af því að gera mistök, sem er að röng framsetning er notuð án viðvörunar. Griparinn þinn er þjálfaður sem breyting og armurinn þinn sem algilt markmið, og engin villuboð birtast. Í öðru lagi, register_modality_config staðfestir að merkið sé ekki þegar skráð, svo önnur NEW_EMBODIMENT stilling í sama Python ferli deyr með Embodiment tag ... already registered. Þú getur ekki flutt inn tvær slíkar í eitt skjal. Þriðja reglan er framfylgt síðar, við dreifingu: aðgerðin delta_indices verður að vera samliggjandi svið sem byrjar á núlli. Dreifður gluggi eins og [0, 4, 8] er hafnað, því allt niðurstreymis vísar í spáða hluta línulega og myndi annars framkvæma rangar raðir.
Staðlaðar tölfræði, sérstaklega meta/relative_stats.json, eru reiknaðar fyrir þá sjóndeildarhringslengd sem þú hafðir þegar þú bjóst þær til. Styttu aðgerðarsjóndeildarhringinn úr 16 í 8 án þess að endurnýja og þjálfunin deyr með IndexError: boolean index did not match indexed array ... dimension is 8 but corresponding boolean dimension is 16. Lausnin er ein skipun: python gr00t/data/stats.py --dataset-path <path> --embodiment-tag NEW_EMBODIMENT --modality-config-path examples/SO100/so100_config.py. Keyrðu hana eftir allar breytingar á delta_indices.
Skref 4: umhverfið
N1.7 færði geymsluna yfir á og Python 3.12. Gamla conda plús pip install -e . leiðin er enn til í samfelldum hluta README, en hún varar við því að GPU-háðir pakkar, þar á meðal flash-attn og TensorRT, gætu þurft handvirka uppsetningu. Notaðu uv nema þú hafir sérstaka ástæðu til að gera það ekki. Varðandi flash-attn, þá sparar eitt smáatriði rugling: þú munt sjá Installing flash-attn prentað út í hvert skipti sem þú keyrir uv run. Það er ekki að endurbyggja. uv er að endurstaðfesta URL-fastan hjólapakka sem er þegar í skyndiminni, og það tekur tvær eða þrjár sekúndur.
- 1Settu upp git-lfs, klónaðu síðan með undireiningum
git-lfs er nauðsynlegt, ekki valfrjálst. Án þess koma parquet skrárnar í demo_data/ niður sem bendistubbar, og kynningin mistekst á gagnasafni sem virðist vera til staðar í skráarlistanum.
bashsudo apt install git-lfs && git lfs install git clone --recurse-submodules https://github.com/NVIDIA/Isaac-GR00T cd Isaac-GR00T - 2Settu upp uv og samstilltu umhverfið
Sjálfgefin uppsetning sækir GPU-háðir pakka, þar á meðal flash-attn og TensorRT. Á nýrri A100 eða H100 mynd er þetta lengsta einstaka skrefið, svo gerðu það áður en þú ferð að gefa öðru gaum.
bashcurl -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')" - 3Auðkenndu þig gegn Hugging Face
Gerðu þetta áður en fyrsta þjálfunin hefst, ekki eftir að hún mistekst eftir átta mínútur.
bashuv run huggingface-cli login # or: export HF_TOKEN=<your_token> - 4Heilbrigðisathugun á meðfylgjandi SO-100 kynningargögnum
Áður en þú snertir eigin upptöku skaltu keyra 2000 skref á demo_data/cube_to_bowl_5. Þetta eru fimm þættir, það klárast hratt, og það sannar umhverfið frekar en gögnin þín. Ef þessi keyrsla mistekst, mun ekkert sem þú gerir við gagnasafnið þitt hjálpa.
bashCUDA_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
FFmpeg 8. torchcodec 0.8.0 styður aðeins FFmpeg 4 til 7, og Ubuntu 25.10 og nýrri útgáfur innihalda útgáfu 8. Villan er Could not load libtorchcodec, sem lítur út eins og biluð uppsetning frekar en útgáfuágreiningur. Settu upp eldri keyrslutíma, til dæmis conda install -c conda-forge 'ffmpeg<8', og settu bókasöfnin á LD_LIBRARY_PATH. CUDA_HOME er óstillt. Fínstilling mistekst alveg. Keyrðu bash scripts/deployment/dgpu/install_deps.sh einu sinni, eða einfaldlega export CUDA_HOME=/usr/local/cuda.
Skref 5: fínstillingar skipunin og raunveruleg sjálfgefin gildi fána hennar
Skiptu út kynningargagnasafninu fyrir þitt eigið og bættu við þeim stillingum sem þú raunverulega vilt. Hér fyrir neðan er full útgáfa sem geymslan notar í sinni eigin nýju-líkamsgerðar kennsluefni, þar á meðal stækkunar- og geymslupunktafánar sem stutta README dæmið sleppir. Þetta er í þröngum skilningi: tungumálsgrindin og sjónræni kóðarinn haldast frosnir, og það sem þjálfast er skjávarpinn og dreifingar aðgerðarhausinn.
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| Fáni | Sjálfgefið í FinetuneConfig | Hvað það gerir |
|---|---|---|
| --global-batch-size | 64 | Heildar lotustærð yfir öll GPU áður en hallasöfnun á sér stað. Dæmin sem fylgja nota 32. |
| --learning-rate | 1e-4 | Sama gildi og AY-Robots sendir fyrir groot1.7 þjálfarann sinn. |
| --max-steps | 10000 | Heildar fínstillingarskref. examples/finetune.sh umbúðirnar eru einnig sjálfgefnar 10000. |
| --gradient-accumulation-steps | 1 | Margfaldar virka lotustærð. Gildi yfir 1 gefa frá sér viðvörun sem segir þér uppsafnaða stærð. |
| --save-steps and --save-total-limit | 1000 and 5 | Tíðni geymslupunkta, og hversu margir eru geymdir. Eldri eru eytt. |
| --weight-decay and --warmup-ratio | 1e-5 and 0.05 | Stillt sérstaklega af examples/finetune.sh líka. |
| --state-dropout-prob | 0.2 in the CLI, 0.8 in the model config | Sleppir af handahófi eiginástandi meðan á þjálfun stendur. Lækkaðu það ef verkefnið þitt byggir á ástandi. |
| --tune-llm and --tune-visual | False and False | Burðarvirkið helst frosið sjálfgefið. |
| --tune-projector and --tune-diffusion-model | True and True | Skjávarpinn og dreifingar aðgerðarhausinn eru það sem raunverulega þjálfast. |
| --use-percentiles | True | Staðlaðu með q01 og q99 í stað óunninna lágmarks- og hámarksgilda. |
| --dataloader-num-workers | 2 | Hleðslutækið er CPU-undirstaða samkvæmt hönnun. Dæmin hækka þetta í 4. |
| --seed | does not exist | Það er enginn seed fáni á þessu CLI. |
Síðasta röðin er ekki innsláttarvilla. launch_finetune.py er tyro CLI sem er búið til úr dataclass, og sá dataclass hefur ekkert seed-svæði. README skjalið tekur sérstaklega fram 5 til 6 prósenta frávik milli keyrslna af völdum ónákvæmrar myndaukningar. Tvær keyrslur með eins flöggum munu ekki framleiða eins checkpoints, sem skiptir miklu máli þegar reynt er að ákveða hvort breyting á hyperparameter hafi hjálpað eða hvort þú hafir verið heppinn. Til samanburðar, sjálfgefinn trainer lerobot notar seed 1000, og LeRobot GR00T recipe sendir --seed=42 skýrt.
Fínstilling keyrir með eval_strategy="no", svo það er engin staðfestingartapferill yfirleitt. Þú færð þjálfunartap og ekkert annað. Leiðbeiningar um nýja útfærslu segja þér að kveikja á því með --eval-strategy steps --eval-steps 500, en það flagg er ekki til á launch_finetune.py: CLI er búið til af tyro úr FinetuneConfig dataclassanum, og eval_strategy, eval_steps og eval_batch_size eru svæði í TrainingConfig í staðinn. Sjálfgefin gildi þeirra þar eru "no", 500 og 2. Til að ná í þau, notaðu fullkomnari inngangspunktinn gr00t/experiment/launch_train.py, þar sem innbyggða flaggið er --training.eval-strategy. Hvort sem er, þá segir lækkandi þjálfunartap eitt og sér mjög lítið um generalization, sem er nákvæmlega sú staða sem lýst er á tap lækkar en stefnan gerir ekkert.
Hvað 20000 skrefa keyrsla kostar
GR00T N1.7 þarf 80 GB kort, svo kostnaðarspurningin hefur þröngt svar. Á AY-Robots keyrir groot1.7 trainerinn á A100 80 GB eða H100 80 GB flokki, þar sem keyrsla tekur 3 til 6 klukkustundir á 1.20 til 2.00 USD á klukkustund á spot market. Það er um það bil 4 til 12 USD fyrir sjálfgefna 20000 skrefa vinnu. Sama verkefni á SmolVLA eða ACT lendir á 24 GB korti á 0.30 til 0.60 USD á klukkustund og 1 til 3 USD á keyrslu. Það er raunverulega málamiðlunin: GR00T kostar um fjórum sinnum meira á tilraun, og þú getur ekki keyrt það á 4090 undir skrifborðinu þínu.
| Líkan | GPU flokkur | Dæmigerð keyrsla | Dæmigerður kostnaður | Lágmarksþættir |
|---|---|---|---|---|
| GR00T N1.7 | A100 80 GB or H100 80 GB | 3 to 6 hours | 4 to 12 USD | 50 |
| GR00T N1.5 | A100 80 GB or H100 80 GB | 3 to 6 hours | 4 to 12 USD | 50 |
| Pi0.5 | A100 80 GB or H100 80 GB | 3 to 6 hours | 4 to 12 USD | 50 |
| SmolVLA | RTX 4090 or any 24 GB card | 2 to 5 hours | 1 to 3 USD | 30 |
| ACT | RTX 4090 or any 24 GB card | 2 to 5 hours | 1 to 3 USD | 50 |
Lágmarkið 50-þáttur er lágmark, ekki markmið. Algengar spurningar NVIDIA sjálfs eru kröfumeiri: um það bil 100 ferlar fyrir einfalda staðsetningu og flutning, 500 eða fleiri fyrir flóknar eða margþrepa senur, og 100 til 500 fyrir fínlega meðhöndlun. Ef þú ert með 20 þætti, eyddu síðdeginu í upptökur frekar en kvöldinu í fínstillingu. leiðbeiningar um gagnasöfnun fjalla um hvað skilur gagnlegan þátt frá sóuðum, skráðu fyrsta gagnasafnið þitt er stutta útgáfan, og SO-100 gagnasöfnun er sú sem er sérstök fyrir arminn.

Skref 6: opinn lykkju mat áður en þú snertir arminn
Ekki setja nýjan eftirlitsstað á líkamlegan arm til að komast að því hvort þjálfunin virkaði. Keyrðu opna lykkju matið fyrst. Það spilar upptekinn þátt aftur, biður líkanið um aðgerðir í hverju skrefi og teiknar spá á móti raunverulegum gögnum með MSE og MAE. Það kostar ekkert og það grípur kortlagningarvillur frá skrefum 2 og 3.
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 gripperGagnasafnið neitar vísvitandi að birta mark-MSE fyrir sérsniðin gögn, og það er rétt ákvörðun: talan fer eftir aðgerðareiningum þínum, verkefni þínu og stærð gagnasafnsins, svo þröskuldur afritaður frá armi einhvers annars þýðir ekkert. Það sem er þýðingarmikið er þróunin. Hér er viðmiðunaraksturinn sem gagnasafnið skjalfestir á einum H100 með fimm þátta kynningargagnasafninu og 2000 skrefum.
| Eftirlitsstaður | Meðal-MSE á ferli 0 | Meðal-MAE á ferli 0 |
|---|---|---|
| 500 | 87.5 | 5.63 |
| 1000 | 25.4 | 3.30 |
| 1500 | 13.2 | 2.18 |
| 2000 | 10.0 | 1.76 |
Lögunin er merkið, ekki algildin. Villa ætti að minnka jafnt og þétt eftir því sem þjálfunarskref safnast upp. Meðaltal yfir alla fimm þjálfunarþættina, frekar en aðeins feril 0, sýndi að lokapunktur geymslunnar skoraði um það bil 7.5 MSE og 1.5 MAE, svo jafnvel viðmiðunaraksturinn lesst öðruvísi eftir því hvaða þætti þú meðaltalar. Skráðu þína eigin grunnlínu á óbreyttri kynningarskipan áður en þú breytir einhverju í þínum eigin gögnum: ef þú getur ekki endurtekið þekktan góðan akstur geturðu ekki greint uppsetningarvillu frá gagnamáli. Geymslan kortleggur einnig algeng einkenni við orsakir, og hvert þeirra er rekstrarlegt frekar en líkanagalla.
| Einkenni | Líkleg orsök |
|---|---|
| MSE flatt eða hækkandi yfir eftirlitsstöðvar | Námsferill of lágur, eða gögnin hlaðast alls ekki. Athugaðu --dataset-path og dataloader vinnsluaðila. |
| Spáferill er flatur eða stöðugur | modality.json lyklar eða --modality-config-path passa ekki. Aðgerðalyklar eru ekki kortlagðir. |
| MSE gríðarlegt, eða NaN tap við þjálfun | Aðgerða- og ástandsnormalisering. Staðfestu meta/stats og að aðgerðasviðin séu líkamlega trúverðug. |
| Gott á ferli 0, lélegt á óþekktum þáttum | Gagnaskortur, ekki galli. Fimm kynningarþættir geta ekki alhæft. |
Hin leiðin: lerobot-train í stað Isaac-GR00T
Núverandi LeRobot útgáfa, 0.6.1 á PyPI síðan 3. ágúst 2026, býður upp á aðra og nokkuð ólíka leið til að fínstilla sömu grunnþyngdir. LeRobot sýnir GR00T N1.7 sem stefnugerð og þjálfar hana í gegnum sinn eigin lerobot-train inngangspunkt. Tvennt skiptir máli hér. LeRobot CLI er safn af stjórnskipanaskriftum, svo allt sem þú lest sem segir python lerobot/scripts/train.py er úrelt og mun ekki keyra. Og LeRobot fjarlægði GR00T N1.5 stuðning alfarið, hafnaði N1.5 eftirlitsstöðvum og stillingum með færslutilkynningu, svo ef þú þarft N1.5 í gegnum LeRobot verður þú að festa lerobot==0.5.1, síðustu útgáfuna sem styður það, gefin út 7. apríl 2026.
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| Þáttur | Isaac-GR00T launch_finetune.py | lerobot-train --policy.type=groot |
|---|---|---|
| Útgáfa gagnasafns | Aðeins LeRobot v2, umbreyting nauðsynleg | Innfætt LeRobot gagnasafn, engin niðurfærsla |
| Kortlagning mótunar | meta/modality.json auk Python gagnastillingar | ekkert modality.json; hegðun stillt með --policy.* fánum á skipanalínunni |
| Fræ | enginn fræfáni yfirleitt | --seed, LeRobot sjálfgefið 1000 |
| Hlutfallslegar aðgerðir | ActionConfig fyrir hvern lykil í gagnastillingunni | --policy.use_relative_actions auk --policy.relative_exclude_joints |
| Birtar viðmiðunarniðurstöður | SO-100 opinn lykkju MSE þróun á sýnigögnum | LIBERO svítur, 96.5 prósent meðaltal yfir fjórar svítur |
| Útfærsluleið | run_gr00t_server.py auk eval_so100.py yfir ZMQ | lerobot-rollout, með rauntíma skiptingu (queue_threshold ætti að vera á eða undir 5) |
- Hver fáni er sýnilegur og breytanlegur. Þú getur afþýtt sjónræna kóðarann, fært state_dropout_prob, eða stytt aðgerðarsjóndeildarhringinn.
- Opinn lykkju myndritin eru staðbundnar skrár. Að bera saman checkpoint-5000 við checkpoint-20000 er skipanalína.
- Þú ert ekki háður því að neinn vettvangur haldist á netinu, og gátpunkturinn situr á disknum þínum á staðlaðu sniði.
- Viðmiðunardæmi geymslunnar fyrir LIBERO, SimplerEnv og DROID gefa þér þekktar góðar keyrslur til að endurtaka áður en þú treystir eigin gögnum.
- Umhverfið er mest af vinnunni. FFmpeg útgáfa, CUDA_HOME, git-lfs, gated backbone, torchcodec: ekkert af þessu eru líkanvandamál og hvert og eitt þeirra stöðvar keyrsluna.
- Umbreytingin frá v3.0 í v2.1 þarf sérstakt sýndarumhverfi með eigin uppsetningarskrefi, og hún skrifar yfir gagnasafnsskrána þína á staðnum.
- Leiga á GPU byrjar að rukka þegar þú byrjar að villuleita, ekki þegar þjálfun hefst, og ekkert stöðvar tilvikið þegar keyrslunni lýkur.
- Enginn fræfáni þýðir enga bit-fyrir-bit endurgerðanleika, auk 5 til 6 prósenta breytileika milli keyrslna frá stækkun einni saman.
Tvær leiðir til að fá sama gátpunkt
Þú leigir GPU-ið og átt hvern einasta skref. Raunhæft er að þetta taki einn eftirmiðdag í fyrsta skipti og tuttugu mínútur í hvert skipti eftir það.
- Taktu upp þætti með lerobot-record á SO-100. Þú færð LeRobot v3.0 gagnasafn.
- Umbreyttu því niður í v2.1 með scripts/lerobot_conversion/convert_v3_to_v2.py í eigin sýndarumhverfi.
- Skrifaðu meta/modality.json og Python modality stillingu, skráða undir EmbodimentTag.NEW_EMBODIMENT.
- Leigðu 80 GB kort, klónaðu með undireiningum, uv sync, auðkenndu þig gegn Hugging Face.
- Keyrðu launch_finetune.py, síðan open_loop_eval.py á nokkrum geymslupunktum, og berðu saman MSE þróunina áður en þú snertir vélbúnað.
- Dragðu geymslupunktinn af vélinni áður en þú eyðir tilvikinu, byggðu síðan þjónustuleiðina að arminum.
Afritaðu geymslupunktinn af leigða tilvikinu áður en þú slekkur á því. --save-total-limit 5 þýðir einnig að eldri geymslupunktar eru eytt eftir því sem þjálfun heldur áfram, svo geymslupunkturinn sem þú vildir á skrefi 5000 gæti ekki verið til lengur á skrefi 20000.
Sama verkefni og eyðublað. Þú velur líkanið og gagnasafnið, bakendinn leigir GPU á skyndimarkaði eftir nauðsynlegu VRAM, keyrir þjálfarann og skrifar geymslupunkta í hlutageymslu. Leiðbeiningarnar fyrir GR00T N1.7 á SO-100 eru nákvæmlega þessi samsetning; þjálfunarfylkið hefur allar aðrar líkan- og armpörun, þar á meðal GR00T N1.7 á SO-101.
| Hvað groot1.7 þjálfarinn sendir | Gildi |
|---|---|
| Lotustærð | 32 |
| Námshraði | 1e-4 |
| Hámarksskref | 20000 |
| Hallastöflun | 1, and it does take effect for this trainer |
| Auka stilling sýnileg í eyðublaðinu | saveSteps |
| Grunngeymslupunktur | nvidia/GR00T-N1.7-3B |
| Samþykkt gagnasafnsform | LeRobot v2.0 or v2.1 |
Gagnasafnið getur komið frá Hugging Face geymsluauðkenni, frá þinni eigin vél, eða frá lotu sem þú tókst upp með skjáborðsforritinu. Ályktun er sérstakt skref: pallurinn úthlutar pod sem þjónar stefnunni, og staðbundinn vélmennaforrit þitt talar við þann endapunkt. Pods bera aðgerðalausan varðhund og eyða sér eftir aðgerðalaust tímabil, svo gleymdur vafraflipa reiknast ekki yfir nótt. Ef þú vilt frekar ekki smella, eru sömu aðgerðir til á CLI og MCP netþjóninum.
GR00T N1.7 og Pi0.5 eru eingöngu í skýinu hér; aðeins SmolVLA og ACT keyra einnig staðbundið. V2.1 krafan hverfur ekki heldur, því v3.0 gagnasafn þarf enn að vera umbreytt niður áður en GR00T hleðslutækið samþykkir það. Og ekkert skrifar modality.json merkingar þínar fyrir þig: ef myndavélarlyklar þínir eða tungumálalykill þinn eru rangir, eru þeir rangir á báðum leiðum. Sjá þjálfunarskjölin fyrir hvað bakendinn gerir og gerir ekki fyrir þína hönd.

Að koma eftirlitsstöðinni aftur á handlegginn
Isaac-GR00T notar skiptingu milli miðlara og biðlara yfir ZMQ. Stefna keyrir á GPU, og þunnur biðlari á vélmennavélinni sendir athuganir og tekur á móti aðgerðabrotum. SO-100 dæmið er nógu fullkomið til að afrita: ræstu run_gr00t_server.py með eftirlitsstöðinni þinni og --embodiment-tag NEW_EMBODIMENT, keyrðu síðan eval_so100.py á vélmennahliðinni með raðtengi, vélmennaauðkenni, myndavélarvísitölum og tungumálaleiðbeiningum. Nöfn myndavélanna í þeirri skipun verða að passa við vinalegu nöfnin úr modality.json skránni þinni, ekki tölur stýrikerfisins.
# 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"Meðan þú tengir arminn aftur: SO-100 notar Feetech STS3215 strætíservó á 7.4 V spennu. Að gefa þeim 12 V eyðileggur þá, og það er auðveld mistök ef þú átt líka LeKiwi, en grunnur hans gengur á 12 V á meðan armurinn gerir það ekki. Athugaðu aflgjafann fyrir fyrstu ræsingu, ekki eftir reykinn. Sjá vélbúnaðarsíðu SO-100 og SO-100 á móti LeKiwi. Ef armurinn ræsir sig en ekkert hreyfist, er servó svarar ekki staðurinn til að byrja.
Nú kemur heiðarlegi hlutinn um hvar stefnan keyrir, því þjálfun og þjónusta hafa mismunandi vélbúnaðarsögur. Fínstilling vill 40 GB eða meira. Ályktun gerir það ekki: README segir að það sé 16 GB eða meira og nefnir RTX 4090 sérstaklega, svo kort sem þú átt nú þegar getur þjónað gátpunkti sem það hefði aldrei getað framleitt. Það sem ræður því hvort stefnan virðist móttækileg er ekki VRAM, heldur hvar netþjónninn er staðsettur. Á AY-Robots er GR00T N1.7 eingöngu í skýinu, svo stjórnunarlykkjan greiðir almenna internetferð ofan á 152 ms á hverju aðgerðarskrefi, og aðeins SmolVLA og ACT keyra einnig staðbundið. Fyrir hæga val og staðsetningu er fjarlægur podur lifandi. Fyrir allt sem er viðbragðsgott er það ekki: stefnan verður hikandi á þann hátt sem lítur nákvæmlega út eins og þjálfunarbilun og er það ekki. ACT á 20 ms á hverju aðgerðarskrefi er líkanið sem þolir þéttustu lykkjuna, SmolVLA situr á 245 ms, og engin upphæð af stillingu á biðtíma kaupir til baka ferð sem þegar hefur verið eytt. Keyrðu fyrstu stefnu þína fer í gegnum þjónustuhliðina frá upphafi til enda.
Hvað fer í raun úrskeiðis
- GatedRepoError við fyrstu keyrslu. Þú hefur ekki fengið aðgang að nvidia/Cosmos-Reason2-2B, eða þú auðkenndir þig ekki. Þetta gerist eftir að GPU klukkan er þegar byrjuð.
- Gagnasafni hafnað við hleðslu. Næstum alltaf v3.0 gagnasafn. Umbreyttu því niður. Sjá gagnasafni hafnað sem v3.
- IndexError vegna ósamræmdra boolean vídda. Þú breyttir delta_indices og endurgerðir ekki tölfræðina.
- Minni klárast við lotu 32. Minnkaðu --global-batch-size og hækkaðu --gradient-accumulation-steps, eða minnkaðu --num-shards-per-epoch, sem stillingin mælir sérstaklega með þegar VRAM er takmarkað. Sjá minni klárast við þjálfun.
- Tap minnkar, stefna gerir ekkert. Engin staðfestingarskipting er sjálfgefin, svo hrein þjálfunarferill sannar mjög lítið. Þessi síða fjallar um greininguna.
- Virkar í þinni uppsetningu en hvergi annars staðar. Búist við með litlu gagnasafni sem tekið er upp við eina lýsingarskilyrði. NVIDIA mælir með litabreytingum (colour jitter augmentation) auk 20 til 50 þátta við mismunandi lýsingu. Meira hér.
- Griparinn lokast aldrei rétt. Athugaðu að griparinn sé ABSOLUTE og armliðirnir RELATIVE, í þeirri röð í action_configs. Griparinn lokast ekki listar aðrar orsakir.
- Myndavél dettur hljóðlaust út í miðri upptöku. Þátturinn vistar samt og myndbandslykillinn er enn til, þess vegna er þetta óþægilegt. Myndavél ekki greind fjallar um það.
Heildarvísitala bilana er á . Ef þú ert að velja á milli líkana frekar en að kemba eitt, þá hafa og viðmiðunartölur með heimildum, og er sá samanburður sem flestir þurfa í raun, því það er valið á milli líkans sem þú getur þjálfað á kortinu undir skrifborðinu þínu og líkans sem þú þarft að leigja 80 GB hnút til að fínstilla. Til að fá bakgrunn um hvers vegna þessi líkön hegða sér eins og þau gera, eru og þess virði að lesa fyrst. Og ef þú átt ekki arm ennþá, þá streymir líkamlegum SO-100 án skráningar.
Hversu marga þætti þarf ég áður en fínstilling á GR00T N1.7 er þess virði?▾
AY-Robots setur lágmark 50 þætti fyrir groot1.7 þjálfarann. Eigin FAQ NVIDIA er krefjandi: um 100 ferlar fyrir einfalda tínslu og staðsetningu á föstum stað, 500 eða fleiri fyrir flóknar eða fjölþrepa senur, og 100 til 500 fyrir fínlega meðhöndlun. Undir 50 er næstum alltaf betra að taka upp meiri gögn en að stilla ofurfæribreytur. Ef árangur nær jafnvægi eftir það, mælir NVIDIA með HG-DAgger: keyrðu stefnuna, gríptu inn í þegar hún bilar, og bættu þeim leiðréttingum við gagnasafnið.
Hvers vegna tekst gagnasafnið mitt ekki að hlaðast, og hvernig veit ég hvaða útgáfa það er?▾
Opnaðu meta/info.json og lestu codebase_version. Núverandi CODEBASE_VERSION LeRobot á main er v3.0, svo allt sem er tekið upp með nýlegri verkfærakeðju er v3.0, og GR00T hleðslutækið býst við v2. Umbreyttu með scripts/lerobot_conversion/convert_v3_to_v2.py úr Isaac-GR00T geymslunni, sem skrifar codebase_version: v2.1 inn í umbreytta gagnasafnið. Skriftan keyrir í eigin sýndarumhverfi vegna þess að hún þarf aðra lerobot útgáfu en GR00T festir.
Get ég fínstillt GR00T N1.7 á RTX 4090?▾
Nei. NVIDIA mælir með 40 GB eða meira af VRAM fyrir fínstillingu og nefnir H100 eða L40 hnúta; önnur kort virka en taka mun lengri tíma. 4090 er með 24 GB. AY-Robots býður aðeins upp á GR00T N1.7 á A100 80 GB og H100 80 GB flokki af sömu ástæðu. Ályktun er önnur saga: 16 GB er nóg til að þjóna líkaninu, svo 4090 getur keyrt stefnu sem það getur ekki þjálfað. Ef þú vilt VLA sem þú getur þjálfað á 24 GB, þá er það SmolVLA með um 450 M færibreytur eða ACT með um 80 M.
Hvers vegna gefa tvær keyrslur með eins flöggum mismunandi gátpunkta?▾
Vegna þess að launch_finetune.py hefur enga fræstillingu (seed). Það er tyro CLI sem er búið til úr gagnaklassa sem inniheldur ekkert fræstillingu svið, svo ekkert festir RNG. Geymslan tekur sérstaklega fram 5 til 6 prósenta frávik milli keyrslna af völdum ógreinanlegrar myndauka. Ef endurgerðanleiki skiptir máli, notaðu LeRobot leiðina í staðinn: lerobot-train tekur --seed og birt GR00T uppskriftin sendir --seed=42.
Ætti ég að nota Isaac-GR00T eða lerobot-train?▾
Notaðu Isaac-GR00T ef þú vilt viðmiðunarútfærsluna, stýringu á aðgerðarframsetningu fyrir hvern lykil, TensorRT útflutning, eða viðmiðunardæmin til að endurtaka áður en þú treystir eigin gögnum. Notaðu lerobot-train ef gagnasafnið þitt er þegar LeRobot v3.0 og þú vilt frekar ekki umbreyta því, ef þú vilt fræstillingu (seed), eða ef restin af staflanum þínum er þegar LeRobot. Báðir fínstilla sömu nvidia/GR00T-N1.7-3B þyngdirnar. Athugaðu að LeRobot hætti alveg stuðningi við GR00T N1.5: N1.5 gátpunktum er hafnað með flutningsskýrslu, og þú verður að festa lerobot==0.5.1 til að halda áfram að nota þá.
Þarf ég virkilega úlnliðsmyndavél auk frammyndavélar?▾
SO-100 stillingin sem fylgir notar báðar, og modality.json kortleggur fram- og úlnlið sem aðskilda myndbandslykla. Þú getur þjálfað með einni myndavél, og biðtímatöflu líkanakortsins er mæld með einni myndavél, en úlnliðssýnin er það sem gefur stefnunni nothæfar upplýsingar um griparann á snertipunktinum. Ef griparinn lokast á röngum tíma í keyrslum þínum, er vantað eða illa stillt úlnliðsmyndavél eitt af því fyrsta sem þarf að athuga.
Fínstilltu GR00T N1.7 á SO-100 þínum án þess að byggja umhverfið fyrst
Veldu líkan, gagnasafn og ofurfæribreytur í formi. Bakendinn leigir A100 80 GB eða H100 á sprotamarkaði, keyrir þjálfarann með lotu 32, námsstuðli 1e-4 og 20000 skrefum, og skrifar gátpunkta í hlutageymslu. Um það bil 4 til 12 USD á hverja keyrslu.
Opnaðu GR00T N1.7 þjálfunarleiðbeiningarnarSources
- NVIDIA Isaac-GR00T repository README, N1.7 main branch
- Isaac-GR00T: Fine-tune on Custom Embodiments (NEW_EMBODIMENT)
- Isaac-GR00T: Finetuning Models for the SO100/SO101 Robot
- Isaac-GR00T: Robot Data Preparation Guide, the GR00T LeRobot format
- Isaac-GR00T: modality config and ActionConfig reference
- Isaac-GR00T: Policy API Guide and the embodiment tag list
- Isaac-GR00T: FinetuneConfig dataclass with every CLI default
- Isaac-GR00T: the shared finetune launcher wrapper
- GR00T N1.7 FAQ: data volume, augmentation and deployment
- nvidia/GR00T-N1.7-3B model card, including the inference timing table
- nvidia/Cosmos-Reason2-2B, the gated VLM backbone used by N1.7
- GR00T N1: An Open Foundation Model for Generalist Humanoid Robots
- NVIDIA Isaac GR00T N1.7: Open Reasoning VLA Model for Humanoid Robots
- LeRobot: GR00T Policy, the lerobot-train recipe
- LeRobot: Imitation Learning on Real-World Robots (lerobot-record, lerobot-train)
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started