
Testitud juhend NVIDIA GR00T N1.7 peenhäälestamiseks SO-100 LeRoboti andmestikul: tegelikud lipud, modality.json, v2.1 nõue, mida üks käitus maksab ja lõksud.
NVIDIA tarnib peenhäälestuse näite täpselt sellele robotkäele, mis teil tõenäoliselt on. Sees Isaac-GR00T repositooriumis on kaust nimega demo_data/cube_to_bowl_5: viis episoodi, 4148 kaadrit 30 kaadrit sekundis, juba kirjutatud LeRobot v2.1 formaadis, sobiva modaalsuse konfiguratsiooniga asukohas examples/SO100/. Selle meta/info.json teatab robot_type: so101_follower, mis LeRobotis on sama konfiguratsiooniklass nagu so100_follower. See on tõeliselt kasulik, sest see tähendab, et viitetee GR00T N1.7 jaoks kuue-vabadusastmega hobirobotkäel on hooldatud mudeli loojate poolt. See ei ole vähendatud humanoidi demo, see on sama robotkäsi.
Halb uudis on vahemaa I recorded 60 episodes ja the arm does the task. Selles töövoos on umbes kuus kohta, kus see vaikselt, mitte valjuhäälselt ebaõnnestub, ja neli neist asuvad failides, mida enamik inimesi kunagi ei ava: meta/modality.json, Pythoni andmekonfiguratsioon, meta/relative_stats.json, ja andmestiku enda versioonistring. See juhend läbib käsitsi tee algusest lõpuni reaalsete käskudega, seejärel näitab sama tööd vormina AY-Robots. Kõik allolev kontrolliti Isaac-GR00T põhiharu vastu seisuga 20. august 2026 (n1.7-release haru) ja lerobot 0.6.1 vastu, mis avaldati PyPI-s 3. augustil 2026. Ülesvoolu areng on kiire, ja kui mõni lipp nimetati ümber, on see artiklis märgitud.
Mida peate enne alustamist teadma
- •GR00T N1.7 peenhäälestus vajab 40 GB või rohkem VRAM-i. NVIDIA soovitab H100 või L40 sõlmi. 24 GB RTX 4090 selle tööga hakkama ei saa, kuigi see treenib SmolVLA-d ja ACT-d.
- •Andmestik peab olema LeRobot v2 (v2.0 või v2.1) pluss GR00T-spetsiifiline meta/modality.json. LeRobot v3.0 andmestikku ei laeta ja see tuleb teisendada vanemaks versiooniks.
- •Sisendpunkt on gr00t/experiment/launch_finetune.py, tyro CLI. Sellel puudub --seed lipp, seega käivitused ei ole bitipõhiselt reprodutseeritavad.
- •Kohandatud robotkäe puhul on kehastuse silt NEW_EMBODIMENT, ja see silt muudab --modality-config-path kohustuslikuks.
- •Kaasasolev SO-100 retsept ennustab robotkäe liigeseid RELATIIVSETE deltatena ja haaratsit ABSOLUUTSE sihtmärgina. Selle paari tagurpidi seadistamine on vaikne ebaõnnestumine, mitte viga.
- •AY-Robotsis on sama töö vormina: 20000 sammu, partii 32, õppimiskiirus 1e-4, umbes 4 kuni 12 USD A100 80 GB või H100 tasemel.
Mis GR00T N1.7 tegelikult on
GR00T N1.7 on nägemis-keele-tegevuse mudel kahesüsteemse paigutusega, mida on kirjeldatud algses GR00T N1 artiklis: nägemis-keele moodul, mis loeb kaameraid ja juhiseid, ning difusioonitransformer, mis muudab selle pidevateks mootorikäskude plokiks. N1.7 asendas esimese poole. N1.6 Eagle'i selgroog on kadunud, asendatud nvidia/Cosmos-Reason2-2B Qwen3-VL arhitektuuril, ja mudel oli eelkoolitatud ligikaudu 20 000 tunni egotsentrilise inimvideo peal lisaks robotandmetele. NVIDIA enda kirjutis märgib arvuks 20 854 tundi ja teatab, et 1k-lt 20k tunnile minnes kahekordistub keskmine ülesannete täitmine enam kui kaks korda.
Ka teine pool muutus viisil, mis on teie käitamise jaoks oluline. Tegevuspea langes 32 difusioonikihilt 16-le, ennustatud tegevusplokk kasvas 16 sammult 40-le ning maksimaalne oleku ja tegevuse laius kasvas 29-lt 132-le. Need kolm numbrit pärinevad hoidla README muudatuste logist; NVIDIA enda käivituspostitus kirjeldab endiselt Süsteem 1 kui 32-kihilist DiT-d, seega kui need kaks on vastuolus, usaldage hoidlat, mida te kloonima hakkate. Tegevused on vaikimisi väljendatud suhtelises lõppefektori ruumis, deltasid praegusest poosist, mitte absoluutseid sihtmärke, mis võimaldab inimvideost õpitud manipulatsiooniprioriteedid robotjuhtimisse üle kanda. Pea ise on voolu sobitamise difusioonitransformer, sama perekond nagu Pi0.5, kuid erineva selgrooga selle ees. Kui olete endiselt eelmise põlvkonna peal, siis N1.7 versus N1.5 käsitleb, kas uuendus õigustab teie torujuhtme ümbertegemist.
| Omadus | Väärtus | Allikas |
|---|---|---|
| Parameetrid | 3,000,000,000 | Hugging Face model card |
| Nägemis-keele selgroog | nvidia/Cosmos-Reason2-2B (Qwen3-VL), gated on Hugging Face | repo README |
| Tegevuspea | Flow-matching diffusion transformer, 16 layers (N1.6 had 32) | repo README |
| Ennustatud tegevushorisont | 40 steps for the base checkpoint (N1.6 had 16) | getting_started/policy.md and repo README |
| Maksimaalne oleku ja tegevuse laius | 132 (N1.6 had 29) | repo README |
| Koodi litsents | Apache 2.0 | Isaac-GR00T repository |
| Kaalude litsents | NVIDIA Open Model License Agreement | model card |
| Latentsus, H100 80 GB, PyTorch eager, 4 müra eemaldamise sammu, 1 kaamera | 85.8 ms end to end, 11.7 Hz | model card timing table |
| Sama riistvara, TensorRT täielik torujuhe | 27.9 ms end to end, 35.9 Hz | model card timing table |
| Latentsus, mida AY-Robots pakub oma teenindatava GR00T N1.7 jaoks | 152 ms per action step | AY-Robots policy catalog |
Need kolm viimast rida selgitavad enamiku pettumustest, millest inimesed teatavad. Pealkirjas olev 27.9 ms on TensorRT mootor H100-l ühe kaamera ja nelja müra eemaldamise sammuga. Tavaline PyTorch samal kaardil on 85.8 ms ja mudelikaart märgib vaheks 3.08x. Kumbki number ei sisalda teeninduskihti, teist kaamerat ega võrguhüpet. AY-Robotsi poolt oma teenindatava GR00T N1.7 jaoks pakutud 152 ms tegevussammu kohta on see näitaja koos teenindusega ahelas, ja sellele lisandub avaliku interneti edasi-tagasi reis. Sellest lähemalt lõpus. Teiste mudelite numbrite kohta, GR00T N1.7 versus Pi0.5 ja GR00T N1.7 versus SmolVLA esitavad need kõrvuti.

Mida jooks vajab enne, kui midagi trükid
| Nõue | Peenhäälestus | Järeldamine |
|---|---|---|
| VRAM, NVIDIA juhised | 40 GB või rohkem, soovitatav H100 või L40 | 16 GB või rohkem, RTX 4090 töötab |
| Python ja CUDA dGPU-l | 3.12 ja CUDA 12.8 | 3.12 ja CUDA 12.8 |
| Video taustaprogramm | torchcodec 0.8.0, FFmpeg ainult 4 kuni 7 | sama |
| Andmestiku formaat | LeRobot v2 pluss meta/modality.json | ei kohaldata |
| Hugging Face ligipääs | heaks kiidetud nvidia/Cosmos-Reason2-2B jaoks | sama |
| Muud tööriistad | git-lfs ja uv | uv |
| AY-Robots GPU tase groot1.7 treeneri jaoks | A100 80 GB või H100 80 GB | pod varustatakse automaatselt |
Iga GR00T kontrollpunkt, sealhulgas baas nvidia/GR00T-N1.7-3B, laadib esmakordsel kasutamisel nvidia/Cosmos-Reason2-2B ja see repositoorium on piiratud ligipääsuga. README kirjeldab viga täpselt: mudeli laadimine ebaõnnestub GatedRepoError / 401 Client Error veaga. Mida see ei maini, on see, millal see juhtub, mis on pärast seda, kui olete kaardi rentinud ja jooks on alanud. Taotlege ligipääsu mudeli lehel, seejärel käivitage uv run huggingface-cli login või eksportige HF_TOKEN enne, kui midagi rendite.
Samm 0: episoodid ise
Kõik alljärgnev eeldab, et olete juba episoode salvestanud. Kui te seda teinud ei ole, on see tegelik esimene samm ja see on see, mis otsustab, kui hea tulemus saab olla, sest imitatsioonõpe ei suuda taastada teavet, mida andmetes ei ole. Kalibreerige esmalt mõlemad käed, seejärel juhtige järgijat juhtkäega samal ajal kui lerobot-record kirjutab parquet-failid ja kaamera vooged. Kui kalibreerimine on vale, kirjeldavad teie andmestiku liigendväärtused veidi teistsugust robotit kui see, mis hiljem poliitikat täidab, ja ükski treening ei paranda seda.
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=trueLeRoboti enda soovitus on salvestada vähemalt 50 episoodi, umbes 10 objekti asukoha kohta, hoida kaamerad fikseerituna ja hoida haaramiskäitumine järjepidevana. Lisage variatsioone hiljem, mitte alguses. Meelespidamist väärt rusikareegel: kui te ei suutnud ülesannet ise ainult kaamerakujutiste põhjal täita, siis poliitika ei suuda seda samuti. Käe-spetsiifilise seadistuse jaoks SO-100 alustamine ja SO-100 LeRoboti leht käsitlevad porte, kalibreerimist ja kaamera indekseid. AY-Robotsil saate seda teha ka interneti kaudu brauserist, kasutades teleoperatsiooni ja salvestada otse sessioonist.
1. samm: andmestik peab olema LeRobot v2.1
See on kõige levinum takistus. LeRoboti praegune CODEBASE_VERSION peaharus on v3.0, nii et kõik, mida täna praeguse tööriistaketiga salvestate, väljub versioonina v3.0. GR00T-i laadur eeldab v2. Repositoorium selgitab selgelt, miks: paljud ülesvoolu andmestikud, nagu DROID, LIBERO ja Bridge, on avaldatud v2-s ning mõlema natiivne tugi on planeeritud, kuid pole veel välja antud. Seega on teisendamine teie ülesanne ja see töötab omaette virtuaalkeskkonnas konkreetsel põhjusel: scripts/lerobot_conversion sisaldab oma pyproject-faili, mis nõuab Python 3.10 või 3.11 ja seob lerobot'i ühe git-kommitiga, samas kui Isaac-GR00T ise nõuab Python 3.12. Installige teisendaja repositooriumi juurkaustast ja saate gr00t paketi asemel, mis on viga, mille eest selle README hoiatab. Kui olete formaadiga uus, selgitab LeRoboti andmestik sõnastiku kirje, mis tegelikult selle sees on.
# 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_lerobotKui v3.0 andmestik on juba kohapeal olemas, loob skript selle kõrvale v2.1 paigutuse ja seejärel vahetab: algne teisaldatakse versiooniga lisatud samasse kausta, <name>_v3.0, ja teisendatud koopia võtab algse tee. (Skripti enda docstring nimetab seda kausta _v30; kood lisab versioonistringi, nii et tegelikult saate _v3.0.) Teine üllatus: väljund maandub alati kausta <root>/<repo-id> alla, nii et --root examples/SO100/my_dataset_lerobot annab teile examples/SO100/my_dataset_lerobot/<your-hf-user>/<your-dataset>, ja see pikem tee on see, mida --dataset-path hiljem soovib. Kui treeningtöö lükkab teie andmestiku versiooniprobleemide tõttu tagasi, loetleb v3-na tagasi lükatud andmestiku leht täpsed sümptomid.
Struktuur, mida GR00T pärast teisendust soovib, on klassikaline v2 paigutus: meta/info.json, meta/episodes.jsonl, meta/tasks.jsonl, parkettfailid kaustas data/chunk-000/, MP4-failid kaustas videos/chunk-000/observation.images.
2. samm: modality.json, kuus numbrit, mis otsustavad kõik
LeRoboti andmestikus salvestatakse roboti olek ja tegevus lamedate float32 massiividena. SO-100 puhul on mõlema kuju [6]: viis käeliigest ja haarats. Demoandmestik nimetab neid shoulder_pan.pos, shoulder_lift.pos, elbow_flex.pos, wrist_flex.pos, wrist_roll.pos, gripper.pos, kuid need nimed asuvad failis info.json ja parkettfailis pole öeldud, milline indeks on milline. meta/modality.json pakub seda vastendust ja GR00T ilma selleta ei treeni. Siin on see, mida hoidla SO-100 jaoks pakub, sõna-sõnalt.
{
"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"
}
}
}Kopeerige see oma teisendatud andmestikku asukohas meta/modality.json ja nimetage videovõtmed ümber vastavalt sellele, kuidas teie kaamerad tegelikult nimetatud on. Kui salvestasite ühe laekaameraga nimega top, siis original_key on observation.images.top ja sõbralik nimi on see, millele teie andmekonfiguratsioon viitab. Need kaks peavad kokku langema ja kumbki neist ei kontrolli teist teie eest. Keele annotatsioon on hullem, sest sama võti peab esinema kolmes kohas.
| Kiht | Fail | SO-100 vorm, mida repos kasutatakse |
|---|---|---|
| Parquet veerg | data/chunk-*/episode_*.parquet | annotation.human.task_description |
| modality.json võti | meta/modality.json, jaotises "annotation", ilma eesliiteta annotation. | human.task_description |
| modality_keys andmekonfiguratsioonis | your so100_config.py | annotation.human.task_description |
Segmendid pärast annotation. valib andmestiku autor. SO-100 demoandmed kasutavad annotation.human.task_description; LIBERO ja SimplerEnv kasutavad annotation.human.action.task_description. Mõlemad on kehtivad. Kui kopeerisite konfiguratsiooni LIBERO näitest ja suunasite selle oma SO-100 salvestusele, siis keelekanal ei lahendu millekski ja mudel treenib tühja juhise peal. Kadu langeb ikkagi. Poliitika teeb ikkagi midagi. See lihtsalt ignoreerib seda, mida te talle ütlesite.
Samm 3: andmekonfiguratsioon, suhteline käsi ja absoluutne haarats
Modaalsuse konfiguratsioon on Pythoni fail, mitte JSON, sest see otsustab ka, kuidas iga tegevusgrupp on esindatud. See on N1.7 töövoo osa, mida N1.5-s samal kujul ei eksisteerinud, ja osa, mida tasub kaks korda lugeda. Kaasasolev SO-100 konfiguratsioon ennustab viit käe liigest kui RELATIVE deltasid praegusest olekust ja haaratsit kui ABSOLUTE sihtpositsiooni, sest binaarne avatud-või-suletud signaal käitub paremini sihtmärgina kui deltana.
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)Kaks detaili siin maksavad teile päeva, kui te neid ei tea. Esiteks, action_configs on positsiooniline: dokumendid nõuavad sama pikkust ja sama järjekorda nagu modality_keys, ja nad on otsekohesed selle kohta, mis juhtub, kui see valesti läheb: vale esitusviis rakendatakse vaikselt. Teie haarats treenitakse deltana ja teie käsi absoluutse sihtmärgina, ja veateadet ei ole. Teiseks, register_modality_config kinnitab, et silt ei ole veel registreeritud, nii et teine NEW_EMBODIMENT konfiguratsioon samas Pythoni protsessis sureb veaga Embodiment tag ... already registered. Te ei saa kahte neist ühte skripti importida. Kolmas reegel jõustatakse hiljem, juurutamisel: tegevuse delta_indices peab olema pidev vahemik, mis algab nullist. Hõre aken nagu [0, 4, 8] lükatakse tagasi, sest kõik allavoolu olevad süsteemid indekseerivad ennustatud tükki lineaarselt ja muidu täidaksid valed read.
Normaliseerimisstatistikad, eriti meta/relative_stats.json, arvutatakse selle horisondi pikkuse jaoks, mis teil oli nende genereerimisel. Lühendage tegevuse horisonti 16-lt 8-le ilma uuesti genereerimata ja treening katkeb veaga IndexError: boolean index did not match indexed array ... dimension is 8 but corresponding boolean dimension is 16. Lahendus on üks käsk: python gr00t/data/stats.py --dataset-path <path> --embodiment-tag NEW_EMBODIMENT --modality-config-path examples/SO100/so100_config.py. Käivitage see pärast iga muudatust delta_indices-s.
Samm 4: keskkond
N1.7 viis hoidla üle aadressile ja Python 3.12-le. Vana conda pluss pip install -e . tee on endiselt olemas README kokkuvolditud osas, kuid see hoiatab, et GPU sõltuvused, sealhulgas flash-attn ja TensorRT, võivad vajada käsitsi installimist. Kasutage uv-d, välja arvatud juhul, kui teil on konkreetne põhjus seda mitte teha. Flash-attn osas säästab üks detail segadust: näete Installing flash-attn prinditakse iga uv run. See ei ehita uuesti. uv valideerib uuesti URL-iga kinnitatud paketi, mis on juba vahemällu salvestatud, ja see võtab kaks või kolm sekundit.
- 1Installige git-lfs, seejärel kloonige alamoodulitega
git-lfs on kohustuslik, mitte valikuline. Ilma selleta laaditakse demo_data/ kaustas olevad parquet-failid alla viitena ja demo käivitamine ebaõnnestub andmestiku puhul, mis faililoendis näib olevat olemas.
bashsudo apt install git-lfs && git lfs install git clone --recurse-submodules https://github.com/NVIDIA/Isaac-GR00T cd Isaac-GR00T - 2Installige uv ja sünkroonige keskkond
Vaikimisi install tõmbab kaasa GPU sõltuvused, sealhulgas flash-attn ja TensorRT. Värskel A100 või H100 kujutisel on see pikim üksik samm, seega tehke see enne, kui hakkate millelegi muule tähelepanu pöörama.
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')" - 3Autentimine Hugging Face'i vastu
Tehke seda enne esimest treeningu käivitamist, mitte pärast seda, kui see kaheksa minuti pärast ebaõnnestub.
bashuv run huggingface-cli login # or: export HF_TOKEN=<your_token> - 4Tervisekontroll kaasasolevate SO-100 demoandmete peal
Enne oma salvestuse puudutamist käivitage 2000 sammu demo_data/cube_to_bowl_5 peal. See on viis episoodi, see lõpeb kiiresti ja see tõestab keskkonda, mitte teie andmeid. Kui see käivitus ebaõnnestub, ei aita miski, mida te oma andmestikuga teete.
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 toetab ainult FFmpeg 4 kuni 7, ja Ubuntu 25.10 ning uuemad versioonid tarnivad versiooni 8. Viga on Could not load libtorchcodec, mis kõlab pigem katkise installi kui versioonikonfliktina. Installige vanem käitusaeg, näiteks conda install -c conda-forge 'ffmpeg<8', ja lisage selle teegid LD_LIBRARY_PATH-i. CUDA_HOME on määramata. Peenhäälestus ebaõnnestub täielikult. Käivitage bash scripts/deployment/dgpu/install_deps.sh üks kord või lihtsalt export CUDA_HOME=/usr/local/cuda.
5. samm: peenhäälestuse käsk ja selle lippude tegelikud vaikeväärtused
Asenda demoandmestik enda omaga ja lisa tegelikult soovitud seaded. Allpool on täielik vorm, mida hoidla kasutab oma uue kehastuse õpetuses, sealhulgas laienduse ja kontrollpunktide lipud, mis lühikesest README näitest välja jäävad. See on kitsamas mõttes: keeleline selgroog ja visuaalne kodeerija jäävad külmutatuks ning treenitakse projektorit ja difusiooni tegevuspead.
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| Lipp | Vaikeväärtus FinetuneConfigis | Mida see teeb |
|---|---|---|
| --global-batch-size | 64 | Kogupartii kõikide GPU-de vahel enne gradiendi akumulatsiooni. Kaasasolevad näited kasutavad 32. |
| --learning-rate | 1e-4 | Sama väärtus, mida AY-Robots saadab oma groot1.7 treenerile. |
| --max-steps | 10000 | Optimeerija sammude koguarv. examples/finetune.sh wrapper kasutab samuti vaikeväärtusena 10000. |
| --gradient-accumulation-steps | 1 | Korrutab efektiivset partiid. Väärtused üle 1 annavad hoiatuse akumuleeritud suuruse kohta. |
| --save-steps and --save-total-limit | 1000 and 5 | Kontrollpunktide sagedus ja nende arv, mida säilitatakse. Vanemad kustutatakse. |
| --weight-decay and --warmup-ratio | 1e-5 and 0.05 | Määratud selgesõnaliselt ka examples/finetune.sh poolt. |
| --state-dropout-prob | 0.2 in the CLI, 0.8 in the model config | Juhuslikult jätab treeningu ajal välja propriotseptiivse oleku. Vähenda seda, kui sinu ülesanne sõltub olekust. |
| --tune-llm and --tune-visual | False and False | Selgroog jääb vaikimisi külmutatuks. |
| --tune-projector and --tune-diffusion-model | True and True | Projektor ja difusiooni tegevuspea on need, mida tegelikult treenitakse. |
| --use-percentiles | True | Normaliseeri q01 ja q99 abil, mitte toore miinimumi ja maksimumi abil. |
| --dataloader-num-workers | 2 | Laadija on disaini poolest CPU-põhine. Näited tõstavad selle 4-le. |
| --seed | does not exist | Sellel CLI-l puudub seemne lipp. |
See viimane rida ei ole trükiviga. launch_finetune.py on tyro CLI, mis on genereeritud andmeklassist, ja sellel andmeklassil puudub seemnevälja (seed field). README märgib eraldi 5–6-protsendilist varieeruvust käivituste vahel, mis on põhjustatud mitte-deterministlikust pilditöötlusest. Kaks identsete lippudega käivitust ei anna identseid kontrollpunkte, mis on väga oluline, kui proovite otsustada, kas hüperparameetri muutus aitas või teil lihtsalt vedas. Võrdluseks, leroboti enda treeneri vaikesäte on seeme 1000, ja LeRobot GR00T retsept edastab --seed=42 selgesõnaliselt.
Peenhäälestus käivitub `eval_strategy="no"` abil, seega puudub valideerimiskadu kõver üldse. Saate ainult treeningukao ja mitte midagi muud. Uue kehastuse juhend käsib selle sisse lülitada `eval-strategy steps --eval-steps 500` abil, kuid seda lippu ei eksisteeri `launch_finetune.py` failis: CLI on genereeritud tyro poolt `FinetuneConfig` andmeklassist, ja `eval_strategy`, `eval_steps` ning `eval_batch_size` on hoopis `TrainingConfig` väljad. Nende vaikesätted on seal `"no"`, `500` ja `2`. Nendeni jõudmiseks kasutage täielikumat sisenemispunkti `gr00t/experiment/launch_train.py`, kus pesastatud lipp on `--training.eval-strategy`. Igal juhul annab ainuüksi langev treeningukadu väga vähe teavet üldistamise kohta, mis on täpselt olukord, mida kirjeldatakse lehel kadu langeb, kuid poliitika ei tee midagi.
Mida maksab 20000-sammuline käivitus
GR00T N1.7 vajab 80 GB kaarti, seega on kuluküsimusel kitsas vastus. AY-Robots platvormil töötab groot1.7 treener A100 80 GB või H100 80 GB tasemel, kus käivitus võtab 3 kuni 6 tundi hinnaga 1.20 kuni 2.00 USD tunnis spot-turul. See on ligikaudu 4 kuni 12 USD vaikimisi 20000-sammulise töö eest. Sama ülesanne SmolVLA või ACT puhul maandub 24 GB kaardil hinnaga 0.30 kuni 0.60 USD tunnis ja 1 kuni 3 USD käivituse kohta. See ongi tegelik kompromiss: GR00T maksab umbes neli korda rohkem katse kohta ja te ei saa seda käivitada oma laua all oleval 4090-l.
| Mudel | GPU tase | Tüüpiline käitus | Tüüpiline maksumus | Minimaalne episoodide arv |
|---|---|---|---|---|
| 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 |
50-episoodi miinimum on alampiir, mitte siht. NVIDIA enda KKK on nõudlikum: umbes 100 trajektoori lihtsa fikseeritud asukohaga haaramise ja paigutamise jaoks, 500 või enam keerukate või mitmeastmeliste stseenide jaoks, ja 100 kuni 500 peene manipulatsiooni jaoks. Kui teil on 20 episoodi, veetke pärastlõuna salvestades, mitte õhtul häälestades. andmete kogumise juhend käsitleb, mis eristab kasulikku episoodi raisatud episoodist, salvesta oma esimene andmestik on lühiversioon ja SO-100 andmete kogumine on käe-spetsiifiline.

Samm 6: avatud ahelaga hindamine enne, kui kätt puudutate
Ärge pange värsket kontrollpunkti füüsilisele käele, et teada saada, kas treening õnnestus. Käivitage esmalt avatud ahela hindamine. See esitab uuesti salvestatud episoodi, küsib mudelilt igal sammul tegevusi ja joonistab ennustuse võrdluseks tegeliku olukorraga, kasutades MSE-d ja MAE-d. See ei maksa midagi ja püüab kinni sammude 2 ja 3 kaardistamisvead.
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 gripperHoidla keeldub tahtlikult avaldamast kohandatud andmete siht-MSE-d ja see on õige otsus: number sõltub teie tegevusühikutest, ülesandest ja andmestiku suurusest, seega kellegi teise käest kopeeritud lävi ei tähenda midagi. Oluline on trend. Siin on viiterun, mille hoidla dokumenteerib ühel H100-l viie episoodi demoandmestiku ja 2000 sammuga.
| Kontrollpunkt | Keskmine MSE trajektooril 0 | Keskmine MAE trajektooril 0 |
|---|---|---|
| 500 | 87.5 | 5.63 |
| 1000 | 25.4 | 3.30 |
| 1500 | 13.2 | 2.18 |
| 2000 | 10.0 | 1.76 |
Kuju on signaal, mitte absoluutväärtused. Viga peaks pidevalt langema, kui treeningusammud kogunevad. Keskmistatuna kõigi viie treeningepisoodi, mitte ainult trajektoori 0 põhjal, saavutas hoidla lõplik kontrollpunkt ligikaudu 7.5 MSE ja 1.5 MAE, seega isegi võrdlusjooks annab erinevaid tulemusi sõltuvalt sellest, milliseid episoode keskmistate. Salvestage oma baasjoon muutmata demo käsu abil enne, kui muudate midagi oma andmetes: kui te ei suuda korrata teadaolevalt head jooksu, ei saa te eristada seadistusviga andmeprobleemist. Hoidla kaardistab ka levinud sümptomid põhjustega ja igaüks neist on operatiivne, mitte mudeli viga.
| Sümptom | Tõenäoline põhjus |
|---|---|
| MSE on kontrollpunktides tasane või tõusev | Õppimiskiirus on liiga madal või andmed ei lae üldse. Kontrollige --dataset-path ja andmelaadija töölisi. |
| Ennustuskõver on tasane või konstantne | modality.json võtmed või --modality-config-path ei ühti. Tegevusvõtmed ei ole kaardistatud. |
| MSE on tohutu või NaN kadu treeningu ajal | Tegevuse ja oleku normaliseerimine. Kontrollige meta/stats ja veenduge, et tegevusvahemikud on füüsiliselt usutavad. |
| Hea trajektooril 0, halb väljajäetud episoodidel | Andmete nappus, mitte viga. Viis demoepisoodi ei saa üldistada. |
Teine tee: lerobot-train Isaac-GR00T asemel
Praegune LeRoboti versioon, 0.6.1 PyPI-s alates 3. augustist 2026, pakub teist ja üsna erinevat viisi samade baaskaalude peenhäälestamiseks. LeRobot eksponeerib GR00T N1.7 poliitikatüübina ja treenib seda oma lerobot-train sisenemispunkti kaudu. Siin on olulised kaks asja. LeRoboti CLI on konsooliskriptide komplekt, seega kõik, mida loete ja mis ütleb python lerobot/scripts/train.py on aegunud ega tööta. Ja LeRobot eemaldas GR00T N1.5 toe täielikult, lükates N1.5 kontrollpunktid ja konfiguratsioonid tagasi migratsioonimärkusega, nii et kui vajate N1.5 LeRoboti kaudu, peate määrama lerobot==0.5.1, viimase versiooni, mis seda toetab, avaldatud 7. aprillil 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| Aspekt | Isaac-GR00T launch_finetune.py | lerobot-train --policy.type=groot |
|---|---|---|
| Andmestiku versioon | Ainult LeRobot v2, vajalik teisendamine | Natiivne LeRobot andmestik, allapoole versiooni pole vaja |
| Modaalsuse kaardistamine | meta/modality.json pluss Pythoni andmekonfiguratsioon | modality.json puudub; käitumine määratakse käsurea --policy.* lippudega |
| Seeme | juhuslikkuse seeme puudub täielikult | --seed, LeRobot vaikeväärtus 1000 |
| Suhtelised tegevused | andmekonfiguratsioonis võtmepõhine ActionConfig | --policy.use_relative_actions pluss --policy.relative_exclude_joints |
| Avaldatud võrdlustulemused | SO-100 avatud ahela MSE trend demoandmetel | LIBERO sviidid, 96.5 protsenti keskmiselt nelja sviidi peale |
| Kasutuselevõtu tee | run_gr00t_server.py pluss eval_so100.py üle ZMQ | lerobot-rollout, reaalajas tükeldamisega (queue_threshold peaks jääma 5-le või alla selle) |
- Iga lipp on nähtav ja muudetav. Saate visuaalse kodeerija lahti külmutada, liigutada state_dropout_prob-i või lühendada tegevushorisonti.
- Avatud ahela graafikud on kohalikud failid. Checkpoint-5000 võrdlemine checkpoint-20000-ga on shelli käsk.
- Te ei sõltu ühegi platvormi võrgus püsimisest ja kontrollpunkt asub teie kettal standardvormingus.
- Repositooriumi võrdlusaluste näited LIBERO, SimplerEnv ja DROID jaoks annavad teile teadaolevalt head käivitused, mida reprodutseerida enne, kui usaldate oma andmeid.
- Keskkond on enamik tööst. FFmpeg versioon, CUDA_HOME, git-lfs, piiratud tagapõhi, torchcodec: ükski neist pole mudeliprobleem ja igaüks neist peatab käivituse.
- V3.0 kuni v2.1 teisendamine vajab eraldi virtuaalkeskkonda oma installietapiga ja see kirjutab teie andmestiku kataloogi kohapeal üle.
- GPU rentimine algab arveldamisega, kui alustate silumist, mitte siis, kui treening algab, ja miski ei peata eksemplari, kui käivitus lõpeb.
- Seemne puudumine tähendab, et bitt-bitilt reprodutseeritavus puudub, lisaks 5 kuni 6 protsendi suurusele käivituste vahelisele varieeruvusele ainuüksi augmentatsioonist.
Kaks viisi sama kontrollpunkti saamiseks
Rendite GPU ja kontrollite iga sammu. Realistlikult võtab see esimest korda aega ühe pärastlõuna ja iga järgmine kord kakskümmend minutit.
- Salvestage episoode lerobot-record abil SO-100-l. Saate LeRobot v3.0 andmestiku.
- Teisendage see v2.1-ks, kasutades scripts/lerobot_conversion/convert_v3_to_v2.py oma virtuaalkeskkonnas.
- Kirjutage meta/modality.json ja Pythoni modaalsuse konfiguratsioon, mis on registreeritud EmbodimentTag.NEW_EMBODIMENT all.
- Rentige 80 GB kaart, kloonige alamoodulitega, sünkroonige uv-ga, autentige Hugging Face'i vastu.
- Käivitage launch_finetune.py, seejärel open_loop_eval.py mitme kontrollpunkti peal ja võrrelge MSE trendi enne riistvaraga tegelemist.
- Tõmmake kontrollpunkt masinast maha enne eksemplari hävitamist, seejärel ehitage teenindusrada robotkäe juurde.
Kopeerige kontrollpunkt renditud eksemplarilt enne selle väljalülitamist. --save-total-limit 5 tähendab ka seda, et vanemad kontrollpunktid kustutatakse treeningu edenedes, nii et kontrollpunkt, mida soovisite sammul 5000, ei pruugi enam sammul 20000 eksisteerida.
Sama töö vormina. Valite mudeli ja andmestiku, taustasüsteem rendib GPU-d hetketurult vastavalt vajalikule VRAM-ile, käivitab treeneri ja kirjutab kontrollpunktid objektisalvestusse. GR00T N1.7 SO-100 juhend on täpselt see kombinatsioon; treeningmaatriks sisaldab kõiki teisi mudeli ja käe paare, sealhulgas GR00T N1.7 SO-101-l.
| Mida groot1.7 treener saadab | Väärtus |
|---|---|
| Paketi suurus | 32 |
| Õppimiskiirus | 1e-4 |
| Maksimaalsed sammud | 20000 |
| Gradiendi akumulatsioon | 1, ja see mõjutab seda treenerit |
| Vormis kuvatud lisaseade | saveSteps |
| Baaskontrollpunkt | nvidia/GR00T-N1.7-3B |
| Aktsepteeritud andmestiku formaat | LeRobot v2.0 or v2.1 |
Andmestik võib pärineda Hugging Face'i repo ID-st, teie enda masinast või seansist, mille salvestasite töölauakliendiga. Järeldamine on eraldi samm: platvorm varustab poliitikat teenindava podi ja teie kohalik robotklient suhtleb selle lõpp-punktiga. Podid sisaldavad tühikäigu valvekoera ja hävitavad end pärast tühikäiguperioodi, nii et unustatud brauseri vaheleht ei arvelda üleöö. Kui te pigem ei klõpsaks, on samad toimingud saadaval ka CLI-s ja MCP serveris.
GR00T N1.7 ja Pi0.5 on siin ainult pilvepõhised; ainult SmolVLA ja ACT töötavad ka lokaalselt. V2.1 nõue ei kao samuti, sest v3.0 andmestik tuleb ikkagi teisendada enne, kui GR00T laadur selle aktsepteerib. Ja miski ei kirjuta teie eest modality.json semantikat: kui teie kaameraklahvid või keeleklahv on valed, on need valed mõlemal marsruudil. Vaadake treeningu dokumentatsiooni, et näha, mida taustasüsteem teie nimel teeb ja mida mitte.

