· kaynak dev.to (home feed)
Tek GPU, İki Ayaklı Bir Ördek Robotu için Beş Günde 14 Beceri Eğitti
Bir geliştirici, tek GPU üzerinde kuyruklu PPO eğitimi kullanarak iki ayaklı bir ördek robotu için konuşlandırılabilir 14 beceri üretti; OOM yeniden denemeleri, NaN korumaları ve reward tasarımı üzerine yeniden kullanılabilir derslerle birlikte.

Ne inşa edildi
dev.to'da paylaşım yapan bir geliştirici, 15 XL330 servo, bir Radxa ZERO 3W hesaplama kartı ve 50 Hz'lik bir kontrol döngüsünden oluşan MicroDuck adlı küçük iki ayaklı ördek robotu tanıtıyor. Proje tek bir yürüyüş (gait) eğitmek yerine tam bir beceri kütüphanesini hedefledi: düz ve engebeli zeminde yürüyüş, tekerlekli ayaklarla kayma, düştükten sonra ayağa kalkma, yuvarlanma, topa vurma, yerden nesne kaldırma ve oturma ile ayakta durma arasında geçiş. Yazıya göre, 14 beceri varyantının tamamı eğitildi ve fiziksel robot üzerinde konuşlandırılmak üzere ONNX policy'leri olarak dışa aktarıldı.
Eğitim, tek bir GPU'da yaklaşık beş günlük duvar saati süresi aldı. Simülasyon, Warp GPU-paralel backend'ini kullanan MuJoCo tabanlı bir ortam olan mjlab'da çalıştı; rsl_rl çerçevesinden PPO, düz zeminde 4.096, engebeli zeminde 2.048 paralel ortamı yönetti. Eğitim kodu pollen-robotics/microduck_rl üzerine inşa edilmiştir.
Gözetimsiz bir çalışmayı ayakta tutmak
İşin büyük kısmını üç altyapı kararı yaptı. Görevler bash ilişkisel dizilerinde listelendi ve GPU'nun kendisiyle rekabet etmemesi için kesinlikle tek tek çalıştırıldı; tamamlanan her görev bir işaret (marker) dosyası bıraktı, sıfır olmayan bir durum koduyla çıkan her şey ise işaretsiz kaldı ve yeniden deneme kuyruğuna aktarıldı. İlk grup engebeli zemin görevleri 4.096 ortamda saniyeler içinde VRAM'i tükettiğinde çözüm keskindi: tüm engebeli görevleri 2.048 ortama düşürmek ve yeniden çalıştırmak. Yazarın pratik kuralı, ortam başına daha fazla gözlem ve fizik durumu taşıyan engebeli zeminin, düz zemin ortam sayısının kabaca %70'ini hak ettiği yönünde.
Yazı ayrıca bir logda benzer görünebilen iki hata sınıfını ayırıyor. Bellek yetersizliği (out-of-memory) çökmeleri saniyeler içinde gelir ve log'un sonundan teşhis edilir; NaN sapmaları ise dakikalar veya saatler sonra, critic'in gözlemlerindeki NaN değerleriyle ilgili bir hata olarak ortaya çıkar ve Weights & Biases eğrileri üzerinden izlenmelidir. Genel bir yama — reward ve advantage'lara NaN korumaları ile NaN durumları için bir sonlandırma bayrağı — kalan engebeli zemin becerilerini eğitim boyunca taşıdı.
Beceri beceri reward şekillendirme
En uzun bölüm, her becerinin reward fonksiyonunu kendi başına bir tasarım sorunu olarak ele alıyor ve paylaşılan ilkeler sunuyor: görev reward'ları yaklaşık 10 büyüklüğüne ölçeklenir, böylece paylaşılan regularisation terimleri tutarlı bir göreli güç korur; domain randomisation tarifleri sıfırdan yeniden inşa etmek yerine kanıtlanmış bir hız (velocity) baseline'ından devralınır; hareket sönümleme cezaları, büyük hareket içeren becerilerin erken keşif aşamasında sıfıra yakın tutulur ve bir curriculum ile yeniden devreye sokulur; ilerleme reward'ları yalnızca şimdiye kadarki en iyi ilerlemenin ötesindeki hareket için ödeme yapar, böylece olduğu yerde durmak hiçbir şey kazandırmaz.
Birkaç örnek. Yürüyüş için 1.0 ağırlıklı bir diklik cezası, küçük bir öne eğilmeyi fiilen ücretsiz kıldı — yakınsanan yürüyüş 2–4 derece öne eğimliydi ve itme testlerinin üçte ikisi robotu öne devirdi — bu yüzden ağırlık 2.0'ya çıkarıldı. Ayağa kalkma eğitimi, üç parçalı bir yükseklik reward'ını, bölümleri taklanın ortasında başlatan bir curriculum ile birleştirdi ve robotun bütün halinde öğrenemediği bir hareketi, öğrenebildiği bir yarımaya böldü. Yuvarlanma becerisinin ilk denemesi, yazıldığı haliyle reward altında gerçekten optimal olan hızlı, temassız dönme üretti; ikinci denemede dönüş zemine temas şartına bağlandı, ilerleme ödemesi 3 rad/s ile sınıırlandı ve bir iniş bonusu yalnızca 260 derecelik yuvarlanmadan sonra ödendi. Topa vuruşta asimetrik bir actor-critic kullanıldı: gerçek robotun top algısı olmadığı için actor topu hiç görmez, critic ise görür ve değer tahmini vuruşun getirisini öngörebilir. Nesne kaldırma, hiçbir hedef pozu tanımlamaktan kaçındı; ağız zemin seviyesinde asılı durana kadar bir zemin çekim terimi, bir temas yasağı ve bir dik yönelim terimi dengelendi. Birleşik yürüme ve toparlanma becerisi üç denetim turu gerektirdi; buna gerçekten düşülmüş olmayı şart koşan toparlanma reward'ları ve toparlanmayı eğimin 25 derecenin altında ve taban yüksekliğinin 0.09 üzerinde olacak şekilde somut olarak tanımlamak da dahildi.
Eğitim tarifi
Ağlar, gözlem normalizasyonuyla birlikte düz MLP'lerdir (512-256-128, ELU aktivasyonları); 0.01 hedef KL'ye karşı uyarlanan 1e-3 öğrenme oranı, 0.99 discount, 0.95 GAE lambda, 0.2 clip parametresi, ortam başına 24 adım ve 4 mini-batch üzerinden 5 epoch kullanılır. İterasyon bütçeleri, hız ailesi için 25.000'den topa vurmaya kadar 5.000'e kadar değişiyordu. 50 Hz servo kontrolü için tekrarlama (recurrence) veya görü gerekmedi. Kabul, yakınsayan bir kayıbın ortaya çıkan hareketin kullanılabilir olup olmadığı hakkında pek bir şey söylemediği için, loss eğrileri yerine tek ortamlı rollout animasyonlarıyla değerlendirildi.
Neden önemli
Robot pekiştirmeli öğrenme çoğu zaman büyük hesaplama gücü gerektiren bir disiplin olarak çerçevelenir. Bu proje hobi ölçeğinde bir karşı örnek: tek bir GPU'da bir haftadan kısa sürede üretilen, kasıtlı olarak sade bir altyapıyla ayakta tutulan eksiksiz bir çok becerili policy kütüphanesi — seri bir kuyruk, işaret dosyaları, yeniden deneme mantığı ve bellek hataları ile sayısal hatalar arasında net bir ayrım. Aktarılabilir parçalar, engebeli zemin için VRAM bütçeleme sezgisi, NaN güvenlik yaması ve her şeyden önce beceri başına reward notlarıdır; bunlar, reward şekillendirmenin nasıl başarısız olduğuna ve nasıl düzeltileceğine dair kompakt bir saha rehberi gibi okunuyor. MuJoCo'nun Warp backend'i gibi GPU-paralel simülatörler olgunlaştıkça, uçtan uca bir beceri kütüphanesi inşa etmek giderek bir araştırma demosundan çok rutin bir mühendislik gibi görünmeye başlıyor.
- #reinforcement-learning
- #robotics
- #mujoco
- #ppo
- #simulation