Sunday 4 June 2017

MİCROSOFT’un Yüksek Performanslı , Açık Kaynaklı Deep Learning Aracı : Cognitive Toolkit

Microsoft Cognitive Toolkit 2.0 yakın zamanda genel erişime açıldı. Bu araç kullanıcılara kendi  neural networklerini kurmalarını ,eğitim veya test yapmalarını hatta  bu networkleri birden fazla makine üzerinde çalıştırılmasına imkan sağlayan bir çalışmadır. Ayrıca DL (Deep Learning)  çalışmalarında bir disiplin olarak kabul edilen “distributed computing” yani işlenecek verinin GPUlar üzerine verimli şekilde ölçeklenerek dağıtılması işlemini de desteklemesi en önemli özelliklerindendir.


Önceden CNTK olarak bilinen bu aracın 2.0 veriyonu; 2016 Ekim’de Beta sürümü olarak çıktı ve 3 Nisan 2017’de genel kullanıma sunuldu.  Bu süreçte çeşitli upgrade işlemlerinden  bazıları şunlardır:

·        Araç içerisine doğrudan Keras kütüphanesi kullanılabilmesi
·        Modellerin değerlendirmeleri için  Java binding[4] ve  Spark[5] desteği
·         Eğitilen modellerin hızlı değerlendirilmesi için model sıkıştırma işleminin yapılması
..

Bu gibi upgradelerden sonra literatürdeki en hızlı çalışan DL framework’ü olmuştur. Yakın zamanda tek bir GPU üzerinde yapılan testler Şekil 1’de gösterilmiştir.

Şekil 1. Tek GPU ile Analizler[5]

Çoklu GPU üzerinde de oldukça başarılı sonuçlar alınmaktadır. Mesela; NVIDIA’dan son sürüm VOLTA GPU kullanarak elde edilen test sonuçları Şekil 2’deki gibidir.

Şekil 2. Çoklu GPU analizleri

Microsoft Cognitive Toolkit’in genel kullanıma açılması sebebiyle 3 yeni özellikten bahsetmek yerinde olacaktır:

1.      KERAS desteği:  Keras API  kullanıcıların AI uygulamaları geliştirmeleri için tasarlandı ve kullanıcı deneyimleriyle optimize edildi.  Keras “cognitive load” dediğimiz bilişsel yükü azaltmak için en iyi pratikleri  uygular: tutarlı ve basit API’ler sunar, ortak kullaımlar için gerekli kullanıcı hareketlerini en aza indirir ve  Kullanıcı hataları üzerine net ve uygulanabilir geri bildirim sağlar. Keras; daha önce ML(Machine Learning) tecrübesi olmayan binlerce insana DL uygulaması gerçekleştirmesine imkan sağlamıştır. Keras kullanıcıları şimdi  var olan modellerine herhangi bir değişiklik yapmadan MS Cognitive Toolkit kullanarak faydalanabilmektedir. MS geliştirici ekibi Keras desteğini geliştirmeye devam ettiğinde şu anda “public preview” aşamasındadır.

2.      JAVA BINDINGs ve SPARK desteği :   İster Python olsun ister Brainscript kullanılarak  model  eğitiminden sonra, MS Cognitive Toolkit çok sayıda değerlendirme için yöntem sağlamaktadır. Şimdi GA(Generally Avaliable) modülünün çıkmasıyla; kullanıcılar yeni Java API’de modellerini değerlendirebiliyorlar. Bu yaklaşım ile kullanıcılar JAVA uygulamaları içine DL modellerini rahatlıkla entegre edebilmektedir.

3.       Model Compression (Model Sıkıştırma):  Eğitimli bir modelin mobil ürünlerdeki alt uç CPU'larda değerlendirilmesi, gerçek zamanlı performans elde etmeyi zorlaştırabilir.  Bu yaklaşım özellikle, bir fotoğraf makinesinden gelen gerçek zamanlı videoda görüntü öğrenimi için eğitilmiş modelleri değerlendirmeye çalışırken doğrudur. MS Cognitive Toolkit GA ile, tam hassas muadillerine kıyasla birkaç kat daha hızlı olan birkaç FP(Floating Point) operasyonunun nicelenmiş uygulamalarına izin veren uzantıları ekleyebiliyoruz.  Bu hız artışı, server ve düşük güçlü gömülü cihazlar üzerinde , değerlendirme doğruluğunun az bir kayıpla ve hızlı şekilde modellerin değerlendirilmesi için oldukça yeterlidir.


Bu yazıda genel olarak MS Cognitive Toolkit hakkında bilgi verilmiştir.
 MS geliştiricileri en büyük rakibi olan Tensorflow yerine bu aracın seçilmesinin gerekçelerini detaylı şekilde belirtmiştir[6]. O yüzden bu yazıda bahsedilmeyecektir.

Bence denemeye değer….

İyi çalışmalar..

Adana Bilim ve Teknoloji Üniversitesi
Müh. Ve Doğa Bilimleri Fakültesi
Bilgisayar Müh.
Ar. Gör. YASİR KILIÇ



KAYNAKLAR
[6] https://github.com/Microsoft/CNTK/wiki/Reasons-to-Switch-from-TensorFlow-to-CNTK

1 comment:

  1. Hotels near Belterra Casino, St. Louis, MO - MapYRO
    Find 동두천 출장마사지 hotels near Belterra Casino, St. Louis, 남양주 출장안마 MO, 태백 출장안마 near 창원 출장안마 Missouri. and places to stay near 안산 출장마사지 Belterra Casino, St. Louis.

    ReplyDelete