AY-Robotsలో SmolVLA మోడల్ పేజీ, పారామీటర్ కౌంట్, GPU టియర్, ప్రతి యాక్షన్ స్టెప్‌కు ఇన్ఫరెన్స్ లేటెన్సీ మరియు కనీస ఎపిసోడ్ కౌంట్‌ను చూపుతుంది
SmolVLALeRobotVLA శిక్షణఫైన్-ట్యూనింగ్SO-100

24 GB GPUలో SmolVLAని ఎలా శిక్షణ ఇవ్వాలి (lerobot 0.6.1)

AY-Robots ResearchAugust 23, 202617 నిమిషాల చదువు

SmolVLA అనేది ఒకే 24 GB కార్డ్‌లో ఫైన్-ట్యూన్ చేయబడే 450 M పారామీటర్ VLA. నిజమైన lerobot 0.6.1 కమాండ్‌లు, అసలు డిఫాల్ట్‌లు, ఒక రోజు సమయం తీసుకునే సమస్యలు మరియు ఒక రన్ ఖర్చు ఎంత.

ఒక స్క్రీన్‌లో స్మోల్‌వీఎల్‌ఏ

  • 450 M పారామీటర్లు, వాటిలో సుమారు 100 M ఫ్లో మ్యాచింగ్ యాక్షన్ ఎక్స్‌పర్ట్. లెరోబోట్ ఆ ఎక్స్‌పర్ట్‌ను మాత్రమే శిక్షణ ఇస్తుంది మరియు VLMను స్తంభింపజేస్తుంది, అందుకే ఇది ఒక కార్డ్‌లో సరిపోతుంది.
  • లెరోబోట్ యొక్క కంప్యూట్ గైడ్ ప్రకారం, స్మోల్‌వీఎల్‌ఏ గ్రూప్ AdamWతో బ్యాచ్ 8 వద్ద సుమారు 10 నుండి 16 GB గరిష్ట VRAMను ఉపయోగిస్తుంది. అందుకే 24 GB.
  • ఎంట్రీ పాయింట్ lerobot-train. జూన్ 2025 స్మోల్‌వీఎల్‌ఏ బ్లాగ్ పోస్ట్ ఇప్పటికీ python lerobot/scripts/train.py అని ప్రింట్ చేస్తుంది, ఇది ఇప్పుడు లేని మార్గం. కింద ఉన్నవన్నీ లెరోబోట్ 0.6.1.
  • కోసైన్ షెడ్యూల్ 30000 స్టెప్‌ల వరకు క్షీణించడానికి ముందుగా సెట్ చేయబడింది. లెరోబోట్ 0.6.1 దానిని తక్కువ రన్ కోసం తగ్గించి లాగ్ చేస్తుంది, కానీ ఎప్పుడూ పెంచదు: స్టాక్ 100000 స్టెప్ రన్ 70000 స్టెప్‌ల వరకు 2.5e-6 ఫ్లోర్‌తో ముగుస్తుంది.
  • ముప్పై ఎపిసోడ్‌లు AY-రోబోట్స్ కనీసం, 24 GB టైర్‌లో ఒక రన్‌కు 1 నుండి 3 USD ఖర్చవుతుంది, 80 GB మోడల్‌లకు 4 నుండి 12 USDతో పోలిస్తే.

చాలా మందికి విజన్ లాంగ్వేజ్ యాక్షన్ మోడల్ నిజమైన ఆర్మ్‌పై కావాలంటే హార్డ్‌వేర్ వద్ద ఆగిపోతారు. GR00T N1.7 మరియు Pi0.5 ఒక్కొక్కటి సుమారు మూడు బిలియన్ పారామీటర్లు కలిగి ఉంటాయి మరియు A100 80 GB లేదా H100 కావాలి. మీ వద్ద RTX 4090తో కూడిన గేమింగ్ PC ఉంటే, అది అక్కడితో ముగిసిపోతుంది. SmolVLA ఒక మినహాయింపు: 450 M పారామీటర్లు, లెరోబోట్ లోపల, ఒక కన్స్యూమర్ కార్డ్‌లో ఫైన్-ట్యూన్ చేయడానికి మరియు CPU నుండి సేవ చేయడానికి నిర్మించబడింది.

ముందుగా మాన్యువల్ మార్గం: లెరోబోట్ ఇన్‌స్టాల్ చేయండి, lerobot/smolvla_base చెక్‌పాయింట్‌ను లాగండి, నిజమైన కమాండ్‌ను అమలు చేయండి, అది జరుగుతున్నప్పుడు రన్‌ను చదవండి. ఆపై ప్లాట్‌ఫారమ్ మార్గం, మరియు అది ఎక్కడ సహాయపడదు.

స్మోల్‌వీఎల్‌ఏ అంటే ఏమిటి, మీరు తనిఖీ చేయగల సంఖ్యలలో

SmolVLA అనేది ఒక ఫ్లో మ్యాచింగ్ పాలసీని చిన్న విజన్ లాంగ్వేజ్ మోడల్‌కు అనుసంధానించారు. దీని బ్యాక్‌బోన్ SmolVLM2-500M-Video-Instruct; ఈ పేపర్ దాని లాంగ్వేజ్ మోడల్ యొక్క మొదటి 16 లేయర్‌లను మాత్రమే ఉపయోగిస్తుంది, ప్రతి కెమెరా ఫ్రేమ్‌ను ఇమేజ్ టైలింగ్‌కు బదులుగా పిక్సెల్ షఫిల్‌తో 64 విజువల్ టోకెన్‌లకు పరిమితం చేస్తుంది మరియు ప్రతి రెండవ బ్లాక్‌లో క్రాస్ అటెన్షన్‌ను సెల్ఫ్ అటెన్షన్ లేయర్‌తో మిళితం చేస్తుంది. ఇన్‌ఫరెన్స్ ఖర్చు అనేది డిజైన్ పరిమితి, ఇది తరువాత ఆలోచించినది కాదు.

