ByteDance, AWS Inferentia PlatoBlockchain Veri Zekasını kullanarak gecikmeyi azaltır ve verimi artırırken çıkarım maliyetlerinde %60'a kadar tasarruf sağlar. Dikey Arama. Ai.

ByteDance, AWS Inferentia kullanarak gecikmeyi azaltırken ve verimi artırırken çıkarım maliyetlerinde %60'a kadar tasarruf sağlar

Bu, Bytedance'tan Minghui Yu ve Jianzhe Xiao ile birlikte yazılan bir konuk blog yazısıdır.

ByteDance farklı dillerden, kültürlerden ve coğrafyalardan insanları bilgilendirmek, eğitmek, eğlendirmek ve ilham vermek için çeşitli içerik platformları işleten bir teknoloji şirketidir. Kullanıcılar, sağladıkları zengin, sezgisel ve güvenli deneyimler nedeniyle içerik platformlarımıza güvenir ve keyfini çıkarır. Bu deneyimler, içerik denetimi, arama, öneri, reklamcılık ve yeni görsel efektler için oluşturulmuş makine öğrenimi (ML) arka uç motorumuz tarafından mümkün kılındı.

ByteDance AML (Uygulamalı Makine Öğrenimi) ekibi, şirketin işi için yüksek performanslı, güvenilir ve ölçeklenebilir ML sistemleri ve uçtan uca ML hizmetleri sağlar. Yanıt sürelerini artırmadan maliyetleri azaltmak için makine öğrenimi çıkarım sistemlerimizi optimize etmenin yollarını arıyorduk. AWS başlatıldığında AWS ÇıkarımlarıAWS tarafından özel olarak oluşturulmuş yüksek performanslı bir makine öğrenimi çıkarım çipi olan AWS Inferentia'nın optimizasyon hedeflerimize ulaşıp ulaşmadığını test etmek için AWS hesap ekibimizle görüştük. T60 GPU tabanlı EC4 G2dn bulut sunucularına kıyasla %4'a kadar daha düşük çıkarım maliyeti ve %25'e kadar daha düşük çıkarım gecikmesi ile sonuçlanan birkaç kavram kanıtı çalıştırdık. Bu maliyet tasarruflarını ve performans iyileştirmelerini gerçekleştirmek için AWS Inferentia tabanlı modeller dağıtmaya karar verdik. Amazon Elastik Bilgi İşlem Bulutu (Amazon EC2) Üretimdeki Inf1 bulut sunucuları.

Aşağıdaki tablo, daha önce Tensor RT ile GPU'lara dağıtılan yüz algılama modellerimizden biri için gecikme iyileştirmesini göstermektedir. Ortalama gecikme %20 azaldı (50 milisaniyeden 40 milisaniyeye) ve p99 gecikmesi %25 azaldı (200 milisaniyeden 150 milisaniyeye).

Bu gönderide, AWS Inferentia kullanarak gecikmeleri azaltırken ve verimi artırırken çıkarım maliyetlerinden nasıl tasarruf ettiğimizi paylaşıyoruz.

Yüksek performanslı, uygun maliyetli bilgi işlem arayışı içinde

ByteDance AML ekibi, son teknoloji makine öğrenimi sistemlerinin ve ihtiyaç duydukları heterojen bilgi işlem kaynaklarının araştırılmasına ve uygulanmasına odaklanır. Çok çeşitli tavsiye, doğal dil işleme (NLP) ve bilgisayarla görme (CV) modelleri için büyük ölçekli eğitim ve çıkarım sistemleri oluşturuyoruz. Bu modeller son derece karmaşıktır ve ByteDance'ın işlettiği birçok içerik platformundan büyük miktarda veri işler. Bu modellerin devreye alınması, ister bulutta ister şirket içinde olsun, önemli miktarda GPU kaynağı gerektirir. Bu nedenle, bu çıkarım sistemleri için hesaplama maliyetleri oldukça yüksektir.

