ThirdAI ve AWS Graviton ile CPU'larda büyük ölçekli sinir ağı eğitimini hızlandırma | Amazon Web Hizmetleri

ThirdAI ve AWS Graviton ile CPU'larda büyük ölçekli sinir ağı eğitimini hızlandırma | Amazon Web Hizmetleri

Bu konuk yazısı ThirdAI'den Vihan Lakshman, Tharun Medini ve Anshumali Shrivastava tarafından yazılmıştır.

Büyük ölçekli derin öğrenme son zamanlarda çok çeşitli alanlarda devrim niteliğinde ilerlemeler üretti. Yapay zekadaki bu çarpıcı ilerleme dikkat çekici olmaya devam etse de, bu modelleri eğitmek için gereken finansal maliyetler ve enerji tüketimi, GPU'lar gibi özel donanımlara duyulan ihtiyaç nedeniyle kritik bir darboğaz olarak ortaya çıktı. Geleneksel olarak, mütevazı boyutlu sinir modelleri bile eğitim için maliyetli donanım hızlandırıcılara ihtiyaç duyuyordu; bu da, bu teknolojiden tam olarak yararlanabilecek finansal araçlara sahip kuruluşların sayısını sınırlıyor.

2021 yılında kurulan ThirdAI Corp., derin öğrenmenin ekonomisini temelden değiştiren algoritmik ve yazılım yenilikleri yoluyla yapay zeka teknolojilerini demokratikleştirme misyonuna adanmış bir girişimdir. olarak bilinen seyrek bir derin öğrenme motoru geliştirdik. BOLTGPU'lar gibi pahalı ve enerji yoğun hızlandırıcıların aksine, modelleri standart CPU donanımı üzerinde eğitmek ve dağıtmak için özel olarak tasarlanmıştır. Müşterilerimizin çoğu güçlü memnuniyet bildirdi ThirdAI'nin uygun maliyetli CPU altyapısında kritik iş sorunları için derin öğrenme modellerini eğitme ve dağıtma yeteneği ile.

Bu yazıda, AWS Graviton3 işlemcisinin, ThirdAI'nin benzersiz CPU tabanlı derin öğrenme motoru için sinir ağı eğitimini hızlandırma potansiyelini araştırıyoruz.

Yüksek performanslı CPU'ların faydaları

ThirdAI'de, belirli bir girdi için yalnızca bir nöron alt kümesini etkinleştiren (aşağıdaki şekle bakın) özel dinamik seyrek algoritmalar aracılığıyla CPU'lar üzerinde verimli sinir ağı eğitimindeki bu atılımları elde ediyoruz ve böylece tam yoğun hesaplama ihtiyacını bir kenara atıyoruz. Seyrek sinir ağı eğitimine yönelik diğer yaklaşımlardan farklı olarak ThirdAI, bölgeye duyarlı karma Aşağıdaki kalın çizgilerde gösterildiği gibi belirli bir giriş için nöronları dinamik olarak seçmek için. Hatta bazı durumlarda şunu gözlemledik: seyrek CPU tabanlı modeller GPU'lardaki benzer yoğun mimariden daha hızlı eğitim.

Hangi nöronların seçildiğini gösteren kalın çizgilerle Yoğun Sinir mimarisi

Hedef müşterilerimizin çoğunun bulutta faaliyet gösterdiği ve bunların çoğunluğunun AWS kullandığı göz önüne alındığında, Amazon'un silikon inovasyonunun etkileyici fiyat-performans iyileştirmelerinin benzersiz iş yükümüze dönüşüp yansımayacağını görmek için AWS Graviton3 işlemciyi denemekten heyecan duyduk. seyrek sinir ağı eğitimi ve böylece müşterilere daha fazla tasarruf sağlar. Her ne kadar hem araştırma topluluğu hem de AWS Graviton ekibi hızlandırma konusunda heyecan verici ilerlemeler kaydetmiş olsa da sinir ağı çıkarımı CPU örneklerinde, bildiğimiz kadarıyla biz, ThirdAI olarak, CPU'lar üzerindeki sinir modellerinin verimli bir şekilde nasıl eğitileceğini ciddi şekilde araştıran ilk kişiyiz.