లక్షణంవిలువమూలం
మొత్తం పారామీటర్లుసుమారు 450 Mpaper
యాక్షన్ ఎక్స్‌పర్ట్సుమారు 100 M, ఫ్లో మ్యాచింగ్paper
VLM బ్యాక్‌బోన్HuggingFaceTB/SmolVLM2-500M-Video-Instructvlm_model_name
ఉపయోగించిన VLM లేయర్‌లులాంగ్వేజ్ మోడల్ యొక్క మొదటి 16num_vlm_layers = 16
ప్రతి ఫ్రేమ్‌కు విజువల్ టోకెన్‌లు64, పిక్సెల్ షఫుల్, టైలింగ్ లేదుpaper
ప్రీట్రైనింగ్481 కమ్యూనిటీ డేటాసెట్‌లు, 22.9 K ఎపిసోడ్‌లు, 10.6 M ఫ్రేమ్‌లు; 4 GPUలలో గ్లోబల్ బ్యాచ్ 256 వద్ద 200000 స్టెప్‌లుpaper

450 M మోడల్‌తో ప్రజలు ఎందుకు శ్రద్ధ వహిస్తారనేది బెంచ్‌మార్క్‌లు వివరిస్తాయి. LIBEROలో, ఇది 7 B వద్ద OpenVLA కోసం 76.5 మరియు 3.3 B వద్ద రోబోటిక్స్-ప్రీట్రైన్డ్ Pi0 కోసం 86.0తో పోలిస్తే సగటున 87.3 శాతం సాధించింది; Meta-Worldలో, 47.9తో పోలిస్తే 57.3. నిజమైన SO-100 హార్డ్‌వేర్‌లో, మల్టీ-టాస్క్ ట్రైనింగ్ పిక్ అండ్ ప్లేస్‌లో 75 శాతం, స్టాకింగ్‌లో 90, సార్టింగ్‌లో 70, సగటున 78.3 శాతం ఇస్తుంది, ఇక్కడ ACT ప్రతి టాస్క్‌కు శిక్షణ పొందినది సగటున 48.3. అదే వరుసలు ప్రతి ప్రచురించబడిన VLA పక్కన ఉన్నాయి SmolVLA అరేనా ఎంట్రీ మరియు ACT వర్సెస్ SmolVLA పోలిక.

పరిమాణం క్లెయిమ్ యొక్క నిజాయితీ వెర్షన్

SmolVLA ప్రతి విషయంలోనూ 3 B మోడల్ కంటే మెరుగైనది కాదు. పేపర్ యొక్క SO-101 పట్టికే దీనికి నిదర్శనం: పంపిణీలో 90 శాతం విజయం, దాని నుండి 50 శాతం, అది ఎప్పుడూ ప్రీట్రైన్ చేయబడని ప్లాట్‌ఫారమ్‌లో. అది క్లెయిమ్ చేసేది మరియు మద్దతు ఇచ్చేది ఏమిటంటే, Pi0తో పోలిస్తే ఇది 6 రెట్లు తక్కువ మెమరీలో సుమారు 40 శాతం వేగంగా శిక్షణ పొందుతుంది.

24 GB కార్డ్ మొదటి రన్‌కు సరైనది ఎందుకు

LeRobot ఒక కంప్యూట్ సైజింగ్ గైడ్‌ను అందిస్తుంది, ఇది ఈ రెపోలో అత్యంత ఉపయోగకరమైన పేజీ. ఇది పాలసీలను బ్యాక్‌బోన్ పరిమాణం ప్రకారం సమూహపరుస్తుంది మరియు ప్రతి సమూహానికి ఒక VRAM ఎన్వలప్‌ను అందిస్తుంది, ఇది AdamWతో బ్యాచ్ సైజ్ 8 వద్ద కొలవబడుతుంది, ఇది lerobot డిఫాల్ట్. ఆప్టిమైజర్ స్టేట్ మాత్రమే బేర్ ఫార్వర్డ్ మరియు బ్యాక్‌వర్డ్ పాస్ కంటే 30 నుండి 100 శాతం అదనంగా ఉంటుంది, కాబట్టి ఇవి కేవలం వెయిట్స్-మాత్రమే గణాంకాలు కావు.

గ్రూప్పాలసీలుపీక్ VRAM (బ్యాచ్ 8, AdamW)స్టార్టర్ GPUలు
లైట్ BCact, vqbet, tdmpcabout 2 to 6 GBRTX 3060, L4
డిఫ్యూషన్diffusion, multi_task_ditabout 8 to 14 GBRTX 4070+, L4
స్మాల్ VLAsmolvlaabout 10 to 16 GBRTX 4080+, L4, A10G
లార్జ్ VLApi0, pi0_fast, pi05, xvla, wall_xabout 24 to 40 GBA100 40 GB+
మల్టీమోడల్groot, eo1about 24 to 40 GBA100 40 GB+

బ్యాచ్ 8 వద్ద పది నుండి పదహారు గిగాబైట్లు అనేది వాదన: 24 GB కార్డ్ దానికి అదనంగా డేటాలోడర్‌ను కూడా సరిపోతుంది. AY-Robots SmolVLAను RTX 4090 లేదా ఏదైనా 24 GB కార్డ్‌లో ఉంచుతుంది, కనీసం 30 ఎపిసోడ్‌లు, LeRobot v3.0 డేటా, ప్రతి యాక్షన్ స్టెప్‌కు 245 ms. అద్దెకు తీసుకుంటే, అది గంటకు 0.30 నుండి 0.60 USD చొప్పున 2 నుండి 5 గంటలు, సుమారు 1 నుండి 3 USD ఒక ఫైన్-ట్యూనింగ్ రన్, 80 GB టైర్ GR00T మరియు Pi0.5కి అవసరమైన 4 నుండి 12 USDతో పోలిస్తే (ధర). విఫలమైన SmolVLA రన్ ఒక కాఫీ; విఫలమైన GR00T రన్, లంచ్.

