Google ve DeepMind’in Derin Öğrenme İş Akışlarını Ölçeklendirmek için Kullandığı İki Yeni Çerçeve

0
167
views
Google ve DeepMind'in Derin Öğrenme İş Akışlarını Ölçeklendirmek için Kullandığı İki Yeni Çerçeve

En büyük gücünüz, en büyük zayıflığınız olabilir, eski atasözünü ve bunun kesinlikle derin öğrenme modelleri için geçerli olduğunu söylüyor. Derin öğrenme ağlarının tamamı, kısmen derin sinir ağlarının GPU topolojileri arasında ölçeklenebilme kabiliyetiyle mümkündü. Bununla birlikte, aynı ölçekleme kabiliyeti, çoğu kuruluş için operasyonel olarak zorlayıcı olan, hesaplamalı olarak yoğun programların oluşturulmasına neden olmuştur. Eğitimden optimizasyona kadar, derin öğrenme programlarının yaşam döngüsü, hesaplama iş yüklerini paralelleştirmek ve ölçeklendirmek için sağlam altyapı yapı taşlarını gerektirir. Derin öğrenme çerçeveleri hızlı bir şekilde gelişirken, ilgili altyapı modelleri nispeten yeni kalmaktadır. Sadece geçen hafta

Hesaplamaları dağıtma ve paralelleştirme ilkesi, derin bir öğrenme programının yaşam döngüsünün neredeyse her aşamasında geçerlidir. Derin bir öğrenme modelinin eğitimi inanılmaz derecede pahalı bir egzersiz olabilir ve bu yüzden de uygulanması. Açıkça anlaşılan açık cevap, derin öğrenme programlarının iş yüklerini dağıtmak için büyük GPU ağlarından yararlanmaktır ancak bu kolay bir çaba olmaktan uzaktır. Eşzamanlı ve paralel programlama, büyük sinir ağlarına uygulandığında çok karmaşık ve daha da karmaşıktır. Google ve DeepMind gibi organizasyonlar, kritik görev uygulamaları için inanılmaz derecede karmaşık derin sinir ağları işlettikleri için her gün bu zorluklarla karşı karşıyadır. Geçen hafta, Google  GPipe’ı açıklayan bir araştırma makalesi yayınladıderin öğrenme modellerinin eğitimini ölçeklendirmek için bir çerçeve. Neredeyse aynı zamanda, DeepMind’teki bir araştırma ekibi,  ölçeklenebilir dağıtılmış derin öğrenme programları için bir çerçeve olan TF-Replicator’ı tartışan bir makale yayınladı . Her iki çaba da programlama modeline herhangi bir ceza getirmeden derin öğrenme iş akışlarının ölçeklenebilirliğini ele almaya çalışmaktadır.

Google’ın GPipe

GPipe, derin öğrenme programları için eğitim iş yüklerini ölçeklendirmeye odaklanır. Eğitim süreçlerinin altyapı açısından karmaşıklığı, derin öğrenme modellerinin sıklıkla gözden kaçan bir yanıdır. Eğitim veri setleri giderek daha da karmaşıklaşıyor. Örneğin, sağlık hizmeti alanında, milyonlarca yüksek çözünürlüklü görüntü kullanılarak eğitilmesi gereken modellerle karşılaşmak nadir değildir. Sonuç olarak, eğitim süreçlerinin tamamlanması, bellek ve CPU tüketiminden inanılmaz derecede pahalı sonuç almak için uzun zaman alır.

Derin öğrenme modellerinin paralelliğini düşünmenin etkili bir yolu, onu veri ve model paralelliğinin arasına bölmektir. Veri paralelliği yaklaşımı, girdi verilerini aralarından ayırmak için büyük makine kümeleri kullanır. Model paralelliği, modeli, model eğitimini hızlandırmak için özel donanıma sahip GPU’lar veya TPU’lar gibi hızlandırıcılara taşımayı dener. Yüksek düzeyde, hemen hemen tüm eğitim veri setleri belirli bir mantıktan sonra paralelleştirilebilir, ancak aynı modellerde söylenemez. Örneğin, bazı derin öğrenme modelleri bağımsız olarak eğitilebilen paralel dallardan oluşur. Bu durumda, klasik bir strateji hesaplamayı bölümlere ayırmak ve farklı dallara farklı bölümler atamaktır. Ancak, bu strateji katmanları sırayla istifleyen derin öğrenme modellerinde yetersiz kalmaktadır.

