Fiziksel yapay zekanın yükselmesi ile birlikte, video içerik üretimi de büyük bir ivme kazandı. Tek bir kamera ile donatılmış otonom bir araç, günde 1 TB’tan fazla video üretebilirken, robotik destekli bir üretim tesisi günlük olarak 1 PB veri oluşturabiliyor.
Bu veriyi world foundation model’ların (WFM’ler) eğitimi ve ince ayarı için kullanabilmek adına, öncelikle veriyi etkili bir şekilde işlemek gerekiyor.
Geleneksel sabit kapasiteli birikim işleme süreçleri bu büyüklükteki veri ile başa çıkmakta zorlanıyor ve çoğu zaman GPU’ları yeterince kullanamıyor, istenen verimliliği sağlayamıyor. Bu tür verimsizlikler, yapay zeka model geliştirme sürelerini uzatırken maliyetleri de artırıyor.
Bu sorunu çözmek adına, NVIDIA NeMo Curator ekibi, büyük ölçekli video küratörlüğü için esnek ve GPU hızlandırmalı bir akış işleme hattı geliştirdi. Bu çözüm, NVIDIA DGX Cloud‘da kullanılabilir durumda. Bu yazıda, işleme hattındaki optimizasyonlar, otomatik ölçeklendirme ve yük dengeleme teknikleri ile her aşamada mevcut donanımı en iyi şekilde kullanarak verimli bir iş akışının nasıl sağlandığını inceleyeceğiz.
Sonuç mu? Daha yüksek verim, toplam sahip olma maliyetinde (TCO) azalma ve hızlandırılmış yapay zeka eğitim döngüleri, böylece son kullanıcı sonuçları daha hızlı ulaşabiliyor.
Yük Dengeleme ve Otomatik Ölçeklendirme
Geleneksel veri işleme genellikle birikim işleme yöntemine dayanır. Bu yöntemde büyük veri hacimleri biriktirilir ve bir seferde işlenir, her aşamadan birer birer geçilir.

Bu durum iki temel sorunu beraberinde getiriyor:
- Verimlilik: Heterojen kaynakları verimli bir şekilde kullanmak zordur. Birikim, CPU odaklı bir aşamadayken GPU kaynakları yeterince kullanılmaz; tam tersinde de aynı durum söz konusu olur.
- Gecikme: İşleme aşamaları arasındaki ara veri ürünlerini depolamak ve geri yüklemek, ciddi gecikmelere neden olur.
Bu noktada, akış işleme yöntemi, ara veri ürünlerini aşamalar arasında doğrudan aktararak, her aşama tamamlandığında bir sonraki aşamaya işleme yapmaya başlar.

Buradaki zorluk, her aşama arasındaki verimliliği dengelemek ve CPU ve GPU ağırlıklı iş yüklerini ayırmaktır.
Dengeli Verimlilik
Bazı durumlarda, eğer iki aşamanız varsa ve biri diğeriyle kıyaslandığında iki kat daha hızlıysa, yavaş aşama bir dar boğaz haline gelir. Böylece, tüm işleme hattı yavaş aşamanın performansına bağlı kalır. Ayrıca, bellek içinde biriken ara iş ürünlerinin neden olduğu maliyetli telafi dönemleri de söz konusu olabilir. Bu durumu, yavaş aşamanın iki katı sayıda kopyasını çalıştırarak çözmek mümkündür.
Görsel olarak, heterojen verimlilikte bir çok aşamalı video işleme hattında otomatik ölçeklendirme ve yük dengeleme ile sağlanan performans ve donanım kullanımı arasında önemli farklar olabilir:

CPU ve GPU İş Yüklerinin Ayrılması
Bir diğer önemli nokta, video indirme veya klip dönüştürme gibi CPU yoğun görevleri, AI gömme veya sınıflandırma gibi GPU yoğun görevlerden ayırmaktır.
Bunu hayal etmek için, her aşama bir iki boyutlu kaynak alanında bir vektör olarak düşünmeyi düşünebilirsiniz. Bir eksen CPU talebini, diğer eksen ise GPU talebini temsil eder. Eğer tüm ağır işleri tek bir aşamada birleştirirseniz ve bu aşama %70 CPU ve %30 GPU talep ediyorsa, aynı oranı yukarı veya aşağı doğru ölçeklendirebilir ve bu yalnızca tek bir kullanım vektörünü farklı miktarlarda çarparak çoğaltırsınız. Bu da, kaynaklarınızın bu orana eşleşmediği durumlarda genellikle verimsizliklere yol açar.
Aksine, görevleri ayrıştırarak belirgin CPU ve GPU ağırlıklı aşamalara ayarlamak, daha fazla vektörle çalışmanızı sağlar. Bu da CPU ve GPU kaynaklarının daha verimli kullanılmasını sağlayarak, bir kaynak türünün boşta kalmadığı durumları önler.
Mimari ve Uygulama Detayları
Tüm işleme hattı, video kürasyon görevini birkaç aşamaya bölen Ray üzerine inşa edilmiştir:

Video kürasyon süreci, ham video dosyalarının alınmasından başlayıp, kliplere bölünmesi, kliplerin belirli bir formata dönüştürülmesi, kalite filtrelemeleri uygulanarak meta verilerin üretilmesi, görüntü başlıklarının oluşturulması ve nihayetinde içerik için gömme hesaplanmasına kadar olan aşamalardan oluşur.
Her aşama için, ana düzenleme iş parçacığı bir Ray aktörleri havuzunu yönetir. Her biri o aşama için bir işçi örneğidir. Birden fazla aktör, paralel olarak farklı video girişlerini işleyebilir; dolayısıyla, aşamanın verimliliği, aktör havuzunun büyüklüğü ile doğrusal olarak ölçeklenir.
Ayrıca, ana düzenleme iş parçacığı her aşama için bir giriş ve çıkış kuyruklarını yönetir. İşlenmiş veri paketlerini (yani video ve meta verisi) bir aşamadan diğerine taşırken, aşamanın genel verimliliğini sürekli ölçümleyebilir.
İlgili verimlilik temelinde, düzenleme iş parçacığı her aşamanın aktör havuzunun boyutunu üç dakikada bir ayarlar. Böylece yavaş aşamalar için daha fazla aktör bulunur. CPU’ya dayalı aşamalar, GPU aşamalarının meşgul kalmasını sağlamak için aşırı kaynak tahsis edebilir.
Bir şey daha önemlidir ki, ana düzenleme iş parçacığı gerçek verileri aşamalara taşımaz. Sadece, N aşamasının çıkış kuyruğundan N+1 aşamasının giriş kuyruğuna taşınan bir nesne referansı yani, verilerin global Ray nesne deposundaki karşılığı taşınır. Böylece, düzenleme iş parçacığı üzerindeki yük hafif kalır.
Sonuçlar ve Etki
Birikim işleme ile akış işleme sisteminin karşılaştırılması, akış verisinin daha optimal sistem kaynak kullanımı ile sonuçlanacağını göstermektedir:

Bu durumda, akış işleme hattı, bir saatlik video işlemek için her GPU için ~195 saniye alırken, birikim işleme hattının süresi ~352 saniyedir. Bu da ~1.8 kat hız artışı sağlamaktadır.
Gelecek Adımlar
Otomatik ölçeklendirme ve yük dengeleme konusundaki çabalarımız, temel düzeye göre %89’luk performans artışı sağlayan optimizasyon çalışmalarımızın yalnızca bir kısmını oluşturuyor. Bu sayede, günde ~1M saat 720p video verisini işleyebilen bir işleme hattını geliştirmiş bulunuyoruz.

*Performans, 2K işlemci ve 128 DGX düğümündeki ISO enerji tüketimi ile kıyaslanmıştır.
GPU kaynaklarının etkin kullanımı, NeMo Kuratör işleme hattı ile gerçekleştirilen çalışmalarda izlenerek gösterilebilir.

Şekil 7, başlangıçta bir ısınma periyodu olmasının ardından, otomatik ölçeklendirmenin GPU aşama işçilerini %99,5 oranında meşgul ettiğini göstermektedir.
Bu deney 32 GPU ile dört düğüm üzerinde gerçekleştirilmiştir. Eğer daha az GPU ile çalıştıysanız, GPU işçi kullanımı daha düşük olacaktır; çünkü otomatik ölçeklendiricinin GPU tahsisi için daha kaba bir granülasyonu vardır. Daha fazla GPU ile çalıştığınızda ise, GPU işçi kullanımı %100’e daha da yaklaşır.
Örnek vermek gerekirse, GPU aşaması X’in Y aşamasından 20 kat daha hızlı olduğunu varsayalım:
- Mevcut 32 GPU deneyiminde, aşama X’e iki GPU tahsis ettik ve aşama Y’ye 30 GPU verdik.
- Sadece sekiz GPU ile, hala bir GPU’yu aşama X için tahsis etmek zorunda kaldık ve yalnızca yedi GPU’yu aşama Y’ye kullandık; bu da aşama X GPU’sunun daha sık boşta kalmasına neden oldu.
- 64 GPU kullanarak, aşama X için üç ve aşama Y için de 61 GPU tahsis ederek neredeyse mükemmel bir dağılım gerçekleştirdik. Genel GPU aşama işçi kullanımı ise neredeyse %100 olmuştur.
Bu, tek bir işlemin GPU sayısını artırdıkça süper-lineer bir verimlilik artışı gözlemlememizin nedenidir.
Erken Erişim Talebi
Video veri kürasyonu için en iyi TCO’yu sağlamak amacıyla çeşitli erken erişim hesap ortakları ile aktif bir şekilde çalışıyoruz ve çok modlu modellerin bir sonraki nesli ile birlikte bu süreci hızlandırıyoruz:
- Blackforest Labs
- Canva
- Deluxe Media
- Getty Images
- Linker Vision
- Milestone Systems
- Nexar
- Twelvelabs
- Uber
Kendi altyapınıza ihtiyaç duymadan başlamak için, NeMo Video Kuratör NVIDIA DGX Cloud‘da erken erişim ile mevcut. Video veri kürasyonu ve model ince ayar talepleriniz için NVIDIA NeMo Kuratör Erken Erişim Programı’na katılabilir ve “yönetilen hizmetler” seçeneğini seçebilirsiniz.
Ayrıca, NeMo Video Kuratör, kendi altyapınızda çalıştırmak için indirilebilir bir SDK olarak da erken erişim ile mevcuttur.