AY-Robots ఖర్చుల పట్టిక: పాలసీకి కార్డ్, రన్ సమయం, ఒక్కో రన్‌కు ధర, అవసరమైన ఎపిసోడ్‌లు
SmolVLA మరియు ACT 24 GB వరుసలో ఉన్నాయి, మూడు 3 B మోడల్‌లు 80 GB వరుసలో ఉన్నాయి.
3 B మోడల్‌కు బదులుగా SmolVLAతో ప్రారంభించడం
మీరు పొందేవి
  • మీరు ఇప్పటికే కలిగి ఉన్న హార్డ్‌వేర్‌కు సరిపోతుంది: బ్యాచ్ 8 వద్ద సుమారు 10 నుండి 16 GB.
  • వృధా అయిన రన్ గంటలు మరియు సింగిల్-డిజిట్ డాలర్లు ఖర్చు అవుతుంది, కాబట్టి మీరు డేటాసెట్ గురించి తప్పుగా ఉన్నా భరించగలరు.
  • lerobot ట్యాగ్ కింద భాగస్వామ్యం చేయబడిన కమ్యూనిటీ డేటాసెట్‌లపై ముందే శిక్షణ పొందింది, నిజమైన SO-100 మరియు SO-101 ఫలితాలతో.
  • ఇది lerobotలోనే ఉంది: విక్రేత రెపో లేదు, మరియు smolvla_base గేటెడ్ కాదు.
మీరు వదులుకునేవి
  • 450 M ఇప్పటికీ 450 M: పేపర్ SO-101 పట్టికలో పంపిణీ వెలుపల విజయం 90 నుండి 50 శాతానికి పడిపోయింది.
  • దీనికి LeRobot v3.0 డేటా కావాలి; v2.1 రికార్డింగ్‌ను మార్చాలి (డేటాసెట్ తిరస్కరించబడింది v3).
  • ప్రతి చర్య దశకు 245 ms అనేది సమర్థవంతమైన పిక్ అండ్ ప్లేస్ కంట్రోలర్, రియాక్టివ్ కంట్రోలర్ కాదు.
  • డాక్స్ ఉదాహరణ A100లో బ్యాచ్ 64ను నడుపుతుంది; 24 GBలో మీరు వాల్ క్లాక్ కోసం బ్యాచ్‌ను మార్చుకుంటారు.

దశ 0: డేటాసెట్ రన్‌ను నిర్ణయిస్తుంది, ఫ్లాగ్‌లు కాదు

రికార్డింగ్ చెడ్డదైతే కింద ఉన్నదేదీ ముఖ్యం కాదు. LeRobot SmolVLA పేజీ స్పష్టంగా చెబుతుంది: రిఫరెన్స్ డేటాసెట్ 5 క్యూబ్ స్థానాల్లో 50 ఎపిసోడ్‌లు, ఒక్కో స్థానానికి 10, మరియు 25 ఎపిసోడ్‌లలో అదే పని సరిగా చేయలేదు. ప్రతి వైవిధ్యానికి పునరావృతం సాధారణీకరిస్తుంది, ముడి ఎపిసోడ్ సంఖ్య కాదు. ఎప్పుడూ రికార్డ్ చేయలేదా? ఇక్కడ ప్రారంభించండి మీ మొదటి డేటాసెట్‌ను రికార్డ్ చేయండి తో డెస్క్‌టాప్ క్లయింట్, ఇది ఒక టెలిఆపరేషన్ సెషన్ నుండి LeRobot ఫార్మాట్‌ను వ్రాస్తుంది, లేదా డేటాసెట్ డైరెక్టరీ నుండి ఒకదాన్ని తీసుకోండి.

  • AY-Robotsలో కనీసం 30 ఎపిసోడ్‌లు, LeRobot రిఫరెన్స్ రెసిపీ కోసం సుమారు 50.
  • రోల్‌అవుట్ సమయంలో మీరు ఆశించే ప్రతి వైవిధ్యం, అనేక సార్లు పునరావృతం చేయబడింది.
  • ఒక టాస్క్ స్ట్రింగ్, రికార్డ్ మరియు రోల్‌అవుట్ సమయంలో ఒకే విధంగా స్పెల్లింగ్ చేయబడింది. మోడల్ ఆ టెక్స్ట్‌పై ఆధారపడి ఉంటుంది.
  • స్థిర కెమెరాలు. రికార్డింగ్ మరియు రోల్‌అవుట్ మధ్య కదిలిన కెమెరా, క్లీన్ లాస్ కర్వ్ కదలిక లేని చేతిని ఇవ్వడానికి అత్యంత సాధారణ కారణం.
  • మీరు ఎప్పుడూ శిక్షణ ఇవ్వని ఒక హెల్డ్-అవుట్ వైవిధ్యం, కాబట్టి మీరు నిజాయితీగా పరీక్షించడానికి ఏదైనా ఉంటుంది.
ఒక రోజు ఖర్చు చేసే డేటాసెట్ ఉచ్చు

SmolVLA, Pi0.5 మరియు ACT LeRobot v3.0ని కోరుకుంటాయి. GR00T N1.7 మరియు N1.5 v2.0 లేదా v2.1ని కోరుకుంటాయి మరియు వాటి లోడర్ v3.0లో క్రాష్ అవుతుంది. ఒకసారి రికార్డ్ చేయండి, తర్వాత మోడల్‌లను పోల్చడానికి ప్లాన్ చేయండి మరియు మీరు ఏదో ఒక విధంగా మారుస్తారు: dataset rejected v3.

bash
# v2.1 -> v3.0: aggregates per-episode files into shards and writes the episode offsets
python -m lerobot.scripts.convert_dataset_v21_to_v30 --repo-id=${HF_USER}/so100_pick_place
కన్వర్టర్ lerobot లోపల వస్తుంది, కాబట్టి అదనంగా ఇన్‌స్టాల్ చేయడానికి ఏమీ లేదు. ప్యాకేజీలో ఇతర దిశలో కన్వర్టర్ లేదు.

దీని గురించి మరింత సమాచారం అధిక నాణ్యత గల VLA శిక్షణ డేటాను ఎలా సేకరించాలి. సంక్షిప్త వెర్షన్: ఉద్దేశపూర్వక వైవిధ్యంతో ఒక పనికి సంబంధించిన 30 నుండి 50 క్లీన్ ఎపిసోడ్‌లు, మూడు పనులకు సంబంధించిన 200 అస్తవ్యస్తమైన ఎపిసోడ్‌లను ఓడిస్తాయి, ఏ హైపర్‌పారామీటర్ కూడా పూడ్చలేని తేడాతో.

lerobot 0.6.1 ఇన్‌స్టాల్ చేయండి

bash
# LeRobot needs Python 3.12 or newer as of 0.6.x
conda create -y -n lerobot python=3.12
conda activate lerobot

