LeRobot documentation

Gerçek Dünya Robotlarında İmitasyon Öğrenimi

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Gerçek Dünya Robotlarında İmitasyon Öğrenimi

Bu eğitim, bir sinir ağını gerçek bir robotu otonom olarak kontrol edecek şekilde nasıl eğiteceğinizi açıklayacaktır.

Öğrenecekleriniz:

  1. Veri setinizi nasıl kaydedeceğiniz ve görselleştireceğiniz.
  2. Verilerinizi kullanarak bir politika eğitmek ve değerlendirmeye hazırlamak.
  3. Politikanızı nasıl değerlendireceğinizi ve sonuçları nasıl görselleştireceğinizi öğrenin.

Bu adımları izleyerek, aşağıdaki videoda gösterildiği gibi bir Lego parçasını alıp bir kutuya yerleştirme gibi görevleri yüksek başarı oranıyla tekrarlayabileceksiniz.

Video: pickup lego block task

Bu eğitim belirli bir robota bağlı değildir: desteklenen herhangi bir platform için uyarlayabileceğiniz komutları ve API parçacıklarını adım adım ele alıyoruz.

Veri toplama sırasında, robotu teleoperasyonla kontrol etmek ve hareket yörüngelerini kaydetmek için bir “teleoperasyon” cihazı, örneğin bir lider kol veya klavye kullanacaksınız.

Yeterli sayıda yörünge topladıktan sonra, bu yörüngeleri taklit edecek bir sinir ağı eğitir ve eğitilen modeli dağıtarak robotunuzun görevi otonom olarak gerçekleştirmesini sağlarsınız.

Herhangi bir aşamada sorun yaşarsanız, destek almak için Discord topluluğumuza katılın.

Kurulumunuz için doğru komutları hızlıca almak ister misiniz? hızlı başlangıpt defteri Open in Colab robotunuzu bir kez yapılandırmanızı sağlar ve aşağıdaki tüm komutları yapıştırılmaya hazır şekilde oluşturur.

Kurulum ve Kalibrasyon

Henüz robotunuzu ve teleop cihazınızı kurup kalibre etmediyseniz, lütfen robotunuza ait öğreticiyi izleyerek bunu yapın; örneğin SO-101, OpenArm, Koch veya LeKiwi. Desteklenen tüm robotlar kenar çubuğundaki Robots bölümünde listelenmiştir.

Uzaktan Kontrol

Bu örnekte, SO101 robotunu teleoperasyonla nasıl kontrol edeceğimizi göstereceğiz. Her komut için karşılık gelen bir API örneği de sunuyoruz.

Bir robotla ilişkili id'nin kalibrasyon dosyasını depolamak için kullanıldığını unutmayın. Aynı kurulumu kullanırken teleoperasyon, kayıt ve değerlendirme sırasında aynı id'yi kullanmak önemlidir.

Komut
API örneği
lerobot-teleoperate \
    --robot.type=so101_follower \
    --robot.port=/dev/tty.usbmodem58760431541 \
    --robot.id=my_awesome_follower_arm \
    --teleop.type=so101_leader \
    --teleop.port=/dev/tty.usbmodem58760431551 \
    --teleop.id=my_awesome_leader_arm

teleoperate komutu otomatik olarak şunları yapar:

  1. Eksik kalibrasyonları belirleyin ve kalibrasyon prosedürünü başlatın.
  2. Robotu ve teleop cihazını bağlayın ve teleoperasyonu başlatın.

Kameralar

Kurulumunuza kameralar eklemek için bu Rehbere göz atın.

Kameralarla teleoperasyon

rerun ile aynı anda kamera akışlarını ve eklem konumlarını görselleştirirken teleoperasyonu tekrar yapabilirsiniz. Bu örnek, wrist ve top olmak üzere iki kamera kullanır; rehberin geri kalanında aynı kamera düzenini koruyoruz.

Komut
API örneği
lerobot-teleoperate \
    --robot.type=so101_follower \
    --robot.port=/dev/tty.usbmodem5AB90687491 \
    --robot.id=my_follower_arm \
    --robot.cameras="{ wrist: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, top: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30}}" \
    --teleop.type=so101_leader \
    --teleop.port=/dev/tty.usbmodem5AB90689011 \
    --teleop.id=my_leader_arm \
    --display_data=true

Bir veri seti kaydet

