LeRobot documentation
SARM: Aşama Farkındalıklı Ödül Modelleme
SARM: Aşama Farkındalıklı Ödül Modelleme
SARM (Stage-Aware Reward Modeling), uzun vadeli robot manipülasyon görevleri için video tabanlı bir ödül modelleme çerçevesidir. Bu kılavuz, SARM ödül modellerinin nasıl eğitileceğini ve isteğe bağlı olarak Reward-Aligned Behavior Cloning (RA-BC) ile nasıl kullanılacağını kapsar.
Makale: SARM: Stage-Aware Reward Modeling for Long Horizon Robot Manipulation
Neden Ödül Modelleri?
Standart davranış klonlama, tüm gösterim karelerini eşit olarak ele alır, ancak gerçek dünya robot veri setleri dağınıktır. Bunlar tereddütleri, düzeltmeleri ve değişken kalitede yörüngeleri içerir. Ödül modelleri, gösterimlerden görev ilerlemesine dair genellenebilir bir kavram öğrenerek bunu çözer: video kareleri ve bir görev açıklaması verildiğinde, robotun görevi tamamlamaya ne kadar yakın olduğunu (0→1) tahmin ederler. Bu öğrenilen “ilerleme sinyali” birden fazla şekilde kullanılabilir; iki umut verici uygulama şunlardır: (1) ağırlıklı taklit öğrenimi (RA-BC), burada yüksek ilerlemeye sahip kareler politika eğitimi sırasında daha fazla ağırlık alır ve (2) pekiştirmeli öğrenme, burada ödül modeli çevrimiçi veya çevrimdışı politika iyileştirmesi için yoğun ödüller sağlar.
Genel Bakış
SARM aşağıdaki özelliklere sahiptir:
- Aşama farkında mimari: Yüksek düzey görev aşamasını ve her aşama içindeki ince taneli ilerlemeyi birlikte tahmin eder
- Alt görev açıklamaları: Tutarlı ilerleme etiketleri türetmek için doğal dil alt görev açıklamalarını kullanır
- Zaman oranları: Değişken uzunluktaki gösterimlerde ilerlemeyi normalize etmek için her alt görevin veri seti düzeyindeki öncüllerini (α̅_k) hesaplar
SARM, her kare için kompakt bir stage+tau hedefi üzerinde eğitim alır:
- stage: tamsayır evre indeksi
k ∈ {0, ..., K-1} - τ (tau): aşama içi ilerleme
τ ∈ [0, 1] - hedef kodlama:
y = k + τ(bu, veri seti işleyicisinin ürettiğidir)
Çıkarım zamanında (ve aşağı akış RA-BC'de), SARM ham k + τ değerini, veri seti düzeyindeki zaman oranlarını α̅_k (meta/temporal_proportions_*.json içinde saklanır) kullanarak [0, 1] aralığında normalize edilmiş ilerlemeye dönüştürür.
Bu, makaledeki Formül (2) ile eşleşir:
progress_t = P_{k-1} + α̅_k × τ_tBurada:
τ_t = (t - s_k) / (e_k - s_k), alt görev içi normalize edilmiş zamanı ifade ederP_{k-1}kümülatif öncedir (önceki alt görev oranlarının toplamı)α̅_k, alt görev k için zamansal orandır
Bu, farklı uzunluklardaki gösterimlerde bile aynı görev durumlarının tutarlı ilerleme değerlerine eşlenmesini sağlar.
Girdiler ve Hedefler (Yeni kodun bekledikleri)
SARM, işlemcisi (src/lerobot/rewards/sarm/processor_sarm.py) aracılığıyla eğitilir; bu işlemci:
- Encodes CLIP (ViT-B/32) ile görüntüleri ve görev metnini
video_featuresvetext_featuresolarak kodlar - Robot durumunu
state_featuresiçine (en fazlamax_state_dim) doldurur/kısaltır - Hedefler,
y = k + τaşama+tau kodlamasını kullanaraksparse_targets(vedense_only/dualiçindedense_targets) olarak oluşturulur - Masklar, örnek başına
lengthstensörü kullanarak kareleri geri sarar (geri sarma, eğitim zamanı artırmadır)
En azından, her eğitim örneği şunlara ihtiyaç duyar:
task(string): görev açıklaması- Veri setindeki
reward_model.image_keygörüntüleri vereward_model.state_keydurumları
Etiketleme Modları
İlerleme etiketlerinin nasıl hesaplanacağını belirleyen 3 etiketleme modundan birini seçebilirsiniz:
| Mod | Gerekli Annotasyonlar | Başlar | Kullanım Senaryosu |
|---|---|---|---|
single_stage | None | Yalnızca seyrek | Basit görevler, hızlı deneyler, VLM gerekmez |
dense_only | Yoğun (VLM) | Çift (seyrek otomatik oluşturulmuş) | Yüksek düzey aşamalar tanımlamadan ayrıntılı alt görev takibi |
dual | Seyrek + Yoğun (VLM) | Çift | Her iki granülerlik ile tam SARM makalesi kurulumu |
Mod Detayları
Etiketleme gerekmez. Tüm bölüm, "task" adlı tek bir aşama olarak ele alınır ve ilerleme, bölüm süresi boyunca 0'dan 1'e doğru doğrusaldır.
- Sparse head: 1 aşama (“task”), doğrusal ilerleme
- Dense head: Kullanılmıyor
- En uygun olduğu durumlar: Basit görevler, hızlı deneyler veya VLM etiketlemesinin kullanılamadığı senaryolar
Ortamınızı Yapılandırın
- LeRobot'u Yükleme Kılavuzumuz’u takip ederek yükleyin.
- Aşağıdaki komutu çalıştırarak SARM bağımlılıklarını yükleyin:
pip install -e ".[sarm]"İş akışı:
1. Train SARM → 2. Visualize predictions → 3. (Optional) Train policy with RA-BCSadece yoğun (ince taneli) VLM etiketleri. Seyrek baş, tüm bölümü kapsayan tek bir "task" aşamasını otomatik olarak kullanırken, yoğun baş detaylı alt görev ilerlemesini öğrenir.
- Sparse head: 1 aşama (“task”), doğrusal ilerleme (otomatik oluşturuldu)
- Dense head: VLM etiketlemelerinden çok sayıda ince taneli aşama
- En uygun olduğu durum: Detaylı alt görev takibi istediğiniz ancak yüksek düzey aşamaları tanımlamanız gerekmediğinde
İş akışı:
1. Annotate (dense) → 2. Verify → 3. Train SARM → 4. Visualize → 5. (Optional) Train policy with RA-BCVLM'den hem seyrek hem de yoğun etiketler. SARM makalesinde açıklandığı gibi, hem yüksek düzey (seyrek) hem de ince taneli (yoğun) aşama tahminlerini içeren tam çift başlı mod.
- Sparse head: VLM etiketlemelerinden yüksek düzey aşamalar
- Dense head: VLM etiketlemelerinden ince taneli aşamalar
- En uygun olduğu durumlar: Her iki granülerliğin de faydalı olduğu karmaşık çok aşamalı görevler
İş akışı:
1. Annotate (sparse+dense) → 2. Verify → 3. Train SARM → 4. Visualize → 5. (Optional) Train policy with RA-BCAdım 1: Alt Görev İşaretleme
Etiketleme gerekmez! Bu adımı tamamen atlayın. Model, bölümün görev açıklamasını kullanacak ve doğrusal ilerlemeyi otomatik olarak hesaplayacaktır.
Bir VLM kullanarak yalnızca yoğun (ince taneli) etiketleri oluşturun. Seyrek aşama otomatik olarak oluşturulacaktır.
python src/lerobot/data_processing/sarm_annotations/subtask_annotation.py \
--repo-id your-username/your-dataset \
--dense-only \
--dense-subtasks "Bring robot arms up from starting position,Grab near side and do 1st fold,Grab side and do 2nd fold,Grab side and do 3rd fold to finish folding" \
--video-key observation.images.base \
--num-workers 4 \
--push-to-hubNe kaydedilir:
meta/temporal_proportions_sparse.json- Otomatik oluşturulan seyrek oranlar ({"task": 1.0})meta/temporal_proportions_dense.json- Yoğun zaman oranları- episodes/*.parquet içindeki bölüm başına sütunlar: dense_subtask_names, dense_subtask_start_frames, dense_subtask_end_frames (ayrıca zaman tabanlı sütunlar: dense_subtask_start_times, dense_subtask_end_times)
episodes/*.parquet:dense_subtask_names,dense_subtask_start_frames,dense_subtask_end_frames- (ayrıca zaman tabanlı sütunlar:
dense_subtask_start_times,dense_subtask_end_times)
Bir VLM kullanarak hem seyrek (yüksek düzey) hem de yoğun (ince taneli) etiketleri oluşturun.
python src/lerobot/data_processing/sarm_annotations/subtask_annotation.py \
--repo-id your-username/your-dataset \
--sparse-subtasks "Bring arms up from starting position,Fold the towel (3 folds in total)" \
--dense-subtasks "Bring robot arms up from starting position,Grab near side and do 1st fold,Grab side and do 2nd fold,Grab side and do 3rd fold to finish folding" \
--video-key observation.images.base \
--num-workers 4 \
--push-to-hubNe kaydedilir:
meta/temporal_proportions_sparse.json- Seyrek zaman oranlarımeta/temporal_proportions_dense.json- Yoğun zaman oranları- episodes/*.parquet içindeki bölüm başına sütunlar:
episodes/*.parquet:sparse_subtask_names,sparse_subtask_start_frames,sparse_subtask_end_framesdense_subtask_names,dense_subtask_start_frames,dense_subtask_end_frames- (ayrıca zaman tabanlı sütunlar:
*_subtask_start_times,*_subtask_end_times)
Etiketleme Argümanları
| Argüman | Açıklama |
|---|---|
--repo-id | HuggingFace veri seti deposu kimliği |
--sparse-subtasks | Virgülle ayrılmış yüksek düzey alt görev adları listesi |
--dense-subtasks | Virgülle ayrılmış ince taneli alt görev adları listesi |
--dense-only | Yalnızca yoğun (dense) anotasyonlar oluştur (seyrek “task” aşamasını otomatik olarak oluşturur) |
--video-key | Kullanılacak kamera/video anahtarı (ör. observation.images.top) |
--num-workers | Paralel GPU işçisi sayısı (varsayılan: 1) |
--episodes | Annotate edilecek belirli bölüm dizinleri (varsayılan: tümü) |
--skip-existing | Zaten etiketlere sahip olan bölümleri atla |
--model | VLM modeli (varsayılan: Qwen/Qwen3-VL-30B-A3B-Instruct) |
--num-visualizations | Etiketleme sonrası görselleştirilecek bölüm sayısı (varsayılan: 5, atlamak için 0 olarak ayarlayın) |
Not: İşaretleme tamamlandıktan sonra, varsayılan olarak 5 bölüm otomatik olarak görselleştirilir. Bu adımı atlamak için
--num-visualizations 0kullanın.
Adım 2: Etiketlemeleri Doğrulayın
Doğrulama gerekmez! Bu adımı atlayın.
Etiketleri --visualize-only bayrağını kullanarak görselleştirin:
python src/lerobot/data_processing/sarm_annotations/subtask_annotation.py \ --repo-id your-username/your-dataset \ --visualize-only \ --visualize-type dense \ --num-visualizations 5 \ --video-key observation.images.base \ --output-dir ./subtask_viz
Etiketleri --visualize-only bayrağını kullanarak görselleştirin:
python src/lerobot/data_processing/sarm_annotations/subtask_annotation.py \ --repo-id your-username/your-dataset \ --visualize-only \ --visualize-type both \ --num-visualizations 5 \ --video-key observation.images.base \ --output-dir ./subtask_viz
Bu, alt görev sınırlarının üzerine bindirildiği video karelerini ve alt görevlerin zaman çizelgesini gösteren görselleştirmeleri oluşturur.
Görselleştirme Argümanları
| Argüman | Açıklama |
|---|---|
--visualize-only | Yalnızca mevcut etiketleri görselleştir (üretim yok) |
--num-visualizations | Görselleştirilecek bölüm sayısı (varsayılan: 5) |
--visualize-type | Görselleştirilecek anotasyon türü: sparse, dense veya both |
Tip: İşaretlemeler (annotations) doğru değilse, alt görev açıklamalarınızı daha spesifik hale getirin ve işlemi yeniden çalıştırın.
Adım 3: SARM'ı eğitin
Etiket olmadan eğitim yapın - 0'dan 1'e doğrusal ilerleme kullanır:
lerobot-train \
--dataset.repo_id=your-username/your-dataset \
--reward_model.type=sarm \
--reward_model.annotation_mode=single_stage \
--reward_model.image_key=observation.images.base \
--output_dir=outputs/train/sarm_single \
--batch_size=32 \
--steps=5000 \
--trackio.enable=true \
--trackio.project=sarm \
--reward_model.repo_id=your-username/your-model-nameYalnızca yoğun etiketlerle eğitin (seyrek otomatik üretilen):
lerobot-train \
--dataset.repo_id=your-username/your-dataset \
--reward_model.type=sarm \
--reward_model.annotation_mode=dense_only \
--reward_model.image_key=observation.images.base \
--output_dir=outputs/train/sarm_dense \
--batch_size=32 \
--steps=5000 \
--trackio.enable=true \
--trackio.project=sarm \
--reward_model.repo_id=your-username/your-model-namehem seyrek hem de yoğun etiketlerle eğitim yapın:
lerobot-train \
--dataset.repo_id=your-username/your-dataset \
--reward_model.type=sarm \
--reward_model.annotation_mode=dual \
--reward_model.image_key=observation.images.base \
--output_dir=outputs/train/sarm_dual \
--batch_size=32 \
--steps=5000 \
--trackio.enable=true \
--trackio.project=sarm \
--reward_model.repo_id=your-username/your-model-nameÇoklu GPU Eğitimi
Eğitim için birden çok GPU kullanmak için accelerate launch --multi_gpu --num_processes=4 ekleyin.
Eğitim Argümanları
| Argüman | Açıklama | Varsayılan |
|---|---|---|
--reward_model.annotation_mode | single_stage, dense_only veya dual | single_stage |
--reward_model.image_key | Görseller için kamera anahtarı | observation.images.top |
--reward_model.state_key | Ortak durumlar için anahtar | observation.state |
--reward_model.n_obs_steps | Gözlem geçmişi adımları (toplam gözlem kareleri = n_obs_steps + 1) | 8 |
--reward_model.frame_gap | Örnekleme yapılan gözlemler arasındaki fark (kare cinsinden) (30 fps'de: 30 ≈ 1 sn) | 30 |
Adım 4: Tahminleri Görselleştir
compute_rabc_weights.py dosyasını --visualize-only ile kullanarak, bir parquet dosyası yazmadan model tahminlerini (ve varsa, etiketlerden türetilen hedefleri) görselleştirebilirsiniz.
python -m lerobot.rewards.sarm.compute_rabc_weights \ --dataset-repo-id your-username/your-dataset \ --reward-model-path your-username/sarm-model \ --visualize-only \ --num-visualizations 5 \ --head-mode sparse \ --output-dir ./sarm_viz
python -m lerobot.rewards.sarm.compute_rabc_weights \ --dataset-repo-id your-username/your-dataset \ --reward-model-path your-username/sarm-model \ --visualize-only \ --num-visualizations 5 \ --head-mode dense \ --output-dir ./sarm_viz
python -m lerobot.rewards.sarm.compute_rabc_weights \ --dataset-repo-id your-username/your-dataset \ --reward-model-path your-username/sarm-model \ --visualize-only \ --num-visualizations 5 \ --head-mode both \ --output-dir ./sarm_viz
Görselleştirme şunları gösterir:
- İlerleme grafiği: Tahmini ilerleme (ve mevcut olduğunda ve
--stride 1kullanıldığında isteğe bağlı, notlardan türetilen “GT”) - Aşama olasılıkları: Tahmin edilen aşama olasılıklarının yığılmış alan grafiği
- Örnek kareler: Bölümden, ilerleme/aşama etiketlerine sahip ana kareler
Görselleştirme Argümanları
| Argüman | Açıklama |
|---|---|
--visualize-only | Yalnızca tahminleri görselleştir (RABC hesaplama yok) |
--num-visualizations | Görselleştirilecek bölüm sayısı (varsayılan: 5) |
--head-mode | Kullanılacak SARM başı: sparse, dense veya both |
--stride | Her N karede hesapla, kalanını içsel olarak doldur (varsayılan: 1) |
Adım 5 (İsteğe bağlı): RA-BC ile Politikayı Eğitin
Reward-Aligned Behavior Cloning (RA-BC), eğitimlenmiş SARM modelini, tahmini ilerleme iyileştirmesine dayalı olarak eğitim örneklerini ağırlıklandırmak için kullanır. Bunun için iki adım gereklidir:
- Eğitilmiş SARM modelini kullanarak tüm kareler için ilerleme değerlerini önceden hesaplayın
- Önceden hesaplanan değerleri kullanarak RA-BC ağırlamasıyla politika eğitimi
RA-BC Nasıl Çalışır
Her eğitim örneği için RA-BC, ilerleme farkını hesaplar:
r_i = φ(o_{t+Δ}) - φ(o_t)Burada φ, SARM ilerleme tahminini ve Δ, politikanın chunk_size değerini temsil eder. Pozitif ilerlemeye sahip örnekler (iyi gösterimler) daha yüksek ağırlıklar alırken, negatif veya sıfır ilerlemeye sahip örneklerin ağırlıkları düşürülür.
Ağırlıklandırma, makaledeki 8-9 numaralı denklemleri takip eder:
- Yumuşak ağırlık:
w̃_i = clip((r_i − (μ − 2σ)) / (4σ + ε), 0, 1) - Son ağırlık:
w_i = 𝟙{r_i > κ} + 𝟙{0 ≤ r_i ≤ κ} × w̃_i
Adım 5a: SARM İlerleme Değerlerini Hesapla
Öncelikle, ilerleme değerlerini hesaplamak için SARM modelini veri setinizdeki tüm karelerde çalıştırın:
python -m lerobot.rewards.sarm.compute_rabc_weights \ --dataset-repo-id your-username/your-dataset \ --reward-model-path your-username/sarm-model \ --head-mode sparse \ --num-visualizations 5 \ --push-to-hub
Bu betik:
- Tüm kareleri işler ve ilerleme değerlerini hesaplar
- İlerleme değerlerini, diskteki veri setinin yanındaki bir parquet dosyasına kaydeder (varsayılan olarak
<dataset_root>/sarm_progress.parquet) - İlk N bölümün (varsayılan: 5) görselleştirmelerini oluşturur
Argümanlar:
| Argüman | Açıklama | Varsayılan |
|---|---|---|
--reward-model-path | Eğitilmiş SARM modelinin yolu | (gerekli) |
--head-mode | Kullanılacak SARM başı: sparse, dense veya both | sparse |
--device | Çıkarım için cihaz | cuda |
--visualize-only | Yalnızca tahminleri görselleştir (RA-BC hesaplama yok) | false |
--num-visualizations | Görselleştirilecek bölüm sayısı (varsayılan: 5, atlamak için 0 olarak ayarlayın) | 5 |
Çıktı biçimi (sarm_progress.parquet):
| Sütun | Açıklama |
|---|---|
index | Veri setindeki küresel çerçeve indeksi |
episode_index | Bölüm numarası |
frame_index | Bölüm içindeki yerel kare indeksi |
progress_sparse | Seyrek baş ilerleme değeri [0, 1] |
progress_dense | Yoğun baş ilerleme değeri [0, 1] (hesaplandıysa) |
Adım 5b: RA-BC ile Politikayı Eğitin
İlerleme dosyasına sahip olduğunuzda, politikayı RA-BC ağırlamasıyla eğitin. İlerleme dosyası, açıkça belirtilmediği takdirde veri seti yolundan otomatik olarak algılanır (sarm_progress.parquet). Şu anda RA-BC ile PI0, PI0.5, SmolVLA ve FastWAM desteklenmektedir:
lerobot-train \ --dataset.repo_id=your-username/your-dataset \ --policy.type=pi0 \ --sample_weighting.type=rabc \ --sample_weighting.head_mode=sparse \ --sample_weighting.kappa=0.01 \ --output_dir=outputs/train/policy_rabc \ --batch_size=32 \ --steps=40000
Eğitim betiği otomatik olarak:
- Parquet dosyasından önceden hesaplanmış ilerleme değerlerini yükler
- Politikanın
chunk_sizedeğerini kullanarak ilerleme farklarını (Δ) hesaplar - İlerleme iyileştirmesine dayalı örnek ağırlıklarını hesaplar
- Eğitim sırasında ağırlıklı kayıp uygular
RA-BC Argümanları:
| Argüman | Açıklama | Varsayılan |
|---|---|---|
--sample_weighting.type | Ağırlıklandırma stratejisi türü (rabc veya uniform) | rabc |
--sample_weighting.progress_path | İlerleme parquet dosyasının yolu | sarm_progress.parquet |
--sample_weighting.head_mode | Hangi SARM başının ilerlemesinin kullanılacağı: sparse veya dense | sparse |
--sample_weighting.kappa | Yüksek kaliteli örnekler için κ eşiği | 0.01 |
--sample_weighting.epsilon | Sayısal kararlılık için küçük bir sabit | 1e-6 |
RA-BC Kappa Ayarları
kappa parametresi, tam ağırlık (w=1) alan örnekleri belirleyen eşiktir. RA-BC'nin etkili bir şekilde çalışabilmesi için bu parametrenin nasıl ayarlanacağının anlaşılması kritik öneme sahiptir.
Ağırlıklandırmanın çalışma şekli:
| Koşul | Ağırlık |
|---|---|
delta > kappa | 1.0 (sert eşik) |
0 ≤ delta ≤ kappa | Denk. 8'den yumuşak ağırlık |
delta < 0 | 0.0 (negatif ilerleme) |
Kappa sorunlarını teşhis etme:
Eğitim sırasında bu Trackio metriklerini izleyin:
| Metrik | Sağlıklı Aralık | Sorun Göstergesi |
|---|---|---|
sample_weight_mean_weight | 0.3 - 0.8 | ≈ 1.0, kappa çok düşük anlamına gelir |
sample_weighting/delta_mean | > 0 | Pozitif olmalıdır |
sample_weighting/delta_std | > 0 | Veri kalitesindeki değişkenlik |
sample_weight_mean_weight ≈ 1.0 ise: Kappa değeriniz çok düşük. Örneklerin çoğu delta > kappa koşulunu sağlıyor ve yumuşak ağırlıklandırmayı tamamen atlıyor. RA-BC, standart BC ile eşdeğer hale geliyor.
Verilerinize göre kappa ayarlama:
Varsayılan kappa=0.01, makalenin T-shirt katlama görevi için (~90 sn'lik 30fps bölümler) ayarlanmıştır. Veri setiniz için, kaydedilen sample_weighting/delta_mean ve sample_weighting/delta_std değerlerini kontrol edin:
# If delta_mean ≈ 0.03 and delta_std ≈ 0.02:
# Most deltas fall in range [0.01, 0.05]
# Option 1: Set kappa = delta_mean (medium selectivity)
--sample_weighting.kappa=0.03
# Option 2: Set kappa = delta_mean + delta_std (high selectivity)
--sample_weighting.kappa=0.05
# Option 3: Set kappa = delta_mean + 2*delta_std (very selective)
--sample_weighting.kappa=0.07RA-BC'nin yardımcı olmayabileceği durumlar:
Veri setiniz zaten yüksek kalitedeyse (tüm gösterimlerde tutarlı ilerleme), filtrelenmesi gereken bir şey olmadığı için RA-BC çok fazla fayda sağlamayacaktır.
RA-BC ile Çoklu GPU Eğitimi
accelerate launch \ --multi_gpu \ --num_processes=4 \ src/lerobot/scripts/lerobot_train.py \ --dataset.repo_id=your-username/your-dataset \ --policy.type=pi0 \ --sample_weighting.type=rabc \ --sample_weighting.kappa=0.01 \ --output_dir=outputs/train/policy_rabc \ --batch_size=32 \ --steps=40000
İpuçları & En İyi Uygulamalar
Bir Mod Seçme
- Hızlı deneyler için
single_stageile başlayın - etiketleme yükü yok - Görevlerin net yüksek düzey aşamaları yoksa ancak ayrıntılı ilerleme takibi istiyorsanız
dense_onlykullanın - Hem kaba hem de ince taneli ilerlemenin anlamlı olduğu karmaşık görevler için
dualkullanın
Etiketleme Kalitesi
- Alt görev adlarında spesifik olun: “katla” yerine “yakın kenarı tutun ve merkeze doğru katlayın” kullanın
- Görselleştirme ile doğrulayın: Eğitimden önce birkaç bölümü mutlaka kontrol edin
- Tutarlı adlandırma: Tüm bölümlerde aynı alt görev adlarını kullanın
RA-BC
- Önce SARM'ı eğitin: RA-BC kalitesi tamamen SARM kalitesine bağlıdır
sample_weight_mean_weightdeğerini izleyin: ≈ 1.0 ise kappa değerini artırın (bkz. RA-BC Kappa Ayarı)
Atıf
@article{chen2025sarm,
title={SARM: Stage-Aware Reward Modeling for Long Horizon Robot Manipulation},
author={Chen, Qianzhong and Yu, Justin and Schwager, Mac and Abbeel, Pieter and Shentu, Yide and Wu, Philipp},
journal={arXiv preprint arXiv:2509.25358},
year={2025}
}