Sonuçlarımızda da gösterildiği gibi, AWS Graviton3 ile çeşitli temsili modelleme iş yüklerinde karşılaştırılabilir Intel ve NVIDIA bulut sunucularına göre önemli bir eğitim hızı artışı gözlemledik.

Örnek türleri

Değerlendirmemiz için iki karşılaştırılabilir AWS CPU örneğini değerlendirdik: Intel'in Ice Lake işlemcisi tarafından desteklenen bir c6i.8xlarge makinesi ve AWS Graviton7 tarafından desteklenen bir c8g.3xlarge makinesi. Aşağıdaki tablo her bir örneğin ayrıntılarını özetlemektedir.

örnek vCPU RAM (GB) İşlemci İsteğe Bağlı Fiyat (us-east-1)
c7g.8xlarge 32 64 AWS Graviton3 $ 1.1562 / saat
c6i.8xlarge 32 64 Intel Buz Gölü $ 1.36 / saat
g5g.8xlarge (GPU) 32 64, 16 GB GPU Belleği ile 2 NVIDIA T1G GPU'ya sahip AWS Graviton4 işlemciler $ 1.3720 / saat

Değerlendirme 1: Ekstrem sınıflandırma

İlk değerlendirmemiz için, arama ve önerilerde bir dizi pratik uygulamaya sahip, giderek daha popüler hale gelen bir makine öğrenimi (ML) paradigması olan aşırı çok etiketli sınıflandırma (XMC) sorununa odaklanıyoruz (at. Amazon). Değerlendirmemiz için halka odaklanıyoruz Amazon-670K ürün öneri göreviBir girdi ürünü verildiğinde, 670,000'den fazla öğeden oluşan bir koleksiyondaki benzer ürünleri tanımlar.

Bu deneyde, ThirdAI'nin BOLT motorunu yukarıda belirtilen donanım seçeneklerine göre TensorFlow 2.11 ve PyTorch 2.0 ile karşılaştırıyoruz: Intel Ice Lake, AWS Graviton3 ve NVIDIA T4G GPU. Intel ve AWS Graviton üzerindeki deneylerimiz için AWS Deep Learning AMI (Ubuntu 18.04) sürüm 59.0'ı kullanıyoruz. GPU değerlendirmemiz için şunu kullanıyoruz: NVIDIA GPU İçin Optimize Edilmiş Arm64 AMIAWS Marketplace aracılığıyla edinilebilir. Bu değerlendirme için şunu kullanıyoruz: SLAYT modeli mimarisiBu aşırı sınıflandırma görevinde hem rekabetçi performans hem de CPU'larda güçlü eğitim performansı elde eden. TensorFlow ve PyTorch karşılaştırmalarımız için, SLIDE çok katmanlı algılayıcı (MLP) mimarisinin yoğun matris çarpımlarına sahip benzer versiyonunu uyguluyoruz. Her modeli, 256 sabit toplu iş boyutu ve 0.001 öğrenme oranıyla beş dönem (eğitim veri kümesinden tam geçişler) için eğitiyoruz. Tüm modellerin aynı %33.6 test doğruluğuna ulaştığını gözlemledik.

Aşağıdaki grafik, Amazon2.11k ekstrem sınıflandırma kıyaslamasında ThirdAI'nin BOLT'unun eğitim süresini TensorFlow 2.0 ve PyTorch 670 ile karşılaştırmaktadır. Tüm modeller aynı test hassasiyetine ulaşır. AWS Graviton3'ün BOLT'un performansını herhangi bir özelleştirme gerektirmeden, yaklaşık %40 oranında önemli ölçüde hızlandırdığını gözlemliyoruz. ThirdAI'nin AWS Graviton3 üzerindeki BOLT'u ayrıca GPU üzerinde eğitilen TensorFlow veya PyTorch modellerinden çok daha hızlı eğitim sağlıyor. BOLT CPU'larda çalışacak şekilde tasarlandığından NVIDIA GPU karşılaştırmasında ThirdAI sonucu olmadığını unutmayın. Eğitim süresinin çok uzun olması nedeniyle TensorFlow ve PyTorch CPU kıyaslamalarını dahil etmiyoruz.

