
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 M | paper |
| ක්රියා විශේෂඥයා | about 100 M, flow matching | paper |
| VLM ප්රධාන පදනම | HuggingFaceTB/SmolVLM2-500M-Video-Instruct | vlm_model_name |
| භාවිතා කළ VLM ස්ථර | first 16 of the language model | num_vlm_layers = 16 |
| රාමුවකට දෘශ්ය ටෝකන | 64, pixel shuffle, no tiling | paper |
| පූර්ව පුහුණුව | 481 community datasets, 22.9 K episodes, 10.6 M frames; 200000 steps at global batch 256 on 4 GPUs | paper |
මිලියන 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 |
|---|---|---|---|
| සැහැල්ලු BC | act, vqbet, tdmpc | ආසන්න වශයෙන් 2 සිට 6 GB | RTX 3060, L4 |
| විසරණය | diffusion, multi_task_dit | ආසන්න වශයෙන් 8 සිට 14 GB | RTX 4070+, L4 |
| කුඩා VLA | smolvla | ආසන්න වශයෙන් 10 සිට 16 GB | RTX 4080+, L4, A10G |
| විශාල VLA | pi0, pi0_fast, pi05, xvla, wall_x | ආසන්න වශයෙන් 24 සිට 40 GB | A100 40 GB+ |
| බහුමාදිලි | groot, eo1 | ආසන්න වශයෙන් 24 සිට 40 GB | A100 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 ධාවනයක්, දිවා ආහාරයකි.

- ඔබට දැනටමත් හිමි විය හැකි දෘඪාංග වලට ගැලපේ: 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 ප්රතික්ෂේප කරන ලදී.
# 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මේ පිළිබඳ වැඩි විස්තර උසස් තත්ත්වයේ VLA පුහුණු දත්ත එකතු කරන්නේ කෙසේද. කෙටි අනුවාදය: හිතාමතා විචලනයන් සහිත එක් කාර්යයක පිරිසිදු කථාංග 30 සිට 50 දක්වා, හයිපර්පරාමීටරයකින් වසා දැමිය නොහැකි තරම් විශාල පරතරයකින්, කාර්යයන් තුනක අවුල් සහගත කථාංග 200ක් පරදවයි.
lerobot 0.6.1 ස්ථාපනය කරන්න
# 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මූලික lerobot ස්ථාපනය සිහින් වන අතර බරපතල යැපීම් අමතර දේ පිටුපස සඟවයි: smolvla ට්රාන්ස්ෆෝමර්, num2words සහ accelerate එකතු කරයි, training දත්ත කට්ටල ස්ටැක් එක සහ wandb, core_scripts දෘඪාංග සහ දෘශ්යකරණ යැපීම්. ලිනක්ස් මත ස්ථාපන මාර්ගය ඔබේ CUDA wheel එක ද තීරණය කරයි: PyPI පෙරනිමිය 580.65 ක ධාවක අවමයක් සහිත cu130 wheel එකකි, එබැවින් පැරණි ධාවකයක් මත cu128 index එකෙන් මුලින්ම torch ස්ථාපනය කර, පසුව lerobot ස්ථාපනය කරන්න.
--policy.path=lerobot/smolvla_base පෙර පුහුණු කරන ලද 450 M චෙක්පොයින්ට් එක පූරණය කර එය සියුම්ව සුසර කරයි. --policy.type=smolvla නව SmolVLA එකක් ගොඩනඟයි, සහ වින්යාස පෙරනිමි load_vlm_weights = False යන්නෙන් අදහස් වන්නේ ඔබ ඉල්ලන තුරු එය SmolVLM2 බැක්බෝන් බර පවා ලබා නොගන්නා බවයි. එය වැරදි ලෙස සිදු කළහොත්, ධාවනය සාර්ථකව පුහුණු වන අතර, එකම පිරිවැයක් දරන අතර, මාරු කළ හැකි කිසිවක් ඉගෙන නොගනී.
පුහුණු කිරීමේ ක්රියාවලිය, විධානයෙන් විධානයට
- 1හබ් එකට එරෙහිව සත්යාපනය කරන්න
මූලික චෙක්පොයින්ට් එක හබ් එකෙන් ලැබෙන අතර, ඔබේ දත්ත කට්ටලයද බොහෝ විට එසේම වේ.
bashhf auth login - 2විකල්ප එක් වරක් කියවන්න
පයිප්ලයින් සහ ප්රතිපත්ති වින්යාසයේ සෑම ක්ෂේත්රයක්ම ධජයකි. මූලාශ්රය ගැඹුරින් පරීක්ෂා කිරීමට පෙර එය ඉක්මනින් කියවන්න.
bashlerobot-train --help - 3ෆයින්-ටියුන් කිරීම ආරම්භ කරන්න
ලේඛන උදාහරණය තනි A100 එකක 64 ක කණ්ඩායමක් ධාවනය කරයි; පරිගණක මාර්ගෝපදේශයේ A100 40 GB ඇන්කර් එක 16 ක කණ්ඩායමක් වන අතර, 8 යනු 24 GB ට සමාන වේ. මෙහිදී ස්කෙඩියුලර් ධජයක් හිතාමතාම නැත, පහත බලන්න.
bashlerobot-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ලොග් රේඛාව කියවන්න, පාඩුව පමණක් නොවේ
සෑම --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සසඳා බැලිය හැකි චෙක්පොයින්ට් එකතු කරන්න
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යන්ත්රය ක්රියා විරහිත වුවහොත් නැවත ආරම්භ කරන්න
චෙක්පොයින්ට් එක අසල ඇති train_config.json වෙත --config_path යොමු කරන්න. ඔබ නැවත ආරම්භ කරන්නේ නම් මිස, පවතින output_dir එකකට ඇතුළු වීමට lerobot ප්රතික්ෂේප කරයි, එබැවින් ඔබට අහම්බෙන් ධාවනයක් උඩින් ලිවිය නොහැක.
bashlerobot-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 | කොසයින් ක්ෂය වීමේ දිග, පෙරසිටුව 30000 | Only bites above 30000 |
| --policy.use_amp | මිශ්ර නිරවද්යතාව; SmolVLA හි dtype ක්ෂේත්රයක් නොමැත | මතකය සීමිත විට true |
| --num_workers | ඩේටාලෝඩර් ක්රියාවලි, පෙරනිමිය 4 | data_s ඉහළ යාම නතර වන තුරු වැඩි කරන්න |
| --dataset.eval_split | කාර්යයකට වෙන් කරන ලද කථාංගවල කොටස | 0.1, with --eval_steps |
| --policy.freeze_vision_encoder | දෘශ්ය කුළුණ ශීත කළ තත්වයේ තබා ගනී | 24 GB මත true |
| --policy.train_expert_only | මිලියන 100 ක පමණ විශේෂඥයාට පමණක් ග්රේඩියන්ට් ලැබේ | මුලින් true |
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_steps | 50 / 50 | SmolVLAConfig |
| num_steps (ප්රවාහ ගැලපීම ඉවත් කිරීම) | 10 | SmolVLAConfig |
| optimizer_lr | 1e-4 | SmolVLAConfig |
| scheduler_warmup_steps | 1000 | SmolVLAConfig |
| scheduler_decay_steps | 30000 | SmolVLAConfig |
| scheduler_decay_lr | 2.5e-6 | SmolVLAConfig |
| දෘශ්ය කේතකය කැටි කරන්න | true | SmolVLAConfig |
| විශේෂඥයා පමණක් පුහුණු කරන්න | true | SmolVLAConfig |
| batch_size / පියවර | 8 / 100000 | TrainPipelineConfig |
| seed / සුරැකීමේ සංඛ්යාතය / num_workers | 1000 / 20000 / 4 | TrainPipelineConfig |
මිනිසුන් පුදුමයට පත් කරන පේළි දෙක වන්නේ 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) | smolvla | 4 | පැය 3 සිට 6 දක්වා පමණ |
| Single A100 40 GB | smolvla | 16 | පැය 1 සිට 2 දක්වා පමණ |
| 4 x H100 80 GB with accelerate | smolvla | 32 | පැය 1 සිට 2 දක්වා පමණ |
| Single RTX 4090 / RTX 3090 (24 GB) | act | 8 | විනාඩි 30 සිට 60 දක්වා පමණ |
නීතිය වන්නේ දත්ත කට්ටලය පුරා යුග 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 වෙනස් කරන සෑම විටම මෙය නැවත කරන්න.
සියුම්ව සකස් කරන ලද ප්රතිපත්තිය නැවත රොබෝ අත මත ක්රියාත්මක කිරීම
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) | සමමුහුර්ත | අසමමුහුර්ත |
|---|---|---|
| සම්පූර්ණ කිරීමේ කාලය, තෝරා තැබීම, අත්හදා බැලීම් 10 | 13.75 s | 9.70 s |
| නියමිත කාල කවුළුවක් තුළ තෝරා තැබීමේ චක්ර | 9 | 19 |
| කාර්යයන් තුන පුරා සාමාන්ය සාර්ථකත්ව අනුපාතය | 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 එකක තිබිය යුතුය.
එකම චෙක්පොයින්ට් එකට මාර්ග දෙකක්
ඔබ යන්ත්රය, පරිසරය සහ දෝෂ නිවැරදි කිරීමේ හිමිකරු වේ. එකම ක්ලවුඩ් යැපීම වන්නේ මූලික චෙක්පොයින්ට් එකේ හබ් බාගත කිරීමයි. ඔබට ප්රතිපත්තිය වෙනස් කිරීමට අවශ්ය නම්, දත්ත ඔබේ ජාලයෙන් පිටතට යා නොහැකි නම්, හෝ කාඩ්පත අක්රියව තිබේ නම් මෙය නිවැරදි මාර්ගයයි.
- ඔබ CUDA රෝදය, ධාවකය, ffmpeg ගොඩනැගීම සහ දත්ත පැටවුම පාලනය කරයි.
- ඔබට configuration_smolvla.py පැච් කර එදිනම සවස නැවත පුහුණු කළ හැක.
- ඔබ ගෙවන්නේ විදුලියට සහ කාලයට මිස ධාවනයකට නොවේ, තවද TorchCodec ඔබම නිදොස් කරන්න.
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ආකෘතියක් පිටුපස ඇති එකම ධාවනය: ඔබ ආකෘතිය සහ දත්ත කට්ටලය තෝරා ගනී, පසුබිම අවශ්ය VRAM අනුව GPU එකක් කුලියට ගනී, පුහුණුකරු ධාවනය කර චෙක්පොයින්ට් වස්තු ගබඩාවට ලියයි. දත්ත කට්ටලය Hugging Face repo id එකකින්, පොදු නැමති නාමාවලියෙන්, හෝ ඔබේ යන්ත්රයෙන් පැමිණිය හැක. ආරම්භ කරන්න SO-100 මත SmolVLA, හෝ පුහුණු පිටුවේ ඇති matrix එකෙන්.
| ක්ෂේත්රය | SmolVLA සඳහා වේදිකාව යවන පෙරනිමි අගය | සටහන |
|---|---|---|
| batch size | 2 | 24 GB ස්ථරය සඳහා ගතානුගතික |
| learning rate | 1e-4 | lerobot පෙරසිටුව |
| max steps | 20000 | LeRobot ලේඛනවල ඇති යොමු ධාවනය |
| gradient accumulation | 8 | ආකෘතියේ පෙන්වා ඇත, නමුත් යොදවා නැත |
| extra knobs | seed, logFreq | Seed මඟින් ධාවනය නැවත කළ හැකි වේ |
- 24 GB ස්ථරයේ පැය 2 සිට 5 දක්වා, ධාවනයකට දළ වශයෙන් 1 සිට 3 USD.
- /cli හි පර්යන්තයකින් සහ /mcp හි AI නියෝජිතයන්ගෙන් එකම මෙහෙයුම්.
- අනුමාන පොඩ්ස් අක්රිය වොච්ඩෝග් එකක් රැගෙන යයි, එබැවින් අමතක වූ පොඩ් එකක් නිහඬව බිල්පත් කිරීම වෙනුවට තමන්වම විනාශ කර ගනී.
- තවම අතක් නැද්ද? /live මඟින් ඔබට ලියාපදිංචි නොවී ධාවනය කළ හැකි භෞතික SO-100 එකක් සජීවීව විකාශනය කරයි.
පෝලිමේ සිරවී ඇති කාර්යයක් යනු දෝෂයක් නොව, ස්පොට් වෙළඳපල රෝග ලක්ෂණයකි: පුහුණු කාර්යය පෝලිමේ සිරවී ඇත. පියවරෙන් පියවර: ඔබේ පළමු ප්රතිපත්තිය පුහුණු කරන්න සහ පුහුණු ලේඛන.
SmolVLA වැරදි තේරීමක් වන විට
SmolVLA නිවැරදි පළමු ධාවනයද යන්න පරීක්ෂා කිරීම එය ක්රියාත්මක වූවාද යන්න මත නොව, අසාර්ථකත්වය ඔබට යමක් කීවාද යන්න මතය. 60 හෝ 70 ප්රතිශතයක් කරා ළඟා වුවහොත්, විශාල ආකෘතියක් ඊළඟට වියදම් කිරීමට සාධාරණ වේ: දත්ත සංඥා රැගෙන යයි. 10 ප්රතිශතයක් කරා ළඟා වුවහොත්, 3 B ආකෘතියක් ද බොහෝ විට 10 ප්රතිශතයක් කරා ළඟා වන අතර, එය ඔබ ඩොලර් දොළහක් වෙනුවට ඩොලර් තුනකට ඉගෙන ගත්තා.

වැඩිපුර වියදම් කිරීමට පෙර කියවීම වටී: Pi0.5 එදිරිව SmolVLA එකම අදහස මත වැඩි ධාරිතාවක් සඳහා, සහ GR00T N1.7 එදිරිව SmolVLA NVIDIA මාර්ගය සඳහා, දෙකම ධාවනයකට 4 සිට 12 USD දක්වා 80 GB ස්ථරයකින් යුක්ත වේ. අනෙක් අතට, ACT යනු ලාභදායී මූලික රේඛාවයි: 80 M පරාමිති, ක්රියාකාරී පියවරකට 20 ms, භාෂා තත්ත්වකරණයකින් තොරව. පහම පිහිටා ඇත්තේ ප්රතිපත්ති පිටුවෙහි; අරීනාවෙහි ආකෘති 85ක් සහ මිණුම් සලකුණු ප්රතිඵල 332ක් ඇත.

ඔබ යමක් පරිමාණය කිරීමට පෙර පරීක්ෂා කළ යුතු දේ
- `lr` එහි 2.5e-6 අවම අගයට ළඟා වූවාද? පියවර 30000 ට අඩු විට lerobot ක්ෂය වීම නැවත පරිමාණය කර ආරම්භයේදී එය පවසයි; ඊට ඉහළින්,
--policy.scheduler_decay_stepsඔබම සකසන්න. - එක් පරීක්ෂණ ලක්ෂ්යයකට වඩා, සහ
--dataset.eval_splitසමඟින් වෙන් කර ඇති කථාංග, එවිට ඇගයීම් අලාභයට යම් තේරුමක් ඇත. - ප්රතිපත්තිය කිසිසේත් චලනය වේද? චලනය නොවන අතක් සමඟ අලාභය අඩුවීම සඳහා නිශ්චිත හේතු ඇත: අලාභය අඩු වේ, ප්රතිපත්තිය කිසිවක් නොකරයි.
- එය දර්ශනයක් වෙනස් කිරීමෙන් පසුවත් ක්රියාත්මක වේද? එසේ නොවේ නම්: ප්රතිපත්තිය ක්රියා කරන්නේ එක් සැකසුමක පමණි.
- ඔබ seed එක සටහන් කර ගත්තාද? lerobot පෙරනිමියෙන් 1000 ට සකසා ඇත, එබැවින් ස්පර්ශ නොකළ ධාවන දෙකක් සැසඳිය හැකිව පවතී.
- එවිට පමණි: තවත් කථාංග, තවත් විචලනයන්, හෝ විශාල ආකෘතියක්. එම අනුපිළිවෙලින්.
මෙම ආකෘති පවතින හේතුව සහ භාෂා ආදානය සමඟ ඒවා කරන්නේ කුමක්ද යන්න සඳහා, පසුබිම වේ; එකලස් කිරීම සිදු කරයි සිට පළමු ධාවනය දක්වා. නිම කළ පරීක්ෂණ ලක්ෂ්යය සඳහා, ; අත කිසි විටෙකත් නොපෙන්වන්නේ නම්, .
ඔබේම අත මත 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 එක මත තබයි.
Sources
- SmolVLA: දැරිය හැකි සහ කාර්යක්ෂම රොබෝ විද්යාව සඳහා දෘශ්ය-භාෂා-ක්රියා ආකෘතියක්
- SmolVLA: කාර්යක්ෂම දෘශ්ය-භාෂා-ක්රියා ආකෘතිය (Hugging Face blog)
- lerobot/smolvla_base model card
- LeRobot docs: SmolVLA
- LeRobot docs: LeRobot පුහුණුව සඳහා Compute HW මාර්ගෝපදේශය
- LeRobot docs: ස්ථාපනය
- LeRobot docs: LeRobotDataset v3.0 සහ v2.1 පරිවර්තකය
- LeRobot docs: අසමමුහුර්ත අනුමානය
- lerobot v0.6.1: configuration_smolvla.py
- lerobot v0.6.1: TrainPipelineConfig
- lerobot v0.6.1: CosineDecayWithWarmupSchedulerConfig
- lerobot v0.6.1: lerobot_rollout.py (උපාය මාර්ග සහ RTC අනුමානය)
- lerobot v0.6.1: pyproject.toml (extras සහ console entry points)
- PyPI මත lerobot
- lerobot/svla_so100_pickplace dataset (episodes 50, frames 19631, v3.0)
Sources
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
- SmolVLA: Efficient Vision-Language-Action Model (Hugging Face blog)
- lerobot/smolvla_base model card
- LeRobot docs: SmolVLA
- LeRobot docs: Compute HW Guide for LeRobot Training
- LeRobot docs: Installation
- LeRobot docs: LeRobotDataset v3.0 and the v2.1 converter
- LeRobot docs: Asynchronous Inference
- lerobot v0.6.1: configuration_smolvla.py
- lerobot v0.6.1: TrainPipelineConfig
- lerobot v0.6.1: CosineDecayWithWarmupSchedulerConfig
- lerobot v0.6.1: lerobot_rollout.py (strategies and RTC inference)
- lerobot v0.6.1: pyproject.toml (extras and console entry points)
- lerobot on PyPI
- lerobot/svla_so100_pickplace dataset (50 episodes, 19631 frames, v3.0)
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started