“Her masaüstünde bir bilgisayar”dan “Her yazılımda ‘derin öğrenme’ye”

Son dönemde yapay zekâ alanında gördüğümüz konuşma tanıma, dil anlama, görüntü işleme gibi birçok buluşun arkasında ‘derin öğrenme’ bulunmakta. Derin öğrenme, Microsoft olarak sunduğumuz birçok uygulama ve hizmetimizde müşteri deneyimini değiştiriyor. Cortana, Bing, Office 365, SwiftKey, Skype Çeviri aracı, Dynamics 365, HoloLens bunlardan bazıları.

Skype’ın derin öğrenme tabanlı dil çevirisi işlevi kısa bir süre önce Popular Science dergisi tarafından yılın en önemli 7 yazılım yeniliği arasında gösterildi ve bu teknoloji sayesinde normal konuşmayı tanımada insanınkine eş bir düzeye ulaştık. Derin öğrenme şu anda Microsoft Bilişsel Araç Seti, Cortana Intelligence Suite, Microsoft Bilişsel Hizmetler, Azure Makine Öğrenmesi, Bot Altyapısı, Azure Bot Hizmeti gibi platformların geliştirilmesinde temel bir özellik hâline geldi. Bu teknolojinin uygulama alanları o kadar geniş kapsamlı ki, “Her yazılımda Derin Öğrenme”nin içinde bulunduğumuz on yılda gerçekleşeceğine inanıyorum.

Geliştiricilere yapay zekâ ve derin öğrenme yetkinliklerini kazandırmak, bu sayede daha akıllı ürünler yapmalarını, en zorlu bilişim görevlerini çözmelerini sağlamak için yoğun bir biçimde çalışıyoruz. Algoritmaları, altyapıları güçlü bir biçimde geliştirip, NVIDIA, OpenAI ve diğer iş ortaklarımızla yakın işbirliği içinde çalışarak ve GPU ile hızlandırılmış sistemlerden yararlanarak, Microsoft Azure’u en hızlı, en çok yönlü yapay zekâ platformu, gerçek anlamda akıllı bir buluta dönüştürüyoruz.

Herkes için üretime hazır Derin Öğrenme Araç Seti

Microsoft Bilişsel Araç Seti (önceden CNTK), derin sinir ağlarının öğrenilmesi ve değerlendirilmesi için bir açık kaynak, platformlar arası araç setimiz. Bilişsel Araç Seti, basit yapı taşlarını karmaşık hesaplama ağlarına yerleştirir, ilgili tüm ağ tipleri ile uygulamaları destekleyerek isteğe bağlı sinir ağlarını gösterir. Gelişmiş bir kesinlik ve verimlilikle çoklu GPU/çoklu sunucu ortamlarına ölçeklenir. Yapılan iç ve dış kıyaslamalara göre, Bilişsel Araç Seti birçok testte diğer derin öğrenme altyapılarını geride bırakmaya devam etmekte; son sürümü, beklendiği üzere, özellikle yüksek hacimli büyük veri grupları ve NVIDIA’nın Pascal GPU’ları üzerinde önceki sürümlerinden daha hızlı çalışmaktadır. Bu, tek GPU’lu performans için geçerlidir; ancak önemli olan Bilişsel Araç Seti’nin daha şimdiden çok büyük sayılarda GPU kullanımlarına ölçeklenebilmesidir. Son sürümünde Bilişsel Araç Seti’ni C++’ın yanı sıra Phyton’u da yerel olarak destekleyecek şekilde genişlettik. Ayrıca, Bilişsel Araç Seti şimdi geliştiricilerin modellerini eğitmek için destekleyici öğrenme kullanmalarına da olanak tanıyor. Üstelik Bilişsel Araç Seti hiçbir yönden buluta bağlı değil. Modelleri bulutta eğitebilir ve kurum içinde veya diğer barındırıcılarda çalıştırabilirsiniz. Amacımız, bu güçlü teknolojiden yararlanma yeteneğini herkese sağlamaktır.

Araç setini kısa sürede kullanır duruma gelmeniz için birçok öğreticiyi içeren Azure Defterleri yayınladık; ayrıca, çeşitli veri kümeleriyle (resim, sayısal, konuşma ve metin) çalışan senaryolar genelinde onlarca kod örneği, tarif ve öğreticiyi içeren bir DNN Model Galerisi oluşturduk.

Başkaları ne diyor?

Eylül 2016’da yayınlanan “Gelişmiş Derin Öğrenme Yazılım Araçları Karşılaştırması” adlı incelemede akademik araştırmacılar, Caffe, Bilişsel Araç Seti (CNTK), TensorFlow, Torch gibi güncel GPU ile hızlandırılmış derin öğrenme yazılım araçlarını karşılaştırarak incelediler. Bu araçların çalışma performanslarını iki CPU ve üç GPU platformu üzerinde üç popüler tipte sinir ağı kullanarak karşılaştırdılar. Bilişsel Araç Setimiz, neredeyse bütün iş yüklerinde diğer derin öğrenme araç setlerini geride bıraktı.

Bunun dışında, NVIDIA kısa bir süre önce tüm popüler Derin Öğrenme araç setlerini kendi güncel donanımlarıyla kıyaslayan bir çalışma yürüttü. Sonuçlar, Microsoft Bilişsel Araç Seti’nin, (bir CPU’dan GPU’lara, çoklu makinelere kadar) farklı ortamlarda verimli bir biçimde ölçekleyerek, aynı zamanda da kesinliği koruyarak, derin öğrenme algoritmalarını mevcut diğer araç setlerinden daha hızlı eğittiğini ve değerlendirdiğini göstermektedir. Tam olarak söylemek gerekirse, önceki sürümümüzden 1,7 kat hızlı ve Pascal GPU’lar üzerinde (SuperComputing’16 konferansında gösterildiği gibi) TensorFlow’dan 3 kat daha hızlıdır.

Derin öğrenme yazılım araçlarının son kullanıcıları uygun donanım platformları ve yazılım araçlarını seçerken bu kıyaslama sonuçlarını kılavuz olarak kullanabilirler. İkinci olarak, bu kapsamlı analiz, derin öğrenme yazılım aracı geliştiricilerini, gelecekte daha iyileştirilmiş performansa yönlendiren bir yöne işaret etmektedir.

Gerçek dünyada derin öğrenme iş yükleri

Microsoft olarak Derin Öğrenme ve Bilişsel Araç Seti’ni, dijital yardımcılardan Azure’un çekirdek altyapısına kadar birçok iç hizmetimizde kullanıyoruz.

  1. Yardımcılar (Cortana): Cortana, tüm cihazlarınızda kim olduğunuzu tanıyan, iş ve özel yaşam tercihlerinizi bilen bir dijital yardımcıdır. Cortana’nın şu anda 133 milyonu aşkın kullanıcısı var ve bugüne kadar 12 milyardan fazla soruyu doğru olarak yanıtladı. Cortana’da konuşma tanımadan görüntü işlemeye kadar tüm yetenekler Derin Öğrenme ve Bilişsel Araç Seti ile çalışır. Kısa bir süre önce konuşma tanımada yaptığımız önemli bir buluşla, bir konuşmada geçen sözcükleri tanıyan ve profesyonel çevriyazı uzmanları kadar veya daha az hata yapan bir teknoloji geliştirdik. Araştırmacıların yüzde 6,3’ten yüzde 5,9’a indiğini bildirdiği sözcük hata oranı (SHO), endüstri standardı Geçiş Panosu konuşma tanıma görevine kıyasla bugüne kadar ulaşılan en düşük hata oranıdır. Derin Öğrenme kullanarak insana eşdeğer bir düzeye ulaşmak gerçekten tarihsel bir başarı.

From A PC on every desktop

Ayrıca, görüntü tanıma yaklaşımımız da ImageNet ve Microsoft Common Objects in Context kıyaslamalarında birkaç kategoride birden ilk sırada yer aldı. Araçlarımız kullanılarak geliştirilen DNN’ler, sınıflandırma, yerelleştirme ve algılama olmak üzere yarıştığımız üç kategorinin hepsinde birinci geldi. Çok derin 152 katmanlı sinir ağlarını kesin bir doğrulukla eğitebildiğimiz ve yeni bir “artık öğrenme” ilkesinden yararlandığı için kullandığımız sistem sağlam bir arayla birinci geldi. Artık öğrenme, öğrenme yordamını yeniden formülleştirerek bilgi akışını derin sinir ağlarında yeniden yönlendirir. Bu, geleneksel olarak çok derin sinir ağları kurma çabalarına direnç gösteren kesinlik sorununun çözülmesine yardım etti.

  1. Uygulamalar: Uygulamalarımız, Office 365, Outlook, PowerPoint, Word ve Dynamics 365 olsun, yeni müşteri deneyimleri sağlamak için derin öğrenme kullanabiliyor. Microsoft Müşteri Destek ve Hizmetleri tarafından kullanılan bot, derin öğrenme uygulamasına mükemmel bir örnek. Derin Sinir Ağları ve Bilişsel Araç Seti kullanarak müşterinin sorduğu soruları doğru olarak anlayıp, bu sorunlara karşı en iyi çözümü önerebilmektedir. Bot, birçok müşteri sorununda hızlı bir self-servis deneyimi sağlayarak, teknik personelimizin daha zor, çözümü daha güç müşteri konularına odaklanmasına yardımcı olur.

Derin Öğrenme kullanan uygulamaya bir diğer örnek, müşterimiz eSmart tarafından enerji hatlarının muayenesi için geliştirilen Connected Drone uygulamasıdır (Connected Drone uygulamasını çalışırken görmek için lütfen bu videoyu izleyin). eSmart Systems, Connected Drone’u insansız hava araçları ile bulut zekâsının bir araya gelmesinin enerji endüstrisine yüksek verimlilik kazandıracağı inancından yola çıkarak geliştirmeye başladı. Connected Drone’un amacı, bugün elektrik şebekesi altyapısında yer ekipleri ve helikopterlerle yürütülen pahalı, riskli ve son derece zaman alıcı muayene ve izleme yöntemlerin yerine enerji hatları altyapısının muayene ve izlenmesini destekleyip otomatikleştirmektir. Bu amaçla, derin öğrenme kullanarak insansız hava araçlarından gönderilen görüntülü veri bildirimlerini analiz ediyorlar. Kullandıkları analiz yazılımı, enerji hattındaki direklerde bulunan yalıtıcılar gibi bireysel nesneleri tanıyor ve yeni bilgiyi doğrudan bileşen kaydına bağlıyor. Denetleyiciler bu sayede potansiyel sorunları kısa sürede fark edebiliyorlar. eSmart, Connected Drone’dan gelen verilerin analizinde, çok katmanlı Faster R-CNN’den Single Shot Multibox Detektörlere kadar çeşitli derin öğrenme teknolojileri kullanmaktadır.

  1. Bulut Hizmetleri (Cortana Intelligence Suite): Azure üzerinde, Bilişsel Hizmetler (Görme, Konuşma, Dil, Bilgi, Arama vb.), Bot Altyapısı, Azure Makine Öğrenmesi, Azure Data Lake, Azure SQL Veri Ambarı ve Power BI’yı da içeren Cortana Intelligence Suite adlı bir Makine Öğrenmesi ve Gelişmiş Analiz paketi sunuyoruz. Akıllı uygulamaların kurulumu için bu hizmetleri Bilişsel Araç Seti ya da tercih ettiğiniz herhangi bir derin öğrenme altyapısıyla birlikte kullanabilirsiniz. Örneğin Azure’da bir HDInsight Apache Sparkkümesi üzerinde önceden eğitilmiş bir DNN makine öğrenmesi modelini kullanarak puanlamayı geniş çapta paralelleştirebilirsiniz. Çok sayıda resim üzerinde önceden eğitilmiş DNN’lerin puanlandığı senaryoların giderek arttığını görüyoruz; bunlardan biri de müşterimiz, bir buzdolabının içindeki nesneleri görsel olarak tanıyan DNN’ler kullanan Liebherr. Geliştiriciler bu tür işleme mimarilerini yalnızca birkaç adımda uygulayabilir (nasıl yapılacağını burada görebilirsiniz).

Tipik bir büyük ölçekli puanlama senaryosu çok yüksek I/O iş üretimini ve/veya yüksek depolama kapasitesini gerektirir; Azure Data Lake Store (ADLS) bunlar için yüksek performans ve ölçeklenir analitik depolama sağlamaktadır. Ayrıca, ADSL okuma sırasında veri şeması kullanır, bu da kullanıcıyı verilere ihtiyaç oluncaya kadar şemaları düşünmekten kurtarır. Kullanıcı açısından ADSL, sağlanan HDFS bağlayıcı üzerinden herhangi bir HDFS depolama hesabı gibi çalışır. Eğitim, bir Azure N Serisi NC24 GPU etkin Sanal Makine üzerinde veya DNN’lerimizin genel bulutta dört NVIDIA Tesla K80 GPU kullanılarak çıplak GPU donanım hızlandırıcıyla eğitilmesine olanak tanıyan Azure Batch Shipyard‘dan tarifeler kullanılarak yürütülebilir. Puanlama için, HDInsight Spark Kümesi veya Microsoft R Server’da (MRS) rxExec işleviyle iş yükünü, çalışan düğümleri genelinde dağıtarak büyük resim koleksiyonlarını geniş ölçüde paralelleştirmek için Azure Data Lake Analytics kullanılabilir. Puanlama iş yükü tek bir MRS örneğinden düzenlenir ve her çalışan bağımsız ve paralel olarak ADLS’de veri okuyup yazabilir.

Premier veri tabanı motorumuz SQL Server da derinleşiyor. Şu anda bu bir ilk olarak SQL Server’a yerleşik R ve ML ile mümkün. Derin öğrenme modellerinin SQL Server’ın içine gönderilmesiyle müşterilerimiz şimdi performans, paralellik, güvenlik, güvenilirlik, uyumluluk sertifikaları ve yönetilebilirliğe bir arada sahip oluyor. Bu, veri bilimci ve geliştiriciler için büyük bir kazanç; ML modellerinin işletimsel kurulumu için yönetim katmanını ayrıca geliştirmenize gerek yok. Ayrıca, tıpkı veri tabanlarında verilerin birden fazla uygulama genelinde paylaşılabildiği gibi, şimdi derin öğrenme modellerini de paylaşabilirsiniz.  Modeller ve zekâ, SQL Server 2016 tarafından yönetilen veriler gibi “bir tür veri” hâline geldi. Şimdi geliştiriciler bu yetenekleri kullanarak, veri tabanlarındaki güncel hareket işleme gelişmelerini derin öğrenme ile bir araya getiren yeni bir uygulama cinsi geliştirebilirler.

  1. Altyapı (Azure): Derin öğrenme, derin öğrenme eğitiminin yoğun hesaplamalı yapısını destekleyebilecek yeni bir cins yüksek performanslı altyapı gerektirir. Azure şimdi bu senaryoların, bugün genel bulutta tek ve çift duyarlıklı iş yükleri için sınıfının en iyisi olan NVIDIA’nın Tesla K80 GPU’ları ile çalışan N Serisi Sanal makinelerle uygulanmasını mümkün kılıyor. Bu GPU’lar, Discreet Device Assignment adlı, neredeyse çıplak performans sağlayabileceğimiz bir doğrudan donanım geçiş mekanizması üzerinden gösteriliyor. Ayrıca, bu iş yüklerinin verileri arttıkça, veri bilimcilerinin de eğitimi yalnız tek bir sunucudaki birden fazla GPU genelinde değil, farklı düğümler genelindeki birkaç GPU’ya dağıtmaları gerekiyor. Onlarca veya yüzlerce GPU’ya dağıtılmış öğrenme gereğini karşılayabilmek için, Azure, Mellanox’un 2 mikrosaniyenin altında bir gecikme süresiyle sanal makineler arasında yüksek bant genişliği iletişimine olanak tanıyan InfiniBand yapısını kullanarak N Serisi için üst uç ağ altyapısına yatırım yaptı. Bu ağ yeteneği Microsoft’un Bilişsel Araç Seti (CNTK) gibi kitaplıkların, düğümler arası iletişim ve daha fazla sayıda katman ve daha yüksek performansla verimli eğitim yürütmek için MPI kullanmalarına olanak tanımaktadır.

Ayrıca NVIDIA ile birlikte, Azure için ilk yinelemesi güncel N Serisi olan, sınıfının en iyisi bir yol haritası üzerinde çalışıyoruz. Bu Sanal Makineler şu anda önizleme aşamasında; kısa bir süre önce de Genel Kullanılabilirliğe 1 Aralık’tan itibaren sunulacağı duyuruldu.

Azure’da derin öğrenme kullanmaya başlamak çok kolay. Azure Marketplace’de bulunabilen Data Science Virtual Machine (DSVM), Linux ve Windows için çeşitli derin öğrenme altyapısı ve araçları yüklenmiş olarak gelir. Birçok işi paralel olarak kolayca yürütmek veya birden fazla sunucu genelinde dağıtılmış bir işi başlatmak için, en çok kullanılan altyapılara yönelik Azure Batch “Shipyard” şablonları bulunmaktadır. Shipyard, GPU ve InfiniBand sürücülerinin yapılandırılması görevini üstlenir ve yazılım ortamınızın kurulumu için Docker kapsayıcılar kullanır.

Son olarak, mühendis ve araştırmacılardan oluşan ekibimiz, Bing ve Azure’u hızlandırmak için Sahada Programlanabilen Kapı Dizileri (FPGA) adı verilen programlanabilir bilgisayar çipini kullanan bir sistem yarattı. FPGA çiplerin kullanılmasıyla şimdi derin öğrenme algoritmalarını daha verimsiz olma potansiyeli taşıyan yazılımların aracılığı olmadan doğrudan donanıma yazabiliriz. Üstelik, bir FPGA, Yapay Zekâ/Derin Öğrenmedeki yeni gelişmelere karşılık verecek ya da veri merkezindeki beklenmedik bir gereksinimi karşılayacak şekilde son anda yeniden programlanabilir. Geleneksel olarak mühendisler, farklı özelliklerdeki donanımın geliştirilip kurulması için iki yıl veya daha uzun sürelerin geçmesini beklerler. Çok büyük bir hedefle düşleyip, başarıyla sonuçlandırdığımız bu projeyi şu anda müşterilerimize sunuyoruz.

Yapay zekânın geleceğini birlikte biçimlendirelim

Derin öğrenmede inovasyon odağımız, tüm altyapı yığını, geliştirme araçları, PaaS hizmetleri ve son kullanıcı uygulamalarını kapsamaktadır. Ürünlerimizin sağladığı avantajlardan birkaçı:

  • Daha fazla çok yönlülük: Bilişsel Araç Seti, müşterilerin NVIDIA DGX-1 veya NVIDIA GPU tabanlı sistemlerle tek bir altyapı kullanarak modellerini kurum içinde eğitmelerini, sonra da bu modelleri Azure üzerinde bulutta çalıştırmalarını mümkün kılar. Bu ölçeklenir, karma yöntem, kurumların akıllı özellikleri kısa sürede prototip hâline getirip, kurulum yapmalarını sağlar.
  • Daha hızlı performans: CPU üzerinde çalıştırmaya kıyaslandığında, GPU ile hızlandırılmış Bilişsel Araç Seti, derin öğrenme eğitimini ve çıkarımlarını, Azure N Serisi sunucularda ve kurum içinde kullanılabilen NVIDIA GPU’ları üzerinde çok daha hızlı yürütür. Örneğin, Pascal ve NVLink bağlantı teknolojisiyle, NVIDIA DGX-1, Bilişsel Araç Seti ile çalışan CPU sunuculardan 170 kat hızlıdır.
  • Daha geniş kullanılabilirlik: NVIDIA GPU’lar tarafından çalıştırılan Azure N Serisi sanal makineler şu anda Azure müşterilerine önizleme olarak sunulmaktadır; Aralık ayında genel kullanıma açılacaktır. Azure GPU’lar hem eğitim hem model değerlendirmesinin hızlandırılması için kullanılabilmektedir. Binlerce müşterinin önizlemeye katılımıyla şu anda farklı ölçeklerde çok sayıda işletme iş yüklerini Azure N Serisi sanal makinelerde Tesla GPU’lar üzerinde çalıştırmakta.
  • Tüm veri yığınıyla yerel entegrasyon: Zekânın, verilerin yaşadığı yerin yakınına yönlendirilmesi gerektiğine kesinlikle inanıyoruz. Bundan daha birkaç yıl önce derin öğrenmeyi bir veri tabanı motorunda ya da büyük veri motorunda çalıştırmak bilim kurgu gibi gelebilirdi; şimdi gerçek oldu. Derin öğrenme modellerini, resim, video, konuşma ve metin gibi çok sayıda hacimli veri üzerinde ve toplu olarak çalıştırabilirsiniz. Azure Data Lake, HDInsight ve SQL Server size böylesine bir yeteneği sağlamaktadır. Şimdi derin öğrenme sonuçlarını elinizdeki herhangi bir tip veriyle de birleştirebilir, son derece güçlü analiz ve bilgi sorguları yürütebilirsiniz (biz buna şu anda ‘büyük bilişsellik’ diyoruz). Yapılan, bilişsel bilgileri teker teker çıkarıp almak değil, sanki her şeyi bilen büyülü bilişsel uygulamalar yaratabilmek için, çıkarılan tüm bilişsel verileri diğer tipteki verilerle birleştirip tümleştirmektir.