SO-100 கையில் GR00T N1.7 ஐப் பயிற்சி செய்வதற்கான AY-Robots வழிகாட்டிப் பக்கம், தேவையான GPU அடுக்கு, தரவுத்தொகுப்பு வடிவம் மற்றும் பயிற்சியாளர் இயல்புநிலைகளைக் காட்டுகிறது
GR00T N1.7SO-100நுட்பமான சரிசெய்தல்LeRobotVLA

உங்கள் சொந்த SO-100 தரவுத்தொகுப்பில் GR00T N1.7 ஐ எவ்வாறு பயிற்சி செய்வது

AY-Robots ResearchAugust 23, 202628 நிமிடம் வாசிப்பு

SO-100 LeRobot தரவுத்தொகுப்பில் NVIDIA GR00T N1.7 ஐ நுட்பமாகச் சரிசெய்வதற்கான ஒரு சோதிக்கப்பட்ட வழிகாட்டி: உண்மையான கொடிகள், modality.json, v2.1 தேவை, ஒரு ஓட்டத்தின் செலவு மற்றும் சிக்கல்கள்.

NVIDIA ஆனது நீங்கள் வைத்திருக்கும் கைக்குத் தேவையான ஃபைன்-ட்யூனிங் உதாரணத்தை வழங்குகிறது. Isaac-GR00T களஞ்சியத்தில் demo_data/cube_to_bowl_5 என்றொரு கோப்புறை உள்ளது: ஐந்து எபிசோடுகள், 30 fps இல் 4,148 பிரேம்கள், ஏற்கனவே LeRobot v2.1 ஆக எழுதப்பட்டு, அதனுடன் பொருந்தக்கூடிய மாடாலிட்டி கான்பிக் examples/SO100/ இல் உள்ளது. அதன் meta/info.json ஆனது robot_type: so101_follower என்று தெரிவிக்கிறது, இது LeRobot இல் so100_follower அதே கான்பிக் கிளாஸ் ஆகும். இது மிகவும் பயனுள்ளது, ஏனெனில் இது ஆறு-டிகிரி-ஆஃப்-ஃப்ரீடம் ஹாபி கைக்கு GR00T N1.7 அதற்கான குறிப்புப் பாதை மாதிரியை எழுதியவர்களால் பராமரிக்கப்படுகிறது என்பதைக் குறிக்கிறது. இது ஒரு ஹியூமனாய்டு டெமோவின் சிறிய பதிப்பு அல்ல, இது அதே கை.

மோசமான செய்தி என்னவென்றால், நான் 60 எபிசோடுகளைப் பதிவு செய்தேன் மற்றும் கை வேலையைச் செய்கிறது இவற்றுக்கு இடையேயான தூரம். இந்த பைப்லைன் சத்தமாக இல்லாமல் அமைதியாகத் தோல்வியடையும் சுமார் ஆறு இடங்கள் உள்ளன, அவற்றில் நான்கு கோப்புகளில் உள்ளன, பெரும்பாலான மக்கள் அவற்றை ஒருபோதும் திறப்பதில்லை: meta/modality.json, பைதான் தரவு கான்பிக், meta/relative_stats.json, மற்றும் தரவுத்தொகுப்பின் சொந்த பதிப்பு சரம். இந்த வழிகாட்டி உண்மையான கட்டளைகளுடன் கைமுறை வழியை முழுமையாகக் காட்டுகிறது, பின்னர் அதே வேலையை ஒரு படிவமாக AY-Robots இல் காட்டுகிறது. கீழே உள்ள அனைத்தும் 20 ஆகஸ்ட் 2026 நிலவரப்படி (n1.7-வெளியீட்டு வரிசை) Isaac-GR00T முதன்மை கிளையுடனும், 3 ஆகஸ்ட் 2026 அன்று PyPI இல் வெளியிடப்பட்ட lerobot 0.6.1 உடனும் சரிபார்க்கப்பட்டது. அப்டேட் வேகமாக நகர்கிறது, மேலும் ஒரு கொடி மறுபெயரிடப்பட்டிருந்தால் இந்த கட்டுரை அதைக் குறிப்பிடுகிறது.

தொடங்குவதற்கு முன் நீங்கள் தெரிந்து கொள்ள வேண்டியவை

  • GR00T N1.7 ஃபைன்-ட்யூனிங்கிற்கு 40 GB அல்லது அதற்கு மேற்பட்ட VRAM தேவை. NVIDIA H100 அல்லது L40 நோட்களைப் பரிந்துரைக்கிறது. 24 GB RTX 4090 இந்த வேலையைச் செய்யாது, இருப்பினும் அது SmolVLA மற்றும் ACT ஐப் பயிற்சி செய்யும்.
  • தரவுத்தொகுப்பு LeRobot v2 (v2.0 அல்லது v2.1) மற்றும் GR00T-க்கு குறிப்பிட்ட meta/modality.json ஆக இருக்க வேண்டும். ஒரு LeRobot v3.0 தரவுத்தொகுப்பு ஏற்றப்படாது மற்றும் அதை மாற்றியமைக்க வேண்டும்.
  • நுழைவுப் புள்ளி gr00t/experiment/launch_finetune.py, ஒரு tyro CLI ஆகும். இதற்கு --seed கொடி இல்லை, எனவே ரன்கள் பிட்-ஃபார்-பிட் மறுஉருவாக்கம் செய்ய முடியாதவை.
  • ஒரு தனிப்பயன் கைக்கு, எம்பாடிமென்ட் டேக் NEW_EMBODIMENT ஆகும், மேலும் அந்த டேக் --modality-config-path ஐ கட்டாயமாக்குகிறது.
  • வழங்கப்பட்ட SO-100 ரெசிபி, கை மூட்டுகளை RELATIVE டெல்டாக்களாகவும், கிரிப்பரை ABSOLUTE இலக்காகவும் கணிக்கிறது. அந்த இணையைத் தலைகீழாகப் பெறுவது ஒரு அமைதியான தோல்வி, ஒரு பிழை அல்ல.
  • AY-Robots இல் அதே வேலை ஒரு படிவமாகும்: 20000 படிகள், பேட்ச் 32, கற்றல் விகிதம் 1e-4, A100 80 GB அல்லது H100 அடுக்கில் தோராயமாக 4 முதல் 12 USD.

GR00T N1.7 உண்மையில் என்ன

GR00T N1.7 ஒரு பார்வை-மொழி-செயல் மாதிரி ஆகும், இது அசல் GR00T N1 ஆய்வுக் கட்டுரை இல் விவரிக்கப்பட்டுள்ள இரட்டை-அமைப்பு தளவமைப்பைக் கொண்டுள்ளது: கேமராக்கள் மற்றும் அறிவுறுத்தல்களைப் படிக்கும் ஒரு பார்வை-மொழி தொகுதி, மற்றும் அதை தொடர்ச்சியான மோட்டார் கட்டளைகளின் தொகுப்பாக மாற்றும் ஒரு டிஃப்யூஷன் டிரான்ஸ்ஃபார்மர். N1.7 முதல் பாதியை மாற்றியது. N1.6 இலிருந்து வந்த Eagle பேக்போன் நீக்கப்பட்டு, Qwen3-VL கட்டமைப்பில் nvidia/Cosmos-Reason2-2B உடன் மாற்றப்பட்டது, மேலும் இந்த மாதிரி ரோபோ தரவுகளுக்கு மேல் சுமார் 20,000 மணிநேர அகநிலை மனித வீடியோவில் முன்-பயிற்சி அளிக்கப்பட்டது. NVIDIA இன் சொந்த அறிக்கை இந்த எண்ணிக்கையை 20,854 மணிநேரம் என்று குறிப்பிடுகிறது மற்றும் 1k இலிருந்து 20k மணிநேரத்திற்கு செல்வது சராசரி பணி நிறைவை இருமடங்கிற்கும் மேலாக அதிகரிக்கிறது என்று தெரிவிக்கிறது.

இரண்டாம் பாதியும் உங்கள் இயக்கத்திற்கு முக்கியமான வழிகளில் மாறியது. செயல் தலைப்பு 32 டிஃப்யூஷன் அடுக்குகளிலிருந்து 16 ஆகக் குறைந்தது, கணிக்கப்பட்ட செயல் துண்டு 16 படிகளிலிருந்து 40 ஆக வளர்ந்தது, மேலும் அதிகபட்ச நிலை மற்றும் செயல் அகலம் 29 இலிருந்து 132 ஆக அதிகரித்தது. இந்த மூன்று எண்களும் களஞ்சிய README இல் உள்ள மாற்றப் பதிவிலிருந்து வந்தவை; NVIDIA இன் சொந்த வெளியீட்டுப் பதிவு இன்னும் சிஸ்டம் 1 ஐ 32-அடுக்கு DiT ஆக விவரிக்கிறது, எனவே இரண்டும் வேறுபடும் இடங்களில், நீங்கள் குளோன் செய்யவிருக்கும் களஞ்சியத்தை நம்புங்கள். செயல்கள் இயல்பாக ஒரு சார்பு இறுதி-செயல்பாட்டாளர் இடத்தில் வெளிப்படுத்தப்படுகின்றன, தற்போதைய போஸிலிருந்து வரும் டெல்டாக்கள் முழுமையான இலக்குகளை விட, இது மனித வீடியோவிலிருந்து கற்றுக்கொண்ட கையாளுதல் முன்னுரிமைகளை ரோபோ கட்டுப்பாட்டிற்கு மாற்ற அனுமதிக்கிறது. தலைப்பு ஒரு ஓட்ட-பொருத்தம் டிஃப்யூஷன் டிரான்ஸ்ஃபார்மர் ஆகும், இது Pi0.5 போன்ற அதே குடும்பத்தைச் சேர்ந்தது, ஆனால் அதற்கு முன்னால் ஒரு வேறுபட்ட பேக்போன் உள்ளது. நீங்கள் இன்னும் முந்தைய தலைமுறையில் இருந்தால், N1.7 மற்றும் N1.5 மேம்படுத்தல் உங்கள் பைப்லைனை மீண்டும் செய்ய நியாயப்படுத்துகிறதா என்பதை உள்ளடக்கியது.

