LeRobot documentation

π₀ (Pi0)

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

π₀ (Pi0)

π₀, Physical Intelligence tarafından geliştirilen genel robot kontrolü için bir Görsel-Dil-Eylem modelidir. LeRobot uygulaması, açık kaynaklı OpenPI deposundan uyarlanmıştır.

Model Genel Bakış

π₀, Physical Intelligence tarafından geliştirilen ilk genel amaçlı robot temel modeli olarak robotikte bir atılımı temsil etmektedir. Tekrarlayan hareketler için programlanmış dar uzmanlar olan geleneksel robot programlarının aksine π₀, görsel girdileri anlayabilen, doğal dil talimatlarını yorumlayabilen ve çeşitli görevlerde farklı robotları kontrol edebilen genel bir politika olarak tasarlanmıştır.

An overview of Pi0

Fiziksel Zekâ Vizyonu

Physical Intelligence tarafından belirtildiği üzere, yapay zeka satranç oynamaktan ilaç keşfine kadar dijital alanlarda olağanüstü bir başarıya ulaşmış olsa da, fiziksel dünyada insan zekası yapay zekayı hâlâ büyük ölçüde geride bırakmaktadır. Moravec paradoksunu yeniden ifade edecek olursak, satranç oynamak yapay zeka için “kolay” bir problemken, bir gömleği katlamak veya bir masayı toplamak, bugüne kadar düşünülmüş en zor mühendislik problemlerinden bazılarını çözmeyi gerektirmektedir. π₀, kullanıcıların büyük dil modelleriyle yapabildikleri gibi robotlardan istedikleri herhangi bir görevi yerine getirmelerini talep edebilmelerini sağlayan yapay fiziksel zekânın geliştirilmesine yönelik ilk adımı temsil etmektedir.

Mimari ve Yaklaşım

π₀ birkaç temel yenilik bir araya getirir:

  • Flow Matching: Akış eşleştirme (difüzyon modellerinin bir varyantı) aracılığıyla önceden eğitilmiş VLM'leri sürekli eylem çıktılarıyla geliştirmek için yenilikçi bir yöntem kullanır
  • Çapraz Vücut Eğitimi: UR5e, Bimanual UR5e, Franka, Bimanual Trossen, Bimanual ARX, Mobile Trossen ve Mobile Fibocom dahil olmak üzere 8 farklı robot platformundan gelen verilerle eğitildi
  • İnternet Ölçeğinde Ön Eğitim: Ön eğitilmiş 3B parametreli Görsel-Dil Modelinden semantik bilgi devralır
  • Yüksek Frekanslı Kontrol: Gerçek zamanlı çevik manipülasyon için en fazla 50 Hz'de motor komutları üretir

Kurulum Gereksinimleri

  1. LeRobot'u Yükleme Kılavuzumuz’u takip ederek yükleyin.

  2. Pi0 bağımlılıklarını yüklemek için şunu çalıştırın:

    pip install -e ".[pi]"

Eğitim Verisi ve Yetenekler

π₀, bugüne kadar derlenen en büyük robot etkileşim veri seti üzerinde eğitilmiştir ve üç temel veri kaynağını birleştirir:

  1. İnternet Ölçeğinde Ön Eğitim: Anlamsal anlama için webden gelen görsel-dil verisi
  2. Open X-Embodiment Veri Seti: Açık kaynak robot manipülasyon veri setleri
  3. Physical Intelligence Veri Seti: 8 farklı robot üzerinde çevik görevlere ait büyük ve çeşitli veri seti

Kullanım

LeRobot'ta π₀'yu kullanmak için politika türünü şu şekilde belirtin:

policy.type=pi0

Eğitim

π₀ eğitiminde, uygun yapılandırmayla standart LeRobot eğitim betiğini kullanabilirsiniz:

lerobot-train \
    --dataset.repo_id=your_dataset \
    --policy.type=pi0 \
    --output_dir=./outputs/pi0_training \
    --job_name=pi0_training \
    --policy.pretrained_path=lerobot/pi0_base \
    --policy.repo_id=your_repo_id \
    --policy.compile_model=true \
    --policy.gradient_checkpointing=true \
    --policy.dtype=bfloat16 \
    --policy.freeze_vision_encoder=false \
    --policy.train_expert_only=false \
    --steps=3000 \
    --policy.device=cuda \
    --batch_size=32

Temel Eğitim Parametreleri

  • --policy.compile_model=true: Daha hızlı eğitim için model derlemesini etkinleştirir
  • --policy.gradient_checkpointing=true: Eğitim sırasında bellek kullanımını önemli ölçüde azaltır
  • --policy.dtype=bfloat16: Verimlilik için karma hassasiyetli eğitim kullanın
  • --batch_size=32: Eğitim için batch boyutu, bunu GPU belleğinize göre ayarlayın
  • --policy.pretrained_path=lerobot/pi0_base: İnce ayar yapmak istediğiniz temel π₀ modeli, seçenekler şunlardır:
  • --policy.optimizer_fused=true: Daha hızlı optimizasyon adımları için birleşik AdamW kullanır; bu bayrak, bir çalışmayı sürdürürken yoksayılır

Eğitim Parametreleri Açıklaması

ParametreVarsayılanAçıklama
freeze_vision_encoderfalseGörüntü kodlayıcısını dondurmayın
train_expert_onlyfalseVLM'yi dondurmayın, tüm parametreleri eğitin

💡 İpucu: train_expert_only=true ayarlandığında VLM dondurulur ve yalnızca eylem uzmanı ile projeksiyonlar eğitilir; bu da azaltılmış bellek kullanımıyla ince ayar yapılmasına olanak tanır.

Göreceli Eylemler

Varsayılan olarak π₀ mutlak eylemleri tahmin eder. Modelin mevcut robot durumuna göre ofsetleri tahmin etmesi için göreli eylemleri etkinleştirebilirsiniz. Bu, belirli kurulumlarda eğitim kararlılığını iyileştirebilir.

Göreceli eylemleri kullanmak için, önce veri seti istatistiklerinizi CLI aracılığıyla göreceli uzayda yeniden hesaplayın:

lerobot-edit-dataset \
    --repo_id your_dataset \
    --new_repo_id your_dataset \
    --operation.type recompute_stats \
    --operation.overwrite true \
    --operation.relative_action true \
    --operation.chunk_size 50 \
    --operation.relative_exclude_joints "['gripper']" \
    --push_to_hub true

Veya eşdeğer olarak Python'da:

from lerobot.datasets import LeRobotDataset, recompute_stats

dataset = LeRobotDataset("your_dataset")
recompute_stats(dataset, relative_action=True, chunk_size=50, relative_exclude_joints=["gripper"])
dataset.push_to_hub()

chunk_size, politikanızın chunk_size değeriyle (π₀ için varsayılan 50) eşleşmelidir. relative_exclude_joints, mutlak uzayda kalması gereken eklem adlarını (ör. kavrama komutları) listeler. Güncellenen istatistikleri Hub'a yüklemek için --push_to_hub true kullanın.

Ardından göreli eylemler etkinleştirilerek eğitim yapın:

lerobot-train \
    --dataset.repo_id=your_dataset \
    --policy.type=pi0 \
    --policy.use_relative_actions=true \
    --policy.relative_exclude_joints='["gripper"]' \
    ...

Lisans

Bu model, orijinal OpenPI deposu ile tutarlı olarak Apache 2.0 Lisansı'na uyar.

Update on GitHub