AY-Robots මත ඇති SmolVLA මාදිලියේ පිටුව පරාමිති ගණන, GPU ස්ථරය, එක් ක්‍රියා පියවරකට අනුමාන ප්‍රමාදය සහ අවම කථාංග ගණන පෙන්වයි.
SmolVLALeRobotVLA පුහුණුවFine-TuningSO-100

24 GB GPU එකක SmolVLA පුහුණු කරන්නේ කෙසේද (lerobot 0.6.1)

AY-Robots ResearchAugust 23, 202617 min කියවීම

SmolVLA යනු තනි 24 GB කාඩ්පතක fine-tune කළ හැකි 450 M පරාමිති VLA එකකි. සත්‍ය lerobot 0.6.1 විධාන, සැබෑ පෙරනිමි සැකසුම්, දවසක් නාස්ති කළ හැකි උගුල්, සහ එක් ධාවනයක පිරිවැය.

එක් තිරයකින් SmolVLA

  • 450 M පරාමිති, ඉන් 100 M පමණ ප්‍රවාහ ගැලපෙන ක්‍රියා විශේෂඥයෙකි. lerobot පුහුණු කරන්නේ එම විශේෂඥයා පමණක් වන අතර VLM ශීත කළ තත්වයේ තබා ගනී, ඒ නිසා එය එක් කාඩ්පතකට ගැලපේ.
  • LeRobot හි පරිගණක මාර්ගෝපදේශය අනුව smolvla කණ්ඩායම AdamW සමඟ batch 8 දී 10 සිට 16 GB පමණ උපරිම VRAM ප්‍රමාණයක් ගනී. එබැවින් 24 GB අවශ්‍ය වේ.
  • ඇතුල්වීමේ ලක්ෂ්‍යය lerobot-train වේ. 2025 ජූනි SmolVLA බ්ලොග් සටහන තවමත් python lerobot/scripts/train.py මුද්‍රණය කරයි, එය තවදුරටත් නොපවතින මාර්ගයකි. පහත සියල්ල lerobot 0.6.1 වේ.
  • cosine schedule එක 30000 steps පුරා ක්ෂය වීමට පෙරසිටුවා ඇත. lerobot 0.6.1 එය කෙටි ධාවනයක් සඳහා පහළට පරිමාණය කර ලොග් කරයි, නමුත් කිසි විටෙක ඉහළට නොවේ: සාමාන්‍ය 100000 step ධාවනය 70000 steps සඳහා 2.5e-6 මට්ටමේ අවසන් වේ.
  • කථාංග තිහක් යනු AY-Robots හි අවම අවශ්‍යතාවයයි, එය 24 GB ස්ථරයක ධාවනයකට 1 සිට 3 USD දක්වා වැය වන අතර 80 GB මාදිලි සඳහා 4 සිට 12 දක්වා වැය වේ.

සැබෑ අතක් මත දෘශ්‍ය භාෂා ක්‍රියාකාරී ආකෘතියක් අවශ්‍ය බොහෝ දෙනෙක් දෘඪාංග සීමාවේදී නතර වෙති. GR00T N1.7 සහ Pi0.5 එක් එක් පරාමිති බිලියන තුනක් පමණ වන අතර A100 80 GB හෝ H100 එකක් අවශ්‍ය වේ. ඔබට RTX 4090 සහිත gaming PC එකක් තිබේ නම්, එය මාර්ගයේ අවසානයයි. SmolVLA යනු ව්‍යතිරේකයයි: 450 M පරාමිති, LeRobot තුළ, එක් පාරිභෝගික කාඩ්පතක් මත fine-tune කිරීමට සහ CPU එකකින් සේවය කිරීමට සාදා ඇත.

පළමුව අතින් මාර්ගය: lerobot ස්ථාපනය කරන්න, lerobot/smolvla_base checkpoint එක ලබා ගන්න, සැබෑ විධානය ක්‍රියාත්මක කරන්න, එය සිදුවන අතරතුර ධාවනය කියවන්න. ඉන්පසු platform මාර්ගය, සහ එය උදව් නොකරන තැන.

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 ක ආකෘතියක් සමඟ මිනිසුන් වෙහෙසෙන්නේ මිණුම් සලකුණු නිසාය. LIBERO හි එය 7 B හි OpenVLA සඳහා 76.5 ට එරෙහිව 87.3% ක් සහ 3.3 B හි රොබෝ විද්‍යාව සඳහා පූර්ව පුහුණු කරන ලද Pi0 සඳහා 86.0% ක් සාමාන්‍යය කරයි; 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 මේ සඳහා ගබඩාවේ ඇති වඩාත්ම ප්‍රයෝජනවත් පිටුව වන ගණනය කිරීමේ ප්‍රමාණකරණ මාර්ගෝපදේශයක් සපයයි. එය ප්‍රතිපත්ති (policies) ප්‍රධාන ව්‍යුහයේ ප්‍රමාණය අනුව කාණ්ඩ කරන අතර, lerobot පෙරනිමි අගය වන AdamW සමඟ, batch size 8 දී මනිනු ලබන එක් එක් කාණ්ඩයට VRAM සීමාවක් ලබා දෙයි. Optimizer තත්ත්වය පමණක්, සාමාන්‍ය forward සහ backward pass එකකට වඩා සියයට 30 සිට 100 දක්වා වැඩි කරයි, එබැවින් මේවා බර (weights) පමණක් වන සංඛ්‍යා නොවේ.

කාණ්ඩයප්‍රතිපත්තිඋපරිම VRAM (batch 8, AdamW)ආරම්භක GPU
සැහැල්ලු BCact, vqbet, tdmpcආසන්න වශයෙන් 2 සිට 6 GBRTX 3060, L4
විසරණයdiffusion, multi_task_ditආසන්න වශයෙන් 8 සිට 14 GBRTX 4070+, L4
කුඩා VLAsmolvlaආසන්න වශයෙන් 10 සිට 16 GBRTX 4080+, L4, A10G
විශාල VLApi0, pi0_fast, pi05, xvla, wall_xආසන්න වශයෙන් 24 සිට 40 GBA100 40 GB+
බහුමාදිලිgroot, eo1ආසන්න වශයෙන් 24 සිට 40 GBA100 40 GB+

batch 8 දී ගිගාබයිට් දහයේ සිට දහසය දක්වා ප්‍රමාණය තර්කයයි: 24 GB කාඩ්පතකට එයට අමතරව dataloader එකද ඇතුළත් වේ. AY-Robots SmolVLA, RTX 4090 හෝ ඕනෑම 24 GB කාඩ්පතක ස්ථාපනය කරයි, අවම වශයෙන් 30 කථාංග, LeRobot v3.0 දත්ත, එක් ක්‍රියාකාරී පියවරකට 245 ms. කුලියට ගත් විට, එය පැයකට 0.30 සිට 0.60 USD බැගින් පැය 2 සිට 5 දක්වා වේ, ආසන්න වශයෙන් 1 සිට 3 USD fine-tuning ධාවනයකට, GR00T සහ Pi0.5 සඳහා අවශ්‍ය 80 GB ස්ථරයේ 4 සිට 12 USD ට සාපේක්ෂව (මිලකරණය). අසාර්ථක SmolVLA ධාවනයක් යනු කෝපි එකක් වැනිය; අසාර්ථක GR00T ධාවනයක්, දිවා ආහාරයකි.

AY-Robots පිරිවැය වගුව: ප්‍රතිපත්තියකට කාඩ්පත, ධාවන කාලය, ධාවනයකට මිල, අවශ්‍ය කථාංග
SmolVLA සහ ACT 24 GB පේළියේ පිහිටා ඇති අතර, 3 B මාදිලි තුන 80 GB පේළියේ පිහිටා ඇත.
3 B මාදිලියක් වෙනුවට SmolVLA සමඟ ආරම්භ කිරීම
ඔබට ලැබෙන දේ
  • ඔබට දැනටමත් හිමි විය හැකි දෘඪාංග වලට ගැලපේ: batch 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 මත batch 64 ධාවනය කරයි; 24 GB මත ඔබ wall clock සඳහා batch හුවමාරු කරයි.

පියවර 0: ධාවනය තීරණය කරන්නේ දත්ත කට්ටලය මිස flags නොවේ

පටිගත කිරීම නරක නම් පහත කිසිවක් වැදගත් නොවේ. 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 මාර්ගය. පුහුණුකරු පැච් කිරීමට, රිපෝව ක්ලෝන කර ඒ වෙනුවට pip install -e ".[smolvla,training]" භාවිතා කරන්න.

මූලික lerobot ස්ථාපනය සිහින් වන අතර බරපතල යැපීම් අමතර දේ පිටුපස සඟවයි: smolvla ට්‍රාන්ස්ෆෝමර්, num2words සහ accelerate එකතු කරයි, training දත්ත කට්ටල ස්ටැක් එක සහ wandb, core_scripts දෘඪාංග සහ දෘශ්‍යකරණ යැපීම්. ලිනක්ස් මත ස්ථාපන මාර්ගය ඔබේ CUDA wheel එක ද තීරණය කරයි: PyPI පෙරනිමිය 580.65 ක ධාවක අවමයක් සහිත cu130 wheel එකකි, එබැවින් පැරණි ධාවකයක් මත cu128 index එකෙන් මුලින්ම torch ස්ථාපනය කර, පසුව 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 යොමු කරන්න. ඔබ නැවත ආරම්භ කරන්නේ නම් මිස, පවතින output_dir එකකට ඇතුළු වීමට lerobot ප්‍රතික්ෂේප කරයි, එබැවින් ඔබට අහම්බෙන් ධාවනයක් උඩින් ලිවිය නොහැක.

    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
--num_workersඩේටාලෝඩර් ක්‍රියාවලි, පෙරනිමිය 4data_s ඉහළ යාම නතර වන තුරු වැඩි කරන්න
--dataset.eval_splitකාර්යයකට වෙන් කරන ලද කථාංගවල කොටස0.1, with --eval_steps
--policy.freeze_vision_encoderදෘශ්‍ය කුළුණ ශීත කළ තත්වයේ තබා ගනී24 GB මත true
--policy.train_expert_onlyමිලියන 100 ක පමණ විශේෂඥයාට පමණක් ග්‍රේඩියන්ට් ලැබේමුලින් true
කාලසටහන: 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
batch_size / පියවර8 / 100000TrainPipelineConfig
seed / සුරැකීමේ සංඛ්‍යාතය / num_workers1000 / 20000 / 4TrainPipelineConfig

මිනිසුන් පුදුමයට පත් කරන පේළි දෙක වන්නේ freeze_vision_encoder සහ train_expert_only, දෙකම සත්‍ය වේ. පෙට්ටියෙන් පිටත, ඔබ දළ වශයෙන් 100 M පරාමිති පුහුණු කරයි, 450 M නොවේ, ඒ නිසා එය 24 GB මත ගැලපේ. LeRobot හිම හතර-GPU H100 පොකුරක් මත සිදු කරන ලද යොමු ධාවනය දෙකම අසත්‍ය බවට පත් කරයි; එක් 24 GB කාඩ්පතක් මත එය ක්‍රියාකාරී ධාවනයක් බවට පත් කරයි .

එහි නොමැති මතක පාලකය

