NVIDIA NeMo-RL kütüphanesinin ilk sürümü, PyTorch DTensor (FSDP2 olarak da bilinir) ile eğitim desteği sunmaktadır. Bu altyapı, HuggingFace ekosistemine yerel entegrasyon, hızlı deney yapma imkanı ve PyTorch’un yerel paralellikleri (FSDP2, tensor paralel, sıra paralel ve bağlam paralel) ile ölçeklenme olanağı sağlar.
Bununla birlikte, model boyutları yüz milyarlarca parametreye yaklaştıkça, DTensor yolu yetersiz hale gelmektedir. Büyük modellerin aktivasyon belleği önemli yeniden hesaplama yükleri meydana getirerek, adım sürelerini aşırı şekilde yavaşlatmaktadır. DTensor yolu ayrıca, optimal verimlilik için gerekli olan optimize edilmiş NVIDIA CUDA çekirdekleri ve diğer performans iyileştirmelerinden de yoksuldur. Bu zorluklar, NVIDIA tarafından tasarlanan Megatron-Core kütüphanesine daha verimli bir çözüm ihtiyacını ortaya çıkarmaktadır.
En son NeMo-RL v0.3 sürümünü keşfedin; burada, detaylı dökümantasyon, örnek betikler ve Megatron-Core arka planı ile büyük modelleri etkili bir şekilde yeniden eğitmek için yapılandırma dosyaları bulacaksınız.
Megatron Arka Planıyla Pekiştirilmiş Güçlü Öğrenme
Megatron-Core kütüphanesi, GPU’ya optimize edilmiş teknikler ve yüksek verimlilik artırma iyileştirmeleri ile büyük dil modellerinin kesintisiz eğitimini mümkün kılar. Kütüphanenin 6D paralellik stratejisi, iletişim ve hesaplama desenlerini optimize eder ve çeşitli model mimarilerini destekler.
NeMo-RL, Megatron-Core için destek ekleyerek geliştiricilerin bu optimizasyonları bir daha training süreleri boyunca kullanmalarını sağlar. Megatron-Core birçok düşük seviyeli ayar sunmasına rağmen, bu ayarları yapılandırmak yeni kullanıcılar için zorlu olabilir. NeMo-RL, bu süreci kolaylaştırarak karmaşık ayarları otomatik olarak yönetir ve kullanıcıya daha basit, sezgisel yapılandırma seçenekleri sunar.
Megatron Eğitiminin Başlatılması
Megatron tabanlı eğitimi etkinleştirmek oldukça basittir. Yapılandırma dosyanıza policy.megatron_cfg kısmını eklemeniz yeterlidir:
policy:
...
megatron_cfg:
enabled: true
activation_checkpointing: false
tensor_model_parallel_size: 1
pipeline_model_parallel_size: 1
...
optimizer:
...
scheduler:
...
distributed_data_parallel_config:
grad_reduce_in_fp32: false
overlap_grad_reduce: true
overlap_param_gather: true
average_in_collective: true
use_custom_fsdp: false
data_parallel_sharding_strategy: "optim_grads_params"
Tüm argümanlar, eğitim sırasında Megatron’a iletilecektir. Yapılandırmanıza Megatron bölümünü ekledikten ve enabled=True
ayarından sonra, bir modeli eğitmek için hazır hale gelirsiniz. Eğitim başlatma süreci, DTensor ile olduğu gibi, README‘de veya DeepScaleR’i yeniden üretim rehberimizde açıklandığı gibi yapılmaktadır.
Sonuçlar ve Karşılaştırmalar
Megatron tabanlı eğitim, hem yoğun hem de Uzmanlar Karışımı (MoE) modellerini desteklemektedir. Aşağıda, Group Relative Policy Optimization (GRPO) yöntemi için bazı yaygın modellerin adım süresi kırılımı gösterilmektedir. Tablo, her eğitim çalışmasının adım 22-29’u üzerinden ortalamaları sunmaktadır.
Model | Arka Plan | Düğümler | Düğüm başına GPU | Toplam adım süresi (s) | Politika eğitimi (s) | Refit (s) | Üretim (s) | Logprobs almak (s) | Örnek başına ortalama üretilen token sayısı |
Llama 3.1-8B Instruct | Megatron | 1 | 8 | 112 | 28 | 5 | 58 | 18 | 795 |
PyT DTensor | 1 | 8 | 122 | 38 | 4 | 57 | 19 | 777 | |
Llama 3.1-70B Base | Megatron | 8 | 8 | 147 | 28 | 14 | 84 | 18 | 398 |
PyT DTensor* | 8 | 8 | 230 | 97 | 15 | 82 | 28 | 395 | |
Qwen3 32B** | Megatron | 8 | 8 | 213 | 68 | 7 | 96 | 40 | 3283 |
Qwen3 30B-A3B** | Megatron | 8 | 8 | 167 | 50 | 12 | 78 | 23 | 3251 |
Tüm koşullar Max dizilim uzunluğu 4096, rollout batch boyutu 2048, global batch boyutu 512 ve dizilim paketleme etkinleştirilmiş olarak gerçekleştirilmiştir.
Megatron-Core tarafından sağlanan performans iyileştirmelerini kullanarak, DTensor ile karşılaştırıldığında, aynı yakınsama özellikleriyle üstün eğitim performansı elde edilmiştir.
Uzun Dizi Desteği ve Diğer Önemli Özellikler
Megatron-Core ve DTensor ile uzun bağlam eğitimini destekleyebiliriz. Örneğin, aşağıda Megatron arka planı ile birlikte 16k dizilim uzunluğunda Llama 3.3 70B için mevcut performans sonuçları verilmiştir. Daha uzun dizilim uzunlukları da desteklenmektedir ve uzun bağlam eğitimi için performans optimizasyonları devam etmektedir.
Bunların yanı sıra, NeMo-RL v0.3, geniş bir model yelpazesinde etkili yeniden eğitim süreçlerini kolaylaştıran birkaç heyecan verici özellik sunmaktadır:
- Asenkron rollout: Kullanıcılar artık vLLM asenkron motoru‘nu etkinleştirerek
policy.generation.async_engine=True
ayarını aktif hale getirebilir, bu da çok aşamalı RL sürelerini 2-3 kat hızlandırmaktadır. - Birlikte olmayan üretim (DTensor arka planı için): Kullanıcılar artık eğitim ve üretim arka planlarını farklı GPU setlerinde yerleştirme seçeneğine sahiptir. Bu, eğitim ve üretim için uyumsuz paralellikler/dünya boyutları olduğunda veya eğitim veya üretim sonrası bellek yeterli olmadığında faydalı olabilir.
Sonuç olarak, NeMo-RL v0.3 ile Megatron-Core arka planının kullanımı, PyTorch DTensor ile karşılaştırıldığında, eğitim verimliliğini önemli ölçüde artırmaktadır. Özellikle Llama 70B gibi büyük modeller için sağlanan GPU’ya özel çekirdekler, 4D paralellik ve dizi paketleme ile birlikte eğitimin verimli bir şekilde gerçekleştirilmesi sağlanmaktadır.
NVIDIA NeMo-RL dökümantasyonunu, örnek yapılandırmalar ve betiklerle keşfedin, böylece Megatron-Core optimizasyonları ile büyük modellerin yeniden eğitimine başlayabilirsiniz.