Teleoperasyona alıştığınızda, ilk veri setinizi kaydedebilirsiniz.

Veri setinizi yüklemek için Hugging Face hub özelliklerini kullanıyoruz. Daha önce Hub kullanmadıysanız, yazma erişimine sahip bir token ile cli üzerinden giriş yapabildiğinizden emin olun; bu token Hugging Face ayarlarından oluşturulabilir.

Bu komutu çalıştırarak token'ınızı CLI'ye ekleyin:

hf auth login --token ${HUGGINGFACE_TOKEN} --add-to-git-credential

Ardından Hugging Face deposu adınızı bir değişkene kaydedin:

HF_USER=$(NO_COLOR=1 hf auth whoami | awk -F': *' 'NR==1 {print $2}')
echo $HF_USER

Şimdi bir veri seti kaydedebilirsiniz. 5 bölüm kaydetmek ve veri setinizi hub'a yüklemek için aşağıdaki kodu robotunuza göre uyarlayın ve komutu veya API örneğini çalıştırın.

Komut
API örneği
lerobot-record \
    --robot.type=so101_follower \
    --robot.port=/dev/tty.usbmodem585A0076841 \
    --robot.id=my_awesome_follower_arm \
    --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 1920, height: 1080, fps: 30}}" \
    --robot.cameras="{ wrist: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, top: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30}}" \
    --teleop.type=so101_leader \
    --teleop.port=/dev/tty.usbmodem58760431551 \
    --teleop.id=my_awesome_leader_arm \
    --display_data=true \
    --dataset.repo_id=${HF_USER}/record-test \
    --dataset.num_episodes=5 \
    --dataset.single_task="Grab the black cube" \
    --dataset.streaming_encoding=true \
    --dataset.encoder_threads=2
# Optional: --dataset.rgb_encoder.vcodec=auto

Seçtiğiniz kamera adları (burada wrist ve top) veri seti anahtarları olarak observation.images.wrist ve observation.images.top olur. Bu veri setinde eğitilen bir politika, dağıtım sırasında aynı kamera adlarını ve çözünürlüğünü beklediğinden, bu öğretinin her adımında aynı --robot.cameras değerini yeniden kullanın. Adların farklı olması gerekiyorsa Rename Map bölümüne bakın.

lerobot-record, oturumun tarih ve saatini --dataset.repo_id sonuna ekler; böylece her kayıt benzersiz bir ad alır: ${HF_USER}/record-test, ${HF_USER}/record-test_YYYYMMDD_HHMMSS olarak kaydedilir (örneğin record-test_20260929_143012). Tam adı Hugging Face profilinizde veya ls ~/.cache/huggingface/lerobot/${HF_USER} komutuyla bulabilir, aşağıdaki komutlarda record-test_YYYYMMDD_HHMMSS yazan her yerde kullanabilirsiniz. Geçirdiğiniz adın aynısını korumak için --dataset.no_stamp=true ekleyin.

Veri seti yükleme

Yerel olarak veri setiniz bu klasörde saklanır: ~/.cache/huggingface/lerobot/{repo-id}. Veri kaydının sonunda, veri setiniz Hugging Face sayfanıza yüklenecektir (ör. https://huggingface.co/datasets/${HF_USER}/record-test_YYYYMMDD_HHMMSS). Bu sayfaya şu komutu çalıştırarak erişebilirsiniz:

echo https://huggingface.co/datasets/${HF_USER}/record-test_YYYYMMDD_HHMMSS

Veri setiniz, topluluğun kolayca bulabilmesi için otomatik olarak LeRobot etiketiyle işaretlenir; ayrıca --dataset.tags='["tutorial"]' gibi özel etiketler de ekleyebilirsiniz.

Hub'da LeRobot etiketlerini aratarak diğer LeRobot veri setlerini bulabilirsiniz.

Yerel veri setinizi ayrıca … komutunu çalıştırarak Hub'a manuel olarak yükleyebilirsiniz:

hf upload ${HF_USER}/record-test_YYYYMMDD_HHMMSS ~/.cache/huggingface/lerobot/${HF_USER}/record-test_YYYYMMDD_HHMMSS --repo-type dataset

Kayıt işlevi

lerobot-record, robot çalışması sırasında veri yakalama ve yönetimi için bir araç seti sağlar:

1. Veri Depolama
  • Veriler LeRobotDataset biçimi kullanılarak saklanır ve kayıt sırasında diske yazılır.
  • Varsayılan olarak, veri seti kayıt işleminden sonra Hugging Face sayfanıza yüklenir.
    • Yükleme işlemini devre dışı bırakmak için --dataset.push_to_hub=False kullanın.
2. Kontrol Noktası Alma ve Devam Etme
  • Kontrol noktaları, kayıt sırasında otomatik olarak oluşturulur.
  • Bir sorun oluşursa veya aynı veri setine ek bölümler kaydetmek isterseniz, --resume=true ile aynı komutu yeniden çalıştırarak devam edebilirsiniz. Zaman damgası dahil tam veri seti adını iletin (--dataset.repo_id=${HF_USER}/record-test_YYYYMMDD_HHMMSS). Bir kaydı devam ettirirken --dataset.num_episodes değeri, veri setindeki hedeflenen toplam bölüm sayısına değil, kaydedilecek ek bölüm sayısına ayarlanmalıdır! Ayrıca --dataset.root="local_path" değerini de ayarladığınızdan emin olun; bu, veri setinin yeni kısmını kaydetmek için kullanılan yerel bir yoldur ve devam etmek için gereklidir.
  • --resume=true olmadan komutu yeniden çalıştırmak, yeni bir zaman damgasıyla yeni bir veri seti başlatır. --dataset.no_stamp=true kullanıyorsanız, önce mevcut veri seti dizinini silin.
3. Kayıt Parametreleri

Komut satırı argümanlarını kullanarak veri kaydının akışını ayarlayın:

  • --dataset.episode_time_s=60 Her veri kaydı bölümünün süresi (varsayılan: 60 saniye).
  • --dataset.reset_time_s=60 Her bölümün ardından ortamı sıfırlamak için geçen süre (varsayılan: 60 saniye).
  • --dataset.num_episodes=50 Kaydedilecek toplam bölüm sayısı (varsayılan: 50).
4. Kayıt Sırasında Klavye Kontrolleri

Veri kaydı akışını klavye kısayolları kullanarak kontrol edin:

  • Sağ Ok (→) veya n tuşuna basın: Mevcut bölümü erken durdurun veya zamanı sıfırlayıp bir sonrakine geçin.
  • Sol Ok (←) tuşuna basın veya r: Mevcut bölümü iptal edin ve yeniden kaydedin.
  • Escape (ESC) veya q tuşuna basın: Oturumu derhal durdurun, videoları kodlayın ve veri setini yükleyin.

Bu akış denetim kısayolları X11, Wayland ve headless/SSH oturumlarında çalışır. Küresel bir klavye arka ucu kullanılamıyorsa (Wayland, headless bir makine veya Erişilebilirlik izni olmayan macOS), lerobot-record aynı tuşları otomatik olarak terminalden okur — bunu etkileşimli bir terminalden başlatın ve odaklı tutun. Ayrıca harf eşdeğerlerini de kullanabilirsiniz: n (sonraki, → ile aynı), r (yeniden kaydet, ← ile aynı) ve q (çık, ESC ile aynı). $DISPLAY yapılandırması gerekmez.

Bu, yalnızca kayıt kontrol akışına uygulanır. Klavye teleoperation (klavye ile robotu sürme) hâlâ küresel bir tuş arka ucuna ihtiyaç duyduğundan, yalnızca bir X11 oturumunda, bir Windows masaüstünde veya Erişilebilirlik/Giriş İzleme yetkileri verilmiş bir macOS üzerinde çalışır — Wayland veya başlıksız (headless) oturumlarda çalışmaz.

Veri toplama ipuçları

Veri kaydı konusunda kendinizi rahat hissettiğinizde, eğitim için daha büyük bir veri seti oluşturabilirsiniz. İyi bir başlangıç görevi, bir nesneyi farklı konumlardan kavrayıp bir kutuya yerleştirmektir. En az 50 bölüm kaydetmenizi, her konum için 10 bölüm olacak şekilde öneriyoruz. Kameraları sabit tutun ve kayıtlar boyunca tutarlı bir kavrama davranışı sergileyin. Ayrıca manipüle ettiğiniz nesnenin kameralarda görünür olduğundan emin olun. İyi bir kural, yalnızca kamera görüntülerine bakarak bu görevi kendinizin yapabileceğidir.

Aşağıdaki bölümlerde sinir ağınızı eğiteceksiniz. Güvenilir kavrama performansına ulaştıktan sonra, veri toplama sırasında daha fazla çeşitlilik eklemeye başlayabilirsiniz; örneğin ek kavrama konumları, farklı kavrama teknikleri ve kamera konumlarını değiştirme.

Sonuçlarınızı olumsuz etkileyebileceğinden, çok fazla çeşitliliği çok hızlı eklemekten kaçının.

Bu önemli konuya daha derinlemesine inmek isterseniz, iyi bir veri setini neyin oluşturduğuna dair yazdığımız blog yazısını inceleyebilirsiniz.

Cadence raporlama

lerobot-record, döngüyü --dataset.fps hızında yürütür ve fiilen sağlanan performansı raporlar: her kaydettiğiniz bölüm için tek satırlık bir özet ve kayıt oturumu sonlandığında tüm oturum için bir blok — Ctrl-C ile sonlandırıldığında dahil.

Cadence (episode 0): 29.88 Hz vs 30 Hz target · 600 ticks, 20.0 s measured · 8/599 ticks over the 33.3 ms budget (work mean 18.4 ms, worst 45.1 ms)
Cadence (episode 1): 29.88 Hz vs 30 Hz target · 600 ticks, 20.0 s measured · 8/599 ticks over the 33.3 ms budget (work mean 18.4 ms, worst 45.1 ms)
Cadence summary — whole run, 2 episodes · target 30 Hz (33.3 ms budget per tick): 1200 ticks, 1198 judged
  effective cadence: 29.88 Hz over 40.1 s measured
  ticks over the 33.3 ms work budget: 16/1198 (1.3%) — work mean 18.4 ms, worst 45.1 ms
  loop-body steps (share of measured work):
    observe      mean  13.65 ms · worst  40.20 ms ·  74.4% of work · 1200 calls
    process_obs  mean   0.30 ms · worst   0.30 ms ·   1.6% of work · 1200 calls
    teleop       mean   1.80 ms · worst   1.80 ms ·   9.8% of work · 1200 calls
    send         mean   0.90 ms · worst   0.90 ms ·   4.9% of work · 1200 calls
    record       mean   1.70 ms · worst   1.90 ms ·   9.3% of work · 1200 calls
  pacing headroom: 15.1 ms slept per tick on average (max 16.7 ms) — near zero means the loop is saturated

Bu, veri seti üzerinde eğitimden önce okunmaya değer. Bir karenin zaman damgası, dizininden türetilir; bu nedenle 25 Hz’de çalışan bir oturum hâlâ 30 olduğunu iddia eden bir veri seti üretir — kaydedilen hareket, gerçekliğin basitçe daha hızlısıdır. Yukarıda, observe döngünün işinin %74’ünü oluşturur ve worst değeri 33,3 ms’lik bütçede 40 ms’tir: o 16 tikin üzerine çıkmasına kameralar neden olmuştur. Sıfıra yakın Pacing headroom, yavaş bir tiki emecek hiçbir şeyin kalmadığı anlamına gelir.

Epizodlar arasındaki sıfırlama fazları aynı şekilde zamanlanır ancak bu sayıların bir parçası olarak bilinçli şekilde yer almaz, çünkü hiçbir şey kaydetmezler. lerobot-teleoperate ve lerobot-replay aynı şekilde raporlar ve lerobot-rollout, Cadence Reporting bölümünde açıklanan interpolasyona özgü satırları ekler.

Sorun Giderme:

  • Linux'ta, kayıt akış kontrol tuşları (ok tuşları, Escape), lerobot-record etkileşimli bir terminalde çalıştığı sürece X11, Wayland ve headless/SSH oturumlarında çalışır; $DISPLAY yapılandırmasına gerek yoktur. Tuşlar işe yaramıyorsa, borulu/TTY olmayan bir oturumda değil, etkileşimli bir (TTY) terminalde olduğunuzdan ve terminalin odaklandığından emin olun; harf karşılıkları olan n / r / q tuşları da çalışır. Klavye teleoperation (kayıt akış kontrolünden farklı olarak) hâlâ küresel bir tuş arka ucuna ihtiyaç duyar — bir X11 oturumu, bir Windows masaüstü veya Erişilebilirlik/Giriş İzleme yetkileri verilmiş bir macOS — ve Wayland veya headless makinelerde kullanılamaz. pynput kısıtlamaları bölümüne bakın.

Bir veri setini görselleştir

Veri setiniz varsayılan olarak Hub'a yüklenir (--dataset.push_to_hub=False parametresini geçirmedikçe), bu nedenle LeRobot Dataset Visualizer'da hemen açabilirsiniz: ana sayfasında repo kimliğinizi girin veya bu komutun yazdırdığı bağlantı ile doğrudan ilk epizoda gidin:

echo "https://huggingface.co/spaces/lerobot/visualize_dataset?path=/${HF_USER}/record-test_YYYYMMDD_HHMMSS/episode_0"

Gizli bir veri setini açmak için görselleştiriciye giriş yapın. Adım adım anlatım için Tarayıcıda Bir Veri Setini Keşfetme başlıklı bölümü inceleyin.

Bir bölümü yeniden oynat

Faydalı bir özellik, kaydettiğiniz herhangi bir bölümü veya mevcut herhangi bir veri setindeki bölümleri yeniden oynatmanıza olanak tanıyan replay işlevidir. Bu işlev, robotunuzun eylemlerinin tekrarlanabilirliğini test etmenize ve aynı modelden robotlar arasında aktarılabilirliği değerlendirmenize yardımcı olur.

Robotunuzda ilk bölümü aşağıdaki komutla veya API örneğiyle yeniden oynatabilirsiniz:

Komut
API örneği
lerobot-replay \
    --robot.type=so101_follower \
    --robot.port=/dev/tty.usbmodem58760431541 \
    --robot.id=my_awesome_follower_arm \
    --dataset.repo_id=${HF_USER}/record-test_YYYYMMDD_HHMMSS \
    --dataset.episode=0 # choose the episode you want to replay

Robotunuz, kaydettiğiniz hareketlere benzer hareketleri tekrarlamalıdır. Örneğin, Trossen Robotics tarafından üretilen bir ALOHA robotunda replay kullanırken çektiğimiz bu videoyu inceleyebilirsiniz.

Bir politika eğitin

Robotunuzu kontrol etmek için bir politika eğitmek için lerobot-train betiğini kullanın. Birkaç argüman gereklidir. İşte örnek bir komut:

lerobot-train \
  --dataset.repo_id=${HF_USER}/record-test_YYYYMMDD_HHMMSS \
  --policy.type=act \
  --output_dir=outputs/train/act_so101_test \
  --job_name=act_so101_test \
  --policy.device=cuda \
  --trackio.enable=true \
  --policy.repo_id=${HF_USER}/my_policy

Komutu açıklayalım:

  1. Daha önce kaydedilen veri setini, --dataset.repo_id=${HF_USER}/record-test_YYYYMMDD_HHMMSS ile (zaman damgası dahil, veri setinizin tam adını kullanın) argüman olarak sağladık.
  2. Politikayı policy.type=act ile sağladık. Bu, yapılandırmaları configuration_act.py dosyasından yükler. Önemli olan, bu politikanın robotunuzun (ör. wrist ve top) motor durumları, motor eylemleri ve kameralarının sayısına otomatik olarak uyum sağlamasıdır; bu bilgiler veri setinizde kaydedilmiştir.
  3. Nvidia GPU üzerinde eğitim yaptığımız için policy.device=cuda parametresini sağladık, ancak Apple silikon üzerinde eğitim almak için policy.device=mps kullanabilirsiniz.
  4. Eğitim grafiklerini görselleştirmek için Trackio kullanmak üzere trackio.enable=true parametresini sağladık. Bu adım isteğe bağlıdır. Panoyu açmak için trackio show --project lerobot komutunu çalıştırın veya çalışmayı bir Hugging Face Space ile senkronize etmek için --trackio.space_id=<user>/<space> parametresini iletin.
  5. --steps parametresini ayarlamadığımız için eğitim varsayılan 100.000 adım boyunca çalışır. Bu, genellikle küçük bir veri setinin ihtiyacından fazladır: imitasyon öğrenmesi, veri üzerinde tipik olarak 5–10 epoch içinde yakınsar. Veri seti boyutunuza ve batch boyutunuza göre epoch'ları --steps değerine dönüştürmek için Hesaplama ve Donanım Kılavuzu'na bakın.

Eğitim birkaç saat sürebilir. Kontrol noktalarını outputs/train/act_so101_test/checkpoints dizininde bulabilirsiniz.

Bir kontrol noktasından eğitim devam ettirmek için, act_so101_test politikasının last kontrol noktasından devam etmek için örnek bir komut aşağıda verilmiştir:

lerobot-train \
  --config_path=outputs/train/act_so101_test/checkpoints/last/pretrained_model/train_config.json \
  --resume=true

--config_path ayrıca bir Hub depo kimliği de kabul eder: bir çalıştırma, kontrol noktalarını Hub'a gönderdiyse (--save_checkpoint_to_hub=true ile), doğrudan depodan devam edebilirsiniz — en son kontrol noktası indirilir ve eğitim, optimizasyonu, zamanlayıcıyı, adım sayacını ve veri sırasını geri yükleyerek devam eder:

lerobot-train --config_path=${HF_USER}/my_policy --resume=true

Eğitimden sonra modelinizi hub'a göndermek istemiyorsanız --policy.push_to_hub=false kullanın.

Ayrıca modeliniz için ek tags sağlayabilir veya license belirleyebilir ya da model deposunu private yapabilirsiniz; bunun için şunu ekleyin: --policy.private=true --policy.tags=\[so101,tutorial\] --policy.license=mit

Google Colab kullanarak eğitim

Yerel bilgisayarınız güçlü bir GPU'ya sahip değilse, ACT eğitim defterini izleyerek modelinizi eğitmek için Google Colab'ı kullanabilirsiniz.

Hugging Face Jobs kullanarak eğitim

Hugging Face Jobs, donanımı kolayca seçmenizi ve eğitimi bulutta çalıştırmanızı sağlar. Dolayısıyla güçlü bir GPU’nuz yoksa, daha fazla VRAM’e ihtiyacınız varsa ya da bir modeli çok daha hızlı eğitmek istiyorsanız HF Jobs kullanın! Kullanım başına ödeme yaparsınız ve her saniye için ödersiniz; fiyatlandırma ve ek bilgileri burada görebilirsiniz.

lerobot-train varsayılan olarak yerel olarak çalışır. HuggingFace GPU üzerinde çalıştırmak için --job.target parametresini donanım türü adıyla birlikte iletin:

lerobot-train \
  --dataset.repo_id=${HF_USER}/record-test_YYYYMMDD_HHMMSS \
  --policy.type=act \
  --policy.repo_id=${HF_USER}/my_policy \
  --job.target=a10g-small

Mevcut donanım seçeneklerini ve fiyatlarını hf jobs hardware ile listeleyin. Çalıştırma, günlüklerini terminalinize aktarır; ayrışmak için Ctrl-C tuşlarına basın (iş bulutta çalışmaya devam eder). Yeniden bağlanmak veya iptal etmek için:

hf jobs logs <job-id>
hf jobs cancel <job-id>

Veri setiniz yalnızca yerel olarak mevcut ise (henüz Hub'da değilse), işin repo_id ile indirebilmesi için otomatik olarak özel bir Hub deposuna itilir (hiçbir şey herkese açık yapılmaz). Eğitilen model, çalıştırmanın sonunda model deposuna itilir. Kaydedildikçe her ara kontrol noktasını da Hub'a itmek (çalıştırma sırasında ilerlemeyi izleyebilmek için) --save_checkpoint_to_hub=true ekleyin — bunun için bu özelliği içeren bir çalışma zamanı görüntüsü gereklidir.

Her iş (ve çalışmanın gönderdiği herhangi bir veri seti) Hub'da kolayca bulunabilmesi için lerobot etiketiyle işaretlenir. Kendi etiketlerinizi --job.tags '["my-tag"]' ile ekleyebilirsiniz.

Varsayılan olarak iş, duvar saati açısından 2d (48 saat) ile sınırlıdır. Daha hızlı hata alması için --job.timeout=4h veya daha uzun bir çalışma için --job.timeout=7d gibi bir HF Jobs süre dizesi ile bunu geçersiz kılabilirsiniz.

Not: model deposu önceden oluşturulur (işin çalıştığı aşamalı eğitim yapılandırmasını barındırır). Model Hub'a itilmeden önce bir çalıştırma başarısız olursa, bu depo Hub'da kalır ve incelemenizi sağlar — otomatik olarak silinmez, bu nedenle tekrarlanan başarısızlıklar boş depolar bırakabilir. Birini hf repos delete <repo-id> ile kaldırın.

Ön koşullar: göndermeden önce hf auth login komutunu çalıştırın. Trackio için --trackio.space_id=<user>/<space> parametresini iletin — Space yoksa oluşturulur ve işin HF_TOKEN değeri otomatik olarak iletilir.

Bir işte devam etme. Devam komutuna --job.target eklemek, devam işleminin bulutta çalışmasını sağlar — aynı komut hem yerel hem de uzaktan çalışır. Kontrol noktası deposu tek doğruluk kaynağıdır ve yeni kontrol noktaları aynı depoda soyu devam ettirir:

# resume a Hub run on a job (its checkpoints are already on the Hub)
lerobot-train --config_path=${HF_USER}/my_policy --resume=true --job.target=a10g-small

# resume a LOCAL run on a job — the checkpoint is uploaded to a private Hub repo first,
# then the job resumes from it (a local-only dataset is uploaded the same way)
lerobot-train \
  --config_path=outputs/train/act_so101_test/checkpoints/last/pretrained_model/train_config.json \
  --resume=true \
  --job.target=a10g-small

İş ayarları mevcut komuttan gelir, bu nedenle --job.target, --job.timeout vb. değerleri gerektiği gibi geçersiz kılın; devam ettirilen çalışmanın ileride kendisi de devam ettirilebilir olması için --save_checkpoint_to_hub=true ayarını koruyun.

Yükleme politikası denetim noktaları

Eğitim tamamlandıktan sonra, en son kontrol noktasını şununla yükleyin:

hf upload ${HF_USER}/act_so101_test \
  outputs/train/act_so101_test/checkpoints/last/pretrained_model

Ara kontrol noktalarını da şu şekilde yükleyebilirsiniz:

CKPT=010000
hf upload ${HF_USER}/act_so101_test${CKPT} \
  outputs/train/act_so101_test/checkpoints/${CKPT}/pretrained_model

Çıkarım çalıştırın ve politikanızı değerlendirin

Eğitilmiş bir politikayı robotunuzda dağıtmak için lerobot-rollout kullanın. İhtiyaçlarınıza göre farklı stratejiler seçebilirsiniz.

Aynı --robot.id (böylece kalibrasyon bulunur), aynı --robot.cameras ve kaydedilen veri setinizdeki aynı görev açıklamasını kullanın. lerobot-rollout tarafından kaydedilen veri setlerinin, rollout_ ile başlayan bir adı olmalıdır ve lerobot-record gibi bu adıma bir zaman damgası ekler.

Aşağıdaki örnekler, modeli --policy.path konumundan yükler. --save_checkpoint_to_hub=true ile birkaç kontrol noktası (checkpoint) gönderildikten sonra belirli bir sürümü sabitlemek için — bu durum özellikle işe yarar — bir commit hash'i, dal (branch) veya etiket (tag) ile --policy.pretrained_revision parametresini ekleyin. Her gönderilen kontrol noktası, adım numarasıyla etiketlenir (ör. --policy.pretrained_revision=010000), bu sayede commit sha'sını aramadan belirli bir adımdaki kontrol noktasını geri getirebilirsiniz.

Temel mod (kayıt yok)
Sentry modu (kayıt ile)
lerobot-rollout \
  --strategy.type=base \
  --policy.path=${HF_USER}/my_policy \
  --robot.type=so101_follower \
  --robot.port=/dev/tty.usbmodem5AB90687491 \
  --robot.id=my_follower_arm \
  --robot.cameras="{ wrist: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, top: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30}}" \
  --task="Grab the black cube" \
  --duration=60

--strategy.type bayrağı çalışma modunu seçer:

  • base: Veri kaydı yapılmayan otonom rollout (hızlı değerlendirme için faydalı)
  • sentry: Otomatik yükleme ile sürekli kayıt (büyük ölçekli değerlendirme için faydalı)
  • highlight: Klavye tuşuyla kaydetme özelliğine sahip ring buffer kaydı (ilginç olayları yakalamak için faydalıdır)
  • dagger: İnsan döngüde veri toplama (bkz. HIL Veri Toplama)
  • episodic: Bölümler arasında sıfırlama aşamaları içeren, bölüm odaklı politika kaydı

Tüm stratejiler, yavaş VLA modelleri (Pi0, Pi0.5, SmolVLA) ile akıcı çalıştırma için --inference.type=rtc seçeneğini destekler. Her strateji ve bayrakları için Policy Deployment bölümüne bakın.

Update on GitHub