Bir çekirdeğe sığan model

Deepgram’ın Nova-3 konuşma tanıma modeli bir Trainium2 fiziksel çekirdeğine sığıyor. Şirket ile AWS’nin açıkladığı taşımada bu ayrıntı, aygıtın nasıl bölüneceğini belirledi: dört mantıksal çekirdekli varsayılan düzen yerine sekiz fiziksel çekirdeğin ayrı kullanıldığı LNC1 seçildi. Sonuç, aynı aygıtta sekiz bağımsız model kopyası. Altyapı işletmecisinin elindeki kapasiteyi anlamak için modelin belleğe nasıl yerleştiğine bakmak gerekiyor. Çekirdekleri birleştirmek, bu iş yükünde ek kopya çalıştırma olanağından vazgeçmek demek.[1]

Bu düzenin ölçümlerin kapsamı çevrimdışı toplu ses çözümleme. Bir iletişim merkezinin birikmiş kayıtlarını işlemek, konuşmanın ortasında yanıt bekleyen kullanıcıya hizmet vermekten farklı bir görev. Daha büyük toplu işlemler aygıtı doldurabilir; karşılığında işi biriktirmek gerekir. Deepgram’ın deneyinde aynı aygıttan çıkarılan iş miktarını, gerçek zamanlı konuşma hizmetinin gecikmesine veya bütün tesisin elektrik verimine doğrudan çeviremeyiz. Bu iki sonuç için aynı hizmet hedefini ve sistemin diğer bileşenlerini de kapsayan ölçüm gerekir.[1]

Belleğin tekrarını azaltmak

Ekip, hesaplamadan önce belleğin tekrar tekrar yaptığı işi azalttı. FFN katmanının özel çekirdeği bir ağırlık parçasını yükleyip birden fazla belirteç parçasında kullanıyor. Önceki düzen aynı ağırlıkları her parçada yeniden getiriyordu. Derinlik yönünde evrişim de Tensor Engine üzerinde verimsiz kalan örtük matris çarpımından Vector Engine’de çarpma ve biriktirmeye taşındı. Aynı modelin farklı donanım birimlerine dağıtılması, hangi birimin gerçekte meşgul kaldığını değiştirdi.[1]

İki boyutlu evrişimde karşılaşılan engel ise derlemeydi: 32’nin üzerindeki toplu işlem boyutları özel bir çekirdek gerektirdi. Kodlayıcı ile çözücü ayrı statik çizgeler halinde derlendi. Bu ayrıntılar, taşınabilir bir model tanımıyla verimli bir sunum düzeni arasında hâlâ mühendislik işi bulunduğunu gösteriyor. Yazılım, mevcut silikondan alınan işi değiştirebiliyor. Burada artan kapasitenin kaynağı yeni bir aygıt eklemek kadar, aynı aygıtın bellek ve yürütme düzenini işe uydurmak.[1]

CPU da aynı hesabın içinde

Darboğaz yonganın dışında da belirdi. Küçük çözücü çağrılarında CPU’nun işi aygıta gönderme yükü öne çıktı. Python’un çok iş parçacıklı düzeninde yorumlayıcı kilidi, çok süreçli düzende ise gönderim giderleri vardı. Deepgram’ın üretim sunucusu Rust kullanıyor; ekip, her model kopyasına bir iş parçacığı veren hafif bir çalışma zamanı kurdu. Önceden derlenmiş NEFF dosyalarını libnrt üzerinden çağırarak sunum yolundan Python ve PyTorch’u çıkardı. Hızlandırıcıyı besleyen ana makine de kapasite hesabının içinde.[1]

Bu nedenle sekiz kopya, her uygulama için sekiz kat hizmet anlamına gelmiyor. Deepgram’ın kendi ölçümleri belirli toplu işlem boyutlarında belirli bir sunum düzenini karşılaştırıyor. Elde edilen yapısal ders daha dar ve daha kullanışlı: modelin çekirdeğe sığması, ağırlığın yeniden kullanılması ve ana makinenin işleri zamanında göndermesi birlikte işe yarıyor. Aynı tercihler başka bir modelde farklı sınırlarla karşılaşabilir. İşletmecinin satın aldığı aygıt sayısıyla kullanıcının zamanında aldığı sonuç arasındaki mesafe bu katmanlarda oluşuyor.[1]