Strona modelu SmolVLA na AY-Robots pokazująca liczbę parametrów, poziom GPU, opóźnienie wnioskowania na krok akcji oraz minimalną liczbę epizodów
SmolVLALeRobotTrening VLADostrajanieSO-100

Jak trenować SmolVLA na karcie graficznej 24 GB (lerobot 0.6.1)

AY-Robots ResearchAugust 23, 202617 min czytania

SmolVLA to VLA z 450 milionami parametrów, które można dostroić na pojedynczej karcie 24 GB. Prawdziwe komendy lerobot 0.6.1, rzeczywiste wartości domyślne, pułapki, które kosztują dzień pracy, oraz koszt uruchomienia.

SmolVLA na jednym ekranie

  • 450 M parametrów, z czego około 100 M to ekspert akcji dopasowujący przepływ. lerobot trenuje tylko tego eksperta i utrzymuje VLM w stanie zamrożonym, dlatego mieści się na jednej karcie.
  • Przewodnik obliczeniowy LeRobot szacuje grupę smolvla na około 10 do 16 GB szczytowej pamięci VRAM przy batchu 8 z AdamW. Stąd 24 GB.
  • Punktem wejścia jest lerobot-train. Post na blogu SmolVLA z czerwca 2025 roku nadal wyświetla python lerobot/scripts/train.py, ścieżkę, która już nie istnieje. Wszystko poniżej dotyczy lerobot 0.6.1.
  • Harmonogram cosinusowy jest wstępnie ustawiony na zanik w ciągu 30000 kroków. lerobot 0.6.1 skaluje to w dół dla krótszego przebiegu i loguje, ale nigdy w górę: standardowy przebieg 100000 kroków kończy się na poziomie 2.5e-6 przez 70000 kroków.
  • Trzydzieści epizodów to minimum AY-Robots, na poziomie 24 GB kosztującym 1 do 3 USD za uruchomienie w porównaniu do 4 do 12 dla modeli 80 GB.

Większość ludzi, którzy chcą modelu wizualno-językowo-akcyjnego na prawdziwym ramieniu, zatrzymuje się na linii sprzętowej. GR00T N1.7 i Pi0.5 mają po około trzy miliardy parametrów i wymagają A100 80 GB lub H100. Jeśli posiadasz komputer gamingowy z RTX 4090, to koniec drogi. SmolVLA jest wyjątkiem: 450 M parametrów, wewnątrz LeRobot, zbudowany do dostrajania na jednej karcie konsumenckiej i serwowania z procesora.

Najpierw droga manualna: zainstaluj lerobot, pobierz checkpoint lerobot/smolvla_base, uruchom prawdziwe polecenie, obserwuj przebieg. Następnie droga przez platformę i miejsca, gdzie nie pomaga.

Czym jest SmolVLA, w liczbach, które możesz sprawdzić

SmolVLA to dopasowywanie przepływu polityka zaimplementowana w małym wizyjnym modelu językowym. Podstawą jest SmolVLM2-500M-Video-Instruct; artykuł zachowuje tylko pierwsze 16 warstw jego modelu językowego, ogranicza każdą klatkę kamery do 64 tokenów wizualnych z przetasowaniem pikseli zamiast kafelkowania obrazu i przeplata uwagę krzyżową z warstwą uwagi własnej co drugi blok. Koszt wnioskowania był ograniczeniem projektowym, a nie kwestią drugorzędną.

WłaściwośćWartośćŹródło
Całkowita liczba parametrówabout 450 Mpaper
Ekspert akcjiabout 100 M, flow matchingpaper
Podstawa VLMHuggingFaceTB/SmolVLM2-500M-Video-Instructvlm_model_name
Użyte warstwy VLMfirst 16 of the language modelnum_vlm_layers = 16
Tokeny wizualne na klatkę64, pixel shuffle, no tilingpaper
Wstępne szkolenie481 community datasets, 22.9 K episodes, 10.6 M frames; 200000 steps at global batch 256 on 4 GPUspaper