பண்புமதிப்புஎங்கிருந்து வருகிறது
அளவீடுகள்3,000,000,000Hugging Face model card
பார்வை-மொழி பேக்போன்nvidia/Cosmos-Reason2-2B (Qwen3-VL), gated on Hugging Facerepo README
செயல் தலைப்புFlow-matching diffusion transformer, 16 layers (N1.6 had 32)repo README
கணிக்கப்பட்ட செயல் எல்லை40 steps for the base checkpoint (N1.6 had 16)getting_started/policy.md and repo README
அதிகபட்ச நிலை மற்றும் செயல் அகலம்132 (N1.6 had 29)repo README
குறியீடு உரிமம்Apache 2.0Isaac-GR00T repository
எடைகள் உரிமம்NVIDIA Open Model License Agreementmodel card
தாமதம், H100 80 GB, PyTorch ஈகர், 4 டிநாய்ஸிங் படிகள், 1 கேமரா85.8 ms end to end, 11.7 Hzmodel card timing table
அதே வன்பொருள், TensorRT முழு பைப்லைன்27.9 ms end to end, 35.9 Hzmodel card timing table
AY-Robots அதன் GR00T N1.7 க்கு மேற்கோள் காட்டும் தாமதம்152 ms per action stepAY-Robots policy catalog

அந்த கடைசி மூன்று வரிசைகள் மக்கள் தெரிவிக்கும் பெரும்பாலான ஏமாற்றத்தை விளக்குகின்றன. தலைப்புச் செய்தியான 27.9 ms என்பது ஒரு H100 இல் ஒரு கேமரா மற்றும் நான்கு டிநாய்ஸிங் படிகளுடன் கூடிய TensorRT எஞ்சின் ஆகும். அதே கார்டில் உள்ள சாதாரண PyTorch 85.8 ms ஆகும், மேலும் மாதிரி அட்டை இந்த இடைவெளியை 3.08x ஆகக் காட்டுகிறது. எந்த எண்ணும் ஒரு சர்விங் லேயர், இரண்டாவது கேமரா அல்லது ஒரு நெட்வொர்க் ஹாப் ஆகியவற்றை உள்ளடக்கவில்லை. AY-Robots அதன் GR00T N1.7 க்கு மேற்கோள் காட்டும் ஒரு செயல் படிக்கு 152 ms என்பது சர்விங் சுழற்சியில் உள்ள எண்ணிக்கை ஆகும், மேலும் ஒரு பொது-இணைய ரவுண்ட் ட்ரிப் அதற்கு மேல் அமைகிறது. இது பற்றி இறுதியில் மேலும். மற்ற மாடல்களுக்கு அடுத்த எண்களுக்கு, GR00T N1.7 மற்றும் Pi0.5 மற்றும் GR00T N1.7 மற்றும் SmolVLA ஆகியவற்றை அருகருகே வைக்கின்றன.

The AY-Robots model page for GR00T N1.7 showing parameter count, GPU tier, inference latency and the model's stated strengths and limits
The /policies/groot-n1-7 page carries the same spec strip you would otherwise assemble by hand from the model card and the repo README.

நீங்கள் எதையும் தட்டச்சு செய்வதற்கு முன் ரன் தேவைப்படுவது என்ன

தேவைநுண்-சரிசெய்தல்ஊகித்தல்
VRAM, NVIDIA வழிகாட்டுதல்40 GB அல்லது அதற்கு மேல், H100 அல்லது L40 பரிந்துரைக்கப்படுகிறது16 GB அல்லது அதற்கு மேல், ஒரு RTX 4090 வேலை செய்யும்
dGPU இல் Python மற்றும் CUDA3.12 மற்றும் CUDA 12.83.12 மற்றும் CUDA 12.8
வீடியோ பேக்கெண்ட்torchcodec 0.8.0, FFmpeg 4 முதல் 7 வரை மட்டுமேஅதே
தரவுத்தொகுப்பு வடிவம்LeRobot v2 plus meta/modality.jsonபொருந்தாது
Hugging Face அணுகல்nvidia/Cosmos-Reason2-2B க்கு அங்கீகரிக்கப்பட்டதுஅதே
பிற கருவிகள்git-lfs மற்றும் uvuv
groot1.7 பயிற்சியாளருக்கான AY-Robots GPU அடுக்குA100 80 GB அல்லது H100 80 GBபாட் தானாகவே வழங்கப்படுகிறது
தடைசெய்யப்பட்ட பேக்போன் முதல் ஓட்டத்திலேயே உங்களை நிறுத்திவிடும்

அடிப்படை nvidia/GR00T-N1.7-3B உட்பட ஒவ்வொரு GR00T செக்பாயிண்ட்டும், முதல் பயன்பாட்டில் nvidia/Cosmos-Reason2-2B ஐ ஏற்றுகிறது, மேலும் அந்த களஞ்சியம் தடைசெய்யப்பட்டுள்ளது. README ஆனது தோல்வியை துல்லியமாக குறிப்பிடுகிறது: மாதிரி ஏற்றுதல் GatedRepoError / 401 Client Error உடன் தோல்வியடைகிறது. அது எப்போது நடக்கும் என்பதை அது குறிப்பிடவில்லை, அது நீங்கள் கார்டை வாடகைக்கு எடுத்த பிறகு மற்றும் ஓட்டம் தொடங்கிய பிறகுதான். மாடல் பக்கத்தில் அணுகலைக் கோரவும், பின்னர் நீங்கள் எதையும் வாடகைக்கு எடுப்பதற்கு முன் uv run huggingface-cli login ஐ இயக்கவும் அல்லது HF_TOKEN ஐ ஏற்றுமதி செய்யவும்.

படி 0: எபிசோடுகள்

கீழே உள்ள அனைத்தும் நீங்கள் ஏற்கனவே பதிவுசெய்யப்பட்ட எபிசோடுகளைக் கொண்டிருக்கிறீர்கள் என்று கருதுகிறது. உங்களிடம் இல்லையென்றால், அதுவே உண்மையான முதல் படி, மேலும் அதுவே முடிவின் தரத்தை தீர்மானிக்கும், ஏனெனில் அனுபவக் கற்றல் தரவுகளில் இல்லாத தகவல்களை மீட்டெடுக்க முடியாது. முதலில் இரண்டு கைகளையும் அளவீடு செய்யுங்கள், பின்னர் பின்தொடர்பவரை ஒரு தலைமை கை கொண்டு இயக்கவும், அதே நேரத்தில் lerobot-record பார்கெட் கோப்புகளையும் கேமரா ஸ்ட்ரீம்களையும் எழுதுகிறது. அளவீடு சரியாக இல்லாவிட்டால், உங்கள் தரவுத்தொகுப்பில் உள்ள கூட்டு மதிப்புகள், பின்னர் கொள்கையை செயல்படுத்தும் ரோபோவை விட சற்று வித்தியாசமான ரோபோவை விவரிக்கின்றன, மேலும் எந்த அளவு பயிற்சியும் அதை சரிசெய்யாது.

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 இல் lerobot-record. எபிசோட் நீளம் இயல்பாக 60 வினாடிகளாகவும், மீட்டமைப்பு நேரம் 60 வினாடிகளாகவும் இருக்கும். so100_follower மற்றும் so101_follower இரண்டும் ஒரே LeRobot உள்ளமைவு வகுப்பிற்கு எதிராகப் பதிவு செய்யப்பட்டுள்ளன, அதனால்தான் Isaac-GR00T SO100 எடுத்துக்காட்டு so101 பெயர்களைப் பயன்படுத்துகிறது; SO-100 இல் எதுவாக இருந்தாலும் வேலை செய்யும். நீங்கள் இங்கு தேர்ந்தெடுக்கும் கேமரா பெயர்கள் (front, wrist) modality.json இல் மீண்டும் தோன்ற வேண்டிய பெயர்கள்.

LeRobot இன் சொந்த ஆலோசனை என்னவென்றால், ஒவ்வொரு பொருள் இருப்பிடத்திற்கும் சுமார் 10 எபிசோடுகள் வீதம் குறைந்தது 50 எபிசோடுகளைப் பதிவு செய்ய வேண்டும், கேமராக்களை நிலையாக வைத்திருக்க வேண்டும், மேலும் பிடிப்பு நடத்தையை சீராக வைத்திருக்க வேண்டும். தொடக்கத்தில் அல்ல, பின்னர் மாறுபாடுகளைச் சேர்க்கவும். நினைவில் கொள்ள வேண்டிய ஒரு பொதுவான விதி: கேமரா படங்களை மட்டும் பயன்படுத்தி உங்களால் பணியைச் செய்ய முடியாவிட்டால், கொள்கை அதையும் செய்ய முடியாது. கை-குறிப்பிட்ட அமைப்பிற்கு, SO-100 தொடங்குதல் மற்றும் SO-100 LeRobot பக்கம் போர்ட்கள், அளவீடு மற்றும் கேமரா குறியீடுகளை உள்ளடக்கியது. AY-Robots இல் நீங்கள் இணையம் வழியாக உலாவியில் இருந்து தொலைசெயல்பாடு பயன்படுத்தி இதைச் செய்யலாம் மற்றும் அமர்விலிருந்து நேரடியாகப் பதிவு செய்யலாம்.

படி 1: தரவுத்தொகுப்பு LeRobot v2.1 ஆக இருக்க வேண்டும்

இதுவே மிகவும் பொதுவான ஒரு தடை. LeRobot இன் தற்போதைய CODEBASE_VERSION மெயின் கிளையில் v3.0, எனவே தற்போதைய டூல்செயின் மூலம் நீங்கள் இன்று பதிவு செய்யும் எதுவும் v3.0 ஆக வெளிவரும். GR00T இன் லோடர் v2 ஐ எதிர்பார்க்கிறது. பல அப்ஸ்ட்ரீம் தரவுத்தொகுப்புகளான DROID, LIBERO மற்றும் Bridge ஆகியவை v2 இல் வெளியிடப்பட்டுள்ளன, மேலும் இரண்டிற்கும் சொந்த ஆதரவு திட்டமிடப்பட்டுள்ளது ஆனால் இன்னும் வெளியிடப்படவில்லை என்பதே இதற்கான காரணம். எனவே மாற்றும் பொறுப்பு உங்களுடையது, மேலும் இது ஒரு குறிப்பிட்ட காரணத்திற்காக அதன் சொந்த விர்ச்சுவல்என்வ்வில் இயங்குகிறது: scripts/lerobot_conversion அதன் சொந்த பைபிராஜெக்ட்டைக் கொண்டுள்ளது, இது பைதான் 3.10 அல்லது 3.11 ஐக் கேட்கிறது மற்றும் லெரோபோட்டை ஒரு கிட் கமிட்டிற்குப் பிணைக்கிறது, அதே நேரத்தில் Isaac-GR00T க்கு பைதான் 3.12 தேவைப்படுகிறது. களஞ்சியத்தின் ரூட்டிலிருந்து கன்வெர்ட்டரை நிறுவினால், உங்களுக்கு gr00t தொகுப்பு கிடைக்கும், இது அதன் README எச்சரிக்கும் தவறு. நீங்கள் இந்த வடிவத்திற்கு புதியவராக இருந்தால், LeRobot தரவுத்தொகுப்பு கலைச்சொல் உள்ளீடு உண்மையில் உள்ளே என்ன இருக்கிறது என்பதை விளக்குகிறது.

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
கன்வெர்ட்டர் --repo-id, ஒரு விருப்பமான --root, மற்றும் --force-conversion ஆகியவற்றை எடுத்துக்கொள்கிறது, இது ஏற்கனவே உள்ள எந்த உள்ளூர் ஸ்னாப்ஷாட்டையும் நீக்கி மீண்டும் பதிவிறக்குகிறது. இது codebase_version: v2.1 ஐ meta/info.json இல் எழுதுகிறது.
மாற்றம் அதே இடத்தில் மேலெழுதும்