# TorchCodec decodes the dataset videos and wants ffmpeg
conda install ffmpeg -c conda-forge

# Base package is deliberately thin; extras pull the rest
pip install 'lerobot[smolvla,training,core_scripts]'

# Sanity check: prints the lerobot version, the GPU torch sees, and the console scripts you got
lerobot-info
PyPI మార్గం. ట్రైనర్‌ను ప్యాచ్ చేయడానికి, రెపోను క్లోన్ చేసి, దానికి బదులుగా pip install -e ".[smolvla,training]" ఉపయోగించండి.

బేస్ lerobot ఇన్‌స్టాల్ సన్నగా ఉంటుంది మరియు భారీ డిపెండెన్సీలను ఎక్స్‌ట్రాల వెనుక ఉంచుతుంది: smolvla ట్రాన్స్‌ఫార్మర్‌లు, num2words మరియు accelerate లను జోడిస్తుంది, training డేటాసెట్ స్టాక్ మరియు wandb, core_scripts హార్డ్‌వేర్ మరియు విజువలైజేషన్ డిపెండెన్సీలు. Linuxలో ఇన్‌స్టాల్ మార్గం మీ CUDA వీల్‌ను కూడా నిర్ణయిస్తుంది: PyPI డిఫాల్ట్ 580.65 డ్రైవర్ ఫ్లోర్‌తో కూడిన cu130 వీల్, కాబట్టి పాత డ్రైవర్‌లో ముందుగా cu128 ఇండెక్స్ నుండి టార్చ్‌ను ఇన్‌స్టాల్ చేయండి, ఆపై lerobot.

policy.path మరియు policy.type ఒకే ఫ్లాగ్ కాదు

--policy.path=lerobot/smolvla_base ముందే శిక్షణ పొందిన 450 M చెక్‌పాయింట్‌ను లోడ్ చేస్తుంది మరియు దానిని ఫైన్-ట్యూన్ చేస్తుంది. --policy.type=smolvla కొత్త SmolVLAను నిర్మిస్తుంది, మరియు కాన్ఫిగ్ డిఫాల్ట్ load_vlm_weights = False అంటే మీరు అడిగితే తప్ప అది SmolVLM2 బ్యాక్‌బోన్ వెయిట్‌లను కూడా లాగదు. మీరు తప్పు చేస్తే, రన్ సంతోషంగా శిక్షణ పొందుతుంది, అదే ఖర్చు అవుతుంది మరియు బదిలీ చేయదగినది ఏమీ నేర్చుకోదు.

శిక్షణ అమలు, కమాండ్ ద్వారా కమాండ్

  1. 1
    హబ్‌కు వ్యతిరేకంగా ప్రామాణీకరించండి

    బేస్ చెక్‌పాయింట్ హబ్ నుండి వస్తుంది, మరియు మీ డేటాసెట్ కూడా అక్కడి నుండే వస్తుంది.

    bash
    hf auth login
  2. 2
    ఎంపికలను ఒకసారి చదవండి

    పైప్‌లైన్ మరియు పాలసీ కాన్ఫిగ్ యొక్క ప్రతి ఫీల్డ్ ఒక ఫ్లాగ్. సోర్స్‌లోకి వెళ్ళే ముందు ఒకసారి పరిశీలించండి.

    bash
    lerobot-train --help
  3. 3
    ఫైన్-ట్యూన్‌ను ప్రారంభించండి

    డాక్స్ ఉదాహరణ ఒకే A100లో బ్యాచ్ 64ను నడుపుతుంది; కంప్యూట్ గైడ్ యొక్క A100 40 GB యాంకర్ బ్యాచ్ 16, మరియు 8 అనేది 24 GBకి సమానం. ఇక్కడ షెడ్యూలర్ ఫ్లాగ్ ఉద్దేశపూర్వకంగా లేదు, క్రింద చూడండి.

    bash
    lerobot-train \
      --policy.path=lerobot/smolvla_base \
      --dataset.repo_id=${HF_USER}/so100_pick_place \
      --batch_size=8 \
      --steps=20000 \
      --save_freq=2000 \
      --log_freq=200 \
      --seed=1000 \
      --output_dir=outputs/train/smolvla_pick_place \
      --job_name=smolvla_pick_place \
      --policy.device=cuda \
      --wandb.enable=true
  4. 4
    లాగ్ లైన్‌ను చదవండి, కేవలం లాస్‌ను కాదు

    ప్రతి --log_freq స్టెప్‌లకు lerobot loss, grdn, lr, updt_s, data_s, smp/s మరియు CUDAలో mem_gbలను ప్రింట్ చేస్తుంది. mem_gb బ్యాచ్ సరిపోతుందో లేదో చెబుతుంది, lr షెడ్యూల్ క్షీణిస్తుందో లేదో చెబుతుంది, మరియు data_s updt_sకి చేరుకోవడం అంటే డేటాలోడర్ బాటిల్‌నెక్, GPU కాదు అని అర్థం.

    bash
    # if data_s creeps toward updt_s
    lerobot-train ... --num_workers=8
  5. 5
    మీరు పోల్చగల చెక్‌పాయింట్‌లను సేకరించండి

    save_freq డిఫాల్ట్‌గా 20000, కాబట్టి 20000 స్టెప్ రన్ ఒక చెక్‌పాయింట్‌ను వదిలివేస్తుంది మరియు పోల్చడానికి ఏమీ ఉండదు. 2000కి సెట్ చేయండి. హబ్‌కు పుష్ చేయడానికి --policy.repo_id అవసరం.

    bash
    --save_freq=2000 \
    --policy.repo_id=${HF_USER}/smolvla_pick_place \
    --save_checkpoint_to_hub=true
  6. 6
    యంత్రం ఆగిపోతే పునఃప్రారంభించండి

    చెక్‌పాయింట్ పక్కన ఉన్న train_config.json వద్ద --config_pathను సూచించండి. మీరు పునఃప్రారంభించకపోతే lerobot ఇప్పటికే ఉన్న output_dirలోకి ప్రారంభించడానికి నిరాకరిస్తుంది, కాబట్టి మీరు అనుకోకుండా ఒక రన్‌ను ఓవర్‌రైట్ చేయలేరు.

    bash
    lerobot-train \
      --config_path=<path to the saved train_config.json> \
      --resume=true