Kontrollpunkti tagasi robotkäele saamine
Isaac-GR00T kasutab serveri-kliendi jaotust üle ZMQ. Poliitika töötab GPU-l ja õhuke klient robotmasinas saadab vaatlusi ning võtab vastu tegevusplokke. SO-100 näide on piisavalt täielik kopeerimiseks: käivita run_gr00t_server.py oma kontrollpunktiga ja --embodiment-tag NEW_EMBODIMENT, seejärel käivita eval_so100.py roboti poolel koos jadapordi, roboti ID, kaamera indeksite ja keelejuhisega. Selles käsus olevad kaameranimed peavad vastama teie modality.json faili sõbralikele nimedele, mitte operatsioonisüsteemi seadmenumbritele.
# 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"Käe tagasi ühendamise ajal: SO-100 kasutab Feetech STS3215 bussiservosid 7.4 V liinil. Nende toitmine 12 V-ga hävitab need ja see on lihtne viga, kui teil on ka LeKiwi, mille alus töötab 12 V-ga, samas kui selle käsi mitte. Kontrollige toiteallikat enne esimest sisselülitamist, mitte pärast suitsu. Vaadake SO-100 riistvara lehte ja SO-100 vs LeKiwi. Kui käsi lülitub sisse, kuid midagi ei liigu, on servo ei reageeri õige koht alustamiseks.
Nüüd aus osa sellest, kus poliitika töötab, sest treeningul ja teenindamisel on erinevad riistvaralood. Peenhäälestus vajab 40 GB või rohkem. Järeldus mitte: README märgib selle 16 GB või rohkem ja nimetab selgesõnaliselt RTX 4090, nii et kaart, mis teil juba on, saab teenindada kontrollpunkti, mida see poleks kunagi suutnud toota. See, mis otsustab, kas poliitika tundub reageeriv, ei ole VRAM, vaid see, kus server asub. AY-Robots GR00T N1.7 on ainult pilvepõhine, seega maksab juhtimissilmus avaliku interneti edasi-tagasi reisi lisaks 152 ms-le tegevussammu kohta, ja ainult SmolVLA ja ACT töötavad ka lokaalselt. Aeglaseks valimiseks ja paigutamiseks on kaugpod ellujääv. Reaktiivsete asjade puhul mitte: poliitika muutub kõhklevaks viisil, mis näeb välja täpselt nagu treeningu ebaõnnestumine, kuid seda ei ole. ACT 20 ms tegevussammu kohta on mudel, mis talub kõige tihedamat silmust, SmolVLA on 245 ms ja ükski latentsuse häälestamine ei osta tagasi juba kulutatud edasi-tagasi reisi. Käivita oma esimene poliitika juhendab teeninduspoole algusest lõpuni.
Mis tegelikult valesti läheb
- GatedRepoError esimesel käivitamisel. Teile pole antud juurdepääsu nvidia/Cosmos-Reason2-2B-le või te ei autentinud end. See juhtub pärast seda, kui GPU kell on juba käivitunud.
- Andmestik laadimisel tagasi lükatud. Peaaegu alati v3.0 andmestik. Teisendage see vanemaks versiooniks. Vaadake andmestik tagasi lükatud kui v3.
- IndexError sobimatute boolean-mõõtmete kohta. Te muutsite delta_indices'i ja ei genereerinud statistikat uuesti.
- Mälu otsas pakis 32. Vähendage --global-batch-size ja suurendage --gradient-accumulation-steps või vähendage --num-shards-per-epoch, mida konfiguratsioon VRAM-i piirangu korral selgesõnaliselt soovitab. Vaadake mälu otsas treeningu ajal.
- Kadu langeb, poliitika ei tee midagi. Vaikimisi puudub valideerimisjaotus, seega puhas treeningkurv tõestab väga vähe. See leht käsitleb diagnoosi.
- Töötab teie seadistuses ja mitte kusagil mujal. Ootuspärane väikese andmestikuga, mis on filmitud ühes valgustingimuses. NVIDIA soovitab värvivärina augmentatsiooni pluss 20 kuni 50 episoodi erinevates valgustingimustes. Rohkem siin.
- Haarats ei sulgu kunagi korralikult. Kontrollige, et haaratsi tegevus on ABSOLUUTNE ja käe liigendid RELATIIVSED, selles järjekorras action_configs'is. Haarats ei sulgu loetleb teised põhjused.
- Kaamera katkeb salvestamise ajal vaikselt. Episood salvestub endiselt ja videovõti on endiselt olemas, mistõttu see on ebameeldiv. Kaamerat ei tuvastatud käsitleb seda.
Kõigi vearežiimide register asub . Kui valite mudelite vahel, mitte ei silu ühte, siis ja sisaldavad võrdlusandmeid koos allikatega, ja on võrdlus, mida enamik inimesi tegelikult vajab, sest see on valik mudeli vahel, mida saate treenida oma laua all oleval kaardil, ja mudeli vahel, mille peenhäälestamiseks peate rentima 80 GB sõlme. Taustaks selle kohta, miks need mudelid nii käituvad, on ja väärivad esmalt lugemist. Ja kui teil veel kätt pole, siis edastab füüsilise SO-100 ilma registreerimiseta.
Mitu episoodi on vaja, enne kui GR00T N1.7 peenhäälestamine on seda väärt?▾
AY-Robots seab groot1.7 treenerile minimaalseks piiriks 50 episoodi. NVIDIA enda KKK on nõudlikum: umbes 100 trajektoori lihtsa "pick and place" jaoks fikseeritud asukohas, 500 või rohkem keerukate või mitmeastmeliste stseenide jaoks ning 100 kuni 500 peene manipulatsiooni jaoks. Alla 50 episoodi on peaaegu alati parem salvestada rohkem andmeid kui häälestada hüperparameetreid. Kui edu pärast seda stabiliseerub, soovitab NVIDIA HG-DAggerit: käivitage poliitika, sekkuge, kui see ebaõnnestub, ja lisage need parandused andmestikku.
Miks minu andmestik ei lae ja kuidas ma tean, mis versioon see on?▾
Avage meta/info.json ja lugege codebase_version. LeRoboti praegune CODEBASE_VERSION main-harus on v3.0, seega kõik hiljutise tööriistaketiga salvestatud on v3.0, ja GR00T laadija ootab v2. Teisendage Isaac-GR00T repositooriumist pärit scripts/lerobot_conversion/convert_v3_to_v2.py abil, mis kirjutab teisendatud andmestikku codebase_version: v2.1. Skript töötab oma virtuaalkeskkonnas, sest see vajab teistsugust lerobot versiooni kui GR00T nõuab.
Kas ma saan GR00T N1.7 peenhäälestada RTX 4090-l?▾
Ei. NVIDIA soovitab peenhäälestamiseks 40 GB või rohkem VRAM-i ja nimetab H100 või L40 sõlmi; teised kaardid töötavad, kuid võtavad palju kauem aega. 4090-l on 24 GB. AY-Robots pakub GR00T N1.7 ainult A100 80 GB ja H100 80 GB tasemel samal põhjusel. Järeldamine on teine lugu: 16 GB on mudeli teenindamiseks piisav, nii et 4090 saab käivitada poliitika, mida see treenida ei saa. Kui soovite VLA-d, mida saate treenida 24 GB-l, siis see on SmolVLA umbes 450 miljoni parameetriga või ACT umbes 80 miljoni parameetriga.
Miks annavad kaks identsete lippudega käivitust erinevad kontrollpunktid?▾
Sest launch_finetune.py-l puudub seeme. See on tyro CLI, mis on genereeritud andmeklassist, mis ei sisalda seemne välja, seega miski ei fikseeri juhuslike numbrite generaatorit (RNG). Repositoorium märgib eraldi 5 kuni 6 protsendi suurust varieeruvust käivituste vahel, mis on põhjustatud mittedeterministlikust pildi augmentatsioonist. Kui reprodutseeritavus on oluline, kasutage selle asemel LeRoboti teed: lerobot-train võtab --seed ja avaldatud GR00T retsept edastab --seed=42.
Kas ma peaksin kasutama Isaac-GR00T-i või lerobot-train-i?▾
Kasutage Isaac-GR00T-i, kui soovite referentsimplementatsiooni, võtmepõhist kontrolli tegevuse esituse üle, TensorRT eksporti või võrdlusnäiteid, mida reprodutseerida enne oma andmete usaldamist. Kasutage lerobot-train-i, kui teie andmestik on juba LeRobot v3.0 ja te ei soovi seda teisendada, kui soovite seemet või kui ülejäänud teie süsteem on juba LeRobot. Mõlemad peenhäälestavad samu nvidia/GR00T-N1.7-3B kaalusid. Pange tähele, et LeRobot loobus GR00T N1.5 toetusest täielikult: N1.5 kontrollpunktid lükatakse tagasi migratsioonimärkusega ja peate nende kasutamiseks fikseerima lerobot==0.5.1.
Kas ma vajan tõesti randmekaamerat lisaks esikaamerale?▾
Kaasasolev SO-100 konfiguratsioon kasutab mõlemat, ja modality.json kaardistab esikaamera ja randmekaamera eraldi videovõtmetena. Saate treenida ühe kaameraga ja mudelikaardi latentsustabel on mõõdetud ühe kaameraga, kuid randmevaade annab poliitikale kasutatavat teavet haaratsi kohta kokkupuute hetkel. Kui haarats sulgub teie väljundites valel ajal, on puuduv või halvasti suunatud randmekaamera üks esimesi asju, mida kontrollida.
Peenhäälestage GR00T N1.7 oma SO-100-l ilma keskkonda eelnevalt ehitamata
Valige mudel, andmestik ja hüperparameetrid vormis. Taustasüsteem rendib A100 80 GB või H100 kohapealselt turult, käivitab treeneri pakiga 32, õppimiskiirusega 1e-4 ja 20000 sammuga ning kirjutab kontrollpunktid objektisalvestusse. Ligikaudu 4 kuni 12 USD käivituse kohta.
Avage GR00T N1.7 treeningjuhendSources
- 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