Amazon 670k Eğitim süresi c6i.8xlarge ve c7g.8xlarge bulut sunucularını karşılaştıran çubuk grafik

Aşağıdaki tablo, her işlemci/özel işlemci (GPU) için eğitim süresini ve test doğruluğunu özetlemektedir.

İşlemci Motor Eğitim Süresi (ler) Test Doğruluğu
Intel Buz Gölü (c6i.8xlarge) BOLT 1470 33.6
AWS Graviton3 (c7g.8xlarge) BOLT 935 33.6
NVIDIA T4G (g5g.8xlarge) TensorFlow 7550 33.6
NVIDIA T4G (g5g.8xlarge) PyTorch 5130 33.6

Değerlendirme 2: Yelp Polarite duyarlılığı analizi

İkinci değerlendirmemiz için popüler olanlara odaklanıyoruz. Yelp Polaritesi Bir incelemenin olumlu veya olumsuz olarak sınıflandırılmasını içeren duyarlılık analizi ölçütü. Bu değerlendirme için ThirdAI'leri karşılaştırıyoruz. Evrensel Derin Transformatörler (UDT) ince ayarlı bir modele karşı DistilBERT ağ, azaltılmış çıkarım gecikmesi ile en son teknolojiye yakın performansa ulaşan, sıkıştırılmış, önceden eğitilmiş bir dil modeli. DistilBERT modellerinin bir CPU üzerinde ince ayarının yapılması çok uzun zaman alacağından (en az birkaç gün), ThirdAI'nin CPU tabanlı modellerini GPU üzerinde ince ayarı yapılmış DistilBERT ile karşılaştırıyoruz. Veriler üzerinden tek bir geçiş (bir dönem) için toplu iş boyutu 256 olan tüm modelleri eğitiyoruz. Veriler üzerinden ek geçişlerle BOLT ile biraz daha yüksek doğruluk elde edebileceğimizi belirtiyoruz ancak tutarlılık adına bu değerlendirmede kendimizi tek bir geçişle sınırlıyoruz.

Aşağıdaki şekilde gösterildiği gibi AWS Graviton3, ThirdAI'nin UDT model eğitimini bir kez daha önemli ölçüde hızlandırır. Ayrıca UDT, eğitim süresinin çok küçük bir kısmıyla ve GPU'ya ihtiyaç duymadan DistilBERT ile karşılaştırılabilir test doğruluğu elde edebiliyor. Ayrıca yakın zamanda yapılan çalışmaların da olduğunu belirtiyoruz. ince ayarın optimize edilmesi CPU'larda Yelp Polaritesinin Etkisi. Ancak modellerimiz yine de daha büyük verimlilik kazanımları elde ediyor ve önemli olan ve GPU'lar gibi donanım hızlandırıcıların kullanımını gerektiren ön eğitim maliyetinden kaçınıyor.

Yelp Polarity C7g ve c6i'de eğitim süresi

Aşağıdaki tablo eğitim süresini, test doğruluğunu ve çıkarım gecikmesini özetlemektedir.

İşlemci Motor Model Eğitim Süresi (ler) Test Doğruluğu Çıkarım Gecikmesi (ms)
Intel Icelake (c6i.8xlarge) BOLT UDT 47 93.2 <1
Graviton3 (c7g.8xlarge) BOLT UDT 29 92.9 <1
T4G GPU (g5g.8xlarge) TensorFlow DistilBERT 4200 93.3 8.7
T4G GPU (g5g.8xlarge) PyTorch DistilBERT 3780 93.4 8.3

Değerlendirme 3: Çok sınıflı metin sınıflandırması (DBPedia)

Son değerlendirmemiz için, ikiden fazla çıktı sınıfından oluşan bir diziden belirli bir girdi metnine bir etiket atamayı içeren çok sınıflı metin sınıflandırma problemine odaklanıyoruz. Biz şuna odaklanıyoruz: DBPedia 14 olası çıktı sınıfından oluşan kıyaslama. Yine AWS Graviton3'ün UDT performansını benzer Intel bulut sunucusuna göre yaklaşık %40 oranında hızlandırdığını görüyoruz. Ayrıca BOLT'un, milisaniyenin altında bir gecikme süresi elde ederken GPU üzerinde ince ayar yapan DistilBERT transformatör tabanlı modelle karşılaştırılabilir sonuçlar elde ettiğini de görüyoruz.

C7g ve c6i'de ThirdAI BOLT eğitim süresi

Aşağıdaki tablo eğitim süresini, test doğruluğunu ve çıkarım gecikmesini özetlemektedir.

İşlemci Motor Model Eğitim Süresi (ler) Test Doğruluğu Çıkarım Gecikmesi (ms)
Intel Icelake (c6i.8xlarge) BOLT UDT 23 98.23 <1
Graviton3 (c7g.8xlarge) BOLT UDT 14 98.10 <1
T4G GPU (g5g.8xlarge) TensorFlow DistilBERT 4320 99.23 8.6
T4G GPU (g5g.8xlarge) PyTorch DistilBERT 3480 99.29 8

AWS Graviton'da ThirdAI'yi kullanmaya başlayın

BOLT yazılımımızı AWS Graviton3 de dahil olmak üzere tüm önemli CPU mimarileriyle uyumlu olacak şekilde tasarladık. Aslında AWS Graviton3'te çalışmak için kodumuzda herhangi bir özelleştirme yapmamıza gerek yoktu. Bu nedenle, ek bir çaba harcamadan AWS Graviton3'te model eğitimi ve dağıtımı için ThirdAI'yi kullanabilirsiniz. Ayrıca, son makalemizde ayrıntılı olarak belirtildiği gibi araştırma raporu, seyrek modellerimizle ilişkili özel hiperparametreleri otomatik olarak ayarlamak için bir dizi yeni matematiksel teknik geliştirdik ve modellerimizin kutudan çıkar çıkmaz iyi bir şekilde çalışmasına olanak sağladık.

Ayrıca modellerimizin öncelikle, genellikle büyük, yüksek boyutlu çıktı alanlarına ve son derece düşük çıkarım gecikmesi gereksinimine sahip olan arama, öneri ve doğal dil işleme görevleri için iyi çalıştığını da not ediyoruz. Yöntemlerimizi bilgisayar görüşü gibi ek alanlara genişletmek için aktif olarak çalışıyoruz ancak verimlilik iyileştirmelerimizin şu anda tüm makine öğrenimi alanlarına yansımadığını unutmayın.

Sonuç

Bu yazıda AWS Graviton3 işlemcisinin, ThirdAI'nin benzersiz CPU tabanlı derin öğrenme motoru için sinir ağı eğitimini hızlandırma potansiyelini araştırdık. Arama, metin sınıflandırma ve öneri kıyaslamalarına ilişkin kıyaslamalarımız, AWS Graviton3'ün ThirdAI'nin model eğitimi iş yüklerini karşılaştırılabilir x30 bulut sunucularına kıyasla yaklaşık %40'lik bir fiyat-performans artışıyla %86-50 oranında hızlandırabileceğini gösteriyor. Ayrıca, AWS Graviton3 bulut sunucuları benzer Intel ve NVIDIA makinelerden daha düşük maliyetle sunulduğundan ve daha kısa eğitim ve çıkarım süreleri sağladığından, daha düşük maliyetli kullanarak AWS kullandıkça öde kullanım modelinin değerini daha da artırabilirsiniz. makinelerde daha kısa sürelerde çalışır.

AWS Graviton3'ün fiyat ve performans tasarruflarından büyük heyecan duyuyoruz ve düşük maliyetli CPU'larda daha iyi performansla daha hızlı makine öğrenimi eğitimi ve çıkarımlardan yararlanabilmeleri için bu iyileştirmeleri müşterilerimize aktarmaya çalışacağız. Biz de AWS müşterileri olarak, AWS Graviton3'ün modellerimiz üzerinde denemeler yapmamıza olanak sağlama hızından memnunuz ve gelecekte AWS'nin daha fazla ileri teknoloji silikon yeniliğini kullanmayı sabırsızlıkla bekliyoruz. Graviton Teknik Kılavuzu Graviton'da çalıştırılacak makine öğrenimi iş yüklerinizi değerlendirirken dikkate almanız gereken iyi bir kaynaktır. Graviton t4g örneklerini de deneyebilirsiniz ücretsiz deneme.

Bu yayındaki içerik ve görüşler üçüncü taraf yazara aittir ve AWS bu gönderinin içeriğinden veya doğruluğundan sorumlu değildir. Blogun yazıldığı sırada en güncel bulut sunucusu c6i'ydi ve bu nedenle karşılaştırma c6i bulut sunucularıyla yapıldı.


Yazar Hakkında

Vihan Lakshman – Vihan Lakshman, ThirdAI Corp.'ta kaynak verimli derin öğrenmeye yönelik sistemler geliştirmeye odaklanan bir araştırma bilimcisidir. ThirdAI'den önce Amazon'da Uygulamalı Bilim Adamı olarak çalıştı ve Stanford Üniversitesi'nden lisans ve yüksek lisans dereceleri aldı. Vihan aynı zamanda Ulusal Bilim Vakfı araştırma bursunun da sahibidir.

Tharun Medini – Tharun Medini, ThirdAI Corp'un kurucu ortağı ve CTO'sudur. Doktorasını Rice Üniversitesi'nde “Arama ve Bilgi Erişimi için Hashing Algoritmaları” alanında yaptı. Tharun, ThirdAI'den önce Amazon ve Target'ta çalışıyordu. Tharun, araştırmalarından dolayı Ken Kennedy Enstitüsü BP Bursu, Amerikan Hint Mühendisler Derneği Bursu ve Rice Üniversitesi Lisansüstü Bursu da dahil olmak üzere çok sayıda ödülün sahibidir.

Anshumali Shrivastava – Anshumali Shrivastava, Rice Üniversitesi'nin bilgisayar bilimleri bölümünde doçenttir. Aynı zamanda yazılım yenilikleri yoluyla yapay zekayı ticari donanıma dönüştüren bir şirket olan ThirdAI Corp'un Kurucusu ve CEO'sudur. Geniş araştırma ilgi alanları arasında kaynak tasarruflu derin öğrenme için olasılıksal algoritmalar yer almaktadır. 2018'de Science haberleri onu 10 yaşın altındaki izlenecek en iyi 40 bilim insanından biri olarak adlandırdı. Kendisi Ulusal Bilim Vakfı KARİYER Ödülü'ne, Hava Kuvvetleri Bilimsel Araştırma Ofisi'nden Genç Araştırmacı Ödülü'ne, Amazon'dan makine öğrenimi araştırma ödülüne ve Adobe'den Veri Bilimi Araştırma Ödülü'ne layık görülmüştür. NIPS 2014 ve MLSys 2022'de En İyi Kağıt Ödüllerinin yanı sıra SIGMOD 2019'da En Çok Tekrarlanabilir Makale Ödülü de dahil olmak üzere çok sayıda makale ödülü kazandı. CPU'larda verimli makine öğrenimi teknolojileri üzerine yaptığı çalışmalar, Wall Street Journal, New York Times, TechCrunch, NDTV vb.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi