በAY-Robots ላይ ያለው የSmolVLA ሞዴል ገጽ የፓራሜትር ብዛት፣ የጂፒዩ ደረጃ፣ በእያንዳንዱ የድርጊት ደረጃ የማመዛዘን መዘግየት እና ዝቅተኛው የክፍሎች ብዛት የሚያሳይ
SmolVLALeRobotVLA ስልጠናማስተካከያSO-100

SmolVLAን በ24 ጂቢ ጂፒዩ ላይ እንዴት ማሰልጠን እንደሚቻል (lerobot 0.6.1)

AY-Robots ResearchAugust 23, 202617 ደቂቃ ንባብ

SmolVLA በአንድ 24 ጂቢ ካርድ ላይ የሚስተካከል 450 M ፓራሜትር ያለው VLA ነው። ትክክለኛ የlerobot 0.6.1 ትዕዛዞች፣ ትክክለኛዎቹ ነባሪዎች፣ አንድ ቀን የሚያስወጡ ወጥመዶች፣ እና አንድ ሩጫ ምን ያህል እንደሚያስወጣ።

SmolVLA በአንድ ስክሪን

  • 450 M ፓራሜትሮች፣ ከነሱ ውስጥ ወደ 100 M የሚሆኑት የፍሎው ማችንግ አክሽን ኤክስፐርት ናቸው። ሌሮቦት የሚያሰለጥነው ያንን ኤክስፐርት ብቻ ሲሆን VLMን ደግሞ እንዳለ ያቆየዋል፣ ለዚህም ነው በአንድ ካርድ ላይ የሚገጥመው።
  • የLeRobot የኮምፒዩት መመሪያ የsmolvla ቡድንን በ AdamW እና በባች 8 ላይ በግምት ከ10 እስከ 16 ጊባ ከፍተኛ VRAM እንደሚያስፈልገው ያሳያል። ስለዚህ 24 ጊባ።
  • የመግቢያ ነጥቡ lerobot-train ነው። የሰኔ 2025 SmolVLA ብሎግ ፖስት አሁንም python lerobot/scripts/train.py የሚለውን ያትማል፣ ይህም መንገድ አሁን የለም። ከዚህ በታች ያለው ሁሉ lerobot 0.6.1 ነው።
  • የኮሳይን ስኬጁል በ30000 ደረጃዎች ላይ እንዲቀንስ አስቀድሞ ተዘጋጅቷል። lerobot 0.6.1 ለአጭር ሩጫ ያንን ወደ ታች ያሳንሰዋል እና ይመዘግበዋል፣ ነገር ግን በጭራሽ ወደ ላይ አያሳድገውም፡ የ100000 ደረጃ ሩጫ ለ70000 ደረጃዎች በ2.5e-6 ወለል ላይ ያበቃል።
  • ሰላሳ ኢፒሶዶች የAY-Robots ዝቅተኛው ሲሆን፣ በ24 ጊባ ደረጃ ላይ ያለ ሩጫ ከ1 እስከ 3 ዶላር ያስከፍላል፣ ከ80 ጊባ ሞዴሎች ከ4 እስከ 12 ዶላር ጋር ሲነጻጸር።

አብዛኛዎቹ ሰዎች የእይታ ቋንቋ ተግባር ሞዴል በእውነተኛ ክንድ ላይ የሚፈልጉት በሃርድዌር ገደብ ይቆማሉ። GR00T N1.7 እና Pi0.5 እያንዳንዳቸው ወደ ሶስት ቢሊዮን ፓራሜትሮች የሚጠጉ ሲሆኑ A100 80 ጊባ ወይም H100 ይፈልጋሉ። የእርስዎ ንብረት RTX 4090 ያለው የጨዋታ ፒሲ ከሆነ፣ ያ የመንገዱ መጨረሻ ነው። SmolVLA ልዩ ነው፡ 450 M ፓራሜትሮች ያሉት፣ በLeRobot ውስጥ፣ በአንድ የሸማች ካርድ ላይ ለማስተካከል እና ከሲፒዩ ለማገልገል የተሰራ።

በመጀመሪያ በእጅ የሚሰራው መንገድ፡ ሌሮቦትን ይጫኑ፣ lerobot/smolvla_base ቼክፖይንቱን ይጎትቱ፣ ትክክለኛውን ትዕዛዝ ያሂዱ፣ በሚሰራበት ጊዜ ሩጫውን ያንብቡ። ከዚያም የፕላትፎርም መንገዱ፣ እና በማይረዳበት ቦታ።

SmolVLA ምንድን ነው፣ በሚያረጋግጧቸው ቁጥሮች

SmolVLA የፍሎው ማችንግ ፖሊሲ ሲሆን ከትንሽ ቪዥን ላንጉዌጅ ሞዴል ጋር የተያያዘ ነው። የጀርባ አጥንቱ SmolVLM2-500M-Video-Instruct ነው። ጥናቱ የቋንቋ ሞዴሉን የመጀመሪያዎቹን 16 ንብርብሮች ብቻ የሚጠቀም ሲሆን፣ እያንዳንዱን የካሜራ ፍሬም በ64 ቪዥዋል ቶከኖች በፒክሰል ሹፍል እንጂ በምስል ታይሊንግ አይገድበውም፣ እንዲሁም በየሁለተኛው ብሎክ ላይ ክሮስ አቴንሽንን ከሴልፍ አቴንሽን ንብርብር ጋር ያቀላቅላል። የኢንፈረንስ ወጪ የንድፍ ገደብ እንጂ በኋላ የታሰበ ነገር አልነበረም።

ባሕርይዋጋምንጭ
ጠቅላላ ፓራሜትሮችabout 450 Mpaper
የድርጊት ኤክስፐርትabout 100 M, flow matchingpaper
VLM የጀርባ አጥንትHuggingFaceTB/SmolVLM2-500M-Video-Instructvlm_model_name
ጥቅም ላይ የዋሉ የVLM ንብርብሮችfirst 16 of the language modelnum_vlm_layers = 16
በፍሬም የእይታ ቶከኖች64, pixel shuffle, no tilingpaper
ቅድመ-ስልጠና481 community datasets, 22.9 K episodes, 10.6 M frames; 200000 steps at global batch 256 on 4 GPUspaper

የ450 M ሞዴልን ሰዎች የሚጠቀሙበት ምክንያት በቤንችማርኮቹ የተነሳ ነው። በLIBERO ላይ በአማካይ 87.3 በመቶ ሲሆን፣ OpenVLA በ7 B 76.5 እና ሮቦቲክስ-ቅድመ-ስልጠና የተደረገለት Pi0 በ3.3 B ደግሞ 86.0 ነው። በMeta-World ላይ ደግሞ 57.3 ከ47.9 ጋር። በእውነተኛ SO-100 ሃርድዌር ላይ፣ ባለብዙ ተግባር ስልጠና በፒክ ኤንድ ፕሌስ 75 በመቶ፣ በስታኪንግ 90፣ በሶርቲንግ 70 በመቶ ይሰጣል፣ በአማካይ 78.3 ሲሆን፣ ACT ለእያንዳንዱ ተግባር የሰለጠነው በአማካይ 48.3 ነበር። ተመሳሳይ ረድፎች በSmolVLA አሬና ግቤት እና በACT ከSmolVLA ጋር ንጽጽር ውስጥ ከእያንዳንዱ የታተመ VLA ጎን ይገኛሉ።

የመጠን ጥያቄው ሐቀኛ እትም

SmolVLA በሁሉም ነገር ከ3 B ሞዴል የተሻለ አይደለም። የጥናቱ የራሱ SO-101 ሰንጠረዥ የሚያሳየው፡ በስርጭት ውስጥ 90 በመቶ ስኬት፣ ከስርጭት ውጪ ደግሞ 50 በመቶ ነው፣ ይህም በጭራሽ ቅድመ-ስልጠና ባልተደረገበት መድረክ ላይ ነው። የሚናገረው እና የሚደግፈው ግን ከPi0 ጋር ሲነጻጸር በ6 እጥፍ ያነሰ ማህደረ ትውስታ ላይ በ40 በመቶ ገደማ በፍጥነት እንደሚሰለጥን ነው።

ለምን 24 ጊባ ካርድ ትክክለኛው የመጀመሪያ ሩጫ ነው

LeRobot የኮምፒዩት መጠን መመሪያን ያቀርባል፣ ለዚህም በሪፖው ውስጥ በጣም ጠቃሚው ገጽ ነው። ፖሊሲዎችን በአከርካሪ አጥንት መጠን ይመድባል እና ለእያንዳንዱ ቡድን አንድ የVRAM መጠን ይሰጣል፣ ይህም በባች መጠን 8 በ AdamW፣ የlerobot ነባሪ፣ ይለካል። የኦፕቲማይዘር ሁኔታ ብቻ ከባዶ ወደፊት እና ወደኋላ ማለፍ ከ30 እስከ 100 በመቶ ይጨምራል፣ ስለዚህ እነዚህ የክብደት-ብቻ አሃዞች አይደሉም።