ఫలితాన్ని వాస్తవంగా మార్చే ఫ్లాగ్‌లు

ఫ్లాగ్ఇది ఏమి చేస్తుంది24 GBలో
--batch_sizeప్రతి స్టెప్‌కు నమూనాలు, VRAMలో సుమారుగా సరళంగా4 to 8
--stepsమొత్తం ఆప్టిమైజర్ స్టెప్‌లు20000 first pass
--policy.scheduler_decay_stepsకొసైన్ డికే పొడవు, ప్రీసెట్ 30000Only bites above 30000
--policy.use_ampమిశ్రమ ఖచ్చితత్వం; SmolVLAకి dtype ఫీల్డ్ లేదుtrue when memory is tight
--num_workersడేటాలోడర్ ప్రక్రియలు, డిఫాల్ట్ 4Raise until data_s stops climbing
--dataset.eval_splitప్రతి పనికి నిలిపి ఉంచబడిన ఎపిసోడ్‌ల భాగం0.1, with --eval_steps
--policy.freeze_vision_encoderవిజన్ టవర్‌ను స్తంభింపజేస్తుందిtrue on 24 GB
--policy.train_expert_onlyసుమారు 100 M నిపుణుడికి మాత్రమే గ్రేడియంట్‌లు లభిస్తాయిtrue first
షెడ్యూల్: 0.6.1 ఏమి నిర్వహిస్తుంది, మరియు ఏమి నిర్వహించదు

SmolVLA ఒక కొసైన్ షెడ్యూల్‌ను ముందుగానే సెట్ చేస్తుంది: scheduler_warmup_steps = 1000, scheduler_decay_steps = 30000, scheduler_decay_lr = 2.5e-6. పాత సలహా ప్రకారం, 20000 స్టెప్ రన్ క్షీణత మధ్యలో ఆగిపోతుంది. 0.6.1లో అలా జరగదు: CosineDecayWithWarmupSchedulerConfig.build()కు --steps అందించబడుతుంది, మరియు num_decay_steps కంటే తక్కువగా ఉన్నప్పుడు అది రెండింటినీ తిరిగి స్కేల్ చేస్తుంది, వార్మప్ 1000 నుండి 666కి మరియు క్షీణత 30000 నుండి 20000కి, ఆటో-స్కేలింగ్ LR షెడ్యూలర్ అని ప్రింట్ చేస్తూ అలాగే. అది ఎప్పుడూ పైకి స్కేల్ చేయదు: క్షీణత min(current_step, decay_steps)తో క్లాంప్ చేయబడుతుంది, కాబట్టి స్టాక్ --steps=100000 30000వ స్టెప్ నుండి చివరి వరకు, రన్ లో 70 శాతం వరకు, కింది స్థాయిలో ఉంటుంది. ఆ పొడవైన వైపుకు మాత్రమే ఇప్పటికీ --policy.scheduler_decay_steps అవసరం. lr కాలమ్ లో మీరు తనిఖీ చేయవచ్చు.

మీరు ఏమీ మార్చకపోతే మీకు లభించే డిఫాల్ట్‌లు

ఒక పాలసీ కాన్ఫిగ్ lerobotలో దాని స్వంత ఆప్టిమైజర్ మరియు షెడ్యూలర్ ప్రీసెట్‌ను కలిగి ఉంటుంది, మరియు మీరు సెట్ చేయకపోతే use_policy_training_preset=false ఆ ప్రీసెట్‌లు గెలుస్తాయి. SmolVLA శిక్షణ గురించి ప్రజలు అడిగే ప్రశ్నలలో సగం, వారికి తెలియని డిఫాల్ట్ ద్వారా సమాధానం ఇవ్వబడతాయి.

సెట్టింగ్lerobot 0.6.1లో డిఫాల్ట్దీనిలో నిర్వచించబడింది
chunk_size / n_action_steps50 / 50SmolVLAConfig
num_steps (ఫ్లో మ్యాచింగ్ డెనాయిస్)10SmolVLAConfig
optimizer_lr1e-4SmolVLAConfig
scheduler_warmup_steps1000SmolVLAConfig
scheduler_decay_steps30000SmolVLAConfig
scheduler_decay_lr2.5e-6SmolVLAConfig
freeze_vision_encodertrueSmolVLAConfig
train_expert_onlytrueSmolVLAConfig
batch_size / steps8 / 100000TrainPipelineConfig
seed / save_freq / num_workers1000 / 20000 / 4TrainPipelineConfig

ప్రజలను ఆశ్చర్యపరిచే రెండు పంక్తులు freeze_vision_encoder మరియు train_expert_only, రెండూ నిజం. సాధారణంగా మీరు సుమారు 100 M పారామీటర్‌లను శిక్షణ ఇస్తారు, 450 M కాదు, అందుకే ఇది 24 GBకి సరిపోతుంది. నాలుగు-GPU H100 క్లస్టర్‌పై LeRobot యొక్క స్వంత రిఫరెన్స్ రన్ రెండింటినీ తప్పుగా మారుస్తుంది; ఒక 24 GB కార్డ్‌లో అది పని చేసే రన్‌ను మెమరీ లేని క్రాష్.

అక్కడ లేని మెమరీ నాబ్

మీరు మెమరీ-బౌండ్ అయినప్పుడు, బ్యాచ్ పరిమాణాన్ని తగ్గించి, ప్రభావవంతమైన బ్యాచ్‌ను తిరిగి పొందడానికి గ్రేడియంట్ అక్యుములేషన్‌ను ఉపయోగించమని గైడ్ సలహా ఇస్తుంది. lerobot 0.6.1లో గ్రేడియంట్ అక్యుములేషన్ లేదు: `TrainPipelineConfig`కి అలాంటి ఫీల్డ్ లేదు మరియు విడుదలైన ప్యాకేజీలో ఈ స్ట్రింగ్ ఎక్కడా కనిపించదు. AY-Robots ఫారమ్ SmolVLA కోసం 8 గ్రేడియంట్ అక్యుములేషన్ విలువను చూపుతుంది మరియు దానిని కూడా వర్తింపజేయదు. 24 GBలో మీ లివర్‌లు `--batch_size`, రెండు ఫ్రీజ్ డిఫాల్ట్‌లు మరియు `--policy.use_amp`.

