Podcast: AI/ML iş yükleri için veri depolamayı boyutlandırma


Bu podcast’te, Panasas’ta yazılım mimarı olan Curtis Anderson ile birlikte, büyük görüntü gruplarından çok sayıda küçük dosyaya kadar değişebilen yapay zeka (AI) ve makine öğrenimi (ML) iş yükleri için depolamanın nasıl boyutlandırılacağına bakıyoruz.

Anderson, farklı AI/ML çerçevelerinin verileri hesaplamaya çekme yollarından ve bunun verilerin nasıl depolandığı üzerindeki etkilerinden bahsediyor.

Anderson ayrıca şirket içinde tamamen flaşa geçiş yapılıp yapılmayacağı, bulut kullanımı ve kuruluşların altyapılarını AI/ML için boyutlandırmasına yardımcı olabilecek kıyaslama kuruluşları hakkında da konuşuyor.

Antony Adshead: AI ve ML ile depolamanın zorlukları nelerdir?

Curtis Anderson: Burada biraz bağlam belirleyelim. Başlamak için ilk yer, müşteri olarak, bir röntgen görüntüsündeki kanser hücrelerini belirlemek veya bir müşterinin satın alma geçmişine dayalı olarak bir sonraki satın almak isteyebilecekleri bir ürünü tavsiye etmek olsun, bazı hedeflere ulaşmak istemenizdir.

Veri bilimciniz bu gereksinimi alacak ve bir model oluşturacak. Model daha sonra, bunun altında bir yazılım katmanı olan bir çerçeveden yararlanır. PyTorch ve TensorFlow günümüzün en popüler iki çerçevesidir. Aslında, eğitim verilerinin depolama altsisteminde nasıl depolanacağını belirleyen çerçevedir.

Örneğin, Pytorch ile, resimlerden bahsediyorsanız, dosya başına bir jpg depolayacaktır, yani bir dizin ağacında bir milyon jpg diyelim. TensorFlow ise 1.000 veya birkaç bin görüntüyü TensorFlow’a özgü çok daha büyük bir dosya formatına koyacak ve çok daha az sayıda büyük dosyaya sahip olacak.



Aslında, verilerin depolamada nasıl depolanacağını belirleyen çerçevedir ve bu nedenle depolamanın performansı üzerinde büyük bir etkiye sahiptir. Çok sayıda küçük dosya, depolamayı, az sayıda dosyadan kaynaklanan gerçekten yüksek bant genişliğinden farklı bir şekilde zorlar.

Bu, yapay zekanın depolamaya uyguladığı zorlukların ilk büyüklük sırasıdır.

Adshead: Farklı AI/ML iş yükleri için depolamayı nasıl boyutlandırırız?

Anderson: Yani, gerçekten ilginç hale geldiği yer burası. Yine, biraz bağlam belirlemem gerekiyor ve sonra sorunun daha doğrudan yanıtını verebilirim.

Sinir ağı modelinizi eğitirken, çerçeve verileri depodan çeker, toplu iş dediğimiz şekilde belleğe yerleştirir ve tüm toplu işi GPU’ya verir. [graphics processing unit] hesap etmek, hesap etmek.

GPU o veri parçası üzerinde çalışırken, o toplu işte, çerçeve bir sonraki toplu işi oluşturmak için daha fazla veri okuyacak. İlk parti biter bitmez, bir sonraki parti GPU’ya atılır ve çerçeve dışarı çıkar ve daha fazla veri okur.

İşin karmaşıklaştığı nokta, sinir ağlarının doğru şekilde çalışması, doğru şekilde eğitilmesi için verilerin rasgele dağıtılması gerektiğidir. Değişmedi, ancak bu sefer bu görüntüyü çekip verileri eğitiyorsunuz ve bir dahaki sefere bir sonraki grubun parçası olarak rastgele farklı bir görüntü çekiyorsunuz. Ve bir sonraki partide, farklı bir görüntü seti seçersiniz, onları çekersiniz. Yani rastgelelik, gereksinimin sadece bir parçasıdır.

GPU geçerli partide zor iş yaparken ve çerçeve bir sonraki toplu işi bir araya getirmeye çalışırken, depolama yeterince hızlı yanıt veremezse, GPU hesaplamasını bitirir ve boşta kalır ve bir sonraki toplu işin bellekte oluşturulmasını bitirmesini bekler.

Bu pahalı bir kaynak. GPU’lar ucuz değil. Boşta kalmalarını istemezsiniz, bu nedenle depolama, toplu iş oluşturmaya ve GPU’yu beslemeye devam edecek kadar hızlı olmalıdır.

Yine, daha fazla karmaşıklık. Bir görüntüdeki hesaplama miktarı, bir tavsiyede ihtiyaç duyacağınızdan çok daha fazladır. Birinin satın alma geçmişinde, büyük bir röntgen görüntüsünde olduğundan çok daha az veri vardır.

Örneğin, GPU bir dizi x-ışını görüntüsünü işlerken, depolamanın verileri içeri çekmek ve toplu işi oluşturmak için çok daha fazla zamanı olur. Veri baytı başına hesaplamanın küçük olduğu bir tavsiye aracında, depolamanın çok daha hızlı olması gerekir.

Çoğu insan hangi problemler üzerinde çalışacaklarını bilmiyor ve bu yüzden, “Tamam, parayı harcayıp tamamen flash depolama çözümü satın alacağız ve bu her şeye ayak uyduracak” diyorlar. Bu gayet iyi çalışıyor, bu iyi bir cevap.

Bulutta denemeye başlarsanız, orası yerine buraya tıklarsınız ve tamamen flash depolama alt sistemine sahip olursunuz.

200TB veya 300TB’niz varsa [terabytes] Bugünlerde çoğu projenin boyutu olan veriye karşı eğitmek istiyorsanız, all-flash ekonomik bir çözümdür. 2PB ila 3PB’niz varsa [petabytes] veri, o zaman ciddi paradan bahsediyorsunuz ve bunun haklı olup olmadığı konusunda daha fazla düşünmeniz gerekiyor, bu yüzden burada biraz daha karmaşıklık var.

MLCommons’ı duyduysanız veya MLPerf, bu bir endüstri konsorsiyumu, yapay zeka uygulayıcılarına yardımcı olan kar amacı gütmeyen bir kuruluş. Yapay zeka ortamlarını destekleyen ve farklı satıcılardan sonuçlar yayınlayan depolama sistemleri için bir karşılaştırmalı değerlendirme oluşturma sürecindeler; bu nedenle, depolama ürünlerini karşılaştırırken veri almak için burası bir yer.

Adshead: AI/ML iş yükleri için depolama gereksinimlerini nasıl özetlersiniz?

Anderson: Sorununuz küçükse, şirket içindeyseniz tam flaşı satın almanız yeterlidir. Çoğu yapay zeka projesi bulutta başlar çünkü ihtiyacınız olan GPU’ları ihtiyaç duyduğunuz süre boyunca kiralarsınız. Bulut ucuz değil. Ekipmanı şirket içinde satın almak ve bulundurmak genellikle daha ucuzdur, ancak çalıştığını bildiğiniz kararlı bir projeye sahip olmanız gerekir. Gerekçelendirilmeden önce o projede üretime geçmelisiniz.

Basit cevap, tamamen flash depolama ürünleri satın alın ve ayak uydurabileceksiniz. Sorunlar büyüdüğünde, para israf etmemek için çok daha fazla ayrıntıya, daha derin bir analize ihtiyacınız vardır. MLPerf olayı burada devreye giriyor.

Kısa versiyon, tamamen flash bir ürünle başlayın.





Source link