Benchmarki są powodem, dla którego ludzie zawracają sobie głowę modelem 450 M. Na LIBERO osiąga średnio 87,3 procenta w porównaniu do 76,5 dla OpenVLA o rozmiarze 7 B i 86,0 dla wstępnie wytrenowanego w robotyce Pi0 o rozmiarze 3,3 B; na Meta-World, 57,3 w porównaniu do 47,9. Na rzeczywistym sprzęcie SO-100, szkolenie wielozadaniowe daje 75 procent w zadaniach typu pick and place, 90 w układaniu, 70 w sortowaniu, średnio 78,3, gdzie ACT wytrenowany dla każdego zadania osiągnął średnio 48,3. Te same wiersze znajdują się obok każdego opublikowanego VLA w wpisie SmolVLA do areny oraz w porównaniu ACT ze SmolVLA.

Uczciwa wersja twierdzenia o rozmiarze

SmolVLA nie jest lepszy od modelu 3 B we wszystkim. Własna tabela SO-101 z artykułu jest wymowna: 90 procent sukcesu w dystrybucji, 50 procent poza nią, na platformie, na której nigdy nie był wstępnie trenowany. To, co twierdzi i co potwierdza, to fakt, że w porównaniu do Pi0 trenuje się około 40 procent szybciej, zużywając 6 razy mniej pamięci.

Dlaczego karta 24 GB to dobry wybór na początek

LeRobot dostarcza przewodnik po rozmiarach obliczeniowych, najprzydatniejszą stronę w repozytorium w tym celu. Grupują one polityki według rozmiaru backbone i podają jedną kopertę VRAM na grupę, mierzoną przy rozmiarze wsadu 8 z AdamW, domyślnym dla lerobot. Sam stan optymalizatora dodaje od 30 do 100 procent w stosunku do samego przejścia w przód i w tył, więc nie są to wartości uwzględniające tylko wagi.

GrupaPolitykiSzczytowy VRAM (wsad 8, AdamW)Rekomendowane GPU
Lekkie BCact, vqbet, tdmpcabout 2 to 6 GBRTX 3060, L4
Dyfuzjadiffusion, multi_task_ditabout 8 to 14 GBRTX 4070+, L4
Małe VLAsmolvlaabout 10 to 16 GBRTX 4080+, L4, A10G
Duże VLApi0, pi0_fast, pi05, xvla, wall_xabout 24 to 40 GBA100 40 GB+
Wielomodalnegroot, eo1about 24 to 40 GBA100 40 GB+

Argumentem jest dziesięć do szesnastu gigabajtów przy rozmiarze wsadu 8: karta 24 GB mieści to plus dataloader. AY-Robots umieszcza SmolVLA na RTX 4090 lub dowolnej karcie 24 GB, minimum 30 epizodów, LeRobot v3.0 danych, 245 ms na krok akcji. Wynajęte, to jest od 2 do 5 godzin po 0.30 do 0.60 USD za godzinę, około 1 do 3 USD za dostrajanie uruchomienie, w porównaniu do 4 do 12 USD na poziomie 80 GB, którego potrzebują GR00T i Pi0.5 (cennik). Nieudane uruchomienie SmolVLA to koszt kawy; nieudane uruchomienie GR00T to koszt obiadu.

Tabela kosztów AY-Robots: karta na politykę, czas działania, cena za uruchomienie, potrzebne epizody
SmolVLA i ACT znajdują się w wierszu 24 GB, trzy modele 3 B w wierszu 80 GB.
Zaczynając ze SmolVLA zamiast modelu 3 B
Co zyskujesz
  • Pasuje do sprzętu, który możesz już posiadać: około 10 do 16 GB przy batch 8.
  • Zmarnowane uruchomienie kosztuje godziny i kilka dolarów, więc możesz pozwolić sobie na błąd w kwestii zbioru danych.
  • Wstępnie wytrenowany na zbiorach danych społeczności udostępnionych pod tagiem lerobot, z rzeczywistymi wynikami SO-100 i SO-101.
  • Żyje w samym lerobot: brak repozytorium dostawcy, a smolvla_base nie jest bramkowany.
Z czego rezygnujesz
  • 450 M to wciąż 450 M: sukces poza dystrybucją spada z 90 do 50 procent w tabeli SO-101 artykułu.
  • Wymaga danych LeRobot v3.0; nagranie v2.1 musi zostać przekonwertowane (dataset rejected v3).
  • 245 ms na krok akcji to kompetentny kontroler typu pick and place, a nie reaktywny.
  • Przykład z dokumentacji uruchamia batch 64 na A100; na 24 GB wymieniasz batch na czas rzeczywisty.

Krok 0: zbiór danych decyduje o uruchomieniu, a nie flagi

Nic poniżej nie ma znaczenia, jeśli nagranie jest złe. Strona LeRobot SmolVLA jest dosadna: referencyjny zbiór danych składał się z 50 epizodów w 5 pozycjach kostki, po 10 na pozycję, a to samo zadanie przy 25 epizodach wypadło źle. Powtórzenia na wariację uogólniają, surowa liczba epizodów nie. Nigdy nie nagrywałeś? Zacznij od nagrywania swojego pierwszego zbioru danych z klientem desktopowym, który zapisuje format LeRobot z sesji teleoperacji, lub pożycz jeden z katalogu zbiorów danych.

  • Co najmniej 30 epizodów na AY-Robots, około 50 dla referencyjnej receptury LeRobot.
  • Każda wariacja, której oczekujesz podczas wdrożenia, powtórzona kilkukrotnie.
  • Jeden ciąg zadania, zapisany identycznie w czasie nagrywania i wdrożenia. Model jest warunkowany tym tekstem.
  • Stałe kamery. Kamera przesunięta między nagrywaniem a wdrożeniem jest najczęstszym powodem, dla którego czysta krzywa strat daje nieruchome ramię.
  • Wydzielona wariacja, na której nigdy nie trenowałeś, aby mieć coś uczciwego do testowania.
Pułapka zbioru danych, która kosztuje dzień

SmolVLA, Pi0.5 i ACT wymagają LeRobot v3.0. GR00T N1.7 i N1.5 wymagają v2.0 lub v2.1, a ich ładowarka ulega awarii na v3.0. Nagraj raz, zaplanuj porównanie modeli później, a i tak będziesz musiał dokonać konwersji w jedną lub drugą stronę: zbiór danych odrzucił 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
Konwerter jest dostarczany w pakiecie lerobot, więc nie ma nic dodatkowego do instalowania. W pakiecie nie ma konwertera w drugą stronę.

Więcej na ten temat w jak zbierać wysokiej jakości dane treningowe VLA. Krótka wersja: 30 do 50 czystych epizodów jednego zadania z celową wariacją przewyższa 200 niedbałych epizodów trzech, z marginesem, którego żaden hiperparametr nie jest w stanie zamknąć.

Zainstaluj 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
Ścieżka PyPI. Aby załatać trener, sklonuj repozytorium i zamiast tego użyj pip install -e ".[smolvla,training]".

Podstawowa instalacja lerobot jest lekka i ukrywa ciężkie zależności za dodatkami: smolvla dodaje transformery, num2words i accelerate, training stos danych i wandb, core_scripts zależności sprzętowe i wizualizacyjne. Na Linuksie ścieżka instalacji decyduje również o wersji CUDA wheel: domyślna wersja PyPI to cu130 wheel z minimalną wersją sterownika 580.65, więc na starszym sterowniku najpierw zainstaluj torch z indeksu cu128, a następnie lerobot.

policy.path i policy.type to nie ta sama flaga

--policy.path=lerobot/smolvla_base ładuje wstępnie wytrenowany punkt kontrolny 450 M i dostraja go. --policy.type=smolvla buduje świeży SmolVLA, a domyślna konfiguracja load_vlm_weights = False oznacza, że nie pobiera nawet wag rdzenia SmolVLM2, chyba że o to poprosisz. Jeśli popełnisz błąd, uruchomienie będzie przebiegać pomyślnie, kosztować tyle samo i nie nauczy się niczego, co można by przenieść.