GPipe, boru hattı adı verilen bir tekniği kullanarak hem verileri hem de model paralelliğini birleştirir . Kavramsal olarak, GPipe, çoklu ardışık katmanlardan oluşan herhangi bir DNN’ye uygulanabilen, eğitim için senkronize stokastik gradyan iniş ve boru hattı paralelliği kullanan dağıtılmış bir makine öğrenme kütüphanesidir. GPipe, bir modeli farklı hızlandırıcılar arasında bölümlere ayırır ve otomatik olarak küçük bir dizi toplu eğitim örneğini daha küçük mikro gruplara böler. Bu model GPipe’nın hızlandırıcılarının, eğitim sürecinin ölçeklenebilirliğini en üst düzeye çıkararak paralel olarak çalışmasını sağlar.

Aşağıdaki şekil, sıralı katmanlara sahip bir sinir ağına sahip GPipe modelini dört hızlandırıcıda bölümlere ayrılmış halde göstermektedir. Fk, kth bölümünün kompozit ileri hesaplama işlevidir. Bk karşılık gelen geri yayılma işlevidir. Bk hem üst tabakadaki Bk + 1 hem de Fk’ın ara aktivasyonlarına bağlıdır. En üst modelde, ağın sıralı yapısının kaynakların yetersiz kullanılmasına neden olduğunu görebiliriz. Alttaki şekil giriş mini partisinin aynı anda hızlandırıcılar tarafından işlenebilen daha küçük makro partilere bölündüğü GPipe yaklaşımını göstermektedir.

Google  Open  , TensorFlow projesinin bir parçası olarak bir GPipe uygulamasını destekledi.

DeepMind’in TF-Çoğaltıcısı

TF-Replicator, TensorFlow programlarının Tensor İşleme Birimlerini (TPU’lar) nasıl kullandığıyla ilgili olarak ölçeklendirilebilirliğin farklı bir yönüne odaklanır. En gelişmiş AI yongalarından biri olarak kabul edilen TPU’lar, makine öğrenmesi iş yükleri için yerel ölçeklenebilirlik sağlar. Bununla birlikte, TensorFlow programlarında TPU’ların kullanımı   , temel donanım modeline aşina olmayan veri bilimcileri için taşınabilirlik ve benimseme engellerine neden olan özel API’ler gerektirir . DeepMind’in TF-Replicator’ı, TensorFlow programlarındaki TPU’lardan yararlanmak için daha basit, geliştirici dostu bir programlama modeli sağlayarak bu zorluğu giderir.

TF-Replicator’ın büyüsü, her cihazın hesaplamasının aynı TensorFlow grafiğinde çoğaltıldığı “grafik içi çoğaltma” pıtırtıya dayanır. Cihazlar arasındaki iletişim, cihazların karşılık gelen alt grafiklerinden bağlanmasıyla sağlanır. Bu paralelleştirme seviyesine ulaşmak için TF-Replicator,  TensorFlow’un grafik yeniden yazma  modelini grafikteki cihazlar arasına doğal iletişim eklemek için kullanır. Bir TensorFlow grafiği ile sunulduğunda, TF-Replicator önce her cihaz için hesaplamayı bağımsız olarak oluşturur ve çapraz cihaz hesaplamanın kullanıcı tarafından belirtildiği yer tutucuları bırakır. Tüm cihazların alt grafikleri oluşturulduktan sonra, TF-Replicator bunları yer tutucuları gerçek çapraz cihaz hesaplamasıyla değiştirerek bağlar.

Programlama modeli açısından, TF-Replicator kullanılarak yazılan kod, tek bir cihaz için oluşturulan yerel TensorFlow koduna benzer. Kullanıcının basitçe (1) bir Veri Kümesini ortaya çıkaran bir giriş fonksiyonu ve (2) modelinin mantığını tanımlayan bir adım fonksiyonu tanımlaması gerekir (örneğin, tek bir gradyan iniş adımı). Aşağıdaki kod parçacığında basit bir TF-Replicator programı gösteriliyor:

Farklı cihazlar arasındaki iletişimi optimize etmek için TF-Replicator, en gelişmiş MPI arayüzlerini kullanır. Bazı deneylerde DeepMind, ünlü  BigGAN  modelini 2048 boyutundaki gruplar halinde 512 çekirdeğe kadar bir TPUv3 kapsülüne kadar eğitebildi. Şu anda, TF-Replicator, DeepMind’deki TPU’ların ana programlama arabirimidir.

Hem GPipe hem de TF-Replicator, derin öğrenme modellerinin yaşam döngüsünün farklı yönlerini ölçeklendirmek için modern araştırmaların uygulamalarıdır. Derin öğrenme alanı geliştikçe, genel makine öğrenme uygulamalarına maruz kalmalarını genişletmek için popüler derin öğrenme çerçevelerinde GPipe veya TF-Replicator gibi uygulamaları göreceğimiz muhtemeldir.

CEVAP VER

Please enter your comment!
Please enter your name here