v3.0 தரவுத்தொகுப்பு ஏற்கனவே உள்ளூரில் இருந்தால், ஸ்கிரிப்ட் அதற்கு அருகில் v2.1 அமைப்பை உருவாக்கி பின்னர் மாற்றுகிறது: அசல் கோப்பு பதிப்பு சேர்க்கப்பட்ட ஒரு சகோதர கோப்புறைக்கு நகர்த்தப்படுகிறது, <name>_v3.0, மற்றும் மாற்றப்பட்ட நகல் அசல் பாதையை எடுத்துக்கொள்கிறது. (ஸ்கிரிப்ட்டின் சொந்த டாக்ஸ்ட்ரிங் அந்தக் கோப்புறையை _v30 என்று அழைக்கிறது; குறியீடு பதிப்பு சரத்தைச் சேர்க்கிறது, எனவே நீங்கள் உண்மையில் பெறுவது _v3.0.) இரண்டாவது ஆச்சரியம்: வெளியீடு எப்போதும் <root>/<repo-id> இன் கீழ் வருகிறது, எனவே --root examples/SO100/my_dataset_lerobot உங்களுக்கு examples/SO100/my_dataset_lerobot/<your-hf-user>/<your-dataset> ஐ வழங்குகிறது, மேலும் அந்த நீண்ட பாதைதான் --dataset-path பின்னர் விரும்புகிறது. ஒரு பயிற்சி வேலை உங்கள் தரவுத்தொகுப்பை பதிப்பு காரணங்களுக்காக நிராகரிக்கும்போது, v3 ஆக நிராகரிக்கப்பட்ட தரவுத்தொகுப்பு பக்கம் சரியான அறிகுறிகளை பட்டியலிடுகிறது.

மாற்றத்திற்குப் பிறகு GR00T விரும்பும் அமைப்பு கிளாசிக் v2 தளவமைப்பு ஆகும்: meta/info.json, meta/episodes.jsonl, meta/tasks.jsonl, parquet கோப்புகள் கீழ் data/chunk-000/, MP4 கோப்புகள் கீழ் videos/chunk-000/observation.images./, மற்றும் நிலையான LeRobot இல் இல்லாத ஒரு கூடுதல் கோப்பு. அந்த கூடுதல் கோப்பில்தான் மீதமுள்ள பெரும்பாலான பிழைகள் உள்ளன.

படி 2: modality.json, அனைத்தையும் தீர்மானிக்கும் ஆறு எண்கள்

ஒரு LeRobot தரவுத்தொகுப்பில் ரோபோ நிலை மற்றும் செயல்பாடு தட்டையான float32 வரிசைகளாக சேமிக்கப்படுகின்றன. ஒரு SO-100 க்கு, இரண்டுமே வடிவம் கொண்டுள்ளன [6]: ஐந்து கை மூட்டுகள் மற்றும் ஒரு கிரிப்பர். டெமோ தரவுத்தொகுப்பு அவற்றுக்கு பெயரிடுகிறது shoulder_pan.pos, shoulder_lift.pos, elbow_flex.pos, wrist_flex.pos, wrist_roll.pos, gripper.pos, ஆனால் அந்த பெயர்கள் info.json இல் உள்ளன, மேலும் parquet கோப்பில் எந்த குறியீடு எது என்று எதுவும் குறிப்பிடப்படவில்லை. meta/modality.json அந்த மேப்பிங்கை வழங்குகிறது, மேலும் அது இல்லாமல் GR00T பயிற்சி பெறாது. SO-100 க்காக களஞ்சியம் அனுப்பும் ஒன்று இங்கே, அப்படியே.

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. குறியீடுகள் பூஜ்ஜியத்தை அடிப்படையாகக் கொண்டவை மற்றும் பைதான் ஸ்லைசிங்கைப் பின்பற்றுகின்றன, எனவே single_arm [0:5] மற்றும் gripper [5:6] ஆகும்.

உங்கள் மாற்றப்பட்ட தரவுத்தொகுப்பில் நகலெடுக்கவும் meta/modality.json மற்றும் வீடியோ கீகளை உங்கள் கேமராக்களின் உண்மையான பெயர்களுக்கு மாற்றவும். நீங்கள் ஒரே ஒரு மேல்நிலை கேமராவுடன் பதிவு செய்திருந்தால், அதன் பெயர் top, அப்போது original_key என்பது observation.images.top மற்றும் பயனர் நட்பு பெயர் உங்கள் தரவு உள்ளமைவு குறிப்பிடும் பெயராகும். இரண்டும் ஒத்துப்போக வேண்டும், மேலும் உங்களுக்காக ஒன்று மற்றொன்றைச் சரிபார்க்காது. மொழி குறிப்பு இன்னும் மோசமானது, ஏனெனில் அதே கீ மூன்று இடங்களில் தோன்ற வேண்டும்.

அடுக்குகோப்புரெப்போவில் பயன்படுத்தப்படும் SO-100 வடிவம்
Parquet நெடுவரிசைdata/chunk-*/episode_*.parquetannotation.human.task_description
modality.json கீmeta/modality.json, under "annotation", without the annotation. prefixhuman.task_description
தரவு உள்ளமைவில் modality_keysyour so100_config.pyannotation.human.task_description
மொழி கீ ஏன் சிக்கலை ஏற்படுத்துகிறது

annotation. க்குப் பிந்தைய பிரிவுகள் தரவுத்தொகுப்பை உருவாக்கியவரால் தேர்ந்தெடுக்கப்படுகின்றன. SO-100 டெமோ தரவு annotation.human.task_description ஐப் பயன்படுத்துகிறது; LIBERO மற்றும் SimplerEnv ஆகியவை annotation.human.action.task_description ஐப் பயன்படுத்துகின்றன. இரண்டும் செல்லுபடியாகும். நீங்கள் ஒரு LIBERO உதாரணத்திலிருந்து ஒரு உள்ளமைவை நகலெடுத்து அதை உங்கள் சொந்த SO-100 பதிவுக்குச் சுட்டிக்காட்டினால், மொழி சேனல் எதற்கும் தீர்க்கப்படாது மற்றும் மாதிரி ஒரு வெற்று அறிவுறுத்தலில் பயிற்சி பெறும். இழப்பு இன்னும் குறைகிறது. கொள்கை இன்னும் ஏதோ செய்கிறது. நீங்கள் செய்யச் சொன்னதை அது புறக்கணிக்கிறது.

படி 3: தரவு உள்ளமைவு, சார்பு கை மற்றும் முழுமையான கிரிப்பர்

மோடாலிட்டி கான்பிக் (modality config) என்பது JSON கோப்பு அல்லாமல் ஒரு பைதான் கோப்பாகும், ஏனெனில் இது ஒவ்வொரு செயல் குழுவும் எவ்வாறு குறிப்பிடப்படுகிறது என்பதையும் தீர்மானிக்கிறது. இது N1.7 பணிப்பாய்வின் ஒரு பகுதியாகும், இது N1.5 இல் அதே வடிவத்தில் இல்லை, மேலும் இருமுறை படிக்க வேண்டிய பகுதியாகும். அனுப்பப்பட்ட SO-100 கான்பிக், ஐந்து கை மூட்டுகளை தற்போதைய நிலையிலிருந்து சார்பு (RELATIVE) டெல்டாக்களாகவும், கிரிப்பரை முழுமையான (ABSOLUTE) இலக்கு நிலையாகவும் கணிக்கிறது, ஏனெனில் ஒரு பைனரி திறந்த அல்லது மூடிய சிக்னல் டெல்டாவை விட இலக்காக சிறப்பாக செயல்படும்.

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, அத்தியாவசியமானவற்றுக்கு சுருக்கப்பட்டது. NON_EEF என்பது கூட்டு இடைவெளியைக் குறிக்கிறது; EEF ஆனது x, y, z மற்றும் ஒரு 6D சுழற்சியின் ஒன்பது பரிமாண திசையனை (vector) எதிர்பார்க்கும்.

இங்குள்ள இரண்டு விவரங்கள் உங்களுக்குத் தெரியாவிட்டால் ஒரு நாள் வீணாகிவிடும். முதலாவதாக, action_configs என்பது நிலை சார்ந்ததாகும்: ஆவணங்கள் modality_keys உடன் அதே நீளத்தையும் அதே வரிசையையும் கோருகின்றன, மேலும் அதை தவறாகப் பெறுவதன் விளைவு குறித்து அவை வெளிப்படையாகக் கூறுகின்றன, அதாவது தவறான பிரதிநிதித்துவம் அமைதியாகப் பயன்படுத்தப்படுகிறது. உங்கள் கிரிப்பர் ஒரு டெல்டாவாகவும் உங்கள் கை ஒரு முழுமையான இலக்காகவும் பயிற்சி அளிக்கப்படுகிறது, மேலும் எந்த பிழை செய்தியும் இருக்காது. இரண்டாவதாக, register_modality_config ஆனது குறிச்சொல் ஏற்கனவே பதிவு செய்யப்படவில்லை என்பதை உறுதிப்படுத்துகிறது, எனவே அதே பைதான் செயல்முறையில் இரண்டாவது NEW_EMBODIMENT கான்பிக் Embodiment tag ... already registered உடன் நின்றுவிடும். நீங்கள் இரண்டை ஒரு ஸ்கிரிப்டில் இறக்குமதி செய்ய முடியாது. மூன்றாவது விதி பின்னர், வரிசைப்படுத்தலின் போது செயல்படுத்தப்படுகிறது: செயல் delta_indices பூஜ்ஜியத்தில் தொடங்கும் தொடர்ச்சியான வரம்பாக இருக்க வேண்டும். [0, 4, 8] போன்ற ஒரு அரிய சாளரம் நிராகரிக்கப்படுகிறது, ஏனெனில் கீழ்நிலை அனைத்தும் கணிக்கப்பட்ட பகுதியை நேரியல் முறையில் குறியிடும், இல்லையெனில் தவறான வரிசைகளை செயல்படுத்தும்.