ቡድንፖሊሲዎችከፍተኛው VRAM (ባች 8፣ AdamW)የመጀመሪያ GPUs
ቀላል BCact, vqbet, tdmpcከ2 እስከ 6 ጊባ ገደማRTX 3060, L4
ስርጭትdiffusion, multi_task_ditከ8 እስከ 14 ጊባ ገደማRTX 4070+, L4
ትንሽ VLAsmolvlaከ10 እስከ 16 ጊባ ገደማRTX 4080+, L4, A10G
ትልቅ VLApi0, pi0_fast, pi05, xvla, wall_xከ24 እስከ 40 ጊባ ገደማA100 40 GB+
ባለብዙ ሞዳልgroot, eo1ከ24 እስከ 40 ጊባ ገደማA100 40 GB+

በባች 8 አስር እስከ አስራ ስድስት ጊጋባይት የሚለው ክርክር ነው፡ 24 ጊባ ካርድ ያንን እና የዳታ ሎደርን ይይዛል። AY-Robots SmolVLAን በ RTX 4090 ወይም በማንኛውም 24 ጊባ ካርድ ላይ ያስቀምጣል፣ ዝቅተኛው 30 ክፍሎችLeRobot v3.0 ዳታ፣ በአንድ የድርጊት ደረጃ 245 ms። ተከራይቶ፣ ያ በሰዓት ከ0.30 እስከ 0.60 ዶላር በ2 እስከ 5 ሰዓታት ውስጥ ነው፣ በአንድ ጥሩ ማስተካከያ ሩጫ፣ ከ80 ጊባ ደረጃ GR00T እና Pi0.5 ከሚያስፈልጋቸው ከ4 እስከ 12 ዶላር ጋር ሲነጻጸር (ዋጋ)። ያልተሳካ የSmolVLA ሩጫ ቡና ነው፤ ያልተሳካ የGR00T ሩጫ ምሳ ነው።

AY-Robots የወጪ ሰንጠረዥ፡ ለእያንዳንዱ ፖሊሲ ካርድ፣ የሩጫ ጊዜ፣ ለእያንዳንዱ ሩጫ ዋጋ፣ የሚያስፈልጉ ክፍሎች
SmolVLA እና ACT በ24 ጂቢ ረድፍ ላይ ሲሆኑ፣ ሶስቱ 3 B ሞዴሎች ደግሞ በ80 ጂቢ ረድፍ ላይ ይገኛሉ።
በ3 B ሞዴል ፋንታ በSmolVLA መጀመር
የሚያገኙት ነገር
  • አስቀድመው ሊኖርዎት ከሚችል ሃርድዌር ጋር ይጣጣማል፡ በግምት ከ10 እስከ 16 ጂቢ በባች 8።
  • የጠፋ ሩጫ ሰዓታትን እና ነጠላ አሃዝ ዶላሮችን ያስከፍላል፣ ስለዚህ ስለ ዳታሴቱ ስህተት ቢሰሩም አቅሙ አለዎት።
  • በlerobot ታግ ስር በተጋሩ የማህበረሰብ ዳታሴቶች ላይ የሰለጠነ፣ ከትክክለኛ SO-100 እና SO-101 ውጤቶች ጋር።
  • በራሱ lerobot ውስጥ ይኖራል፡ ምንም የሻጭ ሪፖ የለም፣ እና smolvla_base አልተገደበም።
የሚተውት ነገር
  • 450 M አሁንም 450 M ነው፡ ከስርጭት ውጪ ያለው ስኬት በወረቀቱ SO-101 ሰንጠረዥ ውስጥ ከ90 ወደ 50 በመቶ ይወርዳል።
  • LeRobot v3.0 ዳታ ይፈልጋል፤ የv2.1 ቀረጻ መለወጥ አለበት (dataset rejected v3)።
  • በእያንዳንዱ የድርጊት ደረጃ 245 ms ብቃት ያለው የመምረጥ እና የማስቀመጥ መቆጣጠሪያ ነው እንጂ ምላሽ ሰጪ አይደለም።
  • የሰነዶቹ ምሳሌ ባች 64ን በA100 ላይ ያካሂዳል፤ በ24 ጂቢ ላይ ባችውን ለትክክለኛው ጊዜ ይለውጣል።

ደረጃ 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 ላይ ይበላሻል። አንድ ጊዜ ይመዝግቡ፣ በኋላ ሞዴሎችን ለማነፃፀር ያቅዱ፣ እና በአንድም ሆነ በሌላ መንገድ ይቀይራሉ፡ የውሂብ ስብስብ 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 መንገድ። አሰልጣኙን ለመጠገን (patch)፣ ሪፖውን ክሎን ያድርጉ እና በምትኩ pip install -e ".[smolvla,training]" ይጠቀሙ።

መሰረታዊው lerobot ጭነት ቀጭን ሲሆን ከባድ ጥገኞችን ከኋላ ተጨማሪዎች ይደብቃል (gates): smolvla ትራንስፎርመሮችን፣ num2words እና accelerateን ይጨምራል፣ training የዳታሴት ስታክን እና wandbን፣ core_scripts የሃርድዌር እና የእይታ ጥገኞችን ይጨምራል። በሊኑክስ ላይ የመጫኛ መንገዱ የCUDA ዊልዎን ይወስናል፡ የPyPI ነባሪው የ580.65 ሾፌር ወለል ያለው cu130 ዊል ነው፣ ስለዚህ በአሮጌ ሾፌር ላይ መጀመሪያ ቶርችን ከcu128 ኢንዴክስ ይጫኑ፣ ከዚያም lerobotን።

policy.path እና policy.type አንድ አይነት ባንዲራ አይደሉም

--policy.path=lerobot/smolvla_base ቅድመ-የሰለጠነውን 450 M ቼክፖይንት ይጭናል እና ያጣራል። --policy.type=smolvla አዲስ SmolVLA ይገነባል፣ እና የconfig ነባሪው load_vlm_weights = False ማለት እርስዎ ካልጠየቁ በስተቀር የSmolVLM2 ባክቦን ክብደቶችን እንኳን አይጎትትም ማለት ነው። ስህተት ከሰሩ፣ ሩጫው በደስታ ይሰለጥናል፣ ተመሳሳይ ወጪ ያስወጣል፣ እና ምንም ሊተላለፍ የሚችል ነገር አይማርም።

የስልጠናው ሂደት፣ ትዕዛዝ በትዕዛዝ

  1. 1
    ከHub ጋር ማረጋገጥ

    መሰረታዊው ቼክፖይንት ከHub የሚመጣ ሲሆን፣ የእርስዎ የውሂብ ስብስብም ምናልባት ከዚያው ነው።

    bash
    hf auth login
  2. 2
    አማራጮቹን አንድ ጊዜ ያንብቡ

    የፓይፕላይኑ እና የፖሊሲው ውቅር እያንዳንዱ መስክ ባንዲራ ነው። ምንጩን ከመመርመርዎ በፊት በአጭሩ ይመልከቱት።

    bash
    lerobot-train --help
  3. 3
    ጥሩ ማስተካከያውን ይጀምሩ

    የሰነዶቹ ምሳሌ በአንድ A100 ላይ ባች 64ን ያካሂዳል፤ የኮምፒዩት መመሪያው የራሱ A100 40 ጂቢ መልህቅ ባች 16 ሲሆን፣ 8 ደግሞ የ24 ጂቢ ተመጣጣኝ ነው። እዚህ ምንም የጊዜ ሰሌዳ ባንዲራ ሆን ተብሎ የለም፣ ከታች ይመልከቱ።

    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 መቃረብ ደግሞ የውሂብ ጫኚው (dataloader) የአንገት ማነቂያ እንጂ ጂፒዩ አለመሆኑን ያሳያል።

    bash
    # if data_s creeps toward updt_s
    lerobot-train ... --num_workers=8
  5. 5
    ሊያወዳድሯቸው የሚችሉ ቼክፖይንቶችን ይሰብስቡ

    save_freq በነባሪ 20000 ነው፣ ስለዚህ የ20000 እርምጃዎች ሂደት አንድ ቼክፖይንት ብቻ ይተዋል እና ከሱ ጋር የሚያወዳድር ምንም ነገር አይኖርም። 2000 ያድርጉት። ወደ Hub ለመግፋት --policy.repo_id ያስፈልጋል።

    bash
    --save_freq=2000 \
    --policy.repo_id=${HF_USER}/smolvla_pick_place \
    --save_checkpoint_to_hub=true
  6. 6
    ማሽኑ ከሞተ ይቀጥሉ

    --config_pathን ከቼክፖይንቱ አጠገብ ወዳለው train_config.json ያመልክቱ። lerobot እርስዎ ካልቀጠሉ በስተቀር ወደ ነባር output_dir ለመጀመር እምቢ ይላል፣ ስለዚህ በድንገት አንድን ሂደት መፃፍ አይችሉም።

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

ውጤቱን በትክክል የሚቀይሩት ባንዲራዎች

