LLM·3 dk okuma·

HF Jobs Üzerinde LoRA ile Asenkron GRPO: Storage Bucket, Proxy ve NCCL'siz Dağıtık Eğitim

Paylaş
LLMEdumints Blog

Özet (TL;DR)

TRL v1.14 sürümüyle birlikte AsyncGRPOTrainer, tam model yerine LoRA adaptörü eğitebilme ve yalnızca bu adaptörü vLLM sunucularına senkronize edebilme yeteneği kazandı. Öne çıkan 5 temel nokta şunlardır:

  • Hafif Ağırlık Senkronizasyonu: Rank-1 LoRA adaptörü yalnızca birkaç megabayt boyutundadır; bu sayede pahalı NCCL ağı yerine her Job'a bağlanmış bir Storage Bucket üzerinden kolayca iletilebilir.
  • İzole Altyapı: Eğitici (trainer) ve vLLM çıkarım replikaları, farklı fiziksel makineler üzerinde çalışan bağımsız Hugging Face Job konteynerleri olarak konumlandırılır.
  • Akıllı Proxy Katmanı: Replikaların önünde çalışan hafif bir ters proxy; kimlik doğrulama başlığını ekler, rollout isteklerini ilgili KV önekini (prefix) tutan replikaya yönlendirir ve adaptör yükleme komutlarını tüm replikalara dağıtır.
  • Açık Sistem Metrikleri: AsyncGRPO metrikleri eğitim ve çıkarım süreçlerindeki darboğazların nerede yaşandığını net şekilde gösterir.
  • Dramatik Performans Artışı: 500 adımlık aynı eğitim reçetesi, yapılan beş iterasyonluk optimizasyon sonucunda 3 saat 27 dakikadan 53 dakikaya indirilmiştir.

Mimari, LoRA ve Pekiştirmeli Öğrenme Dinamikleri

TRL'nin AsyncGRPOTrainer altyapısına PR #7017 ile eklenen LoRA desteği, eğitim ile çıkarım süreçlerinin aynı fiziksel makineyi paylaşma zorunluluğunu ortadan kaldırıyor. Thinking Machines ekibinin "LoRA Without Regret" çalışmasında gösterildiği üzere, politika gradyanı tabanlı pekiştirmeli öğrenmede (RL) avantaj fonksiyonu bölüm (episode) başına yalnızca yaklaşık ~O(1) bitlik bilgi sağlar. Dolayısıyla rank-1 bir adaptör dahi tam model ince ayarı (full fine-tuning) başarımını yakalamak için teorik ve pratik olarak yeterlidir.

Sistem mühendisliği açısından bu durum devrimsel bir kolaylık yaratır: 1.5B parametreli bir modelin tam ağırlıkları yaklaşık 3 GB iken, rank-1 adaptör sadece birkaç megabayttır. Modelin tamamını her güncellemede çıkarım sunucularına aktarmak yerine sadece adaptörü göndermek ağ yükünü minimuma indirir. vLLM aynı anda birden çok adaptörü bellekte tutabildiğinden; devam eden eski rollout'lar başladıkları politika ile tamamlanırken, yeni başlayan istekler en güncel adaptör ağırlıklarını kullanır.

Hugging Face Jobs ile NCCL'siz Dağıtık Mimari

Normal şartlarda dağıtık eğitim süreçleri, düğümler arası doğrudan iletişim ve yüksek bant genişliği sağlayan NCCL kümelerine ihtiyaç duyar. Ancak Hugging Face Jobs ortamında her iş, tek bir sanal makinede çalışan izole bir konteynerdir (maksimum 8xH200 GPU ile sınırlı) ve düğümler arası yerel ağ ya da paylaşımlı disk bulunmaz.

Tam ağırlık senkronizasyonunda bu durum tıkanıklık yaratırken, LoRA adaptörlerinin küçük boyutu sayesinde iletişim Storage Bucket birimleri üzerinden kurulur. Her bir Job'a FUSE dosya sistemi olarak bağlanan bu depolama alanları, makineler arasında doğrudan ağ bağlantısına ihtiyaç bırakmadan paylaşımlı bir disk gibi çalışır.

Geliştiriciler İçin Pratik Çıkarımlar

  • Maliyet ve Kaynak Optimizasyonu: Pahalı ve yönetimi zor çok-düğümlü (multi-node) NCCL kümeleri yerine, bulut nesne depolama mekanizmalarıyla gevşek bağlı (loosely coupled) ölçeklenebilir eğitim hatları kurabilirsiniz.
  • KV Önbellek Farkındalığı: Rollout üretiminde istekleri KV önbelleğini hazır bulunduran replikalara yönlendiren bir proxy mimarisi, LLM çıkarım gecikmesini ciddi şekilde düşürür.
  • Gözlemlenebilirlik Odaklı Geliştirme: Asenkron mimarilerde metrik takibi, üretim hattında GPU belleği mi yoksa ağ senkronizasyonu mu darboğaz yaratıyor sorusunu anında çözer.

Orijinal kaynağa buradan ulaşabilirsiniz.


Bu konuyu derinlemesine öğrenmek isterseniz: Ölçeklendirme ve Optimizasyon modülüne göz atın.

Paylaş

Bu konuyu daha derinlemesine öğrenmek ister misin?

Edumints'teki ücretsiz kursları incele ve bugün başla.

Kurslara Göz At →