ඔබ මතක සීමාවන්ට යටත් වන විට, මාර්ගෝපදේශයේ උපදෙස් වන්නේ batch size අඩු කර ඵලදායී batch එක නැවත ලබා ගැනීමට gradient accumulation භාවිතා කිරීමයි. lerobot 0.6.1 හි gradient accumulation නොමැත: TrainPipelineConfig එවැනි ක්ෂේත්‍රයක් නොමැති අතර නිකුත් කරන ලද පැකේජයේ මෙම string එක කොතැනකවත් නොපෙන්වයි. AY-Robots පෝරමය SmolVLA සඳහා 8 ක gradient accumulation අගයක් පෙන්වන අතර එයද අදාළ නොකරයි. 24 GB මත ඔබේ පාලකයන් වන්නේ --batch_size, freeze defaults දෙක, සහ --policy.use_amp.

ධාවනයට ගතවන කාලය සහ ප්‍රමාණවත් පියවර ගණන

LeRobot දළ වශයෙන් 50 කථාංග දත්ත කට්ටලයක් මත epoch පහක් සඳහා wall-clock anchors ප්‍රකාශයට පත් කරයි, එය 30 fps හි රාමු 45000 ක් පමණ වේ. ලේඛනවලට අනුව, මේවා විශාලත්වයේ අනුපිළිවෙලෙහි සංඛ්‍යා වේ, නමුත් ඒවා පැයක් සහ දවසක් අපේක්ෂා කිරීම අතර වෙනසයි.

සැකසුමප්‍රතිපත්තියකණ්ඩායමසැබෑ කාලය
Single L4 / A10G (24 GB)smolvla4පැය 3 සිට 6 දක්වා පමණ
Single A100 40 GBsmolvla16පැය 1 සිට 2 දක්වා පමණ
4 x H100 80 GB with acceleratesmolvla32පැය 1 සිට 2 දක්වා පමණ
Single RTX 4090 / RTX 3090 (24 GB)act8විනාඩි 30 සිට 60 දක්වා පමණ
--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 වැරදි ලෙස කියවීම පහසුය: ප්‍රතිපත්තිය නිකුත් කරයි chunk_size = 50 ඉදිරි ගමන් වාරයකට ක්‍රියා සහ ක්‍රියාත්මක කරයි n_action_steps = 50 ඒවායින්, එබැවින් ඔබ එම පිරිවැය ගෙවන වාර ගණන තීරණය වන්නේ එම පාලක මගින් මිස සර්වෝ වලට විධානයක් ලැබෙන වාර ගණනින් නොවේ. එයයි ක්‍රියා ඛණ්ඩනය ලබා දෙන්නේ, සහ මිලි තත්පර 245ක ආකෘතියකට 30 Hz අතක් ධාවනය කළ හැක්කේ එබැවිනි. ඉතිරිව ඇත්තේ අනුමාන ප්‍රමාදය ඛණ්ඩයේ අවසානයේ ය.

මිනුම් (SmolVLA, සැබෑ SO-100)සමමුහුර්තඅසමමුහුර්ත
සම්පූර්ණ කිරීමේ කාලය, තෝරා තැබීම, අත්හදා බැලීම් 1013.75 s9.70 s
නියමිත කාල කවුළුවක් තුළ තෝරා තැබීමේ චක්‍ර919
කාර්යයන් තුන පුරා සාමාන්‍ය සාර්ථකත්ව අනුපාතය78.3 %73.3 %

එම තුන්වන පේළිය බොහෝ ලිපි මඟ හරින දෙයකි. අසමමුහුර්ත අනුමානය 30% කින් පමණ වේගවත් වන අතර නියමිත කවුළුවක් තුළ ඵලදායිතාව දළ වශයෙන් දෙගුණ කරයි, තවද පත්‍රිකාව සාර්ථකත්ව අනුපාත සැසඳිය හැකි බව පවසයි, සාමාන්‍යයෙන් ඒවා එසේ වේ. ඊට යටින්, වර්ග කිරීම 70 සිට 50 දක්වා අඩු වූ අතර තෝරා තැබීම 5 කින් වැඩි විය. lerobot 0.6.1 එකම ද්විමය තුළ අනෙක් ලීවරය දරයි: --inference.type=rtc එය rollout එක real time chunking වෙත මාරු කරයි, එය script එකේම භාවිත කොටස මන්දගාමී VLAs, Pi0, Pi0.5 සහ SmolVLA සඳහා නිර්දේශ කරයි.