Przebieg szkolenia, komenda po komendzie

  1. 1
    Uwierzytelnij się w Hub

    Bazowy punkt kontrolny pochodzi z Hub, a Twój zestaw danych prawdopodobnie również.

    bash
    hf auth login
  2. 2
    Przeczytaj opcje raz

    Każde pole konfiguracji potoku i polityki jest flagą. Przejrzyj je, zanim zagłębisz się w kod źródłowy.

    bash
    lerobot-train --help
  3. 3
    Rozpocznij dostrajanie

    Przykład z dokumentacji uruchamia partię 64 na pojedynczym A100; własna kotwica A100 40 GB z przewodnika obliczeniowego to partia 16, a 8 to odpowiednik 24 GB. Celowo brak flagi harmonogramu, patrz poniżej.

    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
    Przeczytaj linię logu, nie tylko stratę

    Co --log_freq kroków lerobot wyświetla loss, grdn, lr, updt_s, data_s, smp/s oraz, na CUDA, mem_gb. mem_gb informuje, czy partia mieści się w pamięci, lr czy harmonogram zanika, a data_s zbliżające się do updt_s oznacza, że wąskim gardłem jest dataloader, a nie GPU.

    bash
    # if data_s creeps toward updt_s
    lerobot-train ... --num_workers=8
  5. 5
    Zbieraj punkty kontrolne, które możesz porównać

    save_freq domyślnie wynosi 20000, więc uruchomienie na 20000 kroków pozostawia jeden punkt kontrolny i nic do porównania. Ustaw 2000. Wypychanie do Hub wymaga --policy.repo_id.

    bash
    --save_freq=2000 \
    --policy.repo_id=${HF_USER}/smolvla_pick_place \
    --save_checkpoint_to_hub=true
  6. 6
    Wznów, jeśli maszyna się wyłączy

    Wskaż --config_path na train_config.json obok punktu kontrolnego. lerobot odmawia uruchomienia w istniejącym output_dir, chyba że wznawiasz, więc nie możesz przypadkowo nadpisać uruchomienia.

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

Flagi, które faktycznie zmieniają wynik

FlagaCo robiNa 24 GB
--batch_sizePróbki na krok, w przybliżeniu liniowe w VRAM4 do 8
--stepsCałkowita liczba kroków optymalizatora20000 pierwsze przejście
--policy.scheduler_decay_stepsDługość zaniku cosinusowego, domyślnie 30000Działa tylko powyżej 30000
--policy.use_ampMieszana precyzja; SmolVLA nie ma pola dtypetrue, gdy pamięć jest ograniczona
--num_workersProcesy dataloadera, domyślnie 4Zwiększaj, aż data_s przestanie rosnąć
--dataset.eval_splitUłamek epizodów wstrzymanych na zadanie0.1, z --eval_steps
--policy.freeze_vision_encoderUtrzymuje wieżę wizyjną zamrożonątrue na 24 GB
--policy.train_expert_onlyTylko ekspert ~100 M otrzymuje gradientytrue najpierw
Harmonogram: co obsługuje 0.6.1, a czego nie

SmolVLA domyślnie ustawia harmonogram cosinusowy: `scheduler_warmup_steps = 1000`, `scheduler_decay_steps = 30000`, `scheduler_decay_lr = 2.5e-6`. Starsze porady sugerują, że przebieg 20000 kroków zatrzymuje się w połowie zaniku. W wersji 0.6.1 tak się nie dzieje: `CosineDecayWithWarmupSchedulerConfig.build()` otrzymuje `--steps`, a poniżej `num_decay_steps` skaluje oba, rozgrzewkę z 1000 do 666 i zanik z 30000 do 20000, drukując przy tym Auto-scaling LR scheduler. Nigdy nie skaluje w górę: zanik jest ograniczony przez `min(current_step, decay_steps)`, więc domyślne `--steps=100000` pozostaje na minimalnym poziomie od kroku 30000 do końca, czyli przez 70 procent przebiegu. Tylko ta długa część nadal wymaga `--policy.scheduler_decay_steps`. Kolumna `lr` to miejsce, gdzie należy to sprawdzić.

Domyślne ustawienia, które dziedziczysz, jeśli niczego nie zmieniasz

Konfiguracja polityki w lerobot zawiera własny optymalizator i predefiniowany harmonogram, i chyba że ustawisz use_policy_training_preset=false te predefiniowane ustawienia mają pierwszeństwo. Połowa pytań, które ludzie zadają na temat treningu SmolVLA, znajduje odpowiedź w domyślnym ustawieniu, o którego istnieniu nie wiedzieli.

