AVTensor: Eğitim Verisi İçin Rust Tabanlı Medya Kod Çözücü
Runway'in açtığı Rust kütüphanesi AVTensor, ses ve görüntüyü tek geçişte eş zamanlı çözerek gizli senkronizasyon hatalarını ortadan kaldırıyor ve eğitim MFU'sunu artırıyor.
Runway mühendisleri, ses-görüntü modellerini eğitirken kullandıkları veri hattında sessiz bir senkronizasyon hatası keşfetti: bazı MP4 dosyalarında video ve ses akışları farklı zaman sıfır noktalarından başlıyor, negatif zaman damgaları ve değişken kare hızları yüzünden torchcodec ile torchaudio'nun birlikte kullanıldığı çözüm iki akışı yanlış hizalıyordu. Sonuç, ilk saniyelerde donmuş görüntü karesi üzerinden akan ses ve modelin dudak-ses ilişkisini gevşek öğrenmesiydi; hata mimari sorunuymuş gibi görünse de kaynağı kod çözücüdeydi.
Bu sorunu kalıcı çözmek için ekip, FFmpeg'in C API'siyle doğrudan konuşan, Rust ile yazılmış AVTensor adlı kütüphaneyi geliştirdi ve açık kaynak olarak yayımladı. AVTensor, bir konteyneri tek geçişte demux ederek ses ve görüntüyü ortak bir zaman eksenine oturtuyor, çıktı tensörlerini önceden ayırıp tek seferde dolduruyor ve Python'un GIL kilidini serbest bırakarak iş parçacığı tabanlı veri yükleyicilerle sorunsuz çalışıyor. API bilinçli olarak kare indeksi yerine zaman damgasıyla arama yapıyor ve nesne depolamadan doğrudan akış okuyarak gereksiz kopyalamayı ortadan kaldırıyor.
Bu değişiklik, eğitim verimliliğinde (MFU) 1.8 puanlık somut bir kazanç sağladı ve C/C++ egemenliğindeki medya kod çözme dünyasında Rust'ın bellek güvenliği avantajlarını üretim ölçeğinde göstermiş oldu. Mühendisler için ders, veri hattındaki ince zamanlama hatalarının model davranışını mimari bir kusurmuş gibi gösterebileceği ve kök nedenin genellikle en temel katmanda, yani veri okuma ve kod çözme aşamasında aranması gerektiğidir.