NVIDIA: Derin Öğrenme Sunucusu Oluşturma Kılavuzu | Exchange Toplantısı Notları

Konuşmacı: Ken (He Kun) | NVIDIA Geliştirici Topluluk Yöneticisi

Zhang Kang Qu Xin Kurgu ve bitirme

Qubit Üretildi | Genel Hesap QbitAI

21 Temmuz'da Qubit ve NVIDIA çevrimdışı bir değişim toplantısı düzenlediler ve sahada yaklaşık yüz geliştirici ve öğrenciyle, derin öğrenme sunucusu oluşturma sürecindeki olası sorunları tartıştılar ve geliştirme konusunda gerçek deneyim alışverişinde bulundular.

Bu etkinliğin konuşmacısı, 7 yıllık GPU geliştirme deneyimi ve 5 yıllık yapay zeka geliştirme deneyimi olan NVIDIA Geliştirici Topluluk Yöneticisi Ken (He Kun). Yapay zeka, bilgisayarla görme ve yüksek performanslı bilgi işlem alanlarında bağımsız olarak birden fazla projeyi tamamlamıştır ve robotlar ve dronlar alanında zengin Ar-Ge deneyimine sahiptir.

Görüntü tanıma, hedef algılama ve izleme için çeşitli çözümleri tamamladı ve ana geliştirici olarak GRAPES hava durumu modelinin GPU sürümüne katıldı.

Etkinlik alanında boş koltuk yoktu ve değişim seansı coşkulu geçti, ilgilenen bin arkadaş canlı yayını izlemek için çevrimiçi olarak toplandı.

Okuyucuların isteği üzerine Qubit, sahnenin içeriğini makaleler halinde düzenleyecek ve sizinle paylaşacaktır.

Derin öğrenme sunucusu

Derin öğrenmenin gelişimi uzun yıllardır yaşanmaktadır. Güncel ilgili algoritmalar 20 veya 30 yıl önceki teorilerdir veya ilgili matematiksel algoritmalar ve modeller pek değişmemiştir.

Derin öğrenme neden son yıllarda gerçekten popüler hale geldi? Çünkü bu zaman diliminde, hesaplama gücümüz derin öğrenme teorisine karşılık gelen seviyeye ulaştı.

Sinir ağlarını kullandığımızda, neden ortadaki gizli katmanların kullanılamadığı, çünkü orijinal bilgi işlem gücümüz ve CPU'muz karşılık gelen seviyeye ulaşamadı.

2007'de NVIDIA, geliştiricilere yüksek performanslı bilgi işlem veya daha derin bir çalışma gerçekleştirirken çok fazla yardım sağlamak için CUDA gibi yöntemler ve araçlar önerdi. Derin öğrenme teknolojisinin gelişmesiyle birlikte GPU'nun da derin öğrenme çalışmaları için çok uygun olduğunu gördük.

Bugün, üç önemli içeriği özetleyeceğim: Birincisi, model eğitimi olan derin öğrenmedir; ikincisi eğitim sırasında örnek yönetimi; üçüncüsü eğitim modellerinin konuşlandırılması. Bunlar, derin öğrenme sürecinin tamamının üç önemli bölümüdür.

Birçok öğrenci bana sordu, NVIDIA'nın algoritmasının bazı araçları açık kaynak mı? Çoğu NVIDIA açık kaynak kodlu değildir, ancak açık kaynak olmayan şeyler kullanılamayacakları anlamına gelmez. Aşağıdaki şekilde gösterilen araçlar, piyasada yaygın olarak kullanılan hemen hemen tüm açık kaynak derin öğrenme çerçevelerini destekleyen bazı özel çerçeveler dahil olmak üzere kullanmakta serbesttir.

Ayrıca, bazı tümleşik bilgi işlem kitaplıkları da dahil olmak üzere çerçeve altındaki temel içerik için bilgi işlem hizmetleri sağlar. İlk günlerde, bazı hesaplamalar yapmak için CUDA'yı kullanmadan önce, CUDA C, CUDA Fortune, CUDA C ++ vb. Öğrenmeniz gerekir. Son yıllarda CUDA python da tanıtıldı.

CUDA'yı ilk öğrendiğimizde, gerçekten bir şey öğrenmemizin yarım yıl alabileceğini düşündük. Bu hızlı teknolojik gelişme çağında, altta yatan katmanı kapsamlı bir şekilde araştırmak artık gerekli değildir ve bazı görevleri tamamlamak için araçlar kullanılabilir.

NVIDIA, derin öğrenme alanında bazı eğitim kitaplıkları ve araçları sağlar .. Bugün bu araçları sizlerle paylaşacağım.

Şu anda tüm sunucudaki donanım ürünleri Tesla serisi olabilir, hatta GeForce serisi deneyler için de kullanılabilir ve iyi bir etki de elde edilebilir.

Donanım yapılandırması

Bir GPU sunucusu oluşturmak istiyorsak, ana donanım yapılandırması, aşağıdaki şekilde gösterildiği gibi donanım yapılandırma parametreleridir.

Bellek için 32-64 GB uygundur, bu sunucular için çok büyük değildir, ancak bir veya iki seviyede ayırt edilebilir. Çoğu zaman örnekleri işlememiz ve bir GPU programlamamız gerekir. Şu anda bellek aslında çok önemli bir konudur.Belirli bir büyüklük sırasına göre, bu kadar büyük bir bellek temel bir standarttır.

Sabit disk yapılandırması açısından, yukarıdaki şekilden daha düşükse, derin öğrenme geliştirme yaparken, modelleri ve örnekleri depolarken göreceli olarak gergin olabiliriz.

Şimdi de güç kaynağı ve ağ arayüzünden bahsedelim, bu ikisi önceden gözden kaçırmak kolay ama çok önemli. Bir güç kaynağı seçerken, 2000w seçildi çünkü birden fazla GPU paralel olarak olduğunda, bir karta birçok GPU takıldığında güç kaynağı desteklenmelidir.İkincisi, yedekli güç kaynağı kullanılır. Ani bir elektrik kesintisi olursa, güç kaynağının desteklenmesi gerekir. Tut.

Sonra ağ arayüzü var. Kendi deneylerimizi yaptığımızda, bazı ücretsiz resim örnek koleksiyonları vb. Bulmak kaçınılmazdır. Biraz daha büyük bir ağ arayüzü, sorunlardan kurtaracaktır.

Tüm donanım konfigürasyonu önerisi şu şekildedir.

Yazılım yapılandırması

Yazılım sisteminin konfigürasyonunda, tüm sistem tercihen ilk önce Linux'tur. Bazı öğrenciler Windows altında desteklenip desteklenmediğini sorabilir.Bazı durumlarda Windows sistemi desteklenir, ancak daha fazla durumda derin öğrenme geliştirirken Linux'u olabildiğince kullanmak daha iyidir.

En sevdiğim sistem Ubuntu, isterseniz Centos ve diğer sistemler kullanılabilir, NVIDIA da desteklemektedir.

İşte küçük bir öneri: Yeni başlayan biriyseniz ve bu yapılandırmaları iyi bilmiyorsanız, daha düşük bir sürüm seçebilirsiniz. Daha sonra, 16.04 sisteminin sürümüne göre ortamı nasıl yapılandıracağınızı göstereceğim. Herkesin dikkat etmesi gereken bir sorun: gelişmiş sürümü seçin, eşleşmeyen bazı yeni kitaplıklar olabilir.

Ardından, sürücüyü yükleme sorunundan bahsedelim. İndirmek için doğrudan resmi web sitesine gitmenizi öneririm; eğer çalışmazsa, örneğin Ubuntu'da, sadece sistemin kendi kurulumunu kullanın; CUDA'da hala çalışmıyorsa, bir sürücü ile de gelecektir, sadece en son kurulumu takip edin.

Sürücüyü kurduktan sonra derin öğrenme geliştirme araçlarını tanıtalım: CuDNN, TensorRT, CuBLAS, DeepStream.

TensorRT, dağıtım aşamasında çıkarımı hızlandırmak için bir araçtır Şimdiye kadar sürüm 4.0, C ++ ve python arayüzlerini destekledi. Ayrıca Caffe, TensorFlow gibi ana akım çerçeveleri destekler ve bir ONNX ağ modeli formatı aracılığıyla PyTorch, Caffe2 vb. Destekleyebilir. Bu aracı kendim test ettiğimde, herhangi bir çerçeve, aynı model ve aynı verilerle test etmenin en hızlı yol olduğunu buldum.

Sırada TensorRT ile bir çift olan CuDNN var CuDNN'nin eğitim için bir kütüphane sağladığını anlayabiliriz. CuDNN kullandıktan sonra eğitim hızı ortalama olarak 4 ila 5 kat daha hızlıdır.

TensorRT çıkarımdır ve CuDNN eğitimdir.

Son olarak, DeepStream'in gelişimi hakkında konuşun. Bu araç henüz 2.0'a ulaştı ve şu anda çok yeni bir araç. Sistemi, video kodlama ve kod çözme işlemi sırasında çıkarım işlemini gerçekleştirir. Bu zaman kazandırır.

Başlangıçta, derin öğrenme sürecinin tamamının üç ana bölümden oluştuğunu söylemiştim: örnek yönetimi, model eğitimi ve model dağıtımı. DIGITS, ilk iki süreci yönetmek için önemli bir araçtır.

Özel araç kurulum süreci

Şimdi belirli araçları ve kurulum sürecini tanıtacağım.

Bu resim tam bir derin öğrenme çözümüdür.

Örneklerin yönetiminde birçok resim veya ses ve video materyali olabilir ve bunların yönetimi, sunucunun kendi işleme yeteneklerine bağlıdır. Tabii ki, GPU bir miktar hızlandırma için de kullanılabilir. Esas olarak eğitim ve dağıtımın iki aşamasını tanıtmam gerekiyor.Bu iki aşama arasında temel bir fark var: eğitim çevrimiçi modda ve modelin adım adım yinelenmesi gerekiyor. Sürekli güncellenir Süreçte parametrelerin psikolojik beklentileri karşılamadığı tespit edilirse veya bazı anormallikler ortaya çıktığında, hemen değiştirebilir, ağ modelini ayarlayabilir veya örneği ayarlayabilirsiniz.

Dağıtım aşamasında, tüm model çevrimdışı kullanılır ve çıkarım işlemi sırasında örneği değiştirmek imkansızdır. Örneğin, akıllı donanım cihazlarının çok yüksek tanıma hızı gereksinimleri vardır ve bu ürünlere dağıtıldıklarında bilgi işlem gücü son derece sınırlıdır. Sınırlı hesaplama gücü durumunda, daha yüksek hesaplama hızına da ihtiyacımız var Şu anda, daha iyi bir çıkarım algoritması benimsememiz gerekiyor. Burada herkese TensorRT çıkarım aracını denemelerini tavsiye ederim.

Bir sunucu oluşturma süreci

Daha sonra, genel bir sunucu oluşturma sürecini tanıtacağım.

Sistemden başlayarak, CUDA'yı kurduktan sonra CuDNN'yi, ardından TensorFlow ve Caffe'nin iki çerçevesini, ardından TensorRT'yi ve son olarak da DIGITS'in tüm sürecini kurun.

CUDA kurulumu

İlki CUDA'nın kurulmasıdır.

Yeni başlayan biriyseniz, .deb dosyasını .run ile yüklemek yerine doğrudan indirmeniz önerilir. Birincisi işlem çok basit olduğu için, ikincisi, tüm kurulum sürecindeki bazı yedekleme dosyalarının konumları da ayrıntılı olarak sağlanarak büyük sıkıntılardan tasarruf edilir. Ağınızın iyi olduğunu düşünüyorsanız, ağı kurmanın başka bir yolu var, deneyebilirsiniz.

CuDNN kurulumu

Daha sonra CUDA'yı indirin ve işlemi izleyin. Şunlara dikkat edin: 1. Çevre değişkenine yolu eklemeyi unutmayın. 2. Caffe ve TensorFlow'u kurarken, sistemde CUDA veya CuDNN kullanmayı seçerseniz, lib kitaplığını eklemeyi unutmayın.

Sonra CuDNN'yi indirin Herkesin CuDNN kurması önerilir Kurulumdan sonra hız çok artacaktır.

Unutulmaması gereken bir şey, CuDNN'nin sürüm numarasıdır Sürüm numarası, diğer araçların sonraki kurulumunda yer alacağı için hatırlanmalıdır. Linux geliştirme yaparken, sadece CUDA veya GPU geliştirme değildir.Bu tür araçlar için, kurulu sürüm numarasına dikkat etmelisiniz. Yeni başlayan biriyseniz, bazı sorunlardan kurtulmak için daha büyük bir sürüm numarası kullanmak en iyisidir.

TensorRT kurulumu

Sırada TensorRT'nin indirilmesi ve kurulması. .Deb dosyasını doğrudan indirmeniz de önerilir.

TensorFlow ve Caffe Kurulumu

Son olarak, iki çerçeve vardır: Tensorflow ve Caffe.

TensorFlow çerçevesi, çıkarımı hızlandırabilen TensorRT kullanmanızı önerir.

Caffe'nin kurulumu CuDNN ve CUDA sürümlerine dayanmaktadır. Bir şeye dikkat edilmesi gerekebilir: Caffe versiyonu, 0.15 versiyonunu kullanmanız tavsiye edilir, bu versiyon alt kısımdaki standart Caffe versiyonundan biraz farklıdır, bu yüzden daha kapsamlı olabilir.

RAKAMLAR

Son olarak, DIGITS aracından bahsedin, yukarıdaki resim DIGITS'in temel arayüzüdür.

Derin öğrenme eğitimi verirken, örnek yönetimi kullanacaksınız.İçeriği yönetmek için kişisel bir sunucu kullandığınızda, onu görselleştirmek genellikle imkansızdır. Yalnızca bir terminal açarsanız, biraz gecikme olur ve etkisi çok kötü olur. Bu araç, örneğin nasıl organize edileceği veya örnekteki bazı dağılımların nasıl görüntüleneceği dahil olmak üzere çeşitli arayüzler sağlayabilir.

Ayrıca DIGITS'de GoogleNet ve AlexNet gibi önceden eğitilmiş modeller de mevcut olup, sadece örnekleri yeniden hazırlamanız yeterlidir.

Ağ modelini kendiniz tanımlamanız gerekiyorsa, ağ yapısını doğrudan DIGITS'e kopyalamanız yeterlidir.

Son olarak, bir hızlandırma aracı olan TensorRT aracını tanıtacağım. NVIDIA, TensorRT projesini kurduğunda, bir GPU Çıkarım Motoru olarak tanımlandı.

Tüm aracın mekanizması şudur: eğitimli bir sinir ağı modelini girin Bu model Caffe, Tensorflow veya PyTorch olabilir. Girişten sonra model otomatik olarak optimize edilecek ve hızlandırılacaktır.

Modeli kendimiz hızlandırdığımızda, modeli uyarlamamız ve model parametrelerinin gereksiz taramasını ve optimizasyonunu yapmamız gerekir. Veya model için bazı ayrıştırıcılar yazın ve bunları ayrıştırıcıda otomatik olarak kesin ve hızlandırın. Bu süreçte çok zaman kaybedilecektir.

Bir sonraki adım, çalıştırılabilir bir çıkarım motoru çıkarmak ve ardından çalıştırılabilir çıkarım motorunu sıralamak, sanal motora serileştirilmiş bir dosya koymak, motora bir resim veya ses örneği girmek ve son olarak bir sonuç çıkarmaktır. .

sonuç olarak

Özetlemek gerekirse, kendi sunucunuzu kurmak istiyorsanız, iyi bir donanım ürünü seçmeniz gerekir. En pahalı veya büyük olanı seçmek zorunda değilsiniz, ancak ihtiyaçlarınıza göre, daha fazla video belleğine veya daha fazla bilgi işlem gücüne veya doğru Maliyet performansı dahil olmak üzere bant genişliği gereksinimleri, vb. De dikkate alınması gereken hususlardır.

Ardından, yazılım ortamının yapılandırması vardır.Yüklenen uzantı ve çerçeve dahil olmak üzere bir yazılım ortamını kendiniz yapılandırabilirseniz, doğrudan deneyebilirsiniz.

Yönetim sistemi ve arkasındaki hızlandırma araçları, gerçek üretkenliği temsil eden araçlardır.

QA

DIGITS ücret alıyor mu ve bunu nasıl kullanıyoruz? Açık kaynak Jupyter Notebook çalışabilir mi?

DIGITS ücretsiz ve açık kaynaklıdır.

