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] |
Ş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