Ali NIPS 2017 makalesinin yorumu: TensorFlow eğitiminin bellek tüketimi nasıl azaltılır?

Alimei's Guide: En iyi uluslararası makine öğrenimi ve sinir ağı akademik konferansı olarak bilinen NIPS 2017, 4-9 Aralık tarihleri arasında Long Beach, Kaliforniya, ABD'de düzenlendi. Bu konferansta, Alibaba tarafından atölye çalışmaları ve Sözlü ve Poster raporları için seçilen iki bildiriye ek olarak, üç ana teknik bölüm, Ali sergi alanında 3 gün boyunca birden fazla teknik seminer düzenleyerek 5.000'den fazla katılımcıyı tanıttı. Alibaba'nın makine öğrenimi ve yapay zeka alanındaki teknik araştırmaları, ürünleri ve uygulamaları.

NIPS 2017 Alibaba standı-Alibaba iDST Dean Jin Rong bir konuşma yapıyor

Derin model eğitimi için GPU bellek optimizasyonunu tanıtan "TensorFlow'da GPU Bellek Optimizasyonuna göre TrainingDeeper Modelleri" başlıklı bu kağıt, yazar tarafından NIPS 2017 ML Systems Workshop'ta sunulmuştur. Bu makale özellik haritalarına odaklanır, derin sinir ağı eğitimi sırasında bellek tüketimini azaltmak için iki yöntem önerir ve bu yöntemlerin uygulanmasını TensorFlow'a sorunsuz bir şekilde entegre eder, bu da TensorFlow'un büyük modelleri eğitirken belleği etkin bir şekilde optimize edemeyen eksikliklerinin üstesinden gelir.

Son zamanlarda, derin öğrenme, farklı uygulamalarda giderek daha önemli bir rol oynadı. Derin öğrenme modellerini eğitmek için gerekli mantık, GPU'lara uygun paralel doğrusal cebir hesaplamalarını içerir. Bununla birlikte, fiziksel sınırlamalar nedeniyle, GPU'nun cihaz belleği (yani video belleği) genellikle ana belleğinden daha küçüktür. En yeni üst düzey NVIDIA GPU P100, 12-16 GB video belleğine ve bir CPU sunucusunda 128 GB ana bellek vardır. Ancak, derin öğrenme modellerinin trendi "daha derin ve daha geniş" bir mimaridir. Örneğin, ResNet 1001 nöron katmanı içerir, Sinir Ağı Makine Çevirisi (NMT) modeli dikkat mekanizmasını kullanan 8 katman içerir ve NMT modelindeki bireysel katmanların çoğu sıralı ve yatay olarak açılır, bu da kaçınılması zordur. Land, çok fazla video belleği tüketimi getiriyor.

Kısacası, sınırlı GPU belleği ile sürekli artan model karmaşıklığı arasındaki boşluk, bellek optimizasyonunu zorunlu hale getiriyor. Aşağıda, derin öğrenme eğitim sürecinde kullanılan GPU belleğinin ana bileşenleri tanıtılacaktır.

Özellik haritası. Derin öğrenme modeli için, özellik haritası, ileri iletimdeki bir katman tarafından oluşturulan bir ara çıktı sonucudur ve geri iletimin gradyan hesaplamasında bir girdi olarak kullanılır. Şekil 1, ImageNet veri kümesinde küçük bir toplu eğitim yinelemesi için ResNet-50'nin GPU bellek kullanım eğrisidir. Özellik haritalarının toplanmasıyla eğri en yüksek noktasına ulaşır. Özellik haritasının boyutu genellikle parti boyutu ve model mimarisine göre belirlenir (örneğin, CNN mimarisinin evrişim adım boyutu, çıkış kanallarının sayısı; kapı sayısı, zaman adımları ve RNN mimarisinin gizli katman boyutu). Giriş serbest bırakılacağı için artık gerekmeyen özellik haritasının kapladığı video belleği Şekil 1'deki video belleği doluluk eğrisinde bir düşüşe neden olur. Karmaşık model eğitimi için, kullanıcılar "yetersiz bellek" sorununu önlemek için parti boyutunu ayarlamalı veya model mimarisini yeniden tasarlamalıdır. Dağıtılmış eğitim durumunda, eğitim görevi, yetersiz bellek sorununu hafifletmek için birden fazla cihaza dağıtılabilir, ancak bu aynı zamanda ek iletişim yüküne de yol açar. Cihazın bant genişliği sınırlamaları da eğitim sürecini önemli ölçüde yavaşlatabilir.