delta_indices ஐ மாற்றினால், நீங்கள் புள்ளிவிவரங்களை மீண்டும் உருவாக்க வேண்டும்

இயல்பாக்குதல் புள்ளிவிவரங்கள், குறிப்பாக meta/relative_stats.json, நீங்கள் அவற்றை உருவாக்கியபோது இருந்த ஹொரைசன் நீளத்திற்காக கணக்கிடப்படுகின்றன. மீண்டும் உருவாக்காமல் செயல் ஹொரைசனை 16 இலிருந்து 8 ஆகக் குறைத்தால், பயிற்சி IndexError: boolean index did not match indexed array ... dimension is 8 but corresponding boolean dimension is 16 உடன் நின்றுவிடும். இதற்கான தீர்வு ஒரு கட்டளை: python gr00t/data/stats.py --dataset-path <path> --embodiment-tag NEW_EMBODIMENT --modality-config-path examples/SO100/so100_config.py. delta_indices இல் ஏதேனும் மாற்றம் செய்த பிறகு இதை இயக்கவும்.

படி 4: சூழல்

N1.7 களஞ்சியத்தை இதற்கு மாற்றியது மற்றும் Python 3.12 க்கு. பழைய conda உடன் pip install -e . பாதை README இன் சுருக்கப்பட்ட பிரிவில் இன்னும் உள்ளது, ஆனால் flash-attn மற்றும் TensorRT உள்ளிட்ட GPU சார்புகள் கைமுறையாக நிறுவப்பட வேண்டியிருக்கலாம் என்று எச்சரிக்கிறது. உங்களுக்கு ஒரு குறிப்பிட்ட காரணம் இல்லாவிட்டால் uv ஐப் பயன்படுத்தவும். flash-attn விஷயத்தில், ஒரு விவரம் குழப்பத்தைத் தவிர்க்கிறது: நீங்கள் காண்பீர்கள் Installing flash-attn ஒவ்வொரு uv run இல் அச்சிடப்படும். இது மீண்டும் உருவாக்கப்படவில்லை. uv ஏற்கனவே கேச் செய்யப்பட்ட URL-இணைக்கப்பட்ட வீலை மீண்டும் சரிபார்க்கிறது, இதற்கு இரண்டு அல்லது மூன்று வினாடிகள் ஆகும்.

  1. 1
    git-lfs ஐ நிறுவி, பின்னர் துணை தொகுதிகளுடன் குளோன் செய்யவும்

    git-lfs கட்டாயமானது, விருப்பத்தேர்வு அல்ல. இது இல்லாமல் demo_data/ இல் உள்ள parquet கோப்புகள் பாயிண்டர் ஸ்டப்களாக பதிவிறக்கப்படும், மேலும் கோப்புப் பட்டியலில் இருக்கும் ஒரு தரவுத்தொகுப்பில் டெமோ ரன் தோல்வியடையும்.

    bash
    sudo apt install git-lfs && git lfs install
    git clone --recurse-submodules https://github.com/NVIDIA/Isaac-GR00T
    cd Isaac-GR00T
  2. 2
    uv ஐ நிறுவி சூழலை ஒத்திசைக்கவும்

    இயல்புநிலை நிறுவல் flash-attn மற்றும் TensorRT உள்ளிட்ட GPU சார்புகளைப் பதிவிறக்குகிறது. புதிய A100 அல்லது H100 இமேஜில் இது மிக நீண்ட ஒற்றை படியாகும், எனவே வேறு எதற்கும் கவனம் செலுத்துவதற்கு முன் இதைச் செய்யுங்கள்.

    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
    Hugging Face உடன் அங்கீகரிக்கவும்

    முதல் பயிற்சி தொடங்குவதற்கு முன் இதைச் செய்யுங்கள், எட்டு நிமிடங்களுக்குப் பிறகு தோல்வியடைந்த பிறகு அல்ல.

    bash
    uv run huggingface-cli login   # or: export HF_TOKEN=<your_token>
  4. 4
    வழங்கப்பட்ட SO-100 டெமோ தரவில் ஒரு நம்பகத்தன்மை சரிபார்ப்பு

    உங்கள் சொந்த பதிவைத் தொடுவதற்கு முன், demo_data/cube_to_bowl_5 இல் 2000 படிகளை இயக்கவும். இது ஐந்து எபிசோடுகள், இது வேகமாக முடிவடைகிறது, மேலும் இது உங்கள் தரவை விட சூழலை நிரூபிக்கிறது. இந்த ரன் தோல்வியடைந்தால், உங்கள் தரவுத்தொகுப்பிற்கு நீங்கள் செய்யும் எதுவும் உதவாது.

    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
மாடல் பிழைகள் போல் தோற்றமளிக்கும் இரண்டு சூழல் சிக்கல்கள்

FFmpeg 8. torchcodec 0.8.0 FFmpeg 4 முதல் 7 வரை மட்டுமே ஆதரிக்கிறது, மேலும் Ubuntu 25.10 மற்றும் அதற்குப் பிந்தைய பதிப்புகள் 8 ஐ வழங்குகின்றன. பிழை Could not load libtorchcodec, இது ஒரு பதிப்பு முரண்பாட்டை விட உடைந்த நிறுவல் போல் தெரிகிறது. பழைய ரன்டைமை நிறுவவும், எடுத்துக்காட்டாக conda install -c conda-forge 'ffmpeg<8', மற்றும் அதன் நூலகங்களை LD_LIBRARY_PATH இல் வைக்கவும். CUDA_HOME அமைக்கப்படவில்லை. ஃபைன்-ட்யூனிங் முற்றிலும் தோல்வியடைகிறது. bash scripts/deployment/dgpu/install_deps.sh ஒருமுறை இயக்கவும், அல்லது வெறுமனே export CUDA_HOME=/usr/local/cuda.

படி 5: ஃபைன்-ட்யூன் கட்டளை மற்றும் அதன் கொடிகள் உண்மையில் இயல்புநிலையாக என்ன

டெமோ தரவுத்தொகுப்பை உங்களுடையதாக மாற்றி, நீங்கள் உண்மையில் விரும்பும் கட்டுப்பாடுகளைச் சேர்க்கவும். கீழே உள்ளவை, களஞ்சியம் அதன் சொந்த புதிய-உருவாக்கப் பயிற்சியில் பயன்படுத்தும் முழு வடிவமாகும், இதில் சுருக்கமான README எடுத்துக்காட்டில் விடுபட்ட விரிவாக்கம் மற்றும் சரிபார்ப்பு கொடிகள் அடங்கும். இது குறுகிய அர்த்தத்தில்: மொழி முதுகெலும்பு மற்றும் காட்சி குறியாக்கி உறைந்தே இருக்கும், மேலும் பயிற்சி பெறுவது ப்ரொஜெக்டர் மற்றும் டிஃப்யூஷன் ஆக்‌ஷன் ஹெட் ஆகும்.

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
ஒற்றை GPU. எட்டு கார்டுகளுக்கு, துவக்கியை uv run torchrun --nproc_per_node=8 --master_port=29500 உடன் மாற்றி, --num-gpus 8 என அமைக்கவும். uv run torchrun ஐப் பயன்படுத்தவும், வெறும் torchrun ஐ அல்ல, இல்லையெனில் தவறான சூழலைப் பெறுவீர்கள்.
கொடிFinetuneConfig இல் இயல்புநிலைஅது என்ன செய்கிறது
--global-batch-size64கிரேடியன்ட் குவிப்புக்கு முன் அனைத்து GPU களிலும் மொத்த தொகுதி. அனுப்பப்பட்ட எடுத்துக்காட்டுகள் 32 ஐப் பயன்படுத்துகின்றன.
--learning-rate1e-4AY-Robots அதன் groot1.7 பயிற்சியாளருக்கு அனுப்பும் அதே மதிப்பு.
--max-steps10000மொத்த ஆப்டிமைசர் படிகள். examples/finetune.sh ரேப்பரும் 10000 க்கு இயல்புநிலையாகும்.
--gradient-accumulation-steps1செயல்பாட்டுத் தொகுதியை பெருக்குகிறது. 1 க்கு மேல் உள்ள மதிப்புகள் திரட்டப்பட்ட அளவை உங்களுக்குத் தெரிவிக்கும் எச்சரிக்கையை வெளியிடும்.
--save-steps and --save-total-limit1000 and 5சரிபார்ப்பு அதிர்வெண், மற்றும் எத்தனை வைக்கப்படுகின்றன. பழையவை நீக்கப்படும்.
--weight-decay and --warmup-ratio1e-5 and 0.05examples/finetune.sh மூலமாகவும் வெளிப்படையாக அமைக்கப்பட்டுள்ளது.
--state-dropout-prob0.2 in the CLI, 0.8 in the model configபயிற்சியின் போது ப்ரோப்ரியோசெப்டிவ் நிலையை தோராயமாக நீக்குகிறது. உங்கள் பணி நிலையைச் சார்ந்திருந்தால் அதைக் குறைக்கவும்.
--tune-llm and --tune-visualFalse and Falseமுதுகெலும்பு இயல்புநிலையாக உறைந்தே இருக்கும்.
--tune-projector and --tune-diffusion-modelTrue and Trueப்ரொஜெக்டர் மற்றும் டிஃப்யூஷன் ஆக்‌ஷன் ஹெட் ஆகியவை உண்மையில் பயிற்சி பெறுபவை.
--use-percentilesTrueகச்சா குறைந்தபட்சம் மற்றும் அதிகபட்சத்திற்குப் பதிலாக q01 மற்றும் q99 உடன் இயல்பாக்கு.
--dataloader-num-workers2லோடர் வடிவமைப்பால் CPU அடிப்படையிலானது. எடுத்துக்காட்டுகள் இதை 4 ஆக உயர்த்துகின்றன.
--seeddoes not existஇந்த CLI இல் சீட் கொடி இல்லை.

அந்த கடைசி வரி அச்சுப்பிழை அல்ல. launch_finetune.py என்பது ஒரு டேட்டாகிளாஸிலிருந்து (dataclass) உருவாக்கப்பட்ட ஒரு டைரோ CLI ஆகும், மேலும் அந்த டேட்டாகிளாஸில் சீட் (seed) புலம் இல்லை. சீரற்ற பட மேம்பாட்டினால் ஏற்படும் இயக்கங்களுக்கு இடையில் 5 முதல் 6 சதவீதம் மாறுபாடு இருப்பதாக README தனித்தனியாகக் குறிப்பிடுகிறது. ஒரே மாதிரியான ஃபிளாக்குகளுடன் (flags) இரண்டு இயக்கங்கள் ஒரே மாதிரியான செக்பாயிண்ட்களை (checkpoints) உருவாக்காது, இது ஒரு ஹைப்பர்பாராமீட்டர் (hyperparameter) மாற்றம் உதவியதா அல்லது நீங்கள் அதிர்ஷ்டசாலியா என்பதை தீர்மானிக்க முயற்சிக்கும்போது மிகவும் முக்கியமானது. ஒப்பிடுகையில், லெரோபோட்டின் (lerobot) சொந்த பயிற்சியாளர் இயல்பாக சீட் 1000 ஐப் பயன்படுத்துகிறார், மேலும் லெரோபோட் GR00T செய்முறை --seed=42 ஐ வெளிப்படையாக அனுப்புகிறது.

சரிபார்ப்பு இயல்பாக முடக்கப்பட்டுள்ளது, மேலும் ஆவணப்படுத்தப்பட்ட ஃபிளாக் இந்த CLI இல் இல்லை

eval_strategy="no" உடன் ஃபைன்-ட்யூனிங் (fine-tuning) இயங்குகிறது, எனவே சரிபார்ப்பு இழப்பு வளைவு (validation loss curve) எதுவும் இல்லை. உங்களுக்கு பயிற்சி இழப்பு (training loss) மட்டுமே கிடைக்கும். புதிய-உருவாக்க வழிகாட்டி (new-embodiment guide) அதை --eval-strategy steps --eval-steps 500 உடன் இயக்கச் சொல்கிறது, ஆனால் அந்த ஃபிளாக் launch_finetune.py இல் இல்லை: CLI ஆனது டைரோவால் (tyro) FinetuneConfig டேட்டாகிளாஸிலிருந்து (dataclass) உருவாக்கப்படுகிறது, மேலும் eval_strategy, eval_steps மற்றும் eval_batch_size ஆகியவை TrainingConfig இன் புலங்கள் (fields) ஆகும். அவற்றின் இயல்புநிலைகள் "no", 500 மற்றும் 2 ஆகும். அவற்றை அடைய, முழுமையான நுழைவுப் புள்ளியான gr00t/experiment/launch_train.py ஐப் பயன்படுத்தவும், அங்கு உள்ளமைக்கப்பட்ட ஃபிளாக் --training.eval-strategy ஆகும். எப்படியிருந்தாலும், ஒரு பயிற்சி இழப்பு குறைவது பொதுமைப்படுத்தல் (generalization) பற்றி மிகக் குறைவாகவே சொல்கிறது, இது இழப்பு குறைகிறது ஆனால் கொள்கை எதுவும் செய்யவில்லை என்பதில் விவரிக்கப்பட்டுள்ள சூழ்நிலை.

20000-படி இயக்கத்தின் செலவு என்ன

GR00T N1.7 க்கு 80 GB கார்டு தேவை, எனவே செலவு கேள்விக்கு ஒரு குறுகிய பதில் உள்ளது. AY-Robots இல், groot1.7 பயிற்சியாளர் A100 80 GB அல்லது H100 80 GB அடுக்கில் இயங்குகிறது, அங்கு ஒரு இயக்கம் ஸ்பாட் மார்க்கெட்டில் (spot market) ஒரு மணி நேரத்திற்கு 1.20 முதல் 2.00 USD என்ற விகிதத்தில் 3 முதல் 6 மணிநேரம் ஆகும். இயல்புநிலை 20000-படி வேலைக்கு இது தோராயமாக 4 முதல் 12 USD ஆகும். அதே பணி ஸ்மோல்விஎல்ஏ அல்லது ஏசிடி இல் ஒரு மணி நேரத்திற்கு 0.30 முதல் 0.60 USD மற்றும் ஒரு இயக்கத்திற்கு 1 முதல் 3 USD என்ற விகிதத்தில் 24 GB கார்டில் இயங்குகிறது. இதுதான் உண்மையான சமரசம்: GR00T ஒரு முயற்சிக்கு சுமார் நான்கு மடங்கு அதிகமாக செலவாகிறது, மேலும் அதை உங்கள் மேசைக்கு அடியில் உள்ள 4090 இல் இயக்க முடியாது.

மாடல்GPU அடுக்குவழக்கமான இயக்கம்வழக்கமான செலவுகுறைந்தபட்ச எபிசோடுகள்
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

50-எபிசோட் குறைந்தபட்சம் ஒரு தளம், இலக்கு அல்ல. NVIDIA இன் FAQ மேலும் கோருகிறது: ஒரு எளிய நிலையான இடத்தைத் தேர்ந்தெடுத்து வைப்பதற்கு தோராயமாக 100 தடங்கள், சிக்கலான அல்லது பல-படி காட்சிகளுக்கு 500 அல்லது அதற்கு மேற்பட்டவை, மற்றும் நுட்பமான கையாளுதலுக்கு 100 முதல் 500 வரை. நீங்கள் 20 எபிசோடுகளில் இருந்தால், மாலையில் சரிசெய்வதற்குப் பதிலாக மதியம் பதிவு செய்வதில் செலவிடுங்கள். தரவு சேகரிப்பு வழிகாட்டி ஒரு பயனுள்ள எபிசோடை வீணான ஒன்றிலிருந்து எது பிரிக்கிறது என்பதை விளக்குகிறது, உங்கள் முதல் தரவுத்தொகுப்பை பதிவு செய்யவும் என்பது சுருக்கமான பதிப்பு, மற்றும் SO-100 தரவு சேகரிப்பு என்பது கை-குறிப்பிட்ட ஒன்று.

AY-Robots இன் GR00T N1.7 க்கான SO-100 இல் உள்ள பயிற்சி வழிகாட்டி, GPU அடுக்கு, தேவையான தரவுத்தொகுப்பு வடிவம் மற்றும் பயிற்சியாளர் இயல்புநிலைகளுடன் கூடிய விவரக்குறிப்புப் பட்டையைக் காட்டுகிறது.
The /train/groot-n1-7-on-so-100 வழிகாட்டி, நீங்கள் கைமுறையாக மீண்டும் உருவாக்க வேண்டிய உண்மைகளுடன் தொடங்குகிறது: GPU அடுக்கு, தரவுத்தொகுப்பு வடிவம் மற்றும் பயிற்சியாளர் அனுப்பும் சரியான இயல்புநிலைகள்.

படி 6: கையைத் தொடுவதற்கு முன் திறந்த-சுற்று மதிப்பீடு

புதிய செக்பாயிண்ட் ஒரு இயற்பியல் கையில் வைத்து பயிற்சி வேலை செய்ததா என்று கண்டறிய வேண்டாம். முதலில் ஓப்பன்-லூப் மதிப்பீட்டை இயக்கவும். இது பதிவுசெய்யப்பட்ட ஒரு எபிசோடை மீண்டும் இயக்குகிறது, ஒவ்வொரு படியிலும் மாதிரிக்கு செயல்களைக் கேட்கிறது, மேலும் MSE மற்றும் MAE உடன் கணிப்பை உண்மைக்கு எதிராக வரைகிறது. இதற்கு செலவு இல்லை, மேலும் இது படி 2 மற்றும் 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
வரைபடங்கள் /tmp/open_loop_eval/traj_<id>.jpeg இல் சேமிக்கப்படும், நீங்கள் --save-plot-path ஐ அனுப்பாத வரை. இயல்புநிலைகள்: --execution-horizon 16, --steps 200, --denoising-steps 4, --traj-ids 0.

கஸ்டம் தரவுகளுக்கான இலக்கு MSE ஐ வெளியிட களஞ்சியம் வேண்டுமென்றே மறுக்கிறது, அது சரியான முடிவுதான்: இந்த எண் உங்கள் செயல் அலகுகள், உங்கள் பணி மற்றும் உங்கள் தரவுத்தொகுப்பின் அளவைப் பொறுத்தது, எனவே வேறொருவரின் கையிலிருந்து நகலெடுக்கப்பட்ட ஒரு வரம்பு அர்த்தமற்றது. முக்கியமானது போக்குதான். ஐந்து-எபிசோட் டெமோ தரவுத்தொகுப்பு மற்றும் 2000 படிகளுடன் ஒரு H100 இல் களஞ்சியம் ஆவணப்படுத்தும் குறிப்பு ஓட்டம் இங்கே உள்ளது.

செக்பாயிண்ட்traj 0 இல் சராசரி MSEtraj 0 இல் சராசரி MAE
50087.55.63
100025.43.30
150013.22.18
200010.01.76

வடிவம் தான் சிக்னல், தனிப்பட்ட மதிப்புகள் அல்ல. பிழை சீராக குறைய வேண்டும், ஏனெனில் குவிகின்றன. ட்ராஜெக்டரி 0-ஐ மட்டும் கணக்கில் கொள்ளாமல், ஐந்து பயிற்சி எபிசோடுகள் அனைத்திலும் சராசரியாக, ரெப்போவின் இறுதி செக்பாயிண்ட் தோராயமாக 7.5 MSE மற்றும் 1.5 MAE மதிப்பெண் பெற்றது. எனவே, நீங்கள் எந்த எபிசோடுகளை சராசரியாக எடுக்கிறீர்கள் என்பதைப் பொறுத்து குறிப்பு ஓட்டம் கூட வித்தியாசமாகப் படிக்கப்படுகிறது. உங்கள் சொந்த தரவில் எதையும் மாற்றுவதற்கு முன், மாற்றப்படாத டெமோ கட்டளையில் உங்கள் சொந்த அடிப்படை அளவை பதிவு செய்யவும்: அறியப்பட்ட-நல்ல ஓட்டத்தை உங்களால் மீண்டும் உருவாக்க முடியாவிட்டால், ஒரு அமைப்பு பிழையை தரவு சிக்கலில் இருந்து உங்களால் வேறுபடுத்தி அறிய முடியாது. இந்த களஞ்சியம் பொதுவான அறிகுறிகளை காரணங்களுடன் இணைக்கிறது, மேலும் அவை அனைத்தும் ஒரு மாதிரி பிழை (model bug) என்பதை விட செயல்பாட்டு ரீதியானவை.

அறிகுறிசாத்தியமான காரணம்
செக்பாயிண்ட்கள் முழுவதும் MSE தட்டையாக அல்லது அதிகரித்து வருகிறதுகற்றல் விகிதம் (learning rate) மிகக் குறைவாக உள்ளது, அல்லது தரவு ஏற்றப்படவில்லை. --dataset-path மற்றும் dataloader பணியாளர்களைச் சரிபார்க்கவும்.
முன்னறிவிப்பு வளைவு தட்டையாக அல்லது நிலையானதாக உள்ளதுmodality.json விசைகள் அல்லது --modality-config-path பொருந்தவில்லை. செயல் விசைகள் (action keys) மேப் செய்யப்படவில்லை.
MSE மிக அதிகமாக உள்ளது, அல்லது பயிற்சியின் போது NaN இழப்புசெயல் மற்றும் நிலை இயல்பாக்கம் (Action and state normalization). meta/stats மற்றும் செயல் வரம்புகள் (action ranges) இயற்பியல் ரீதியாக நம்பத்தகுந்தவை என்பதை சரிபார்க்கவும்.
traj 0 இல் நன்றாக உள்ளது, ஒதுக்கி வைக்கப்பட்ட எபிசோடுகளில் மோசமாக உள்ளதுதரவு பற்றாக்குறை, ஒரு பிழை அல்ல. ஐந்து டெமோ எபிசோடுகள் பொதுமைப்படுத்த முடியாது.

மற்றொரு வழி: Isaac-GR00T க்கு பதிலாக lerobot-train

PyPI இல் 3 ஆகஸ்ட் 2026 முதல் கிடைக்கும் தற்போதைய LeRobot வெளியீடு, 0.6.1, அதே அடிப்படை எடைகளை (base weights) ஃபைன்-ட்யூன் செய்ய இரண்டாவது மற்றும் முற்றிலும் மாறுபட்ட வழியை வழங்குகிறது. LeRobot, GR00T N1.7 ஐ ஒரு கொள்கை வகையாக (policy type) வெளிப்படுத்துகிறது மற்றும் அதன் சொந்த lerobot-train நுழைவுப் புள்ளி (entry point) வழியாக பயிற்சி அளிக்கிறது. இங்கு இரண்டு விஷயங்கள் முக்கியமானவை. LeRobot CLI என்பது கன்சோல் ஸ்கிரிப்ட்களின் தொகுப்பாகும், எனவே python lerobot/scripts/train.py என்று நீங்கள் படிக்கும் எதுவும் காலாவதியானது மற்றும் இயங்காது. மேலும் LeRobot, GR00T N1.5 ஆதரவை முழுமையாக நீக்கிவிட்டது, N1.5 செக்பாயிண்ட்கள் மற்றும் உள்ளமைவுகளை (configs) ஒரு இடம்பெயர்வு குறிப்புடன் (migration note) நிராகரித்தது. எனவே, LeRobot வழியாக N1.5 உங்களுக்குத் தேவைப்பட்டால், நீங்கள் lerobot==0.5.1 ஐப் பயன்படுத்த வேண்டும், இது அதை ஆதரிக்கும் கடைசி வெளியீடு, 7 ஏப்ரல் 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
LeRobot-நேட்டிவ் GR00T N1.7 செய்முறை. relative_exclude_joints என்பதைக் கவனிக்கவும்: கிரிப்பர் சார்பு செயல்களில் இருந்து விலக்கப்பட்டுள்ளது, இது ActionRepresentation.ABSOLUTE உடன் so100_config.py எடுக்கும் அதே முடிவு.
அம்சம்Isaac-GR00T launch_finetune.pylerobot-train --policy.type=groot
LeRobot v2 மட்டுமே, மாற்றம் தேவைநேட்டிவ் LeRobot தரவுத்தொகுப்பு, தரமிறக்கம் இல்லை
meta/modality.json மற்றும் ஒரு பைதான் தரவு கட்டமைப்புmodality.json இல்லை; கட்டளை வரியில் --policy.* கொடிகள் மூலம் நடத்தை அமைக்கப்படுகிறது
சீட் கொடி எதுவும் இல்லை--seed, LeRobot இயல்புநிலை 1000
தரவு கட்டமைப்பில் ஒரு-விசை ActionConfig--policy.use_relative_actions மற்றும் --policy.relative_exclude_joints
டெமோ தரவுகளில் SO-100 ஓப்பன்-லூப் MSE போக்குLIBERO தொகுப்புகள், நான்கு தொகுப்புகளிலும் சராசரியாக 96.5 சதவீதம்
ZMQ வழியாக run_gr00t_server.py மற்றும் eval_so100.pylerobot-rollout, நிகழ்நேர துண்டுகளுடன் (queue_threshold 5 அல்லது அதற்குக் குறைவாக இருக்க வேண்டும்)
ஃபைன்-ட்யூனை நீங்களே இயக்குதல்
நன்மைகள்
  • ஒவ்வொரு கொடியும் தெரியும் மற்றும் மாற்றக்கூடியது. நீங்கள் காட்சி குறியாக்கியை அன்ஃப்ரீஸ் செய்யலாம், state_dropout_prob ஐ நகர்த்தலாம் அல்லது செயல் எல்லைகளைக் குறைக்கலாம்.
  • ஓப்பன்-லூப் வரைபடங்கள் உள்ளூர் கோப்புகள். checkpoint-5000 ஐ checkpoint-20000 உடன் ஒப்பிடுவது ஒரு ஷெல் கட்டளை.
  • நீங்கள் எந்த தளமும் ஆன்லைனில் இருப்பதைச் சார்ந்து இல்லை, மேலும் செக்பாயிண்ட் உங்கள் வட்டில் ஒரு நிலையான வடிவத்தில் இருக்கும்.
  • LIBERO, SimplerEnv மற்றும் DROID க்கான ரெப்போவின் பெஞ்ச்மார்க் எடுத்துக்காட்டுகள், உங்கள் சொந்த தரவை நம்புவதற்கு முன் மீண்டும் உருவாக்கக்கூடிய அறியப்பட்ட-நல்ல இயக்கங்களை உங்களுக்கு வழங்குகின்றன.
சாதக பாதகங்கள்
  • சுற்றுச்சூழல் தான் பெரும்பாலான வேலை. FFmpeg பதிப்பு, CUDA_HOME, git-lfs, கேடட் பேக்போன், torchcodec: இவை எதுவும் மாதிரி சிக்கல்கள் அல்ல, இவை ஒவ்வொன்றும் இயக்கத்தை நிறுத்திவிடும்.
  • v3.0 இலிருந்து v2.1 க்கு மாற்றுவதற்கு அதன் சொந்த நிறுவல் படிநிலையுடன் ஒரு தனி விர்ச்சுவல்என்வ் தேவை, மேலும் இது உங்கள் தரவுத்தொகுப்பு கோப்பகத்தை அதே இடத்தில் மீண்டும் எழுதும்.
  • GPU வாடகை நீங்கள் பிழைத்திருத்தத்தைத் தொடங்கும்போது பில் செய்யத் தொடங்குகிறது, பயிற்சி தொடங்கும் போது அல்ல, மேலும் இயக்கம் முடிந்ததும் எந்த நிகழ்வும் நிறுத்தப்படாது.
  • சீட் இல்லை என்றால் பிட்-க்கு-பிட் மறுஉருவாக்கம் இல்லை, மேலும் விரிவாக்கத்தால் மட்டும் 5 முதல் 6 சதவீதம் வரை இயக்கம்-க்கு-இயக்கம் மாறுபாடு இருக்கும்.

அதே செக்பாயிண்டைப் பெற இரண்டு வழிகள்

நீங்கள் GPU-ஐ வாடகைக்கு எடுத்து ஒவ்வொரு அடியையும் நீங்களே நிர்வகிக்கிறீர்கள். முதல் முறைக்கு இது ஒரு மதியம் ஆகலாம், அதன் பிறகு ஒவ்வொரு முறையும் இருபது நிமிடங்கள் மட்டுமே ஆகும்.

  1. SO-100 இல் lerobot-record ஐப் பயன்படுத்தி எபிசோட்களைப் பதிவு செய்யவும். உங்களுக்கு ஒரு LeRobot v3.0 தரவுத்தொகுப்பு கிடைக்கும்.
  2. அதன் சொந்த virtualenv இல் scripts/lerobot_conversion/convert_v3_to_v2.py ஐப் பயன்படுத்தி அதை v2.1 ஆக மாற்றவும்.
  3. meta/modality.json மற்றும் ஒரு Python modality config ஐ எழுதவும், இது EmbodimentTag.NEW_EMBODIMENT இன் கீழ் பதிவு செய்யப்பட்டுள்ளது.
  4. ஒரு 80 GB கார்டை வாடகைக்கு எடுக்கவும், துணை தொகுதிகளுடன் குளோன் செய்யவும், uv sync செய்யவும், Hugging Face உடன் அங்கீகரிக்கவும்.
  5. launch_finetune.py ஐ இயக்கவும், பின்னர் பல சோதனைச் சாவடிகளில் open_loop_eval.py ஐ இயக்கவும், வன்பொருளைத் தொடுவதற்கு முன் MSE போக்கை ஒப்பிடவும்.
  6. நீங்கள் இன்ஸ்டன்ஸை அழிக்கும் முன் சோதனைச் சாவடியை இயந்திரத்திலிருந்து இழுக்கவும், பின்னர் கைக்கு சேவை செய்யும் பாதையை உருவாக்கவும்.
அனைவரும் மறக்கும் படி

வாடகைக்கு எடுத்த இன்ஸ்டன்ஸை மூடுவதற்கு முன் சோதனைச் சாவடியை நகலெடுக்கவும். --save-total-limit 5 என்பது பயிற்சி தொடரும்போது பழைய சோதனைச் சாவடிகள் நீக்கப்படும் என்பதையும் குறிக்கிறது, எனவே 5000 ஆம் படியில் நீங்கள் விரும்பிய சோதனைச் சாவடி 20000 ஆம் படியில் இருக்காது.

AY-Robots பயிற்சி அணி, ஐந்து கொள்கை மாதிரிகளை வரிசைகளாகவும் நான்கு ரோபோ கைகளை நிரல்களாகவும் கொண்டுள்ளது, ஒவ்வொரு கலமும் ஒரு குறிப்பிட்ட பயிற்சி வழிகாட்டியுடன் இணைக்கப்பட்டுள்ளது.
The /train matrix: ஐந்து மாதிரிகள் நான்கு கைகளுக்கு எதிராக. GR00T N1.7 வரிசையும் SO-101, Koch v1.1 மற்றும் LeKiwi ஆகியவற்றை உள்ளடக்கியது.

செக்பாயிண்ட்டை மீண்டும் கைக்கு மாற்றுதல்

Isaac-GR00T ஆனது ZMQ வழியாக ஒரு சர்வர்-கிளையன்ட் பிரிவைப் பயன்படுத்துகிறது. கொள்கையானது GPU இல் இயங்குகிறது, மேலும் ரோபோ இயந்திரத்தில் உள்ள ஒரு மெல்லிய கிளையன்ட் அவதானிப்புகளை அனுப்பி, செயல் துண்டுகளைப் பெறுகிறது. SO-100 உதாரணம் நகலெடுக்க போதுமானது: தொடங்கவும் run_gr00t_server.py உங்கள் செக்பாயிண்ட் மற்றும் --embodiment-tag NEW_EMBODIMENT, பின்னர் இயக்கவும் eval_so100.py ரோபோ பக்கத்தில் சீரியல் போர்ட், ரோபோ ஐடி, கேமரா குறியீடுகள் மற்றும் மொழி அறிவுறுத்தலுடன். அந்தக் கட்டளையில் உள்ள கேமரா பெயர்கள் உங்கள் modality.json இலிருந்து வரும் நட்புப் பெயர்களுடன் பொருந்த வேண்டும், 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 ஆனது மறுதிட்டமிடலுக்கு முன் கணிக்கப்பட்ட எத்தனை படிகள் செயல்படுத்தப்படுகின்றன என்பதைக் கட்டுப்படுத்துகிறது. இது கொள்கையின் action_horizon ஐ விட அதிகமாக இருக்கக்கூடாது, மேலும் அந்த எண் உங்கள் modality config இல் உள்ள action delta_indices இன் நீளமாகும், அடிப்படை மாதிரியின் நீளம் அல்ல. வழங்கப்பட்ட SO-100 config 16 ஐ கணிக்கிறது, எனவே 16 என்பது உங்கள் உச்சவரம்பு; அடிப்படை nvidia/GR00T-N1.7-3B checkpoint 40 க்கு கட்டமைக்கப்பட்டுள்ளது, மேலும் finetuned checkpoints வேறுபடலாம் என்று policy.md தெளிவாகக் கூறுகிறது. இதை மீறினால், இரண்டு எண்களையும் குறிப்பிடும் ValueError ஐப் பெறுவீர்கள். நிகழ்நேர வரிசைப்படுத்தலுக்கு ஆவணங்கள் பரிந்துரைக்கும் மதிப்பு 8 ஆகும். பழைய flag பெயர் --action-horizon இன்னும் வேலை செய்கிறது ஆனால் எச்சரிக்கிறது.
7.4 V, not 12 V

நீங்கள் கையை மீண்டும் இணைக்கும்போது: SO-100 ஆனது Feetech STS3215 பஸ் சர்வோக்களை 7.4 V ரெயிலில் இயக்குகிறது. அவற்றிற்கு 12 V வழங்குவது அவற்றை அழித்துவிடும், மேலும் உங்களிடம் LeKiwi இருந்தால் இது ஒரு எளிதான தவறு, அதன் அடிப்படை 12 V இல் இயங்குகிறது, ஆனால் அதன் கை இயங்காது. முதல் பவர்-அப் செய்வதற்கு முன் சப்ளையை சரிபார்க்கவும், புகை வந்த பிறகு அல்ல. SO-100 வன்பொருள் பக்கம் மற்றும் LeKiwi க்கு எதிராக SO-100 ஐப் பார்க்கவும். கை இயங்கினாலும் எதுவும் நகரவில்லை என்றால், சர்வோ பதிலளிக்கவில்லை என்பது தொடங்குவதற்கான இடமாகும்.

இப்போது கொள்கை எங்கு இயங்குகிறது என்பது பற்றிய உண்மையான பகுதி, ஏனெனில் பயிற்சி மற்றும் சேவைக்கு வெவ்வேறு வன்பொருள் கதைகள் உள்ளன. Fine-tuning க்கு 40 GB அல்லது அதற்கு மேல் தேவை. Inference க்கு தேவையில்லை: README அதை 16 GB அல்லது அதற்கு மேல் என்று குறிப்பிடுகிறது மற்றும் RTX 4090 ஐ வெளிப்படையாகக் குறிப்பிடுகிறது, எனவே உங்களிடம் ஏற்கனவே உள்ள ஒரு கார்டு ஒருபோதும் உருவாக்க முடியாத ஒரு checkpoint ஐ சேவை செய்ய முடியும். கொள்கை பதிலளிக்கிறதா என்பதை தீர்மானிப்பது VRAM அல்ல, அது சர்வர் எங்கு அமர்ந்திருக்கிறது என்பதுதான். AY-Robots இல் GR00T N1.7 கிளவுட்-மட்டுமே, எனவே கட்டுப்பாட்டு சுழற்சி ஒவ்வொரு செயல் படிக்கும் 152 ms க்கு மேல் ஒரு பொது-இணைய ரவுண்ட் டிரிப் செலுத்துகிறது, மேலும் SmolVLA மற்றும் ACT ஆகியவையும் உள்ளூரில் இயங்குகின்றன. மெதுவான pick and place க்கு ஒரு ரிமோட் பாட் சமாளிக்கக்கூடியது. எந்தவொரு எதிர்வினைக்கும் இது பொருந்தாது: கொள்கை ஒரு பயிற்சி தோல்வி போல் தோன்றும் விதத்தில் தயங்குகிறது, ஆனால் அது தோல்வி அல்ல. ஒவ்வொரு செயல் படிக்கும் 20 ms இல் ACT ஆனது மிகக் குறுகிய சுழற்சியை பொறுத்துக்கொள்ளும் மாதிரி, SmolVLA 245 ms இல் உள்ளது, மேலும் எந்த அளவு latency சரிசெய்தல் ஏற்கனவே செலவழிக்கப்பட்ட ஒரு ரவுண்ட் டிரிப்பை மீண்டும் வாங்காது. உங்கள் முதல் கொள்கையை இயக்கவும் சேவைப் பக்கத்தை முழுமையாக விளக்குகிறது.

உண்மையில் என்ன தவறு நடக்கிறது

  • முதல் ஓட்டத்தில் GatedRepoError. உங்களுக்கு nvidia/Cosmos-Reason2-2B அணுகல் வழங்கப்படவில்லை, அல்லது நீங்கள் அங்கீகரிக்கவில்லை. GPU கடிகாரம் ஏற்கனவே தொடங்கிய பிறகு இது நிகழ்கிறது.
  • ஏற்றும்போது தரவுத்தொகுப்பு நிராகரிக்கப்பட்டது. கிட்டத்தட்ட எப்போதும் ஒரு v3.0 தரவுத்தொகுப்பு. அதை மாற்றவும். v3 ஆக நிராகரிக்கப்பட்ட தரவுத்தொகுப்பு என்பதைப் பார்க்கவும்.
  • பொருந்தாத பூலியன் பரிமாணங்கள் பற்றிய IndexError. நீங்கள் delta_indices ஐ மாற்றி, புள்ளிவிவரங்களை மீண்டும் உருவாக்கவில்லை.
  • பேட்ச் 32 இல் நினைவகம் இல்லை. --global-batch-size ஐக் குறைத்து --gradient-accumulation-steps ஐ அதிகரிக்கவும், அல்லது --num-shards-per-epoch ஐக் குறைக்கவும், இது VRAM குறைவாக இருக்கும்போது உள்ளமைவு வெளிப்படையாக பரிந்துரைக்கிறது. பயிற்சியின் போது நினைவகம் இல்லை என்பதைப் பார்க்கவும்.
  • இழப்பு குறைகிறது, கொள்கை எதுவும் செய்யவில்லை. இயல்பாக சரிபார்ப்புப் பிரிவு இல்லை, எனவே ஒரு சுத்தமான பயிற்சி வளைவு மிகக் குறைவாகவே நிரூபிக்கிறது. இந்த பக்கம் நோயறிதலை உள்ளடக்கியது.
  • உங்கள் அமைப்பில் மட்டுமே வேலை செய்கிறது, வேறு எங்கும் இல்லை. ஒரு ஒளி நிலையில் படமாக்கப்பட்ட ஒரு சிறிய தரவுத்தொகுப்புடன் எதிர்பார்க்கப்படுகிறது. NVIDIA வண்ண ஜிட்டர் அதிகரிப்பு மற்றும் வெவ்வேறு விளக்குகளில் 20 முதல் 50 எபிசோட்களை பரிந்துரைக்கிறது. மேலும் இங்கே.
  • கிரிப்பர் ஒருபோதும் சரியாக மூடப்படவில்லை. action_configs இல் கிரிப்பர் செயல் ABSOLUTE ஆகவும், கை மூட்டுகள் RELATIVE ஆகவும் உள்ளதா என்பதை அந்த வரிசையில் சரிபார்க்கவும். கிரிப்பர் மூடப்படவில்லை மற்ற காரணங்களை பட்டியலிடுகிறது.
  • பதிவு செய்யும் போது ஒரு கேமரா அமைதியாக வெளியேறுகிறது. எபிசோட் இன்னும் சேமிக்கப்படுகிறது மற்றும் வீடியோ கீ இன்னும் உள்ளது, அதனால்தான் இது மோசமானது. கேமரா கண்டறியப்படவில்லை அதை உள்ளடக்கியது.

தோல்வி முறைகளின் முழு குறியீடும் இங்கே உள்ளது . நீங்கள் ஒரு மாதிரியை பிழைத்திருத்துவதற்குப் பதிலாக மாதிரிகளுக்கு இடையே தேர்வு செய்கிறீர்கள் என்றால், மற்றும் ஆதாரங்களுடன் பெஞ்ச்மார்க் எண்களைக் கொண்டுள்ளன, மேலும் என்பது பெரும்பாலான மக்களுக்கு உண்மையில் தேவைப்படும் ஒப்பீடு, ஏனெனில் இது உங்கள் மேசையின் கீழ் உள்ள கார்டில் பயிற்சி செய்யக்கூடிய ஒரு மாதிரிக்கும், நுண்-சரிசெய்ய 80 GB நோடை வாடகைக்கு எடுக்க வேண்டிய ஒரு மாதிரிக்கும் இடையிலான தேர்வு ஆகும். இந்த மாதிரிகள் ஏன் இப்படி நடந்துகொள்கின்றன என்பதற்கான பின்னணியைப் பற்றி, மற்றும் முதலில் படிக்கத் தகுந்தவை. உங்களுக்கு இன்னும் ஒரு கை இல்லை என்றால், பதிவு இல்லாமல் ஒரு இயற்பியல் SO-100 ஐ ஸ்ட்ரீம் செய்கிறது.

GR00T N1.7 ஐ நுண்-சரிசெய்வதற்கு முன் எனக்கு எத்தனை எபிசோட்கள் தேவை?

AY-Robots ஆனது groot1.7 பயிற்சியாளருக்கு 50 எபிசோட்களின் கடினமான வரம்பை நிர்ணயிக்கிறது. NVIDIA இன் சொந்த FAQ இன்னும் அதிக கோரிக்கைகளை வைக்கிறது: ஒரு குறிப்பிட்ட இடத்தில் ஒரு எளிய பிக் அண்ட் பிளேஸ்க்கு தோராயமாக 100 ட்ராஜெக்டரிகள், சிக்கலான அல்லது பல-படி காட்சிகளுக்கு 500 அல்லது அதற்கு மேற்பட்டவை, மற்றும் நுண் கையாளுதலுக்கு 100 முதல் 500 வரை. 50 க்கும் குறைவாக இருந்தால், ஹைப்பர்-பாராமீட்டர்களை சரிசெய்வதை விட அதிக தரவை பதிவு செய்வது கிட்டத்தட்ட எப்போதும் சிறந்தது. அதன் பிறகு வெற்றி நிலைபெற்றால், NVIDIA HG-DAgger ஐ பரிந்துரைக்கிறது: கொள்கையை இயக்கவும், அது தோல்வியுற்றால் தலையிடவும், மற்றும் அந்த திருத்தங்களை தரவுத்தொகுப்பில் சேர்க்கவும்.

எனது தரவுத்தொகுப்பு ஏன் ஏற்றத் தவறுகிறது, அது எந்தப் பதிப்பு என்று நான் எப்படி அறிவது?

meta/info.json ஐத் திறந்து codebase_version ஐப் படிக்கவும். LeRobot இன் தற்போதைய CODEBASE_VERSION ஆனது v3.0 ஆகும், எனவே சமீபத்திய டூல்செயின் மூலம் பதிவுசெய்யப்பட்ட எதுவும் v3.0 ஆகும், மேலும் GR00T லோடர் v2 ஐ எதிர்பார்க்கிறது. Isaac-GR00T ரெப்போவிலிருந்து scripts/lerobot_conversion/convert_v3_to_v2.py ஐப் பயன்படுத்தி மாற்றவும், இது மாற்றப்பட்ட தரவுத்தொகுப்பில் codebase_version: v2.1 ஐ எழுதுகிறது. ஸ்கிரிப்ட் அதன் சொந்த virtualenv இல் இயங்குகிறது, ஏனெனில் இதற்கு GR00T பின் செய்யும் lerobot பதிப்பை விட வேறு பதிப்பு தேவைப்படுகிறது.

RTX 4090 இல் GR00T N1.7 ஐ நுண்-சரிசெய்ய முடியுமா?

இல்லை. நுண்-சரிசெய்வதற்கு 40 GB அல்லது அதற்கு மேற்பட்ட VRAM ஐ NVIDIA பரிந்துரைக்கிறது மற்றும் H100 அல்லது L40 நோட்களைக் குறிப்பிடுகிறது; மற்ற கார்டுகள் வேலை செய்யும் ஆனால் மிக நீண்ட நேரம் எடுக்கும். ஒரு 4090 இல் 24 GB உள்ளது. AY-Robots அதே காரணத்திற்காக A100 80 GB மற்றும் H100 80 GB அடுக்கில் மட்டுமே GR00T N1.7 ஐ வழங்குகிறது. இன்ஃபரன்ஸ் ஒரு வேறு கதை: மாதிரியை வழங்க 16 GB போதுமானது, எனவே ஒரு 4090 பயிற்சி செய்ய முடியாத ஒரு கொள்கையை இயக்க முடியும். நீங்கள் 24 GB இல் பயிற்சி செய்யக்கூடிய ஒரு VLA ஐ விரும்பினால், அது சுமார் 450 M அளவுருக்கள் கொண்ட SmolVLA அல்லது சுமார் 80 M அளவுருக்கள் கொண்ட ACT ஆகும்.

ஒரே மாதிரியான கொடிகளுடன் இரண்டு ஓட்டங்கள் ஏன் வெவ்வேறு செக்பாயிண்ட்களைக் கொடுக்கின்றன?

ஏனெனில் launch_finetune.py இல் சீட் இல்லை. இது ஒரு dataclass இலிருந்து உருவாக்கப்பட்ட ஒரு tyro CLI ஆகும், அதில் சீட் புலம் இல்லை, எனவே RNG ஐ எதுவும் கட்டுப்படுத்தவில்லை. தீர்மானிக்க முடியாத பட அதிகரிப்பால் ஏற்படும் ஓட்டங்களுக்கு இடையே 5 முதல் 6 சதவீதம் மாறுபாடு இருப்பதாக ரெப்போ தனித்தனியாக குறிப்பிடுகிறது. மீண்டும் உருவாக்கக்கூடிய தன்மை முக்கியம் என்றால், அதற்கு பதிலாக LeRobot வழியைப் பயன்படுத்தவும்: lerobot-train --seed ஐ எடுத்துக்கொள்கிறது மற்றும் வெளியிடப்பட்ட GR00T செய்முறை --seed=42 ஐ கடத்துகிறது.

நான் Isaac-GR00T ஐப் பயன்படுத்த வேண்டுமா அல்லது lerobot-train ஐப் பயன்படுத்த வேண்டுமா?

நீங்கள் குறிப்பு செயலாக்கம், செயல் பிரதிநிதித்துவத்தின் மீது ஒரு-கீ கட்டுப்பாடு, TensorRT ஏற்றுமதி, அல்லது உங்கள் சொந்த தரவை நம்புவதற்கு முன் பெஞ்ச்மார்க் எடுத்துக்காட்டுகளை மீண்டும் உருவாக்க விரும்பினால் Isaac-GR00T ஐப் பயன்படுத்தவும். உங்கள் தரவுத்தொகுப்பு ஏற்கனவே LeRobot v3.0 ஆக இருந்தால், அதை மாற்ற விரும்பவில்லை என்றால், ஒரு சீட் விரும்பினால், அல்லது உங்கள் ஸ்டாக்கின் மற்ற பகுதிகள் ஏற்கனவே LeRobot ஆக இருந்தால் lerobot-train ஐப் பயன்படுத்தவும். இரண்டும் ஒரே nvidia/GR00T-N1.7-3B எடைகளை நுண்-சரிசெய்கின்றன. LeRobot ஆனது GR00T N1.5 ஆதரவை முழுமையாக கைவிட்டது என்பதை கவனத்தில் கொள்ளவும்: N1.5 செக்பாயிண்ட்கள் ஒரு இடம்பெயர்வு குறிப்புடன் நிராகரிக்கப்படுகின்றன, மேலும் அவற்றைப் பயன்படுத்த நீங்கள் lerobot==0.5.1 ஐப் பின் செய்ய வேண்டும்.

எனக்கு ஒரு முன் கேமராவுடன் ஒரு மணிக்கட்டு கேமராவும் தேவையா?

வழங்கப்பட்ட SO-100 உள்ளமைவு இரண்டையும் பயன்படுத்துகிறது, மேலும் modality.json ஆனது முன் மற்றும் மணிக்கட்டை தனித்தனி வீடியோ கீகளாக வரைபடமாக்குகிறது. நீங்கள் ஒரு கேமராவுடன் பயிற்சி செய்யலாம், மேலும் மாதிரி அட்டையின் தாமத அட்டவணை ஒரு கேமராவுடன் அளவிடப்படுகிறது, ஆனால் மணிக்கட்டு பார்வைதான் தொடர்பு கொள்ளும் தருணத்தில் கிரிப்பரைப் பற்றிய பயனுள்ள தகவல்களை கொள்கைக்கு வழங்குகிறது. உங்கள் ரோல்அவுட்களில் கிரிப்பர் தவறான நேரத்தில் மூடினால், காணாமல் போன அல்லது தவறாக இலக்கு வைக்கப்பட்ட மணிக்கட்டு கேமரா சரிபார்க்க வேண்டிய முதல் விஷயங்களில் ஒன்றாகும்.

முதலில் சூழலை உருவாக்காமல் உங்கள் SO-100 இல் GR00T N1.7 ஐ நுண்-சரிசெய்யவும்

ஒரு படிவத்தில் மாதிரி, தரவுத்தொகுப்பு மற்றும் ஹைப்பர்-பாராமீட்டர்களைத் தேர்ந்தெடுக்கவும். பின்தளம் ஒரு A100 80 GB அல்லது H100 ஐ ஸ்பாட் மார்க்கெட்டில் வாடகைக்கு எடுத்து, பேட்ச் 32, கற்றல் விகிதம் 1e-4 மற்றும் 20000 படிகளுடன் பயிற்சியாளரை இயக்குகிறது, மேலும் செக்பாயிண்ட்களை ஆப்ஜெக்ட் ஸ்டோரேஜில் எழுதுகிறது. ஒரு ஓட்டத்திற்கு தோராயமாக 4 முதல் 12 USD.

GR00T N1.7 பயிற்சி வழிகாட்டியைத் திறக்கவும்

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started