రన్ ఎంత సమయం పడుతుంది మరియు ఎన్ని స్టెప్‌లు సరిపోతాయి

LeRobot సుమారు 50 ఎపిసోడ్‌ల డేటాసెట్‌పై ఐదు ఎపోచ్‌లకు వాల్-క్లాక్ యాంకర్‌లను ప్రచురిస్తుంది, ఇది 30 fps వద్ద సుమారు 45000 ఫ్రేమ్‌లు. డాక్యుమెంట్‌లు చెప్పినట్లుగా, ఇవి ఆర్డర్ ఆఫ్ మాగ్నిట్యూడ్ అంకెలు, కానీ అవి ఒక గంట మరియు ఒక రోజు మధ్య తేడాను సూచిస్తాయి.

సెటప్పాలసీబ్యాచ్వాల్ క్లాక్
Single L4 / A10G (24 GB)smolvla4about 3 to 6 h
Single A100 40 GBsmolvla16about 1 to 2 h
4 x H100 80 GB with acceleratesmolvla32about 1 to 2 h
Single RTX 4090 / RTX 3090 (24 GB)act8about 30 to 60 min
--stepsను ఎంచుకునే ముందు ఎపోచ్ అంకగణితాన్ని చేయండి

డేటాసెట్‌పై 5 నుండి 10 ఎపోచ్‌లు నియమం, స్థిరమైన స్టెప్ కౌంట్ కాదు: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size)). డాక్యుమెంట్లు సూచించే రిఫరెన్స్ డేటాసెట్, lerobot/svla_so100_pickplaceలో, మెటాడేటా 50 ఎపిసోడ్‌లు మరియు 19631 ఫ్రేమ్‌లను నివేదిస్తుంది: బ్యాచ్ 8 ప్రతి ఎపోచ్‌కు సుమారు 2454 స్టెప్‌లను ఇస్తుంది, కాబట్టి 20000 స్టెప్‌లు సుమారు 8 ఎపోచ్‌లకు సమానం. బ్యాచ్‌ను సగానికి తగ్గించండి మరియు అదే బడ్జెట్ సగం ఎపోచ్‌లను కొనుగోలు చేస్తుంది, కాబట్టి మీరు --batch_sizeను మార్చినప్పుడల్లా దీన్ని మళ్లీ చేయండి.

ఫైన్-ట్యూన్ చేయబడిన పాలసీని తిరిగి ఆర్మ్‌పై అమలు చేయడం

bash
lerobot-rollout \
  --strategy.type=base \
  --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}}" \
  --task="Grasp the cube and put it in the box." \
  --policy.path=${HF_USER}/smolvla_pick_place
మీరు రికార్డ్ చేసిన దానితో టాస్క్ స్ట్రింగ్ సరిపోలాలి. మోడల్ ఆ టెక్స్ట్‌పై ఆధారపడి ఉంటుంది, కాబట్టి పర్యాయపదం వేరే సూచన అవుతుంది.

ప్రతి చర్య దశకు 245 ms ను తప్పుగా అర్థం చేసుకోవడం సులభం: పాలసీ chunk_size = 50 ఫార్వర్డ్ పాస్‌కు చర్యలను విడుదల చేస్తుంది మరియు వాటిలో n_action_steps = 50 ను అమలు చేస్తుంది, కాబట్టి మీరు ఆ ఖర్చును ఎంత తరచుగా చెల్లిస్తారనేది ఆ నాబ్‌ల ద్వారా నిర్ణయించబడుతుంది, సర్వోలు ఎంత తరచుగా ఆదేశాన్ని పొందుతాయి అనే దాని ద్వారా కాదు. అదే చర్యల చంకింగ్ కొనుగోలు చేస్తుంది, మరియు 245 ms మోడల్ 30 Hz ఆర్మ్‌ను ఎందుకు నడపగలదు. మిగిలింది చంక్ చివరిలో ఇన్‌ఫరెన్స్ లేటెన్సీ.

కొలత (SmolVLA, నిజమైన SO-100)సింక్రోనస్అసింక్రోనస్
పూర్తి సమయం, పిక్ అండ్ ప్లేస్, 10 ట్రయల్స్13.75 s9.70 s
నిర్ణీత సమయ విండోలో పిక్ అండ్ ప్లేస్ సైకిల్స్919
మూడు పనులలో సగటు విజయ రేటు78.3 %73.3 %

ఆ మూడవ వరుసను చాలా వ్రాతలు దాటవేస్తాయి. అసింక్రోనస్ ఇన్‌ఫరెన్స్ సుమారు 30 శాతం వేగంగా ఉంటుంది మరియు నిర్ణీత విండోలో థ్రూపుట్‌ను సుమారుగా రెట్టింపు చేస్తుంది, మరియు పేపర్ విజయ రేట్లను పోల్చదగినవిగా పేర్కొంది, సగటున అవి అలాగే ఉన్నాయి. దాని కింద, సార్టింగ్ 70 నుండి 50 శాతానికి పడిపోయింది, అయితే పిక్ అండ్ ప్లేస్ 5 పెరిగింది. lerobot 0.6.1 అదే బైనరీలో మరొక లివర్‌ను కలిగి ఉంది: --inference.type=rtc రోల్‌అవుట్‌ను రియల్ టైమ్ చంకింగ్‌కు మారుస్తుంది, ఇది స్క్రిప్ట్ యొక్క స్వంత వినియోగ బ్లాక్ నెమ్మదిగా ఉండే VLAs, Pi0, Pi0.5 మరియు SmolVLA కోసం సిఫార్సు చేస్తుంది.

ఇన్‌ఫరెన్స్ సర్వోల పక్కన ఉండాలి

కంట్రోల్ లూప్ మోడల్‌ను బట్టి ప్రతి చర్య దశకు 20 నుండి 485 ms ఉంటుంది, మరియు పబ్లిక్-ఇంటర్నెట్ రౌండ్ ట్రిప్‌లు ఒక పని చేసే పాలసీని సంకోచించే పాలసీగా మారుస్తాయి. రిమోట్ ఇన్‌ఫరెన్స్ నెమ్మదిగా ఉండే పిక్ అండ్ ప్లేస్‌కు ఆచరణీయం, వేగవంతమైన రియాక్టివ్ మోషన్‌కు కాదు: పనికి త్వరిత దిద్దుబాట్లు అవసరమైతే, GPU ఆర్మ్ ఉన్న అదే LANలో ఉండాలి.

7.4 V, 12 V కాదు

శిక్షణ రన్‌కు సంబంధం లేని విషయం, కానీ ఇది ఏ హైపర్‌పరామీటర్ కంటే ఎక్కువ SO-100 ప్రాజెక్ట్‌లను ముగిస్తుంది. SO-100 మరియు SO-101 లోని Feetech STS3215 సర్వోలు 7.4 V వద్ద నడుస్తాయి; 12 V వాటిని నాశనం చేస్తుంది. LeKiwi 7.4 V ఆర్మ్‌ను 12 V బేస్‌తో కలుపుతుంది, తద్వారా తప్పు బారెల్ జాక్ తప్పు సాకెట్‌ను కనుగొంటుంది.

ఒకే చెక్‌పాయింట్‌కు రెండు మార్గాలు

మీరు మెషీన్, ఎన్విరాన్‌మెంట్ మరియు డీబగ్గింగ్‌ను కలిగి ఉంటారు. ఏకైక క్లౌడ్ డిపెండెన్సీ బేస్ చెక్‌పాయింట్ యొక్క హబ్ డౌన్‌లోడ్. మీరు పాలసీని సవరించాలనుకుంటే, డేటా మీ నెట్‌వర్క్ నుండి బయటకు వెళ్లలేకపోతే, లేదా కార్డ్ ఖాళీగా ఉంటే ఇది సరైన మార్గం.

  • మీరు CUDA వీల్, డ్రైవర్, ffmpeg బిల్డ్ మరియు డేటాలోడర్‌ను నియంత్రిస్తారు.
  • మీరు configuration_smolvla.py ను ప్యాచ్ చేసి, అదే మధ్యాహ్నం తిరిగి శిక్షణ ఇవ్వవచ్చు.
  • మీరు విద్యుత్ మరియు సమయం కోసం చెల్లిస్తారు, ప్రతి రన్‌కు కాదు, మరియు TorchCodec ను మీరే డీబగ్ చేస్తారు.
bash
pip install 'lerobot[smolvla,training,core_scripts]'
hf auth login

lerobot-train \
  --policy.path=lerobot/smolvla_base \
  --dataset.repo_id=${HF_USER}/so100_pick_place \
  --batch_size=8 --steps=20000 \
  --save_freq=2000 --seed=1000 \
  --output_dir=outputs/train/smolvla_pick_place \
  --job_name=smolvla_pick_place \
  --policy.device=cuda --wandb.enable=true
ఒక బ్లాక్‌లో మొత్తం మాన్యువల్ మార్గం, lerobot 0.6.1.

SmolVLA తప్పు ఎంపిక అయినప్పుడు

స్మోల్‌వీఎల్‌ఏ సరైన మొదటి రన్ అవునా కాదా అని పరీక్షించడానికి, అది పనిచేసిందా లేదా అనేది కాదు, వైఫల్యం మీకు ఏదైనా చెప్పిందా అనేది ముఖ్యం. 60 లేదా 70 శాతం చేరుకుంటే, పెద్ద మోడల్‌పై తదుపరి ఖర్చు చేయడం సహేతుకం: డేటాలో సిగ్నల్ ఉంది. 10 శాతం చేరుకుంటే, 3 B మోడల్ కూడా 10 శాతం చేరుకునే అవకాశం ఉంది, దీనిని మీరు పన్నెండు డాలర్లకు బదులుగా మూడు డాలర్లకే తెలుసుకున్నారు.

AY-Robots శిక్షణ మ్యాట్రిక్స్: ఐదు పాలసీలు అడ్డు వరుసలుగా, నాలుగు రోబోట్ చేతులు నిలువు వరుసలుగా
ప్రతి సెల్ దాని స్వంత మార్గదర్శి. స్మోల్‌వీఎల్‌ఏ నాలుగు చేతులలో ప్రతిదానికి ఒకటి కలిగి ఉంది.

మరింత ఖర్చు చేసే ముందు చదవదగినవి: Pi0.5 వర్సెస్ స్మోల్‌వీఎల్‌ఏ అదే ఆలోచనపై మరింత సామర్థ్యం కోసం, మరియు GR00T N1.7 వర్సెస్ స్మోల్‌వీఎల్‌ఏ NVIDIA మార్గం కోసం, రెండూ 80 GB శ్రేణిలో ఒక్కో రన్‌కు 4 నుండి 12 USD. మరో మార్గం, ACT చౌకైన బేస్‌లైన్: 80 M పారామీటర్లు, ఒక్కో చర్య దశకు 20 ms, భాషా కండిషనింగ్ లేదు. ఈ ఐదు కూడా ఇక్కడ ఉన్నాయి: పాలసీల పేజీ; అరేనా 85 మోడల్‌లు మరియు 332 బెంచ్‌మార్క్ ఫలితాలను కలిగి ఉంది.

AY-Robots పాలసీల పోలిక: పారామీటర్లు, GPU శ్రేణి, లేటెన్సీ, కనీస ఎపిసోడ్‌లు
ఒక రన్‌ను నిర్ణయించే నాలుగు సంఖ్యలు.