Şekil 1: Bir eğitim adımında kullanılan ResNet-50'nin video belleğinin değişim eğrisi. Yatay eksen, tahsis / bırakma sayısını temsil eder ve dikey eksen, video belleği tarafından halihazırda işgal edilen toplam bit sayısını temsil eder.

Ağırlıklar. Özellik haritalarına kıyasla, ağırlıklar nispeten daha az bellek kaplar. Bu makalede, ağırlıklar, yalnızca tüm eğitim görevi tamamlandıktan sonra serbest bırakılabilen GPU belleğinde kalıcı bellek olarak kullanılmaktadır.

Geçici hafıza (Geçici hafıza). Bazı algoritmalar (Fast-Fourier-Transform (FFT) tabanlı evrişim algoritmaları gibi) çok fazla ek video belleği gerektirir. Bu video belleği işgalleri geçicidir ve hesaplama bittikten hemen sonra serbest bırakılacaktır. Geçici video belleğinin boyutu, GPU yazılım kitaplığındaki (cuDNN gibi) her algoritmanın numaralandırılmasıyla otomatik olarak ayarlanabilir, böylece göz ardı edilebilir.

Açıkçası, özellik haritası, GPU bellek kullanımının ana bileşenidir. Makalenin yazarı, özellik haritalarına odaklandı ve GPU bellek sınırlama sorununu çözmek için iki yöntem önerdi, yani genel "takas / giriş" yöntemi ve Seq2Seq modeli için uygun bellek açısından verimli dikkat katmanı. Tüm bu optimizasyonlar TensorFlow'a dayanmaktadır. TensorFlow yerleşik bir bellek ayırıcıya sahiptir ve "birleştirme ile en uygun" algoritmayı uygular. Ayırıcı, birleştirme yoluyla parçalanmayı desteklemek için tasarlanmıştır. Ancak, yerleşik bellek yönetimi stratejisi, büyük model eğitimi sırasında video belleği optimizasyonunu dikkate almaz.

Bu yazının katkısı aşağıdaki gibidir. Özellik haritalarına odaklanarak, derin sinir ağı eğitimi sırasında GPU bellek tüketimini azaltmak için iki yöntem önerilmektedir. Veri akış grafiğine dayalı "takas / giriş" yöntemi, ana belleği daha büyük bir bellek havuzu olarak kullanır, böylece GPU belleğinin üst sınırını gevşetir ve bellek açısından verimli dikkat katmanı, çok fazla bellek tüketen Seq2Seq modelini optimize etmek için kullanılabilir. Bu yöntemlerin uygulanması, TensorFlow'a sorunsuz bir şekilde entegre edilmiştir ve mevcut model mimarisinin açıklamasında herhangi bir değişiklik olmaksızın tüm modellere şeffaf bir şekilde uygulanabilir.

Kağıt: TensorFlow'da GPUMemory Optimizasyonu ile Daha Derin Modellerin Eğitimi

Yazar: Meng Chen, Sun Minmin, Yang Jun, Qiu Minghui, Gu Yang

Kağıt adresi:

https://github.com/LearningSys/nips17/blob/9ee207c054cf109bc4a068b1064b644d75d0381f/assets/papers/paper_18.pdf