ባንዲራምን እንደሚሰራበ24 ጂቢ ላይ
--batch_sizeበየእርምጃው ያሉ ናሙናዎች፣ በVRAM ውስጥ በግምት መስመራዊ4 to 8
--stepsጠቅላላ የማመቻቸት እርምጃዎች20000 first pass
--policy.scheduler_decay_stepsየኮሳይን መበስበስ ርዝመት፣ አስቀድሞ የተዘጋጀ 30000ከ30000 በላይ ብቻ ነው የሚሰራው
--policy.use_ampየተቀላቀለ ትክክለኛነት፤ SmolVLA የdtype መስክ የለውምማህደረ ትውስታ ሲጠብ እውነት
--num_workersየውሂብ ጫኚ ሂደቶች፣ ነባሪ 4data_s መውጣት እስኪያቆም ድረስ ይጨምሩ
--dataset.eval_splitበየተግባሩ የተያዙ የክፍሎች ክፍልፋይ0.1, with --eval_steps
--policy.freeze_vision_encoderየእይታ ማማውን የቀዘቀዘ ያደርገዋልtrue on 24 GB
--policy.train_expert_only~100 M ባለሙያው ብቻ ግራዲየንቶችን ያገኛልመጀመሪያ እውነት
መርሃግብሩ: 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 ያደርጋል፣ እና ሲያደርግ Auto-scaling LR scheduler ብሎ ያትማል። ወደ ላይ በጭራሽ አያሻሽልም: መበስበሱ በ`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
የእይታ ኢንኮደርን ማቀዝቀዝtrueSmolVLAConfig
ባለሙያውን ብቻ ማሰልጠንtrueSmolVLAConfig
የቡድን መጠን / እርምጃዎች8 / 100000TrainPipelineConfig
ዘር / የማስቀመጫ ድግግሞሽ / የሰራተኞች ብዛት1000 / 20000 / 4TrainPipelineConfig

ሰዎችን የሚያስደንቁት ሁለቱ መስመሮች freeze_vision_encoder እና train_expert_only ሲሆኑ ሁለቱም እውነት ናቸው። ከመጀመሪያው ጀምሮ በግምት 100 M ፓራሜትሮችን ነው የሚያሰለጥኑት እንጂ 450 M አይደለም፣ ለዚህም ነው በ24 GB ላይ የሚገጥመው። የLeRobot የራሱ የማጣቀሻ ሩጫ በአራት-GPU H100 ክላስተር ላይ ሁለቱንም ወደ false ይቀይራቸዋል፤ በአንድ 24 GB ካርድ ላይ ደግሞ የሚሰራ ሩጫን ወደ የማስታወሻ እጥረት ብልሽት ይለውጠዋል።

የሌለው የማስታወሻ መቆጣጠሪያ

ማህደረ ትውስታ ሲያጥርብዎ መመሪያው የሚሰጠው ምክር የባች መጠኑን መቀነስ እና ውጤታማውን ባች ለመመለስ gradient accumulationን መጠቀም ነው። በlerobot 0.6.1 ውስጥ gradient accumulation የለም፡ TrainPipelineConfig እንደዚህ አይነት መስክ የለውም እና ይህ ቃል በተለቀቀው ፓኬጅ ውስጥ የትም አይገኝም። የAY-Robots ቅጽ ለSmolVLA የ8 gradient accumulation ዋጋ ያሳያል ነገር ግን አይተገብረውም። በ24 GB ላይ ያሉዎት መቆጣጠሪያዎች --batch_size፣ ሁለቱ የፍሪዝ ነባሪዎች እና --policy.use_amp ናቸው።

ሩጫው ምን ያህል ጊዜ እንደሚወስድ እና ስንት እርምጃዎች በቂ እንደሆኑ

LeRobot ለአምስት ኢፖኮች በግምት 50 የትዕይንት ዳታሴት ላይ፣ በ30 fps ወደ 45000 ፍሬሞች የሚሆን የሰዓት መልህቆችን ያትማል። የሰነዶቹ አባባል እንደሚያሳየው እነዚህ ግምታዊ አሃዞች ናቸው፣ ነገር ግን በአንድ ሰዓት እና በአንድ ቀን መካከል ያለውን ልዩነት ይፈጥራሉ።

ማዋቀርፖሊሲባችየግድግዳ ሰዓት
ነጠላ L4 / A10G (24 ጊባ)smolvla4ከ3 እስከ 6 ሰዓት ያህል
ነጠላ A100 40 ጊባsmolvla16ከ1 እስከ 2 ሰዓት ያህል
4 x H100 80 ጊባ ከ accelerate ጋርsmolvla32ከ1 እስከ 2 ሰዓት ያህል
ነጠላ RTX 4090 / RTX 3090 (24 ጊባ)act8ከ30 እስከ 60 ደቂቃ ያህል
<code>--steps</code> ከመምረጥዎ በፊት የኢፖክ ስሌት ያድርጉ

ደንቡ በመረጃ ስብስቡ ላይ ከ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 ሚሊሰከንድ በቀላሉ ሊሳሳት ይችላል: ፖሊሲው chunk_size = 50 ድርጊቶችን በአንድ የፊት ማለፊያ ያወጣል እና n_action_steps = 50 ያከናውናል፣ ስለዚህ ያንን ወጪ ምን ያህል ጊዜ እንደሚከፍሉ የሚወሰነው በእነዚያ መቆጣጠሪያዎች እንጂ ሰርቮዎች ትዕዛዝ በሚያገኙበት ድግግሞሽ አይደለም። ይህም የድርጊት ክፍፍል የሚያስገኘው ጥቅም ነው፣ እና 245 ሚሊሰከንድ ሞዴል 30 ኸርዝ ክንድ እንዲያንቀሳቅስ የሚያስችለው ለዚህ ነው። የሚቀረው ደግሞ የግምት መዘግየት በክፍሉ መጨረሻ ላይ ነው።

መለኪያ (SmolVLA, እውነተኛ SO-100)ተመሳሳይ ጊዜየተለያየ ጊዜ
የማጠናቀቂያ ጊዜ፣ ማንሳት እና ማስቀመጥ፣ 10 ሙከራዎች13.75 s9.70 s
በተወሰነ የጊዜ መስኮት ውስጥ የማንሳት እና የማስቀመጥ ዑደቶች919
በሶስቱ ተግባራት ላይ አማካይ የስኬት መጠን78.3 %73.3 %

ያ ሶስተኛው ረድፍ አብዛኛዎቹ ጽሑፎች የሚዘሉት ነው። የተለያየ ጊዜ ግምት (Async inference) በግምት 30 በመቶ ፈጣን ሲሆን በተወሰነ የጊዜ መስኮት ውስጥ ምርታማነትን በእጥፍ ይጨምራል፣ እና ወረቀቱ የስኬት መጠኖችን ተመጣጣኝ ይላቸዋል፣ በአማካይ ደግሞ እንደዚያው ናቸው። ከዚህ በታች፣ መደርደር ከ70 ወደ 50 በመቶ ሲቀንስ ማንሳት እና ማስቀመጥ 5 ጨምሯል። lerobot 0.6.1 ሌላኛውን መቆጣጠሪያ በተመሳሳይ ሁለትዮሽ ይዟል: --inference.type=rtc የጥቅልል ሂደቱን ወደ እውነተኛ ጊዜ ክፍፍል ይቀይራል፣ ይህም የስክሪፕቱ የራሱ የአጠቃቀም ክፍል ለቀርፋፋ VLAs፣ Pi0፣ Pi0.5 እና SmolVLA ይመክራል።

ግምት ከሰርቮዎች አጠገብ መቀመጥ አለበት

የመቆጣጠሪያው ዑደት እንደ ሞዴሉ ከ20 እስከ 485 ሚሊሰከንድ በእያንዳንዱ የድርጊት ደረጃ ነው፣ እና ከላይ የሚጨመሩ የህዝብ-ኢንተርኔት የዙር ጉዞዎች የሚሰራ ፖሊሲን ወደ አመንታነት ይለውጡታል። የርቀት ግምት ለቀርፋፋ ማንሳት እና ማስቀመጥ ተስማሚ ነው እንጂ ለፈጣን ምላሽ ሰጪ እንቅስቃሴ አይደለም: ተግባሩ ፈጣን እርማቶችን የሚፈልግ ከሆነ፣ ጂፒዩው ከክንዱ ጋር በተመሳሳይ LAN ላይ መሆን አለበት።

7.4 ቮልት እንጂ 12 ቮልት አይደለም

ለስልጠና ሩጫ ከርዕሱ ውጪ ቢሆንም፣ ከማንኛውም ሃይፐርፓራሜትር በላይ ብዙ SO-100 ፕሮጀክቶችን ያቆማል። በSO-100 እና SO-101 ውስጥ ያሉት የFeetech STS3215 ሰርቮዎች በ7.4 ቮልት ይሰራሉ፤ 12 ቮልት ያበላሻቸዋል። LeKiwi የ7.4 ቮልት ክንድን ከ12 ቮልት መሰረት ጋር ያቀላቅላል፣ የተሳሳተ የበርሜል ጃክ የተሳሳተ ሶኬት የሚያገኘው በዚህ መንገድ ነው።

ወደ አንድ የፍተሻ ነጥብ የሚወስዱ ሁለት መንገዶች

ማሽኑ፣ አካባቢው እና ማረም የእርስዎ ናቸው። ብቸኛው የክላውድ ጥገኝነት የመሠረት ፍተሻ ነጥብ የHub ማውረድ ነው። ፖሊሲውን ማሻሻል ከፈለጉ፣ ዳታዎ ከኔትወርክዎ መውጣት ካልቻለ፣ ወይም ካርዱ ስራ ፈት ከሆነ ትክክለኛው መንገድ ነው።

  • የ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 የተሳሳተ ምርጫ ሲሆን

SmolVLA ትክክለኛው የመጀመሪያ ሙከራ መሆኑን የሚወስነው መስራቱ ሳይሆን ውድቀቱ አንድ ነገር ነግሮዎት እንደሆነ ነው። 60 ወይም 70 በመቶ ከደረሱ ትልቅ ሞዴል ምክንያታዊ ቀጣይ ወጪ ነው፡ ዳታው ምልክት ይይዛል። 10 በመቶ ከደረሱ 3 B ሞዴልም ምናልባት 10 በመቶ ይደርሳል፣ ይህም አሁን አስራ ሁለት ዶላር ከማውጣት ይልቅ በሶስት ዶላር ተምረዋል።

የAY-Robots ማሰልጠኛ ማትሪክስ፡ አምስት ፖሊሲዎች እንደ ረድፎች፣ አራት የሮቦት ክንዶች እንደ ዓምዶች
እያንዳንዱ ሕዋስ የራሱ መመሪያ አለው። SmolVLA ለእያንዳንዱ አራት ክንዶች አንድ አለው።

ተጨማሪ ከማውጣትዎ በፊት ማንበብ ተገቢ ነው፡ Pi0.5 ከ SmolVLA ጋር ሲነጻጸር ለተመሳሳይ ሀሳብ ተጨማሪ አቅም ለማግኘት፣ እና GR00T N1.7 ከ SmolVLA ጋር ሲነጻጸር ለNVIDIA መንገድ፣ ሁለቱም 80 GB ደረጃ በ4 እስከ 12 ዶላር በአንድ ሩጫ። በሌላ በኩል፣ ACT ርካሽ መነሻ ነው፡ 80 M ፓራሜትሮች፣ 20 ms በአንድ የድርጊት እርምጃ፣ የቋንቋ ሁኔታ የለም። አምስቱም የሚገኙት በየፖሊሲዎች ገጽአሬናው 85 ሞዴሎች እና 332 የቤንችማርክ ውጤቶች አሉት።

የAY-Robots ፖሊሲዎች ንጽጽር፡ ፓራሜትሮች፣ ጂፒዩ ደረጃ፣ መዘግየት፣ ዝቅተኛው ክፍሎች
አንድ ሩጫ የሚወስኑት አራቱ ቁጥሮች።

ማንኛውንም ነገር ከማስፋትዎ በፊት የሚያስፈልጉ ነገሮች ዝርዝር

  1. `lr` 2.5e-6 ወለሉ ላይ ደርሷል? ከ30000 እርምጃዎች በታች lerobot መበስበሱን እንደገና ያስተካክላል እና ሲጀመር ይገልጻል፤ ከዚያ በላይ ከሆነ፣ `--policy.scheduler_decay_steps`ን እራስዎ ያዘጋጁ።
  2. ከአንድ በላይ የፍተሻ ነጥብ (checkpoint)፣ እና `--dataset.eval_split`ን በመጠቀም የተለዩ ክፍሎች (episodes)፣ ስለዚህ የeval loss ትርጉም ይኖረዋል።
  3. ፖሊሲው ምንም እንቅስቃሴ ያደርጋል? የማይንቀሳቀስ ክንድ ያለው እየቀነሰ የሚሄድ loss የተወሰኑ ምክንያቶች አሉት: loss ይቀንሳል፣ ፖሊሲው ምንም አያደርግም
  4. የቦታ ለውጥን ይቋቋማል? ካልሆነ: ፖሊሲው በአንድ አቀማመጥ ላይ ብቻ ይሰራል
  5. ዘሩን (seed) ጽፈውታል? lerobot በነባሪ 1000 ይጠቀማል፣ ስለዚህ ሁለት ያልተነኩ ሙከራዎች (runs) ተመጣጣኝ ሆነው ይቆያሉ።
  6. ከዚያ በኋላ ብቻ: ተጨማሪ ክፍሎች (episodes)፣ ተጨማሪ ልዩነቶች (variation)፣ ወይም ትልቅ ሞዴል (model)። በዚያ ቅደም ተከተል።

እነዚህ ሞዴሎች ለምን እንደተፈጠሩ እና ከቋንቋ ግብዓት ጋር ምን እንደሚያደርጉ ለማወቅ፣ ዳራው ነው፤ ስብሰባን የሚያከናውነው በ በኩል እስከ መጀመሪያው ሙከራ (run) ድረስ ነው። ለተጠናቀቀው የፍተሻ ነጥብ (checkpoint)፣ ፤ ክንዱ በጭራሽ ካልታየ፣ ።

SmolVLAን በራስዎ ክንድ ላይ ያሰልጥኑ

ሞዴሉን እና ክንዱን ይምረጡ እና መመሪያው ትክክለኛዎቹን ነባሪዎች፣ የውሂብ ስብስብ ቅርጸት እና የሙከራውን (run) ወጪ ይነግርዎታል። SmolVLA በ24 ጊባ ደረጃ ላይ የሚገኝ ሲሆን በአንድ ሙከራ (run) ከ1 እስከ 3 የአሜሪካ ዶላር ያስከፍላል።

የስልጠና መመሪያዎችን ይክፈቱ
SmolVLAን በRTX 4090 ላይ በትክክል ማስተካከል እችላለሁ?

አዎ። የLeRobot የኮምፒዩት መመሪያ SmolVLAን በbatch 8 ከAdamW ጋር በግምት ከ10 እስከ 16 ጊባ ከፍተኛ የVRAM እንደሚጠቀም ያስቀምጣል እና 24 ጊባ የሸማች ካርዶችን ለእሱ ምቹ እንደሆኑ ይዘረዝራል። በሰነዶቹ ምሳሌ ውስጥ ያለው batch 64 ከአንድ A100 ጋር ተጣምሯል። ማህደረ ትውስታ ከbatch ጋር በግምት መስመራዊ በሆነ መልኩ ስለሚመጣጠን 4 ወይም 8 ይጠቀሙ እና mem_gbን ይመልከቱ።

በእርግጥ ስንት ክፍሎች ያስፈልጉኛል?

AY-Robots ዝቅተኛውን 30 ላይ ያስቀምጣል። የLeRobot ሰነዶች ወደ 50 አካባቢ ይመክራሉ እና ተመሳሳይ ተግባር ያላቸው 25 ክፍሎች ደካማ አፈጻጸም እንዳሳዩ ሪፖርት ያደርጋሉ። አወቃቀር ከቁጥር ይበልጣል፡ የማጣቀሻው ስብስብ 5 የኩብ አቀማመጦች ሲሆኑ እያንዳንዳቸው 10 ክፍሎች ነበሩ፣ እና ያ ድግግሞሽ ነው አጠቃላይ የሚያደርገው።

ሰነዶቹ batch 64 ይላሉ፣ መድረኩ batch 2 ይልካል። የትኛው ነው ትክክል?

ሁለቱም፣ ለተለያዩ ሃርድዌሮች። የሰነዶቹ ምሳሌ batch 64 ይጠቀማል እና በአንድ A100 ላይ ለ20000 ደረጃዎች ወደ 4 ሰዓታት ያህል ይወስዳል፤ የኮምፒዩት መመሪያው A100 40 GB መልህቅ batch 16 ነው። Batch 2 AY-Robots በ24 GB ደረጃ ላይ የሚልከው ነው። በአካባቢው 4 እስከ 8 መካከለኛ ነው፣ እና የepoch ስሌት ከእሱ ጋር ይለወጣል።

በSO-100 ላይ ለመጀመሪያ ጊዜ ለመስራት SmolVLA ወይስ ACT?

ACT ተግባሩ አንድ ተደጋጋሚ እንቅስቃሴ ከሆነ እና ፈጣኑን ዑደት ከፈለጉ፡ በአንድ የድርጊት ደረጃ 20 ms፣ 80 M parameters፣ የቋንቋ ሁኔታ የለም። SmolVLA የቋንቋ ሁኔታን፣ በአንድ ቼክፖይንት ውስጥ በርካታ የተግባር ሕብረቁምፊዎችን እና ቅድመ-የሰለጠነ መሰረትን ከፈለጉ። ሁለቱም በ24 GB ደረጃ ላይ ስለሚቀመጡ ምርጫው ተግባሩ ነው እንጂ በጀት አይደለም።

--policy.scheduler_decay_stepsን ማዘጋጀት አለብኝ?

የ--steps ከ30000 በላይ ሲሆን ብቻ። SmolVLA የcosine decayን በ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