SON DAKİKA

Nvdia

NVIDIA DGX Cloud’da Petabayt Ölçeğinde Video İşleme: NVIDIA NeMo Curator Kullanımı

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.

A diagram shows a data processing pipeline with three swim lanes, originating from a command. Each swim lane follows the pattern of load data, pre-process the data, stash the data in cluster storage, retrieve the data for inferencing, then stashing to cluster storage again, before retrieving it for export to permanent storage.  The diagram highlights the separation between the CPU and GPU stages in this model, and how disruptive the storage and retrieval steps are to the steady flow of the pipeline.
Şekil 1. Birikim işleme iş akışı – ayrı aşamalar arasındaki küme depolama ve geri almanın akıştaki kesintileri vurgulanmaktadır.

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.

A diagram shows a data processing pipeline where data flows between CPU tasks and GPU tasks through memory instead of cluster storage. The pipeline is broken into stages: CPU tasks such as fetching data from Amazon S3 and preprocessing it, GPU tasks such as segmentation models and classification models, and final CPU tasks such as writing the results to permanent storage. The lack of cluster storage stages between the CPU and GPU stages distinguishes the streaming process as more efficient than the batch process from Figure 1.
Şekil 2. Ray’deki akışkan bir iş akışı – aşamalar arasında veri bellek içinde kalmaktadır.

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:

A diagram shows the importance of properly balanced allocation of compute resources to different stages. The before column shows a pipeline running top to bottom between fast, slow, and medium stages. Each stage has a simple GPU assigned, so the fast stage produces work faster than the slow stage can consume it, which results in a queue building up, while the final medium stage is racing ahead of the slow stage, with wasted compute resources. The after column shows the same stages but uses additional GPUs. Critically, the after column balances the GPUs correctly, so the slow stage has far more GPUs, and can both keep up with input from the fast stage and not starve the medium stage.
Şekil 3. Daha önce ve sonra doğru hesaplama kaynaklarının dengelendiği bir video işleme hattı.

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:

A diagram starts with an example input video, represented by an image of a robot placing fruits in a shopping bag. The first stage is Video Decode and Splitting, specified with the AI model called “Shot Detector” referring to a “shot” as in “scene” from cinematography. The second stage is Transcoding. The third stage is Filtering, with AI models listed as: Motion, Quality, Overlay Text, and Video Type. The fourth stage is Annotation, with AI models listed as Cosmos and Nemotron. The fifth and final stage shows the Video and Text Embeddings as part of the output, footnoted as training data. The final image repeats the robot image from the beginning, with the annotation implying that the image is kept alongside the metadata produced by the pipeline.
Şekil 4. NeMo Video Kuratör aşamaları

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:

A diagram compares the efficiency of a sequential batched pipeline against overlapping streamed pipelines. The pipeline shown has four stages: video download, cutscene detection, clip extraction, and clip transcoding. The top of the diagram shows this batch being run twice in sequence, across eight time steps. The bottom shows how stages with different resource utilization can be run in parallel so that a CPU-heavy stage can run at the same time as a GPU decoder-heavy stage, and at the same time as a GPU compute-heavy stage. This shows more efficient use of the resources and more results delivered more quickly.
Şekil 5. Verimsiz birikim işleme hattı ile verimli akış işleme hattı arasında karşılaştırma

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.

A bar chart shows processing time taken for the initial baseline implementation of the video processing logic taking 3.4 years to complete, compared with 41 days with the 31x speed-up resulting from the optimizations and efficiency of NeMo Curator run on H100 + L40S, and 14 days with the 89x speed up running on GB200 + L40S.
Şekil 6. NeMo Video Kuratör ile hesaplama süresindeki gelişim

*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.

A line graph shows GPU usage during a run of the NeMo Curator. Usage starts at 0% when the job starts, quickly jumps up to an average around 50% during the first stage, and then hits 100% from the second stage until the end of the run.
Şekil 7. NeMo Kuratör işleme hattı sırasında GPU işçi kullanımı

Ş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.

Kaynak

Nvdia Blog

Düşüncenizi Paylaşın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgili Teknoloji Haberleri