Verimi veya gecikmeyi etkilemeden bu maliyetleri düşürmeyi amaçlıyorduk. Bulutun esnekliğini ve şirket içi kurulum için gerekli olandan çok daha kısa olan daha hızlı teslim döngüsünü istiyorduk. Hızlandırılmış makine öğrenimi için yeni seçenekler keşfetmeye açık olsak da sorunsuz bir geliştirici deneyimi de istiyorduk.

AWS ekibimizden, AWS Inferentia tabanlı EC2 Inf1 bulut sunucularının buluttaki en düşük çıkarım başına maliyetle yüksek performanslı makine öğrenimi çıkarımı sağladığını öğrendik. Bunları keşfetmeyi merak ettik ve kullanım durumumuza çok uygun olduklarını gördük çünkü büyük miktarda görüntü, nesne, konuşma ve metin verisi üzerinde önemli ölçüde makine öğrenimi yürütüyoruz. Modellerimizin karmaşıklığı ve günlük tahminlerin hacmi göz önüne alındığında, büyük maliyet tasarrufları elde edebildiğimizden, hedeflerimiz için kesinlikle çok uygunlardı. Ayrıca AWS Inferentia, büyük modelleri çip dışında depolamak yerine önbelleğe almak için kullanabileceğiniz büyük miktarda çip üzerinde belleğe sahiptir. AWS Inferentia'nın NeuronCores adlı işlem çekirdeklerinin çip üzerinde bellekte depolanan ve çip dışı bellekle sınırlı olmayan modellere yüksek hızlı erişimi olduğundan, bunun çıkarım gecikmesini azaltmada önemli bir etkisi olabileceğini fark ettik. Bant genişliği.

Son olarak, birkaç seçeneği değerlendirdikten sonra, şirket içi G2dn bulut sunucuları ve NVIDIA T1 ile karşılaştırıldığında daha iyi performans/fiyat oranları nedeniyle EC4 Inf4 bulut sunucularını seçtik. Inf1'in fiyat ve performans avantajlarından yararlanmak için AWS ekibiyle sürekli yineleme döngüsüne girdik.

AWS Inferentia'da çıkarım iş yüklerini dağıtma

AWS Neuron SDK kullanarak AWS Inferentia'yı kullanmaya başlamak iki aşamadan oluşuyordu: model kodunun derlenmesi ve Inf1 bulut sunucularında dağıtım. Makine öğrenimi modellerini herhangi bir yeni altyapıya taşırken yaygın olduğu gibi, karşılaştığımız bazı zorluklar vardı. AWS ekibimizin özeni ve desteğiyle bu zorlukların üstesinden gelmeyi başardık. Aşağıdaki bölümlerde, AWS Inferentia'da çıkarım iş yüklerini devreye alma deneyimimize dayanan birkaç faydalı ipucunu ve gözlemi paylaşıyoruz.

OCR için uyumlu model

Optik karakter tanıma (OCR) konformer modelimiz, görüntülerin içindeki metni algılar ve okur. Gecikmeyi düşük tutarken çeşitli toplu iş boyutları için yüksek performans (QPS) elde etmek için çeşitli optimizasyonlar üzerinde çalıştık. Bazı önemli optimizasyonlar aşağıda belirtilmiştir:

  • Derleyici optimizasyonları – Varsayılan olarak Inferentia, sabit dizi uzunluğuna sahip girdilerde en iyi performansı gösterir; bu, metinsel verilerin uzunluğu sabit olmadığı için zorluk teşkil ediyordu. Bunun üstesinden gelmek için modelimizi iki parçaya ayırdık: bir kodlayıcı ve bir kod çözücü. Bu iki alt modeli ayrı ayrı derledik ve ardından TorchScript aracılığıyla tek bir modelde birleştirdik. CPU'larda for döngüsü kontrol akışını çalıştıran bu yaklaşım, Inferentia'da değişken dizi uzunlukları için destek sağladı.
  • Derinlemesine evrişim performansı – Konformer modelimiz tarafından yoğun bir şekilde kullanılan derinlemesine evrişim işleminde bir DMA darboğazıyla karşılaştık. Bu işlemin performansını artıran ve OCR modelimizin genel performansını iyileştiren DMA erişim performansı darboğazını belirlemek ve çözmek için AWS Neuron ekibiyle yakın bir şekilde çalıştık.

ByteDance, AWS Inferentia PlatoBlockchain Veri Zekasını kullanarak gecikmeyi azaltır ve verimi artırırken çıkarım maliyetlerinde %60'a kadar tasarruf sağlar. Dikey Arama. Ai.

Inferentia'daki dağıtımımızı optimize etmek için iki yeni model çeşidi oluşturduk:

  • Birleştirilmiş ve açılmış kodlayıcı/kod çözücü – Bağımsız olarak derlenmiş bir kodlayıcı ve kod çözücü kullanmak yerine, kodlayıcıyı ve tamamen açılmış bir kod çözücüyü tek bir modelde birleştirdik ve bu modeli tek bir NEFF olarak derledik. Kod çözücünün açılması, herhangi bir CPU işlemi kullanmadan tüm kod çözücü kontrol akışının Inferentia üzerinde çalıştırılmasını mümkün kılar. Bu yaklaşımla, kod çözücünün her yinelemesi, tam olarak o belirteç için gerekli olan hesaplama miktarını kullanır. Bu yaklaşım, performansı artırır, çünkü daha önce dolgu girdileriyle ortaya çıkan fazla hesaplamayı önemli ölçüde azaltırız. Ayrıca, kod çözücü yinelemeleri arasında Inferentia'dan CPU'ya veri aktarımı gerekmez, bu da G/Ç süresini büyük ölçüde azaltır. Modelin bu versiyonu erken durdurmayı desteklemiyor.
  • Bölünmüş açılmış dekoder – Kombine tamamen açılmış modele benzer şekilde, modelin bu varyantı, kod çözücünün birden çok yinelemesini açar ve bunları tek bir yürütme olarak derler (ancak kodlayıcıyı içermez). Örneğin, maksimum 75 dizi uzunluğu için, kod çözücüyü 3-1, 25-26 ve 50-51 belirteçlerini hesaplayan 75 bölüme ayırabiliriz. G/Ç açısından, bu da önemli ölçüde daha hızlı çünkü kodlayıcı çıkışını her yinelemede bir kez aktarmamız gerekmiyor. Bunun yerine, çıktılar her kod çözücü bölümü başına yalnızca bir kez aktarılır. Modelin bu sürümü, erken durdurmayı destekler, ancak yalnızca bölüm sınırlarında. Bölüm sınırları, isteklerin çoğunluğunun yalnızca bir bölümü yürütmesini sağlamak için her belirli uygulama için ayarlanabilir.

Performansı daha da artırmak için, bellek kullanımını azaltmak veya erişim verimliliğini artırmak amacıyla aşağıdaki optimizasyonları yaptık:

  • Tensör tekilleştirme ve azaltılmış kopyalar – Bu, alan verimliliğini artırmak için tensörleri yeniden kullanarak, açılmış modellerin boyutunu ve talimat/bellek erişimi sayısını önemli ölçüde azaltan bir derleyici optimizasyonudur.
  • Azaltılmış talimatlar – Bu, toplam komut sayısını önemli ölçüde azaltmak için kod çözücünün doldurulmamış sürümüyle birlikte kullanılan bir derleyici optimizasyonudur.
  • Çok çekirdekli veri tekilleştirme – Bu, tensör tekilleştirmeye alternatif olan bir çalışma zamanı optimizasyonudur. Bu seçenekle, tüm çok çekirdekli modeller önemli ölçüde daha fazla alan verimli olacaktır.

Görüntü sınıflandırması için ResNet50 modeli

ResNet-50, görüntü sınıflandırması için önceden eğitilmiş bir derin öğrenme modelidir. Görsel görüntüleri analiz etmek için en yaygın olarak uygulanan Evrişimli Sinir Ağı'dır (CNN veya ConvNet). Bu modelin Inferentia üzerindeki performansını iyileştirmek için aşağıdaki teknikleri kullandık:

  • Model dönüşümü – ByteDance modellerinin çoğu, Inferentia'nın şu anda yerel olarak desteklemediği ONNX biçiminde dışa aktarılır. Bu ONNX modellerini işlemek için AWS Neuron ekibi, modellerimizi ONNX biçiminden PyTorch modellerine dönüştürmek için betikler sağladı; bu modeller, torch-neuron kullanılarak Inferentia için doğrudan derlenebilir.
  • Performans optimizasyonu - ile yakın işbirliği içinde çalıştık. AWS Nöron ResNet-50 modellerimizin performansını optimize etmek için derleyicideki çizelgeleme sezgiselini ayarlayacak ekip.

İçerik denetimi için çok modlu model

Çok modlu derin öğrenme modelimiz, birden çok ayrı modelin birleşimidir. Bu modelin boyutu nispeten büyüktür ve bu da Inferentia'da model yükleme hatalarına neden olmuştur. AWS Neuron ekibi, cihazın bellek kullanımını azaltmak için ağırlık paylaşımını kullanarak bu sorunu başarıyla çözdü. Neuron ekibi, bu ağırlık tekilleştirme özelliğini Neuron libnrt kitaplığında yayınladı ve ayrıca daha kesin ölçümler için Neuron Araçlarını geliştirdi. Çalışma zamanı ağırlık tekilleştirme özelliği, çıkarımı çalıştırmadan önce aşağıdaki ortam değişkeni ayarlanarak etkinleştirilebilir:

NEURON_RT_MULTI_INSTANCE_SHARED_WEIGHTS=1

Güncellenen Neuron SDK, çok çekirdekli çıkarım için çok modlu modelimizi devreye almamızı sağlayan, yinelenen modellerimizin genel bellek tüketimini azalttı.

AWS Inferentia'ya daha fazla model taşıma

ByteDance'ta, ayda yaklaşık 2 milyar aktif kullanıcıya keyifli kullanıcı deneyimleri sunmak için yenilikçi derin öğrenme modellerini uygulamaya devam ediyoruz. Faaliyet gösterdiğimiz devasa ölçek göz önüne alındığında, sürekli olarak maliyetlerden tasarruf etmenin ve performansı optimize etmenin yollarını arıyoruz. Yüksek performans ve maliyet verimliliğinden yararlanmak için modelleri AWS Inferentia'ya taşımaya devam edeceğiz. Ayrıca AWS'nin ön işleme görevleri için daha fazla vCPU'ya sahip olanlar gibi daha fazla AWS Inferentia tabanlı bulut sunucusu türü başlatmasını istiyoruz. ByteDance, makine öğrenimi uygulamaları için en iyi fiyat performansını sunmak üzere gelecekte AWS'den daha fazla silikon yeniliği görmeyi umuyor.

AWS Inferentia'nın çıkarım uygulamalarınız için performansı optimize ederken maliyet tasarrufu yapmanıza nasıl yardımcı olabileceği hakkında daha fazla bilgi edinmek istiyorsanız şu adresi ziyaret edin: Amazon EC2 Inf1 bulut sunucuları Ürün sayfası


Yazarlar Hakkında

ByteDance, AWS Inferentia PlatoBlockchain Veri Zekasını kullanarak gecikmeyi azaltır ve verimi artırırken çıkarım maliyetlerinde %60'a kadar tasarruf sağlar. Dikey Arama. Ai.Minghui Yu ByteDance'de Çıkarım için Kıdemli Makine Öğrenimi Takım Lideridir. Odak alanı AI Hesaplama Hızlandırma ve Makine Öğrenimi Sistemidir. Moore sonrası dönemde heterojen bilgi işlem ve bilgisayar mimarisi ile çok ilgileniyor. Boş zamanlarında basketbol ve okçuluktan hoşlanır.

ByteDance, AWS Inferentia PlatoBlockchain Veri Zekasını kullanarak gecikmeyi azaltır ve verimi artırırken çıkarım maliyetlerinde %60'a kadar tasarruf sağlar. Dikey Arama. Ai.Jianzhe Xiao ByteDance'de AML Ekibinde Kıdemli Yazılım Mühendisi Takım Lideridir. Şu anki işi, iş ekibinin model dağıtım sürecini hızlandırmasına ve modelin çıkarım performansını iyileştirmesine yardımcı olmaya odaklanıyor. İş dışında piyano çalmayı seviyor.

ByteDance, AWS Inferentia PlatoBlockchain Veri Zekasını kullanarak gecikmeyi azaltır ve verimi artırırken çıkarım maliyetlerinde %60'a kadar tasarruf sağlar. Dikey Arama. Ai.Tian Shi AWS'de Kıdemli Çözüm Mimarıdır. Odak alanı veri analitiği, makine öğrenimi ve sunucusuzdur. Müşterilerin bulutta güvenilir ve ölçeklenebilir çözümler tasarlamasına ve oluşturmasına yardımcı olma konusunda tutkulu. Boş zamanlarında yüzmekten ve kitap okumaktan hoşlanır.

ByteDance, AWS Inferentia PlatoBlockchain Veri Zekasını kullanarak gecikmeyi azaltır ve verimi artırırken çıkarım maliyetlerinde %60'a kadar tasarruf sağlar. Dikey Arama. Ai.Jia Dong AWS'de Müşteri Çözümleri Yöneticisidir. AWS AI/ML hizmetleri hakkında bilgi edinmekten ve müşteriler için çözümler geliştirerek iş sonuçlarına ulaşmalarına yardımcı olmaktan keyif alıyor. Jia, iş dışında seyahat etmekten, yoga yapmaktan ve filmlerden hoşlanır.

ByteDance, AWS Inferentia PlatoBlockchain Veri Zekasını kullanarak gecikmeyi azaltır ve verimi artırırken çıkarım maliyetlerinde %60'a kadar tasarruf sağlar. Dikey Arama. Ai.Jonathan Lunt Amazon'da makine öğrenimi çerçeve geliştirmeye odaklanan bir yazılım mühendisidir. Kariyeri boyunca, model geliştirme, altyapı dağıtımı ve donanıma özel optimizasyon dahil olmak üzere veri bilimi rollerinin tamamında çalıştı.

ByteDance, AWS Inferentia PlatoBlockchain Veri Zekasını kullanarak gecikmeyi azaltır ve verimi artırırken çıkarım maliyetlerinde %60'a kadar tasarruf sağlar. Dikey Arama. Ai.Joshua Hannan Amazon'da bir makine öğrenimi mühendisidir. Büyük ölçekli bilgisayar görüşü ve doğal dil işleme uygulamaları için derin öğrenme modellerini optimize etmeye çalışıyor.

ByteDance, AWS Inferentia PlatoBlockchain Veri Zekasını kullanarak gecikmeyi azaltır ve verimi artırırken çıkarım maliyetlerinde %60'a kadar tasarruf sağlar. Dikey Arama. Ai.Shruti Koparkar AWS'de Kıdemli Ürün Pazarlama Müdürüdür. Müşterilerin makine öğrenimi ihtiyaçları için EC2 hızlandırılmış bilgi işlem altyapısını keşfetmelerine, değerlendirmelerine ve benimsemelerine yardımcı olur.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi