Meşgul GPU'lar: Örnekleme ve ardışık düzen yöntemi, büyük grafiklerde derin öğrenmeyi hızlandırır PlatoBlockchain Veri Zekası. Dikey Arama. Ai.

Meşgul GPU'lar: Örnekleme ve ardışık düzen yöntemi, büyük grafiklerde derin öğrenmeyi hızlandırır

Kenarlarla birbirine bağlanan potansiyel olarak geniş bir düğüm ağı olan grafikler, sosyal bağlantılar, finansal işlemler, trafik, enerji ağları ve moleküler etkileşimler gibi veriler arasındaki ilişkileri ifade etmek ve sorgulamak için kullanılabilir. Araştırmacılar daha fazla veri topladıkça ve bu grafik resimleri oluşturdukça, araştırmacılar, bunlar üzerinde grafik sinir ağları (GNN) yoluyla derin öğrenme gerçekleştirmek için daha hızlı ve daha verimli yöntemlere ve daha fazla hesaplama gücüne ihtiyaç duyacaklar.  

Şimdi, MIT ve IBM Research'teki araştırmacılar tarafından geliştirilen SALIENT (Sampling, sLIcing ve data movemeNT) adlı yeni bir yöntem, hesaplamadaki üç temel darboğazı ele alarak eğitim ve çıkarım performansını geliştiriyor. Bu, örneğin 100 milyon düğüm ve 1 milyar kenar ölçeğinde içeren büyük veri kümelerindeki GNN'lerin çalışma süresini önemli ölçüde azaltır. Ayrıca ekip, hesaplama gücü birden 16 grafik işlem birimine (GPU) eklendiğinde tekniğin iyi ölçeklendiğini buldu. Çalışma, Beşinci Makine Öğrenimi ve Sistemleri Konferansı'nda sunuldu.

"Grafikler için son teknoloji makine öğrenimi tekniklerini gerçekten büyük veri kümelerine ölçeklendirirken mevcut sistemlerin karşılaştığı zorluklara bakmaya başladık. Yapılacak çok iş olduğu ortaya çıktı, çünkü mevcut sistemlerin çoğu, öncelikle GPU belleğine sığan daha küçük veri kümelerinde iyi performans elde ediyordu," diyor MIT Computer Science'da baş yazar ve postdoc olan Tim Kaler. ve Yapay Zeka Laboratuvarı (CSAIL).

Uzmanlar, geniş veri kümeleri derken, belirli modellerin ve veri ilişkilerinin trendleri veya faul oyununu açıklayabildiği tüm Bitcoin ağı gibi ölçekleri kastediyor. Kıdemli araştırma bilimcisi ve yönetici ortak yazar Jie Chen, "Blockchain üzerinde yaklaşık bir milyar Bitcoin işlemi var ve böyle bir ortak ağ içindeki yasa dışı faaliyetleri belirlemek istiyorsak, o zaman böyle bir ölçekte bir grafikle karşı karşıyayız" diyor. IBM Research ve MIT-IBM Watson AI Lab. "Bu tür bir grafiği işleyebilen ve işlemenin olabildiğince verimli olmasını sağlayan bir sistem oluşturmak istiyoruz çünkü her gün üretilen yeni verilerin hızına ayak uydurmak istiyoruz."

Kaler ve Chen'in ortak yazarları arasında SALIENT'i lisansüstü çalışmasının bir parçası olarak geliştiren Jump Trading'den Nickolas Stathas MEng '21; eski MIT-IBM Watson AI Lab stajyeri ve MIT yüksek lisans öğrencisi Anne Ouyang; MIT CSAIL postdoc Alexandros-Stavros Iliopoulos; MIT CSAIL Araştırmacı Bilim İnsanı Tao B. Schardl; ve MIT'de Edwin Sibley Webster Elektrik Mühendisliği Profesörü ve MIT-IBM Watson Yapay Zeka Laboratuvarı'nda araştırmacı olan Charles E. Leiserson.     

Ekip, bu sorun için yöntemlerini geliştirirken sistem odaklı bir yaklaşım benimsedi: SALIENT, diyor Kaler. Bunu yapmak için araştırmacılar, bir makine öğrenimi modeli oluşturmaya yönelik arayüzler olan PyTorch Geometric ve derin grafik kitaplığı (DGL) gibi mevcut makine öğrenimi çerçevelerine uyan bileşenlerin önemli, temel optimizasyonlarını önemli gördüklerini uyguladılar. Stathas, sürecin daha hızlı bir araba yapmak için motorları değiştirmek gibi olduğunu söylüyor. Yöntemleri, mevcut GNN mimarilerine uyacak şekilde tasarlandı, böylece alan uzmanları, model eğitimini hızlandırmak ve çıkarım sırasında içgörüleri daha hızlı ortaya çıkarmak için bu işi kendi belirledikleri alanlara kolayca uygulayabilir. Ekibin belirlediği hile, tüm donanımı (CPU'lar, veri bağlantıları ve GPU'lar) her zaman meşgul tutmaktı: CPU grafiği örneklerken ve daha sonra veri bağlantısı yoluyla aktarılacak olan mini veri gruplarını hazırlarken , daha kritik GPU, makine öğrenimi modelini eğitmek veya çıkarım yapmak için çalışıyor. 

Araştırmacılar, GNN'ler için yaygın olarak kullanılan bir makine öğrenimi kitaplığının (PyTorch Geometric) performansını analiz ederek işe başladılar; bu kitap, mevcut GPU kaynaklarının şaşırtıcı derecede düşük bir şekilde kullanıldığını gösterdi. Basit optimizasyonlar uygulayan araştırmacılar, GPU kullanımını yüzde 10'dan yüzde 30'a yükselterek genel kıyaslama kodlarına göre 1.4 ila iki kat performans artışı sağladı. Bu hızlı temel kod, 50.4 saniyede algoritma (bir dönem) aracılığıyla büyük bir eğitim veri kümesi üzerinden bir tam geçiş gerçekleştirebilir.                          

Daha fazla performans iyileştirmesi arayan araştırmacılar, veri hattının başında meydana gelen darboğazları incelemeye koyuldular: grafik örnekleme ve mini parti hazırlama algoritmaları. Diğer sinir ağlarından farklı olarak, GNN'ler, grafikteki diğer yakın düğümlerde bulunan bilgileri kullanarak bir düğüm hakkındaki bilgileri hesaplayan bir mahalle toplama işlemi gerçekleştirir - örneğin, bir sosyal ağ grafiğinde, bir kullanıcının arkadaşlarının arkadaşlarından gelen bilgiler. GNN'deki katman sayısı arttıkça, ağın bilgi için ulaşması gereken düğüm sayısı patlayarak bir bilgisayarın sınırlarını aşabilir. Mahalle örnekleme algoritmaları, toplanacak düğümlerin daha küçük bir rasgele alt kümesini seçerek yardımcı olur; ancak araştırmacılar, bunun mevcut uygulamalarının modern GPU'ların işlem hızına ayak uyduramayacak kadar yavaş olduğunu keşfettiler. Yanıt olarak, örnekleme hızını iyileştiren veri yapıları, algoritmik optimizasyonlar ve benzerlerinin bir karışımını belirlediler, sonuçta örnekleme işlemini tek başına yaklaşık üç kat iyileştirerek dönem başına çalışma süresini 50.4 saniyeden 34.6 saniyeye çıkardılar. Ekip ayrıca, uygun bir oranda örneklemenin çıkarım sırasında yapılabileceğini ve literatürde gözden kaçan bir nokta olan genel enerji verimliliğini ve performansı iyileştirdiğini de keşfettiler.      

Önceki sistemlerde bu örnekleme adımı, fazladan veri ve süreçler arasında gereksiz veri hareketi yaratan çok süreçli bir yaklaşımdı. Araştırmacılar, verileri CPU'da paylaşılan bellekte tutan hafif iş parçacıklı tek bir işlem oluşturarak SALIENT yöntemini daha çevik hale getirdiler. Ayrıca SALIENT, modern işlemcilerin önbelleğinden yararlanıyor, diyor Stathas, CPU çekirdek önbelleğinin paylaşılan belleği içinde ilgili düğümlerden ve çevrelerindeki komşulardan ve kenarlardan ilgili bilgileri çıkaran özellik dilimlemeyi paralel hale getiriyor. Bu, dönem başına genel çalışma süresini tekrar 34.6'dan 27.8 saniyeye düşürdü.

Araştırmacıların ele aldığı son darboğaz, verileri ihtiyaç duyulmadan hemen önce hazırlayacak bir önceden getirme adımı kullanarak CPU ve GPU arasındaki mini toplu veri aktarımlarını boru hattına bağlamaktı. Ekip, bunun veri bağlantısındaki bant genişliği kullanımını en üst düzeye çıkaracağını ve yöntemi mükemmel kullanıma getireceğini hesapladı; ancak, yalnızca yüzde 90 civarında gördüler. Popüler bir PyTorch kitaplığında CPU ve GPU arasında gereksiz gidiş-dönüş iletişimine neden olan bir performans hatasını belirlediler ve düzelttiler. Bu hata düzeltildiğinde ekip, SALIENT ile dönem başına 16.5 saniyelik bir çalışma süresi elde etti.