UstawienieDomyślne w lerobot 0.6.1Zdefiniowane w
rozmiar_fragmentu / liczba_kroków_akcji50 / 50SmolVLAConfig
liczba_kroków (odszumianie dopasowania przepływu)10SmolVLAConfig
współczynnik_uczenia_optymalizatora1e-4SmolVLAConfig
kroki_rozgrzewki_harmonogramu1000SmolVLAConfig
kroki_zaniku_harmonogramu30000SmolVLAConfig
współczynnik_uczenia_zaniku_harmonogramu2.5e-6SmolVLAConfig
zamroź_koder_wizyjnytrueSmolVLAConfig
trenuj_tylko_ekspertatrueSmolVLAConfig
rozmiar_paczki / kroki8 / 100000TrainPipelineConfig
ziarno / częstotliwość_zapisu / liczba_pracowników1000 / 20000 / 4TrainPipelineConfig

Dwie linie, które zaskakują ludzi, to freeze_vision_encoder i train_expert_only, obie ustawione na true. Domyślnie trenujesz około 100 M parametrów, a nie 450 M, dlatego mieści się to na 24 GB. Własne uruchomienie referencyjne LeRobot na klastrze czterech GPU H100 zmienia obie wartości na false; na jednej karcie 24 GB zamienia to działające uruchomienie w awarię z powodu braku pamięci.

Brakujące pokrętło pamięci

Porada przewodnika, gdy masz ograniczenia pamięciowe, to zmniejszenie rozmiaru partii (batch size) i użycie akumulacji gradientów, aby odzyskać efektywną partię. W lerobot 0.6.1 nie ma akumulacji gradientów: TrainPipelineConfig nie ma takiego pola, a ten ciąg znaków nie pojawia się nigdzie w wydanym pakiecie. Formularz AY-Robots pokazuje wartość akumulacji gradientów równą 8 dla SmolVLA i również jej nie stosuje. Twoje dźwignie na 24 GB to --batch_size, dwie domyślne opcje zamrażania i --policy.use_amp.

Ile trwa uruchomienie i ile kroków wystarczy

LeRobot publikuje punkty odniesienia czasu rzeczywistego dla pięciu epok na zbiorze danych składającym się z około 50 epizodów, około 45000 klatek przy 30 fps. Są to wartości rzędu wielkości, jak podają dokumenty, ale stanowią różnicę między oczekiwaniem godziny a dnia.

KonfiguracjaPolitykaPartiaCzas rzeczywisty
Pojedynczy L4 / A10G (24 GB)smolvla4about 3 to 6 h
Pojedynczy A100 40 GBsmolvla16about 1 to 2 h
4 x H100 80 GB z akceleracjąsmolvla32about 1 to 2 h
Pojedynczy RTX 4090 / RTX 3090 (24 GB)act8about 30 to 60 min
Wykonaj arytmetykę epok, zanim wybierzesz --steps

Zasada to 5 do 10 epok na zbiorze danych, a nie stała liczba kroków: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size)). Na referencyjnym zbiorze danych, na który wskazują dokumenty, lerobot/svla_so100_pickplace, metadane raportują 50 epizodów i 19631 klatek: partia 8 daje około 2454 kroków na epokę, więc 20000 kroków to w przybliżeniu 8 epok. Zmniejsz partię o połowę, a ten sam budżet kupi połowę epok, więc powtórz to za każdym razem, gdy zmienisz --batch_size.

Uruchamianie dostrojonej polityki z powrotem na ramieniu

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
Ciąg zadania musi odpowiadać temu, z którym nagrywałeś. Model jest warunkowany tym tekstem, więc parafraza to inna instrukcja.

245 ms na krok akcji łatwo źle zinterpretować: polityka emituje chunk_size = 50 akcji na jedno przejście do przodu i wykonuje n_action_steps = 50 z nich, więc to, jak często ponosisz ten koszt, jest ustalane przez te parametry, a nie przez to, jak często serwa otrzymują polecenie. To właśnie fragmentowanie akcji zapewnia i dlatego model 245 ms może sterować ramieniem 30 Hz. Pozostaje opóźnienie wnioskowania na koniec fragmentu.

Pomiar (SmolVLA, rzeczywisty SO-100)SynchronicznyAsynchroniczny
Czas ukończenia, podnieś i umieść, 10 prób13.75 s9.70 s
Cykle podnieś i umieść w stałym oknie czasowym919
Współczynnik sukcesu uśredniony dla trzech zadań78.3 %73.3 %

Ten trzeci wiersz to coś, co większość opracowań pomija. Asynchroniczne wnioskowanie jest o około 30 procent szybsze i z grubsza podwaja przepustowość w stałym oknie czasowym, a artykuł określa wskaźniki sukcesu jako porównywalne, co średnio jest prawdą. Pod tym, sortowanie spadło z 70 do 50 procent, podczas gdy podnoszenie i umieszczanie zyskało 5. lerobot 0.6.1 zawiera drugą dźwignię w tym samym pliku binarnym: --inference.type=rtc przełącza wykonanie na fragmentowanie w czasie rzeczywistym, co blok użycia skryptu zaleca dla wolnych VLA, Pi0, Pi0.5 i SmolVLA.

Wnioskowanie musi znajdować się obok serw

Pętla sterowania wynosi od 20 do 485 ms na krok akcji w zależności od modelu, a dodatkowe opóźnienia związane z przesyłem danych przez publiczny internet zamieniają działającą politykę w niepewną. Zdalne wnioskowanie jest wykonalne dla wolnego podnoszenia i umieszczania, ale nie dla szybkiego ruchu reaktywnego: jeśli zadanie wymaga szybkich korekt, GPU powinno znajdować się w tej samej sieci LAN co ramię.

7.4 V, nie 12 V

Nie na temat dla przebiegu szkoleniowego, ale to kończy więcej projektów SO-100 niż jakikolwiek hiperparametr. Serwa Feetech STS3215 w SO-100 i SO-101 działają na 7.4 V; 12 V je niszczy. LeKiwi łączy ramię 7.4 V z podstawą 12 V, co jest powodem, dla którego niewłaściwy wtyk zasilania trafia do niewłaściwego gniazda.

Dwie drogi do tego samego punktu kontrolnego

Jesteś właścicielem maszyny, środowiska i debugowania. Jedyną zależnością chmurową jest pobranie bazowego punktu kontrolnego z Hubu. Właściwa droga, jeśli chcesz zmodyfikować politykę, jeśli dane nie mogą opuścić Twojej sieci lub jeśli karta jest bezczynna.

  • Kontrolujesz stos CUDA, sterownik, kompilację ffmpeg i dataloader.
  • Możesz załatać configuration_smolvla.py i ponownie trenować tego samego popołudnia.
  • Płacisz za prąd i czas, nie za uruchomienie, i samodzielnie debugujesz 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
Cała ręczna trasa w jednym bloku, lerobot 0.6.1.

Kiedy SmolVLA jest złym wyborem

Testem na to, czy SmolVLA był właściwym pierwszym uruchomieniem, nie jest to, czy zadziałał, ale to, czy awaria czegoś cię nauczyła. Osiągnij 60 lub 70 procent, a większy model jest rozsądnym kolejnym wydatkiem: dane niosą sygnał. Osiągnij 10 procent, a model 3 B najprawdopodobniej również osiągnie 10 procent, czego właśnie nauczyłeś się za trzy dolary zamiast dwunastu.

Macierz treningowa AY-Robots: pięć polityk jako wiersze, cztery ramiona robota jako kolumny
Każda komórka jest swoim własnym przewodnikiem. SmolVLA ma jedną dla każdego z czterech ramion.

Warto przeczytać przed wydaniem więcej: Pi0.5 kontra SmolVLA dla większej pojemności na tej samej idei, oraz GR00T N1.7 kontra SmolVLA dla ścieżki NVIDIA, oba w tierze 80 GB za 4 do 12 USD za uruchomienie. Inna opcja, ACT to tańsza podstawa: 80 M parametrów, 20 ms na krok akcji, bez warunkowania językowego. Wszystkie pięć znajduje się na stronie polityk; arenie ma 85 modeli i 332 wyniki benchmarków.

Porównanie polityk AY-Robots: parametry, poziom GPU, opóźnienie, minimalna liczba epizodów
Cztery liczby, które decydują o uruchomieniu.