අනුමානය සර්වෝ අසල තිබිය යුතුය

පාලන ලූපය ආකෘතිය අනුව ක්‍රියා පියවරකට මිලි තත්පර 20 සිට 485 දක්වා වේ, සහ පොදු අන්තර්ජාල වට සංචාර ඊට ඉහළින් ක්‍රියාකාරී ප්‍රතිපත්තියක් පැකිලෙන එකක් බවට පත් කරයි. දුරස්ථ අනුමානය මන්දගාමී තෝරා තැබීම සඳහා ශක්‍ය වේ, වේගවත් ප්‍රතික්‍රියාශීලී චලනය සඳහා නොවේ: කාර්යයට ඉක්මන් නිවැරදි කිරීම් අවශ්‍ය නම්, 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 වැරදි තේරීමක් වන විට

SmolVLA නිවැරදි පළමු ධාවනයද යන්න පරීක්ෂා කිරීම එය ක්‍රියාත්මක වූවාද යන්න මත නොව, අසාර්ථකත්වය ඔබට යමක් කීවාද යන්න මතය. 60 හෝ 70 ප්‍රතිශතයක් කරා ළඟා වුවහොත්, විශාල ආකෘතියක් ඊළඟට වියදම් කිරීමට සාධාරණ වේ: දත්ත සංඥා රැගෙන යයි. 10 ප්‍රතිශතයක් කරා ළඟා වුවහොත්, 3 B ආකෘතියක් ද බොහෝ විට 10 ප්‍රතිශතයක් කරා ළඟා වන අතර, එය ඔබ ඩොලර් දොළහක් වෙනුවට ඩොලර් තුනකට ඉගෙන ගත්තා.

AY-Robots පුහුණු අනුකෘතිය: පේළි ලෙස ප්‍රතිපත්ති පහක්, තීරු ලෙස රොබෝ අත් හතරක්
සෑම සෛලයක්ම තමන්ගේම මාර්ගෝපදේශයකි. SmolVLA සතුව අත් හතරෙන් එක බැගින් ඇත.

වැඩිපුර වියදම් කිරීමට පෙර කියවීම වටී: Pi0.5 එදිරිව SmolVLA එකම අදහස මත වැඩි ධාරිතාවක් සඳහා, සහ GR00T N1.7 එදිරිව SmolVLA NVIDIA මාර්ගය සඳහා, දෙකම ධාවනයකට 4 සිට 12 USD දක්වා 80 GB ස්ථරයකින් යුක්ත වේ. අනෙක් අතට, 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. ඔබ seed එක සටහන් කර ගත්තාද? lerobot පෙරනිමියෙන් 1000 ට සකසා ඇත, එබැවින් ස්පර්ශ නොකළ ධාවන දෙකක් සැසඳිය හැකිව පවතී.
  6. එවිට පමණි: තවත් කථාංග, තවත් විචලනයන්, හෝ විශාල ආකෘතියක්. එම අනුපිළිවෙලින්.

මෙම ආකෘති පවතින හේතුව සහ භාෂා ආදානය සමඟ ඒවා කරන්නේ කුමක්ද යන්න සඳහා, පසුබිම වේ; එකලස් කිරීම සිදු කරයි සිට පළමු ධාවනය දක්වා. නිම කළ පරීක්ෂණ ලක්ෂ්‍යය සඳහා, ; අත කිසි විටෙකත් නොපෙන්වන්නේ නම්, .

ඔබේම අත මත SmolVLA පුහුණු කරන්න

ආකෘතිය සහ අත තෝරන්න, එවිට මාර්ගෝපදේශය ඔබට නිශ්චිත පෙරනිමි අගයන්, දත්ත කට්ටල ආකෘතිය සහ ධාවනය සඳහා වන පිරිවැය ලබා දෙනු ඇත. SmolVLA 24 GB ස්ථරයේ, එක් ධාවනයකට 1 සිට 3 USD දක්වා පිරිවැයක් දරයි.

පුහුණු මාර්ගෝපදේශ විවෘත කරන්න
RTX 4090 එකක SmolVLA fine-tune කරන්න පුළුවන්ද?

ඔව්. LeRobot's compute guide එකට අනුව SmolVLA, AdamW සමඟ batch 8 දී 10 සිට 16 GB දක්වා උපරිම VRAM ප්‍රමාණයක් භාවිතා කරන අතර, 24 GB පාරිභෝගික කාඩ්පත් ඒ සඳහා පහසු බව සඳහන් කරයි. docs උදාහරණයේ batch 64 තනි A100 එකක් සමඟ යුගල කර ඇත. මතකය batch සමඟ දළ වශයෙන් රේඛීයව පරිමාණය වන බැවින්, 4 හෝ 8 භාවිතා කර mem_gb නිරීක්ෂණය කරන්න.

මට ඇත්තටම කීයක් episodes අවශ්‍යද?

AY-Robots අවම වශයෙන් 30ක් නියම කරයි. LeRobot docs 50ක් පමණ නිර්දේශ කරන අතර, එකම කාර්යයේ episodes 25ක් දුර්වල ලෙස ක්‍රියා කළ බව වාර්තා කරයි. ව්‍යුහය ගණනට වඩා වැදගත් වේ: යොමු කට්ටලය එක් එක් episodes 10ක් සහිත ඝනක ස්ථාන 5ක් වූ අතර, එම පුනරාවර්තනය සාමාන්‍යකරණය වීමට හේතු වේ.

docs වල batch 64 කියනවා, platform එක batch 2 යවනවා. මොකක්ද නිවැරදි?

දෙකම, විවිධ දෘඪාංග සඳහා. docs උදාහරණයේ batch 64 භාවිතා කරන අතර, තනි A100 එකක steps 20000ක් සඳහා පැය 4ක් පමණ ගතවන බව සඳහන් කරයි; compute guide හි A100 40 GB anchor එක batch 16 වේ. AY-Robots 24 GB tier එකේ යවන්නේ batch 2 යි. දේශීයව 4 සිට 8 දක්වා මැද වන අතර, epoch ගණනය කිරීම් ඒ සමඟ වෙනස් වේ.

SO-100 එකක පළමු ධාවනය සඳහා SmolVLA ද ACT ද?

කාර්යය එක් පුනරාවර්තන චලනයක් නම් සහ ඔබට වේගවත්ම loop එක අවශ්‍ය නම් ACT: එක් ක්‍රියා පියවරකට 20 ms, පරාමිති 80 M, භාෂා තත්ත්වයන් නොමැත. ඔබට භාෂා තත්ත්වයන්, එක් checkpoint එකක කාර්ය තන්තු කිහිපයක් සහ pretrained base එකක් අවශ්‍ය නම් SmolVLA. දෙකම 24 GB tier එක මත පවතින බැවින්, තේරීම කාර්යය මත මිස අයවැය මත නොවේ.

--policy.scheduler_decay_steps සැකසිය යුතුද?

--steps 30000 ට වඩා වැඩි වූ විට පමණි. SmolVLA cosine decay 30000 steps වලදී පෙරසිටුවන අතර, lerobot 0.6.1 කෙටි ධාවනයක් සඳහා එය ස්වයංක්‍රීයව පහළට පරිමාණය කරයි, එසේ කරන විට "Auto-scaling LR scheduler" ලෙස ලොග් කරයි. එය කිසි විටෙක ඉහළට පරිමාණය නොකරන බැවින්, stock --steps=100000 අවසාන steps 70000 2.5e-6 floor එක මත තබයි.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started