Kaler, "Çalışmamız bence şeytanın ayrıntılarda gizli olduğunu gösterdi" diyor. "Bir grafik sinir ağını eğitirken performansı etkileyen ayrıntılara çok dikkat ettiğinizde, çok sayıda performans sorununu çözebilirsiniz. Çözümlerimizle, böyle bir sistemin ideal amacı olan GPU hesaplamasında tamamen darboğaz yaşadık."

SALIENT'in hızı, ogbn-arxiv, ogbn-products ve ogbn-papers100M olmak üzere üç standart veri kümesinin yanı sıra farklı fanout seviyeleri (CPU'nun GPU için hazırlayacağı veri miktarı) ile çoklu makine ayarlarında değerlendirildi ve en yeni teknoloji harikası GraphSAGE-RI dahil olmak üzere çeşitli mimarilerde. SALIENT her ayarda PyTorch Geometric'ten daha iyi performans gösterdi, özellikle de 100 milyon düğüm ve bir milyardan fazla kenar içeren büyük ogbn-papers100M veri kümesinde. bu iş; 16 GPU ile SALIENT sekiz kat daha hızlıydı. 

Diğer sistemler biraz farklı donanıma ve deneysel kurulumlara sahip olsa da, bu her zaman doğrudan bir karşılaştırma değildi, SALIENT yine de onlardan daha iyi performans gösterdi. Benzer doğruluk elde eden sistemler arasında temsili performans rakamları, bir GPU ve 99 CPU kullanılarak 32 saniye ve 13 CPU kullanılarak 1,536 saniye içerir. Buna karşılık, SALIENT'in bir GPU ve 20 CPU kullanan çalışma süresi 16.5 saniyeydi ve 16 GPU ve 320 CPU ile sadece iki saniyeydi. Kaler, "Önceki çalışmanın rapor ettiği alt satırdaki sayılara bakarsanız, 16 GPU çalışma süremiz (iki saniye), bu veri kümesinde daha önce bildirilen diğer sayılardan çok daha hızlıdır" diyor. Araştırmacılar, performans iyileştirmelerini kısmen, dağıtılmış ortama geçmeden önce kodlarını tek bir makine için optimize etme yaklaşımlarına bağladılar. Stathas, buradaki dersin, paranız karşılığında, "birden fazla bilgisayara ölçeklemeye başlamadan önce, sahip olduğunuz donanımı verimli bir şekilde ve en uç noktasına kadar kullanmak daha mantıklı" olduğunu söylüyor, bu da maliyet ve karbon emisyonlarında önemli tasarruflar sağlayabilir. bu model eğitimi ile gelebilir.

Bu yeni kapasite artık araştırmacıların daha büyük ve daha büyük grafiklerle uğraşmasına ve daha derine inmesine olanak tanıyacak. Örneğin, daha önce bahsedilen Bitcoin ağı 100,000 düğüm içeriyordu; SALIENT sistemi, 1,000 kat (veya üç büyüklük sırası) daha büyük bir grafiği işleyebilir.

"Gelecekte, bu grafik sinir ağı eğitim sistemini, her bir düğümün özelliklerini sınıflandırmak veya tahmin etmek için uyguladığımız mevcut algoritmalar üzerinde çalıştırmakla kalmayıp, aynı zamanda daha derinlemesine görevler yapmak istiyoruz. Chen, bir grafikteki ortak kalıpları (alt grafik kalıpları) belirlemek [ki bu] mali suçları belirtmek için gerçekten ilginç olabilir” diyor. "Ayrıca, bir mali suçta muhtemelen aynı kötü aktöre karşılık gelmeleri açısından benzer düğümleri bir grafikte belirlemek istiyoruz. Bu görevler, ek algoritmalar ve muhtemelen sinir ağı mimarileri geliştirmeyi gerektirecektir.”

Bu araştırma, MIT-IBM Watson Yapay Zeka Laboratuvarı ve kısmen ABD Hava Kuvvetleri Araştırma Laboratuvarı ve ABD Hava Kuvvetleri Yapay Zeka Hızlandırıcısı tarafından desteklenmiştir.

Zaman Damgası:

Den fazla Blockchain Danışmanları