ఏదైనా స్కేల్ చేయడానికి ముందు తనిఖీ జాబితా

  1. lr దాని 2.5e-6 కనిష్ట స్థాయికి చేరుకుందా? 30000 స్టెప్‌ల కంటే తక్కువ ఉంటే, lerobot క్షీణతను తిరిగి స్కేల్ చేస్తుంది మరియు స్టార్టప్‌లో అలా చెబుతుంది; దాని పైన, --policy.scheduler_decay_stepsని మీరే సెట్ చేయండి.
  2. ఒకటి కంటే ఎక్కువ చెక్‌పాయింట్‌లు, మరియు --dataset.eval_splitతో ఎపిసోడ్‌లు నిలిపివేయబడ్డాయి, తద్వారా మూల్యాంకన నష్టం ఏదైనా అర్థాన్ని కలిగి ఉంటుంది.
  3. పాలసీ అస్సలు కదులుతుందా? కదలిక లేని చేయితో నష్టం తగ్గడం నిర్దిష్ట కారణాలను కలిగి ఉంది: నష్టం తగ్గుతుంది, పాలసీ ఏమీ చేయదు.
  4. ఇది దృశ్యం మారినప్పుడు నిలబడుతుందా? లేకపోతే: పాలసీ ఒకే సెటప్‌లో మాత్రమే పనిచేస్తుంది.
  5. మీరు సీడ్‌ను రాసుకున్నారా? lerobot డిఫాల్ట్‌గా 1000కి సెట్ చేయబడింది, కాబట్టి రెండు మార్పులేని రన్‌లు పోల్చదగినవిగా ఉంటాయి.
  6. అప్పుడు మాత్రమే: మరిన్ని ఎపిసోడ్‌లు, మరిన్ని వైవిధ్యాలు లేదా పెద్ద మోడల్. ఆ క్రమంలో.

ఈ మోడల్‌లు ఎందుకు ఉనికిలో ఉన్నాయి మరియు భాషా ఇన్‌పుట్‌తో అవి ఏమి చేస్తాయి అనే దాని కోసం, అనేది నేపథ్యం; అసెంబ్లీని దీని ద్వారా నడుపుతుంది మొదటి రన్ వరకు. పూర్తయిన చెక్‌పాయింట్ కోసం, ; చేయి ఎప్పుడూ కనిపించకపోతే, .

మీ స్వంత చేయిపై SmolVLAకి శిక్షణ ఇవ్వండి

మోడల్ మరియు చేయిని ఎంచుకోండి, మరియు గైడ్ మీకు ఖచ్చితమైన డిఫాల్ట్‌లు, డేటాసెట్ ఫార్మాట్ మరియు రన్ ఖర్చులు ఏమిటో అందిస్తుంది. SmolVLA 24 GB టైర్‌లో రన్‌కు 1 నుండి 3 USD వద్ద ఉంటుంది.

శిక్షణ గైడ్‌లను తెరవండి
నేను నిజంగా RTX 4090లో SmolVLAని ఫైన్-ట్యూన్ చేయగలనా?

అవును. LeRobot యొక్క కంప్యూట్ గైడ్ ప్రకారం, AdamWతో బ్యాచ్ 8 వద్ద SmolVLA సుమారు 10 నుండి 16 GB గరిష్ట VRAMను ఉపయోగిస్తుంది మరియు 24 GB వినియోగదారు కార్డ్‌లు దీనికి సౌకర్యవంతంగా ఉంటాయని జాబితా చేస్తుంది. డాక్స్ ఉదాహరణలోని బ్యాచ్ 64 ఒకే A100తో జత చేయబడింది. మెమరీ బ్యాచ్‌తో దాదాపు సరళంగా పెరుగుతుంది, కాబట్టి 4 లేదా 8ని ఉపయోగించండి మరియు mem_gbని గమనించండి.

నాకు నిజంగా ఎన్ని ఎపిసోడ్‌లు అవసరం?

AY-Robots కనీసం 30ని నిర్దేశిస్తుంది. LeRobot డాక్స్ సుమారు 50ని సిఫార్సు చేస్తుంది మరియు అదే పనికి 25 ఎపిసోడ్‌లు సరిగా పని చేయలేదని నివేదిస్తుంది. సంఖ్య కంటే నిర్మాణం ముఖ్యం: రిఫరెన్స్ సెట్ 5 క్యూబ్ స్థానాలతో ఒక్కొక్కటి 10 ఎపిసోడ్‌లు కలిగి ఉంది, మరియు ఆ పునరావృతం సాధారణీకరణకు సహాయపడుతుంది.

డాక్స్ బ్యాచ్ 64 అని చెబుతుంది, ప్లాట్‌ఫారమ్ బ్యాచ్ 2 పంపుతుంది. ఏది సరైనది?

రెండు, వేర్వేరు హార్డ్‌వేర్‌ల కోసం. డాక్స్ ఉదాహరణ బ్యాచ్ 64ని ఉపయోగిస్తుంది మరియు ఒకే A100లో 20000 స్టెప్‌లకు సుమారు 4 గంటలు పడుతుందని పేర్కొంది; కంప్యూట్ గైడ్ యొక్క A100 40 GB యాంకర్ బ్యాచ్ 16. AY-Robots 24 GB టైర్‌లో పంపేది బ్యాచ్ 2. స్థానికంగా 4 నుండి 8 మధ్యస్థం, మరియు ఎపోక్ అంకగణితం దానితో మారుతుంది.

SO-100లో మొదటి రన్ కోసం SmolVLA లేదా ACT?

పని ఒక పునరావృత కదలిక అయితే మరియు మీరు వేగవంతమైన లూప్‌ను కోరుకుంటే ACT: ప్రతి చర్య దశకు 20 ms, 80 M పారామీటర్లు, భాషా కండిషనింగ్ లేదు. మీకు భాషా కండిషనింగ్, ఒకే చెక్‌పాయింట్‌లో అనేక టాస్క్ స్ట్రింగ్‌లు మరియు ప్రీట్రైన్డ్ బేస్ కావాలంటే SmolVLA. రెండూ 24 GB టైర్‌లో ఉంటాయి, కాబట్టి ఎంపిక పనిపై ఆధారపడి ఉంటుంది, బడ్జెట్‌పై కాదు.

నేను --policy.scheduler_decay_stepsని సెట్ చేయాలా?

--steps 30000 కంటే ఎక్కువగా ఉన్నప్పుడు మాత్రమే. SmolVLA 30000 స్టెప్‌ల వద్ద కొసైన్ డికేని ప్రీసెట్ చేస్తుంది, మరియు lerobot 0.6.1 తక్కువ రన్ కోసం దానిని స్వయంగా తగ్గించి, అలా చేసినప్పుడు "Auto-scaling LR scheduler" అని లాగ్ చేస్తుంది. ఇది ఎప్పుడూ పెరగదు, కాబట్టి స్టాక్ --steps=100000 చివరి 70000 స్టెప్‌లను 2.5e-6 ఫ్లోర్‌పై వదిలివేస్తుంది.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started