Özet : Büyük veri çağının ortaya çıkması, GPGPU edinme maliyetlerinin azalması ve sinir ağı modelleme teknolojisinin gelişmesiyle birlikte, GPU'larda derin öğrenme modellerini eğitmek giderek daha popüler hale geldi. Bununla birlikte, derin öğrenme modellerinin doğal karmaşıklığı ve modern GPU'ların bellek kaynağı sınırlamaları nedeniyle, özellikle model boyutu tek bir GPU için çok büyük olduğunda, derin modellerin eğitimi hala zor bir iştir. Bu yazıda, ana bilgisayar belleğini GPU bellek sınırlamasının üstesinden gelmek için daha büyük bir bellek havuzu olarak ele alan "takas / giriş" adlı genel bir veri akış grafiğine dayalı bir GPU bellek optimizasyonu stratejisi öneriyoruz. Aynı zamanda, Seq2Seq modelini yüksek bellek tüketimiyle optimize etmek için özel bir optimizasyon stratejisi de önerdik. Bu stratejileri TensorFlow'a sorunsuz bir şekilde entegre ediyoruz ve optimizasyon doğruluk kaybına neden olmayacak. Çok sayıda deneyde bellek kullanımında önemli bir azalma gözlemledik. Sabit bir model ve sistem konfigürasyonu verildiğinde, maksimum eğitim grubu boyutu 2 ila 30 kat artırılabilir.

Şekil 2: Referans sayısı (referans sayısı)

Şekil 3: Değiştirme / optimize edilmiş atomik işlemde (Atomik işlem). Referans kenarı e düğümünden b düğümüne silin ve kırmızı ve mavi düğümler ve kenarlar ekleyin.

Şekil 4: Dikkat işlemi optimizasyonu. d gradyanı ifade eder. Soldaki resim optimize edilmemiş ve sağdaki resim video belleği için optimize edilmiştir.

Tablo 1: Takas / giriş değerlendirmesi, GPU belleğinin üst sınırı 12GB'dir.

Tablo 2: Belleği verimli kullanan sıra modelinin değerlendirilmesi.

Honda yeni nesil bir Accord piyasaya sürdü.Yüksek görünümünün yanı sıra bu siyah teknolojilere de sahip ...
önceki
Etanol yakıtı popülerdir, yani çevre için gerçekten iyi mi?
Sonraki
"Kızların Sevgisi" önümüzdeki hafta prömiyer yapacak, Baba Ren iki kızının gerçek aşkı yaşamasını bekliyor.
Manchester City'nin iki orta saha performansı çok farklı: De Bruyne bulutların arasından şut çekti, Fernandinho kendi kalesine gitti
Gözlerini aç ve saçma sapan konuş! James'e karşı meşhur sözler: hakemleri tartışacak! KD seni uzun zaman önce geçti!
Dövüş sanatları hakkında konuşmak: dövüş sanatları karakteri Olimpiyatlara katılmışsa
Kadın futbolu ısınma maçında Wang Shuang, Güney Koreli oyuncular tarafından atıldı ve takım arkadaşları ilk günlerinde sarı kart gördü!
Manchester United antrenman sahasında Mourinho ve Pogba arasındaki tartışma ortaya çıktı! Pogba'nın Mourinho'yu kızdırmak için yaptığı birkaç şey
20 yıldır hükümetin yetkisi altında olan Changan Auchan, Chongqing'in yeni kartvizitine dönüştü.
Ali mühendislerinin her gün ziyaret etmesi gereken web sitesi, beklenmedik bir şekilde ...
İnsanlar neden klasik araba toplamaya hevesli? Bunun arkasında 4 sebep var!
Casemironun cezası Brezilya için gerçekten gizli bir tehlike oluşturdu: Orta saha oyuncusu Belçika tarafından havaya uçuruldu ve iki oyuncu son derece kötü oynadı
Aile karnavalı animasyonu "Pocahontas" yayınlandı, fantastik macera hemen yelken açtı
James haksızlığa uğradı! Qi Yong hakem raporu: Durant'ın üç savunması sonunda faul oldu!
To Top