TRL ve vLLM ile Aynı Grafik İşlemciler Üzerinde Ortak Yerleştirilmiş Model Eğitimi ve Üretimi
Kaynak: huggingface.co ·
Eski TRL sürümlerinde vLLM ayrı bir sunucu olarak çalıştırılıyor ve eğitim süreci ile üretim süreci arasında grafik işlemcilerin boşa beklemesine yol açıyordu. Yeni yapılan entegrasyonla birlikte vLLM, eğitim koduyla aynı dağıtık süreç grubu içinde ortak yerleştirilmiş olarak çalıştırılabilmektedir. Bu sayede HTTP haberleşme yükü ortadan kalkmakta ve her iki görev aynı grafik işlemcileri sırayla ortaklaşa verimli bir şekilde kullanmaktadır. Gerçekleştirilen deneylerde, 1.5B model için 1.43 kat ve 7B model için 1.73 kat hızlanma elde edilmiştir.
Neden önemli?
Önceki sunucu tabanlı yapıda eğitim ve üretim süreçlerinin ayrı grafik işlemcilerde çalışması donanım kaynaklarının verimsiz kullanılmasına ve maliyetlerin artmasına neden oluyordu. Bu yenilik, özellikle çevrim içi öğrenme yöntemlerini kullanan geliştiricilerin ek donanıma ihtiyaç duymadan daha yüksek veri geçiş hızı elde etmesini sağlamaktadır.
Bununla neler yapılabilir?
- Olası kullanım: vllm_mode='colocate' parametresi kullanılarak GRPO eğitimlerinde vLLM aynı süreç grubu içinde başlatılabilir.
- Olası kullanım: Büyük modellerin eğitimi sırasında bellek yönetimini optimize etmek amacıyla vLLM uyku modu entegre edilebilir.
Somut sonuçlar ve kanıtlar
- 1.5B boyutundaki model ile yapılan testlerde en büyük grup boyutunda 1.43 kata varan hızlanma sağlanmıştır. (Üreticinin açıklaması)
- 7B boyutundaki model ile yapılan testlerde tensor paralelliği artırıldığında 1.73 kata varan hızlanma elde edilmiştir. (Üreticinin açıklaması)
Sınırlar ve açık kalan sorular
Küçük modellerde aşırı paralelleştirme iletişimi artırarak performansı düşürebilmektedir. Ayrıca vLLM uyku modunun kapatma aşamasında segmentasyon hatasına yol açabildiği ve bazı sürüm çakışmalarının yaşanabileceği belirtilmiştir.