Lista kontrolna przed skalowaniem czegokolwiek

  1. Czy lr osiągnął swój dolny limit 2.5e-6? Poniżej 30000 kroków lerobot przeskalowuje zanik i informuje o tym przy uruchomieniu; powyżej, ustaw --policy.scheduler_decay_steps samodzielnie.
  2. Więcej niż jeden punkt kontrolny i epizody wyłączone z --dataset.eval_split, aby strata ewaluacyjna miała sens.
  3. Czy polityka w ogóle się porusza? Spadająca strata przy nieruchomym ramieniu ma konkretne przyczyny: strata spada, polityka nic nie robi.
  4. Czy przetrwa zmianę sceny? Jeśli nie: polityka działa tylko w jednej konfiguracji.
  5. Czy zapisałeś ziarno? lerobot domyślnie ustawia 1000, więc dwa nietknięte uruchomienia pozostają porównywalne.
  6. Tylko wtedy: więcej epizodów, więcej wariacji lub większy model. W tej kolejności.

Aby dowiedzieć się, dlaczego te modele istnieją i co robią z danymi językowymi, to podstawa; przeprowadza montaż poprzez do pierwszego uruchomienia . Aby uruchomić ukończony punkt kontrolny, ; jeśli ramię nigdy się nie pojawi, .

Trenuj SmolVLA na własnym ramieniu

Wybierz model i ramię, a przewodnik poda dokładne wartości domyślne, format zbioru danych i koszty uruchomienia. SmolVLA działa na warstwie 24 GB w cenie od 1 do 3 USD za uruchomienie.

Otwórz przewodniki szkoleniowe
Czy naprawdę mogę dostroić SmolVLA na karcie RTX 4090?

Tak. Przewodnik obliczeniowy LeRobot wskazuje, że SmolVLA wymaga około 10 do 16 GB szczytowej pamięci VRAM przy partii 8 z AdamW i wymienia karty konsumenckie 24 GB jako dla niego komfortowe. Partia 64 w przykładzie z dokumentacji jest sparowana z pojedynczym A100. Pamięć skaluje się mniej więcej liniowo z partią, więc użyj 4 lub 8 i obserwuj mem_gb.

Ile epizodów faktycznie potrzebuję?

AY-Robots ustala minimum na 30. Dokumentacja LeRobot zaleca około 50 i informuje, że 25 epizodów tego samego zadania wypadło słabo. Struktura jest ważniejsza niż liczba: zestaw referencyjny składał się z 5 pozycji kostki po 10 epizodów każda, i to właśnie ta powtarzalność uogólnia.

Dokumentacja mówi partia 64, platforma wysyła partię 2. Która jest prawidłowa?

Obie, dla różnego sprzętu. Przykład z dokumentacji używa partii 64 i podaje około 4 godzin dla 20000 kroków na pojedynczym A100; punkt odniesienia dla A100 40 GB w przewodniku obliczeniowym to partia 16. Partia 2 to to, co AY-Robots wysyła na poziomie 24 GB. Lokalnie 4 do 8 to środek, a arytmetyka epok zmienia się wraz z tym.

SmolVLA czy ACT na pierwsze uruchomienie na SO-100?

ACT, jeśli zadanie to jeden powtarzalny ruch i chcesz najszybszej pętli: 20 ms na krok akcji, 80 M parametrów, bez warunkowania językowego. SmolVLA, jeśli chcesz warunkowania językowego, kilka ciągów zadań w jednym punkcie kontrolnym i wstępnie wytrenowaną bazę. Oba mieszczą się na poziomie 24 GB, więc wybór zależy od zadania, a nie od budżetu.

Czy muszę ustawiać --policy.scheduler_decay_steps?

Tylko gdy --steps jest powyżej 30000. SmolVLA domyślnie ustawia zanik cosinusowy na 30000 kroków, a lerobot 0.6.1 samodzielnie go przeskalowuje w dół dla krótszego przebiegu, logując „Auto-scaling LR scheduler”, gdy to robi. Nigdy nie skaluje w górę, więc domyślne --steps=100000 pozostawia ostatnie 70000 kroków na poziomie 2.5e-6.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started