Microsoft yıllardır veri bilimi konusunda ar-ge faaliyetleri yürütüyor ve bu faaliyetler neticesinde ortaya çıkan çeşitli ürün, araç, teknik ve teknolojileri kullanıcılarına sunuyor.
Microsoft'un Makine Öğrenimi (ML) ve Yapay Zeka (AI) alanlarında hem yerel hem de bulut çözümleri mevcut. Özellikle bulut çözümleri oldukça yetenekli ve geniş kullanıcı/geliştirici kitlesine hitap edecek nitelikte.
Bu yazımızda Microsoft'un Cognitive Services olarak isimlendirdiği yapay zeka servislerine odaklanalım istiyorum.
Öncelikle bazı terimlerde hem fikir olalım isterim:
Yapay Zeka (AI - Artificial Intelligence) ile kastımız; bir insanın yapabildiği bazı işleri kendi başına yapabilen otomatize bir mekanizmadır. Bazen temel bazı matematiksel formüller ile bazen de Makine Öğrenimi (ML), Derin Öğrenme (DL) çalışmaları neticesinde bu mekanizmaları elde edebiliriz.
Makine Öğreniminde (ML - Machine Learning) ile kastımız; bir kısmı 1950'lerden beri kullanılan bazı algoritmalar ile veri yığınlarını işlemek ve yığınlar içerisinde bir desen, bir eğilim elde etmek, sonuç itibari ile bu desen ve eğilimleri matematiksel olarak ifade etme konusunda çalışmalar yürütmektir.
Derin Öğrenme (DL - Deep Leaarning) ile kastımız; ML çalışmalarının bir alt dalı diyebileceğimiz özellikle neural network algoritmalarına odaklandığımız, insan gibi anlayan ve üreten yapay zekalar elde etmeyi amaçladığımız özel bir çalışma alanıdır.
Microsoft'un Cognitive Services çatısı altında topladığı Azure hizmetleri, büyük veri kümeleri ve güçlü algoritmalar ile çalışılarak elde edilen, çoğu hazır bir kısmı ise özelleştirmeye açık olan ve günümüz ihtiyaçlarına nokta atışı cevaplar üreten önemli yapay zeka hizmetleridir.
Cognitive Services çatısı altında Speech, Language, Vision, Decision kategorilerine ayrılmış 15 hizmet ve bunların altında da bir çok alt yetenek yer almakta.
Bu hizmetleri Azure portal üzerinden tek tek aktif edip ayrı endpoint bilgileri ile kullanabildiğimiz gibi sadece Cognitive Services hizmetini aktif edip bir çok kritik hizmet için tek bir endpoint bilgisi ve yönetim noktası oluşturabiliriz.
Yapay Zeka hizmetlerinin her birine erişim için REST API mevcut. Ek olarak Python, C#, Java, NodeJS, JavaScript, Java, GO gibi diller için bazı SDK'lar da yayınlanmış durumda. Servisleri oluşturduktan sonra overview sayfalarındaki basit yönlendirmeleri takip ederek hızlıca kullanmaya başlayabilirsiniz.
Ayrıca bazı hizmetler için Container imageları indirebilir Azure veya yerel kaynaklarınızı daha fazla iş yükünü karşılayabilmek için kullanabilirsiniz. Docker, Azure Container Instance, Azure Kubernetes Service vs.
Hadi gelin Cognitive Services çatısı altında geçen hizmetlere bir göz atalım:
Speech
Bu kategorideki hizmetler konuşmaya odaklanıyor.
- Speech to Text: Konuşmayı metne çevirir.
- Text to Speech: Metinleri gerçeğe yakın bir şekilde konuşmaya dönüştürür.
- Speech Translation: 30'dan fazla dil için gerçek zamanlı çeviri yapar.
- Speaker Recognition: Sesten konuşmacıyı tanır veya doğrular.
- https://azure.microsoft.com/en-us/services/cognitive-services/speaker-recognition/#security
Bu kategorideki hizmetler dile özgü çalışmaları içerir. Duyguları, niyeti önemli nesneleri tanıma ve çeviriye odaklanır.
- Entity Recognition: Kişi, tarih, mekan, anahtar ifadeler ve duygu tespiti yapar. ML çalışma sürecine girmeye gerek kalmadan kolayca eğitilip özelleştirilebilir.
- Sentiment Analysis: Metindeki duyguyu (pozitif-negatif) anlamayı sağlar.
- Question Answering: Özellikle chat bot yaparken lazım olan önemli bir hizmet. Öncelikle soru-cevap veya benzer mantıkta başlık-açıklama biçiminde verilerle bir knowledgebase oluşturuyoruz. Hizmetin eğitimi tamamlandıktan sonra herhangi bir soru cümlesi girildiğinde bu metin knowledgebasedeki başlık veya sorulara benzetiliyor ve ilgili cevap yine knowledgebaseden veriliyor. Knowledgebasee alternatif sorular girerek daha anlayışlı bir hizmet ortaya çıkarabiliyoruz.
- Conversational Language Understanding: LUIS hizmetinin bir yeni neslidir. Bu hizmet de özellikle chat yapımında kullandığımız önemli bir yapay zeka hizmetidir. Kurulan cümlelerdeki anahtar nesneleri ve niyetleri ortaya çıkarır. Daha önce tanımladığımız niyetler ve nesneler için ne yapacağımız konusu artık bize kalır.
- https://azure.microsoft.com/en-us/services/cognitive-services/conversational-language-understanding/
- Translator: 100'den fazla dil arasında çeviri yapma imkanı verir. Dilerseniz belli bir konuda daha iyi çeviri için eğitebilirsiniz.
- Computer Vision: Resim ve video içeriklerini analiz ederek nesneleri, insanları ve metinleri tanır.
- Custom Vision: İlgilendiğiniz bir konudaki resimleri kullanarak eğitebileceğiniz bir hizmettir. Resimlerin sınıflandırılması veya resimdeki nesnelerin tanınmasını sağlar.
- Face API: İnsan yüzüne bakılarak ortaya çıkarılabilecek bilgilere odaklanır. Yüzde bulunan bileşenler hakkında bilgiler sunar. Duygu durumu, kişinin yaşı ve cinsiyeti gibi konularda çıkarımlarda bulunur. Ürettiği Id ile daha sonra o kişiyi tanıyabilirsiniz. Kişileri karşılaştırabilirsiniz.
- Anomaly Detector: Zaman bazlı üretilen verilerdeki anormallikleri tespit eder. Ani düşüş ve yükselişler, döngüler ve trendlere odaklanır. Özellikle sinyal verilerindeki anormallikleri tespit etmek için kullanılır.
- Content Moderator: Text, resim ve videolardaki istenmeyen içerikleri tespit eder. Böylece kullanıcılar tarafından üretilen içeriklerin genele gösterimi konusunda içiniz rahat olur.
- Personalizer: Her bir kullanıcıyı tanıyarak ilgilenebilecekleri içerikleri ön plana çıkarmaya odaklanır.
- request kütüphanesi ile post talebi oluşturacağız.
- post talebi oluştururken 'header'da key ve içerik tipini json olarak belirtiyoruz. Hizmet url'ini bir kaç farklı şekilde elde belirtebilirsiniz. Bunun için dokumantasyonu incelemek faydalı olacaktır. Amacımıza uygun çağrıyı üretebilmek için body kısmında ise aşağıdaki gibi bir json metin hazırlamamız gerekecek.
"{'documents': [{'id': 0, 'text': 'Merhaba Dünyalı?'}]}"
- Post isteğimizi gönderip dönen cevabı dict nesnesi olarak elde edelim.
Hiç yorum yok:
Yorum Gönder