Açık kaynak Jupyter Notebook kullanılabilir.

CUDA sanal makinede nasıl kullanılır?

CUDA'yı uzun zaman önce sanal bir makinede kullandım ama kullanması çok zahmetli, CUDA'yı sanal bir makinede kullanmanız tavsiye edilmiyor ama gerçekten mevcut. Bazı çok küçük hatalar olacaktır ve bazı hatalar kendi başlarına yazılmaz, kod hatalarıyla değil, sanal makinenin temelindeki mekanizma ile iletişim problemleriyle yazılır.

Optimizasyon yaparken yalnızca GPU hesaplamasını optimize edin, ağ yapısını mı yoksa nihai doğruluğu mu etkiler?

Belli bir etki olacak ama bu etki karar ve hizmet kapsamındadır. Çünkü CRD'nin kendisinin bir mekanizması vardır: eşiklerin ve ilerlemenin etkisini kontrol etmek. CRD'nin temel fikri, doğruluğu biraz azaltmak ve hızı çok artırmaktır. CRD'nin rolü, ürün tarafında konuşlandırmaktır, daha hızlı gerektirir.

Öğrenme materyalleri

Doğrudan değişim toplantısının video oynatma arayüzüne gitmek için "Orijinal metni oku" seçeneğini tıklayın.

QbitAI WeChat genel hesabı (QbitAI) diyalog arayüzünde "0801" yanıtını verin Tam PPT Adresi indirin ve Video oynatma adres.

- Bitiş -

Samimi işe alım

Qubit, editörleri / muhabirleri işe alıyor ve merkezi Pekin, Zhongguancun'da bulunuyor. Yetenekli ve hevesli öğrencilerin bize katılmasını dört gözle bekliyoruz! Ayrıntılar için, lütfen QbitAI diyalog arayüzünde "işe alım" kelimesiyle yanıt verin.

Qubit QbitAI · Toutiao İmzalayan Yazar

' ' Yapay zeka teknolojisi ve ürünlerindeki yeni eğilimleri takip edin

Yerli olarak üretilen arabaların ne kadar rekabetçi olduğunu görmek için sadece bu arabalara bakın. Geely, BYD Chery'yi yendi!
önceki
Çapanın açılmadığını kanıtlamak için, yerel zorba 5 milyon değerinde bir hesap ödünç verdi, ancak V ajansı tarafından bloke edildi?
Sonraki
Dubai'nin her yerinde 47 milyon Martin polis arabası mı? Toyota SUV kabul etmeyi reddetti: Dubai'ye hiç gitmedim
İsveç Açık: Xu Xin, Zhang Benzhihe'yi tersine çevirdi, Ding Ning, Ishikawa Jiachun ile savaşacak! Ekli program yayın tablosu
Milutinovic'in Amerikan versiyonu Panama'yı Dünya Kupası hayalini gerçekleştirmeye yönlendiriyor
Baidu'nun yapay zeka konusundaki iddiasının büyük bir getirisi var, Robin Li, Apollo'nun nasıl para kazandığını ilk kez açıkladı
Asya Kupası elemelerinde 4 galibiyetle dünyanın en kalabalık ikinci ülkesinde futbol yükselişte
Liang Jingkun, İsveç Açık'a hak kazandı ve Zhang Rui, U21 tek kadınlar şampiyonasını kazandı!
Dünyada kimsenin umursamadığı oyun Shanda Tencent tarafından ileri taşındı ve Çinli oyuncuların patenti haline geldi.
Asya Kupası elemelerinde Doğu Asya güçleri 0-5 mağlup oldu, ülkenin ilk yabancı teknik direktörü sınıftan ayrılmak üzere
Zhou Yu, Liang Jingkun ve Liu Dingshuo eleme turlarının eleme turlarına ilerledi ve bayanlar masa tenisi Wang Yidi grup maçlarını durdurdu!
Sinir ağları için hataları otomatik olarak bulun, Google TensorFuzz'ı yayınladı
En düşük fiyat 80.000'den az, bunlar gerçekten yaşayacak aile arabaları!
19 yaşında Çin'i mağlup ettiği için mağlup oldu ve 31 yaşında takımı Dünya Kupası'na götüren bir kahramandı.
To Top