SlideShare a Scribd company logo
1 of 87
MLaaS
Presenting & Scaling Machine Learning Models as Microservices
Cihan Özhan | DeepLab.co | Developer/Hacker, AI Engineer, Data Master
DeepLab : Teknolojiler
ML/DL/CV Odaklı
• Teknolojiler
– Go, Python, C/C++, Rust, C#
– PyTorch, TensorFlow, Keras, scikit-learn
• Web, Mobile, IoT/Edge ve Back-End olarak…
– OpenCV
– … ve farklı onlarca araç-gereç…
• Cloud Computing
– AWS Machine Learning
– Google Cloud Machine Learning
– IBM Watson Machine Learning
– Microsoft Azure Machine Learning
– … ve farklı birçok Cloud çözüm…
• Distributed Systems
– Distributed Databases
– Distributed Deep Learning
Klişe No : 85496477
Neural Networks
Neuron & Neural Network
Convolutional Neural Networks
Yapay Zeka
Kavramlar [Bilimsel Temeller]
• Bilgisayar Bilimleri ve Müh. : Donanım ve Yazılım
• Felsefe : Muhakeme Kuralları
• Matematik : Mantık, Algoritma ve Optimizasyon
• Kavram Bilimi ve Psikoloji : İnsan Düşünce Sürecinin Modellenmesi
• Sinir Bilimi : İnsanın Aşağı Seviyede Beyin Faaliyet M.
• Biyoloji : Taklit Bilimi
• Dilbilim : Temel Bilgisayar Bilimi
Yapay Zeka
Alt Kavramlar
• Artificial Intelligence AI
• Machine Learning ML
• Deep Learning DL
• Data Science
– Machine Learning[+Deep Learning] + Domain
• Computer Vision CV
• Natural Language Processing NLP
• Data Engineering
– DevOps + Machine Learning[+Deep Learning]
Yapay Zeka
Kavramlar [Kapsam]
• İnsan Modeli Üzerinden Yapay Zeka
– Beyin(Algı ve Öğrenme) : Machine Learning / Deep Learning
– Görü : Computer Vision
– Hafıza : BigData
– İletişim : NLP & Speech Recognition
– Fiziksel Beden : IoT & Robotics
‘Machine Learning girişimlerinin %85’i hayata geçemiyor.’
Neden?
MLaaS?
Machine Learning as a Service
ML/DL algoritma ve yazılımlarının, bulut bilişim hizmetlerinin bir
bileşeni olarak sunulması modeline denir.
MLaaS = (SaaS + [ML/DL/CV])
Ne Zaman MLaaS Kullanmalı?
• Yazılım BigData ile çalışıyorsa
• Yazılımın sürekli iyileştiriliyorsa
• Yazılım yeterince güvenli ise…
• Gerçek-Zamanlı anlamlandırma varsa
• Anlık karar alma süreçleri
• Yüksek boyutlu veriler üzerinde çalışılıyorsa
• Yazılım küçük ise
• Kaynaklar sınırlı ise
• Finans
• Donanım
• İnternet Hızı
• Ekip
• Basit özelliklere sahip bir yazılım ise
MLaaS için uygun şartlar MLaaS için uygun olmayabilir
MLaaS
Üretmek Vs. Tüketmek
Tüketim : Bir Cloud MLaaS hizmetinin kullanıcısı olmak.
Üretim : Bir MLaaS hizmetinin üreticisi olmak.
MLaaS
MLaaS Cloud Service Providers (Örnekler)
• AWS Machine Learning : aws.amazon.com/tr/machine-learning
• Speech &Text Processing APIs
– Amazon Lex
– Amazon Transcribe
– Amazon Polly
– Amazon Comprehend
– Amazon Translate
• Google Cloud ML Services : cloud.google.com/ai-platform
– Cloud Vision API : https://cloud.google.com/video-intelligence/
• Cloud Vision Intelligence
• AutoML Vision API
• AutoML Video Intelligene Classification API
– Speech & Text Processing APIs
• Dialogflow
• Cloud Natural Language APIs
• Cloud Speech API
• Cloud Translation API
• AutoML Natural Language API
• AutoML Translation API
MLaaS
MLaaS Cloud Service Providers (Örnekler)
• Microsoft Azure ML Studio : studio.azureml.net
• Cognitive Services
– Speech
– Language
• Image & Video Processing
• IBM Watson ML : ibm.com/cloud/machine-learning
• Speech to Text
• Text to Speech
• Language Translator
• Natural Language Classifier
• Natural Language Understanding
• Personality Insights
• Tone Analyzer
‘Biz MLaaS platformu geliştirmek için hem üretim hem de tüketim
başlıklarındaki yetenekleri kullanacağız.’
Hidden Technical Debt in Machine Learning Systems
https://papers.nips.cc/paper/2015/file/86df7dcfd896fcaf2674f757a2463eba-Paper.pdf
Genellikle tüm ekip, odak
ve kaynakların yönlendirildiği alan!
‘Machine Learning girişimlerinin %85’i hayata geçemiyor.’
%15’lik dilim içerisinde nasıl olabiliriz?
Başarı İçin Neler Gerekli?
Süper Özet!
• Her şeyden önce yetenekli ve tecrübeli bir geliştirici ekibe sahip olmak!
• ML/DL/CV geliştirme ortamına, süreçlerine hakim ve tecrübe sahibi olmak.
• Donanımsal gereksinimleri doğru anlamak ve karşılamak.
– Ekibe donanım(GPU vb.) konusunda destek olacak birinin olması harika olurdu!
• MLaaS mimarisini çok iyi anlamak.
• Paralel Programlama ve Distributed Systems konularına hakim olmak.
– Hem programlama hem de altyapı çözümlerini içerir.
• BigData, Data Engineering, MLOps araç-gereçlerine(çok geniş) hakim olmak.
– Bu seviyede artık model geliştirme ile değil, o modeli battle-tested hale getirmeye odaklıyız!
• Realtime Systems konularına hakim ve tecrübe sahibi olmak
– Genellikle modern uygulamalarda kullandığımız tekniğe Near-Realtime denir.
– Realtime Vs Near-Realtime
MLaaS
MLaaS Ürünleşme Sürecine Genel Bakış
MLaaS
MLaaS Ürünleşme Sürecine Genel Bakış
• Donanım
– CPU
• Sadece alıştırma/araştırma kodları için kullanılabilir.
• Bazen de metinsel ML projelerinin ürün ortamında tercih edilebilir.
• Ses, Görüntü ve Video işleyecek projelerin ürün ortamında tavsiye edilmez.
– GPU
• Ürün ortamı için mecburi! Geliştirme ortamı için de tavsiye edilir.
• Ürün ortamı için: özellikle Ses, Görüntü ve Video veri projelerinde…
– HDD
• Yüksek depolama alanı ve hızlı disk okuma-yazma kapasitesi…
• Yazılım
– Büyük ihtimalle projeniz planladığınız sürede bitmeyecek…
• Cloud Computing
– Depolama hizmetleri, metinsel, görüntü ve ses gibi verilerin depolanması ve işlenmesi.
– Cloud tabanlı hazır yapay zeka servislerinin kullanılması.
• Zaman!
– Doğru algoritma seçimi, model geliştirme, model eğitme… Tecrübeli bile olsanız deneme/yanılma
yapacaksınız.
MLaaS
MLaaS Ürünleşme Sürecine Genel Bakış
• Python
– HPC in Python : Python’ı yüksek performanslı kullanmak için gereken birçok ileri seviye konu!
– Python’ın paralel programlama yeteneklerini kullanmak.
– Python ile geliştirilmiş birçok yüksek performanslı distributed computing altyapısını kullanmak
• C++
– Çekirdek ML/DL/CV algoritmalarını library/framework’ler ile model geliştirmek için kullanmak!
– TensorFlow ve PyTorch gibi library/platform’lar C++ ile geliştiriliyor ve siz de C++ yazabilirsiniz.
• Çok daha performanslı modeller oluşturulabilir.
• Go
– MLaaS’in microservice mimarisini Go ile yüksek performanslı hale getirmek…
• Rust
– MLaaS’in back-end/sistem tarafındaki işlemlerini daha performanslı hale getirmek…
– Rust’ı sistem seviyeli hesaplama ya da I/O işlemlerinde tercih edebilirsiniz
• JavaScript
– Bazı projelerde hesaplama işlemini client’e yaptırabiliriz. Örnek: TensorFlow.js
MLaaS
MLaaS Ürünleşme Sürecine Genel Bakış
PyTorch pytorch.org
TensorFlow tensorflow.org
Keras keras.io
scikit-learn scikit-learn.org
OpenCV opencv.org
*Ürün ortamında genellikle bunları kullanırız
MLaaS
Donanımsal Altyapı
MLaaS
Donanımsal Altyapı
• NVIDIA CUDA GPUs
– developer.nvidia.com/cuda-gpus
– CUDA Toolkit
• developer.nvidia.com/cuda-downloads
• PyTorch : 9.2
• TensorFlow : 10.1
– cuDNN SDK (>= 7.6) (Deep Neural Network library)
• developer.nvidia.com/cudnn
– CUPTI (CUDA Profiling Tools Interface)
• docs.nvidia.com/cuda/cupti/
• Özel ML/DL Bilgisayarı(Örnek) : lambdalabs.com
– Bu örnek bir ML geliştiricisi için gereken bilgisayar özelliklerini anlatmak amacıyla verilmiştir.
– Bu tür bilgisayar konfigürasyonlarını inceleyerek kendiniz de toplayabilirsiniz.
– Ancak ürün ortamında yayın hizmeti verecek bir sunucuyu hazırlamanın çook daha fazla
detayı bulunmaktadır.
– Not : Aynı donanımlara sahip sunucuları kendiniz toplayarak %20 kar edebilirsiniz!
MLaaS
Donanım [Development Machine]
Bu versiyondan önceki CUDA destekli GPU’lar da işe yaramaz.
MLaaS
Donanım [Production Server]
LambdaLabs ile hiçbir ticari bağım olmamakla birlikte, yapılandırmalar hakkında kopya çekmeniz için paylaşıyorum.
Aynı özelliklerdeki
donanımları
toplayarak %20-25’lik
oranda maliyeti
azaltabilirsiniz.
ya da…
MLaaS
Donanım [Development Machine]
‘Kendin pişir kendin ye’ ile daha ucuza geliyor.
MLaaS
Donanım [Development Machine]
Büyük indirimden de yararlanabilirsiniz!
MonsterNotebook ile de ticari bir bağlantım yok.
En önemli kısım sadece şu!
MLaaS
Donanım [Performance/Benchmark/Ranking]
• Donanım seçimi önemli. Benchmark’lar detaylı incelenmeli…
– http://ai-benchmark.com/ranking_deeplearning.html
– http://ai-benchmark.com/ranking.html
– http://ai-benchmark.com/tests.html
– https://developer.nvidia.com/deep-learning-performance-training-inference
• … ve diğer şeyler için birkaç örnek:
– https://mlbench.github.io/
– https://dawn.cs.stanford.edu/benchmark/
– https://mlperf.org/
• https://mlperf.org/inference-overview
Paper : Benchmarking Contemporary Deep Learning Hardware and Frameworks: A Survey of Qualitative Metrics
https://hal.archives-ouvertes.fr/hal-02501736/document
MLaaS
Donanım [Development Machine]
Önemli olan kısım!
MLaaS
Donanım [Development Machine]
Compute Capability
MLaaS
Machine Learning Geliştirici Rehberi
Geliştirici Rehberi
Machine Learning
• Kişisel Bilgisayarlar
– Python, Anaconda, VSCode, PyCharm vb…
• Bulut Bilgisayar Çözümleri (Ücretsiz)
– Microsoft Azure Notebook (CPU Destekli)
• notebooks.azure.com/
– Google Colab (GPU Destekli)
• colab.research.google.com/
• Bulut Bilgisayar Çözümleri (Ücretli)
– Amazon Machine Learning
• aws.amazon.com/machine-learning
– Google Cloud
• cloud.google.com/ml-engine/
– MS Azure ML Studio
• studio.azureml.net/
– IBM Watson
• ibm.com/tr-tr/cloud/machine-learning
Başlangıç için en ideal çözüm
Model Lifecycle
Machine Learning Model Development Lifecycle
Model Lifecycle
Machine Learning Model Development Lifecycle
Biz buradan başlıyoruz!
ML model hazırlık süreci
Angarya ama mecburi görev:
Veriyi hazırlamak!
Modeli hazırlamışız!
Modeli veri ile eğitiyoruz.
Cloud ya da On-Premise
Eğitilmiş modeli test verisi ile test ettik!
Eğitilen model programsal
ortam için paketlenir.
Yayın sonrası:
Model sürekli izlenir.
Machine Learning projesi
Nasıl Yayınlanır?
MartinFowler.com
MartinFowler.com
Machine Learning projesi
Nasıl Yayınlanır?
• TensorFlow Serving
– https://www.tensorflow.org/serving
– https://github.com/tensorflow/serving
– Architecture
• https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/architecture.md
– Docker
• https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/docker.md
– Kubernetes
• https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/serving_kubernetes.md
– REST API
• https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/api_rest.md
– gRPC
• https://github.com/tensorflow/serving/tree/master/tensorflow_serving/apis
• PyTorch Serve
– https://github.com/pytorch/serve
– https://github.com/pytorch/serve/blob/master/docs/README.md
– https://pytorch.org/blog/model-serving-in-pyorch/
– https://pytorch.org/serve/
Machine Learning Model Deployment
TensorFlow Serving
Machine Learning Model Deployment
TensorFlow Serving
Machine Learning Model Deployment
TensorFlow Serving
Machine Learning Model Deployment
PyTorch Serve
MLaaS
Model Serving Yaklaşımı Belirlemek
MLaaS
Model Serving Yaklaşımı Belirlemek
• Embedded Model
– Yaygın ve en kolay yol. Model uygulamanın doğrudan içine gömülür.
– Bu yaklaşımın avantajı ML geliştiricinin modeli kendi aşina olduğu dil ile eğitmesini kolaylaştırır.
• Model Deployed as a Separate Service
– Model uygulamadan bağımsız bir servis halinde sunulur.
– Örnek: Web Service, Microservice, GraphQL vb…
• Model Published as Data
– Model uygulamadan bağımsız sunulur. Farkı, uygulama modeli veri olarak alır. Genellikle
streaming/real-time mimarilerde kullanılan veri akış ve işleme mimarisine uygundur.
– Software Release Pattern : Canary Release ya da Blue Green Deployment
Tool : Pickle File, MLeap, PMML, PFA, ONNX,
Tool : H20 (export model as a POJO in a JAR Java Library)
MLaaS
Model Deployment Yaklaşımı Belirlemek
MLaaS
Model Deployment Yaklaşımı Belirlemek
• Multiple Model
– Bir görevi gerçekleştirmek için birden fazla modelin kullanılması yöntemidir.
– Tek bir API çağrısı ile arka planda birden fazla modelin işletilmesini sağlar.
• Shadow Model
– Ürün ortamı için uygun desenlerden biridir.
– Yeni modeli mevcut ile birlikte dağıtabilir ve ürün ortamındaki modele gönderilen ürün trafiğini shadow
model’a da göndererek performansı takip edilebilir.
• Competing Model
– Çok modelli senaryolarda hangi modelin daha performanslı olduğunu bulmak için kullanılır.
– Trafiği doğru modele yönlendirmek için routing ve altyapının çalışma mantığı değiştiği için biraz karmaşıktır.
– Bu tür işlemlerde doğru karar alabilmek için yeterince veri toplanmış olmalıdır.
– Diğer yöntem : Multi-Armed Bandits (Refer : Seldon Core, Azure Personalizer)
• Online Learning Model
– Önceki modeller offline olarak eğitilir, online olarak sunulur idi. Bu yöntemle ise model kendi
performansını yeni veriler ile sürekli artırır. Ancak, bazı zorlukları mevut…
– Aynı verilerle beslenmeyen ve statik olarak versiyonlanmış bir model aynı sonuçları veremez.
– Bu nedenle model hem eğitim hem de ürün(production) ortamındaki verilerle beslenmelidir.
– Online Methods in Machine Learning : Teori ve Uygulama
MLaaS
Örnek İnceleme : Shadow Mode
https://alexgude.com/blog/machine-learning-deployment-shadow-mode/
Yöntem 1 Yöntem 2
MLaaS
Machine Learning Model Exchange
ONNX : The Open Neural Network EXchange
MLaaS
Model Exchange : ONNX
ONNX : https://github.com/onnx/onnx
ONNX Runtime : https://github.com/microsoft/onnxruntime
MLaaS
Model Exchange : ONNX
ONNX : https://github.com/onnx/onnx
ONNX Runtime : https://github.com/microsoft/onnxruntime
MLaaS
Bir MLaaS hizmeti hem Batch API hem de Realtime API desteği sunmalıdır.
MLaaS
Ne zaman Realtime API Kullanmalı?
• Tahminler talep üzerine sunuluyorsa…
• Tahminlerin, bir request anında yapılması gerekiyorsa. (Near-Realtime)
• Tahminlerin doğrudan istemciye sunulması gerektiğinde.
MLaaS
Realtime API ile Yapılabilecekler(Yaptıklarımız)
• Request-Based Autoscaling
• Downtime olmadan model güncellemeleri
• Log Streaming
• Server-Side Batching
• Multi-Model Serving
• Traffic Splitting
• Realtime Metrics
MLaaS
Ne zaman Batch API Kullanmalı?
• Büyük bir veriseti ve çoklu worker’lar ile dağıtık çalışması gereken süreçler.
• İş sürecinin ve durumunun izlenmesi gereken süreçler.
• Karmaşık ve birbirine zincirlenmiş şekilde çalışan/çalışması gereken süreçler.
• İstek sayısı az ama her isteğin dakikalar/saatler sürdüğü süreçler.
MLaaS
Batch API ile Yapılabilecekler(Yaptıklarımız)
• Klasik RESTful servis gereksinimlerinde.
• Log alma/toplama ve streaming vb…
MLaaS
Server-Side Batching?
• Birden fazla gerçek zamanlı request’i tek bir toplu çıkarımda toplama işlemidir.
• Bu yöntem gecikme oluşturur ancak performansı artırır.
• Hangi request önce gelirse, maksimum sayıda istek alındığında veya ilk isteği aldıktan
belirli bir süre sonra süreç tetiklenir.
• Belirlenen eşiğe ulaşıldığında, alınan talepler üzerinde anlamladırma/tahmin yapılır ve
tahmin sonuçları istemciye ayrı ayrı gönderilir.
• Tüm bu süreçler istemciler için izlenebilir/gözlenebilirdir.
MLaaS
Modeli API/Web App. olarak yayına vermek yeterli mi?
MLaaS
Request Başına Düşen Kaynak!
• Her request türünün tüketeceği sistem kaynağı çok farklı olacak.
– Request-Based Autoscaling
• Metinsel veri üzerinde çalışan ML servisi 0.3s’de cevap üretebilir. Fakat aynı response
time’ı bir resim ya da video üzerinde almak isterseniz çok daha fazla donanımsal
kaynak gerekir.
– Request başına CPU, GPU, RAM ve Donanımı kullandıracak kaynak yönetimi gerekiyor.
• Her ML request’i GPU gerektirmeyebilir. CPU’da kullanmalı…
– Biz genellikle düşük hesaplama gerektiren request’leri GPU’ya değil CPU’ya yönlendiririz.
• Ayrıca dakikada birkaç request için bu süreler yakalanabilir. Fakat saatte 2000 görsel
veri request’i alıyorsanız işiniz çok daha zor olacaktır.
– Distributed Task Queue
• Request başına düşen disk veri kullanımı ve okuma-yazma oranları her request tipine
göre yönetilmelidir.
MLaaS
Distributed Task Queue : Celery
‘Celery is an asynchronous task queue based on distributed message passing’
MLaaS
Distributed Task Queue : Celery
MLaaS
Distributed Task Queue : Celery
MLaaS
Model Monitoring & Observability
Elasticsearch : An open source search engine.
FluentD : An open source data collector for unified logging layer.
Kibana : An open source webUI that makes it easy to explore and visualize the data indexed by Elasticsearch.
MLaaS
Model Monitoring & Observability
MartinFowler.com : Continuous Delivery for Machine Learning end-to-end process
MLaaS
Versioning [Data & Model & Metrics]
Versioning
DVC.org
- Büyük dosyaları almak ve kaynak kontrol havuzunun dışındaki harici bir depolama alanında depolamak için birden çok arka uç eklentisine sahiptir.
- Tüm bu dosyaların sürümlerini takip edebilir ve veriler değiştiğinde modelleri yeniden eğitebiliriz.
- Git ile entegre çalışabilir.
Versioning
DVC.org
Versioning
Data Versioning
The 3 steps to automate it with DVC (https://dvc.org)
MLaaS
Machine Learning in Cloud Computing
Machine Learning & Docker
Machine Learning on Kubernetes
https://www.kubeflow.org/
Machine Learning on Kubernetes
MLaaS
Machine Learning & Streaming(Kafka)
MLaaS
Machine Learning & Streaming(Kafka)
MLaaS
Machine Learning & Streaming(Kafka)
MLaaS
Machine Learning & Streaming(Kafka)
MLaaS
Distributed Machine Learning
Distributed Machine Learning
Distributed
Machine/Deep Learning
• Python Standard Library
– multiprocessing : https://docs.python.org/3/library/multiprocessing.html
• Ray : Universal API for building distributed applications
– https://ray.io/
– https://github.com/ray-project/ray
– Ray Serve
• https://docs.ray.io/en/master/serve/index.html
– Ray Tune
• https://docs.ray.io/en/master/tune.html
• Dask : Parallel computing with task scheduling
– https://dask.org/
– https://github.com/dask/dask
• Horovod
– Distributed training framework for TensorFlow, Keras, PyTorch, and Apache MXNet.
– https://horovod.ai/
– https://github.com/horovod/horovod
– https://eng.uber.com/horovod/
Distributed Machine Learning
Ray
Ray Tasks
Ray Serve
Distributed Machine Learning
Horovod
• Framework Bağımsız
– PyTorch, TensorFlow, Keras, Apache MXNet
• Yüksek Performans Özellikleri
– NCCL, GPUDirect, RDMA, Tensor Fusion
• Kolay Kullanım
– 5 satır Python kodu!
• Açık Kaynak
– Linux Foundation AI Foundation
• Kolay Kurulum
– pip install horovod
Distributed Machine Learning
Horovod
Distributed Machine Learning
Horovod
Distributed Machine Learning
Horovod
Cihan Özhan
Bağlantılar
• cihanozhan.com
• deeplab.co
• linkedin.com/in/cihanozhan
• medium.com/@cihanozhan
• youtube.com/cihanozhan
• twitter.com/UnmannedCode
• github.com/cihanozhan
E-Mail
• cihan@deeplab.co

More Related Content

What's hot

Understanding cloud with Google Cloud Platform
Understanding cloud with Google Cloud PlatformUnderstanding cloud with Google Cloud Platform
Understanding cloud with Google Cloud PlatformDr. Ketan Parmar
 
Apache Spark and the Hadoop Ecosystem on AWS
Apache Spark and the Hadoop Ecosystem on AWSApache Spark and the Hadoop Ecosystem on AWS
Apache Spark and the Hadoop Ecosystem on AWSAmazon Web Services
 
Introduction to Google Cloud Platform
Introduction to Google Cloud PlatformIntroduction to Google Cloud Platform
Introduction to Google Cloud PlatformSujai Prakasam
 
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021Amazon Web Services Korea
 
MLOps and Data Quality: Deploying Reliable ML Models in Production
MLOps and Data Quality: Deploying Reliable ML Models in ProductionMLOps and Data Quality: Deploying Reliable ML Models in Production
MLOps and Data Quality: Deploying Reliable ML Models in ProductionProvectus
 
Containers and workload security an overview
Containers and workload security an overview Containers and workload security an overview
Containers and workload security an overview Krishna-Kumar
 
Getting Started with AWS Lambda and Serverless
Getting Started with AWS Lambda and ServerlessGetting Started with AWS Lambda and Serverless
Getting Started with AWS Lambda and ServerlessAmazon Web Services
 
Azure App Service
Azure App ServiceAzure App Service
Azure App ServiceBizTalk360
 
The Ideal Approach to Application Modernization; Which Way to the Cloud?
The Ideal Approach to Application Modernization; Which Way to the Cloud?The Ideal Approach to Application Modernization; Which Way to the Cloud?
The Ideal Approach to Application Modernization; Which Way to the Cloud?Codit
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native ApplicationEmiliano Pecis
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices Bozhidar Bozhanov
 
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018Amazon Web Services Korea
 
BigQuery ML - Machine learning at scale using SQL
BigQuery ML - Machine learning at scale using SQLBigQuery ML - Machine learning at scale using SQL
BigQuery ML - Machine learning at scale using SQLMárton Kodok
 
Where to Begin? Application Portfolio Migration
Where to Begin? Application Portfolio MigrationWhere to Begin? Application Portfolio Migration
Where to Begin? Application Portfolio MigrationAmazon Web Services
 
Data platform modernization with Databricks.pptx
Data platform modernization with Databricks.pptxData platform modernization with Databricks.pptx
Data platform modernization with Databricks.pptxCalvinSim10
 
Microsoft Azure Cloud Services
Microsoft Azure Cloud ServicesMicrosoft Azure Cloud Services
Microsoft Azure Cloud ServicesDavid J Rosenthal
 

What's hot (20)

Understanding cloud with Google Cloud Platform
Understanding cloud with Google Cloud PlatformUnderstanding cloud with Google Cloud Platform
Understanding cloud with Google Cloud Platform
 
Apache Spark and the Hadoop Ecosystem on AWS
Apache Spark and the Hadoop Ecosystem on AWSApache Spark and the Hadoop Ecosystem on AWS
Apache Spark and the Hadoop Ecosystem on AWS
 
Azure Synapse Analytics
Azure Synapse AnalyticsAzure Synapse Analytics
Azure Synapse Analytics
 
Introduction to Google Cloud Platform
Introduction to Google Cloud PlatformIntroduction to Google Cloud Platform
Introduction to Google Cloud Platform
 
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
 
MLOps and Data Quality: Deploying Reliable ML Models in Production
MLOps and Data Quality: Deploying Reliable ML Models in ProductionMLOps and Data Quality: Deploying Reliable ML Models in Production
MLOps and Data Quality: Deploying Reliable ML Models in Production
 
Containers and workload security an overview
Containers and workload security an overview Containers and workload security an overview
Containers and workload security an overview
 
Getting Started with AWS Lambda and Serverless
Getting Started with AWS Lambda and ServerlessGetting Started with AWS Lambda and Serverless
Getting Started with AWS Lambda and Serverless
 
Azure App Service
Azure App ServiceAzure App Service
Azure App Service
 
App Modernization
App ModernizationApp Modernization
App Modernization
 
The Ideal Approach to Application Modernization; Which Way to the Cloud?
The Ideal Approach to Application Modernization; Which Way to the Cloud?The Ideal Approach to Application Modernization; Which Way to the Cloud?
The Ideal Approach to Application Modernization; Which Way to the Cloud?
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices
 
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
 
BigQuery ML - Machine learning at scale using SQL
BigQuery ML - Machine learning at scale using SQLBigQuery ML - Machine learning at scale using SQL
BigQuery ML - Machine learning at scale using SQL
 
Where to Begin? Application Portfolio Migration
Where to Begin? Application Portfolio MigrationWhere to Begin? Application Portfolio Migration
Where to Begin? Application Portfolio Migration
 
AWS Service Catalog
AWS Service CatalogAWS Service Catalog
AWS Service Catalog
 
Data platform modernization with Databricks.pptx
Data platform modernization with Databricks.pptxData platform modernization with Databricks.pptx
Data platform modernization with Databricks.pptx
 
Microsoft Azure Cloud Services
Microsoft Azure Cloud ServicesMicrosoft Azure Cloud Services
Microsoft Azure Cloud Services
 
Boot camp - Migration to AWS
Boot camp - Migration to AWSBoot camp - Migration to AWS
Boot camp - Migration to AWS
 

Similar to MLaaS - Presenting & Scaling Machine Learning Models as Microservices

Cloud computing and technologies
Cloud computing and technologiesCloud computing and technologies
Cloud computing and technologiesBilal Dursun
 
Eticaret akademi Yazılım ve IT süreçleri
Eticaret akademi Yazılım ve IT süreçleriEticaret akademi Yazılım ve IT süreçleri
Eticaret akademi Yazılım ve IT süreçleriMurat Kader
 
Introduction to Amazon Web Services
Introduction to Amazon Web ServicesIntroduction to Amazon Web Services
Introduction to Amazon Web ServicesAnkaraCloud
 
Azure Sanal Makineler
Azure Sanal MakinelerAzure Sanal Makineler
Azure Sanal MakinelerMustafa
 
Azure Cloud Engineer - Bölüm 1
Azure Cloud Engineer - Bölüm 1Azure Cloud Engineer - Bölüm 1
Azure Cloud Engineer - Bölüm 1Önder Değer
 
Microsoft Azure ITPro - Microsoft Azure'a Giriş- Bölüm 1
Microsoft Azure ITPro - Microsoft Azure'a Giriş- Bölüm 1Microsoft Azure ITPro - Microsoft Azure'a Giriş- Bölüm 1
Microsoft Azure ITPro - Microsoft Azure'a Giriş- Bölüm 1Önder Değer
 
Bulut Bilişim (Overview)
Bulut Bilişim (Overview)Bulut Bilişim (Overview)
Bulut Bilişim (Overview)Burak Okumuş
 
Berkeley Data Analytics Stack Genel Bakış
Berkeley Data Analytics Stack Genel Bakış Berkeley Data Analytics Stack Genel Bakış
Berkeley Data Analytics Stack Genel Bakış Veysel Taşcıoğlu
 
Berkeley Data Analytics Stack Genel Bakış
Berkeley Data Analytics Stack Genel BakışBerkeley Data Analytics Stack Genel Bakış
Berkeley Data Analytics Stack Genel Bakıştechbase
 
Xsteel odev-sitesi
Xsteel odev-sitesiXsteel odev-sitesi
Xsteel odev-sitesisersld85
 
Azure Cloud Engineer - Bölüm 3
Azure Cloud Engineer - Bölüm 3Azure Cloud Engineer - Bölüm 3
Azure Cloud Engineer - Bölüm 3Önder Değer
 
Docker - Ankara Cloud Meetup
Docker - Ankara Cloud Meetup Docker - Ankara Cloud Meetup
Docker - Ankara Cloud Meetup Mustafa AKIN
 
OPENSHIFT KONTEYNER PLATFORM İLE GELİŞTİRMEYE HIZLI BAŞLANGIÇ - Webinar-Aug2017
OPENSHIFT KONTEYNER PLATFORM İLE GELİŞTİRMEYE HIZLI BAŞLANGIÇ - Webinar-Aug2017OPENSHIFT KONTEYNER PLATFORM İLE GELİŞTİRMEYE HIZLI BAŞLANGIÇ - Webinar-Aug2017
OPENSHIFT KONTEYNER PLATFORM İLE GELİŞTİRMEYE HIZLI BAŞLANGIÇ - Webinar-Aug2017Serhat Dirik
 
Xsteel dokumani
Xsteel dokumaniXsteel dokumani
Xsteel dokumanisersld85
 
Bulutistan 2017 - Türkiyenin Bulut Entegratörü
Bulutistan 2017 - Türkiyenin Bulut EntegratörüBulutistan 2017 - Türkiyenin Bulut Entegratörü
Bulutistan 2017 - Türkiyenin Bulut EntegratörüBulutistan
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19Cihan Özhan
 

Similar to MLaaS - Presenting & Scaling Machine Learning Models as Microservices (20)

Cloud computing and technologies
Cloud computing and technologiesCloud computing and technologies
Cloud computing and technologies
 
Microsoft Azure Temelleri - Modul 2
Microsoft Azure Temelleri - Modul 2Microsoft Azure Temelleri - Modul 2
Microsoft Azure Temelleri - Modul 2
 
Cloud_Computer
Cloud_ComputerCloud_Computer
Cloud_Computer
 
Eticaret akademi Yazılım ve IT süreçleri
Eticaret akademi Yazılım ve IT süreçleriEticaret akademi Yazılım ve IT süreçleri
Eticaret akademi Yazılım ve IT süreçleri
 
12factor apps
12factor apps12factor apps
12factor apps
 
Introduction to Amazon Web Services
Introduction to Amazon Web ServicesIntroduction to Amazon Web Services
Introduction to Amazon Web Services
 
Azure Sanal Makineler
Azure Sanal MakinelerAzure Sanal Makineler
Azure Sanal Makineler
 
Azure Cloud Engineer - Bölüm 1
Azure Cloud Engineer - Bölüm 1Azure Cloud Engineer - Bölüm 1
Azure Cloud Engineer - Bölüm 1
 
Microsoft Azure ITPro - Microsoft Azure'a Giriş- Bölüm 1
Microsoft Azure ITPro - Microsoft Azure'a Giriş- Bölüm 1Microsoft Azure ITPro - Microsoft Azure'a Giriş- Bölüm 1
Microsoft Azure ITPro - Microsoft Azure'a Giriş- Bölüm 1
 
Bulut Bilişim (Overview)
Bulut Bilişim (Overview)Bulut Bilişim (Overview)
Bulut Bilişim (Overview)
 
Berkeley Data Analytics Stack Genel Bakış
Berkeley Data Analytics Stack Genel Bakış Berkeley Data Analytics Stack Genel Bakış
Berkeley Data Analytics Stack Genel Bakış
 
Berkeley Data Analytics Stack Genel Bakış
Berkeley Data Analytics Stack Genel BakışBerkeley Data Analytics Stack Genel Bakış
Berkeley Data Analytics Stack Genel Bakış
 
Xsteel odev-sitesi
Xsteel odev-sitesiXsteel odev-sitesi
Xsteel odev-sitesi
 
Azure Cloud Engineer - Bölüm 3
Azure Cloud Engineer - Bölüm 3Azure Cloud Engineer - Bölüm 3
Azure Cloud Engineer - Bölüm 3
 
Docker - Ankara Cloud Meetup
Docker - Ankara Cloud Meetup Docker - Ankara Cloud Meetup
Docker - Ankara Cloud Meetup
 
OPENSHIFT KONTEYNER PLATFORM İLE GELİŞTİRMEYE HIZLI BAŞLANGIÇ - Webinar-Aug2017
OPENSHIFT KONTEYNER PLATFORM İLE GELİŞTİRMEYE HIZLI BAŞLANGIÇ - Webinar-Aug2017OPENSHIFT KONTEYNER PLATFORM İLE GELİŞTİRMEYE HIZLI BAŞLANGIÇ - Webinar-Aug2017
OPENSHIFT KONTEYNER PLATFORM İLE GELİŞTİRMEYE HIZLI BAŞLANGIÇ - Webinar-Aug2017
 
Capulus Product Overview
Capulus Product OverviewCapulus Product Overview
Capulus Product Overview
 
Xsteel dokumani
Xsteel dokumaniXsteel dokumani
Xsteel dokumani
 
Bulutistan 2017 - Türkiyenin Bulut Entegratörü
Bulutistan 2017 - Türkiyenin Bulut EntegratörüBulutistan 2017 - Türkiyenin Bulut Entegratörü
Bulutistan 2017 - Türkiyenin Bulut Entegratörü
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19
 

More from Cihan Özhan

AI and Machine Learning - Today’s Implementation Realities
AI and Machine Learning - Today’s Implementation RealitiesAI and Machine Learning - Today’s Implementation Realities
AI and Machine Learning - Today’s Implementation RealitiesCihan Özhan
 
Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Cihan Özhan
 
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve YapılarGo Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve YapılarCihan Özhan
 
Golang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili TemelleriGolang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili TemelleriCihan Özhan
 
Golang Book - Genel Bakış
Golang Book - Genel BakışGolang Book - Genel Bakış
Golang Book - Genel BakışCihan Özhan
 
Golang Book - Giriş
Golang Book - GirişGolang Book - Giriş
Golang Book - GirişCihan Özhan
 
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...Cihan Özhan
 
Python Programlama Dili
Python Programlama DiliPython Programlama Dili
Python Programlama DiliCihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 17İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 17Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 12
İleri Seviye T-SQL Programlama - Chapter 12İleri Seviye T-SQL Programlama - Chapter 12
İleri Seviye T-SQL Programlama - Chapter 12Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 10
İleri Seviye T-SQL Programlama - Chapter 10İleri Seviye T-SQL Programlama - Chapter 10
İleri Seviye T-SQL Programlama - Chapter 10Cihan Özhan
 

More from Cihan Özhan (20)

MongoDB Overview
MongoDB OverviewMongoDB Overview
MongoDB Overview
 
AI and Machine Learning - Today’s Implementation Realities
AI and Machine Learning - Today’s Implementation RealitiesAI and Machine Learning - Today’s Implementation Realities
AI and Machine Learning - Today’s Implementation Realities
 
Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)
 
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve YapılarGo Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
 
Golang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili TemelleriGolang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili Temelleri
 
Golang Book - Genel Bakış
Golang Book - Genel BakışGolang Book - Genel Bakış
Golang Book - Genel Bakış
 
Golang Book - Giriş
Golang Book - GirişGolang Book - Giriş
Golang Book - Giriş
 
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
 
Python Programlama Dili
Python Programlama DiliPython Programlama Dili
Python Programlama Dili
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21
 
İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20
 
İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18
 
İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 17İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 17
 
İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16
 
İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15
 
İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14
 
İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13
 
İleri Seviye T-SQL Programlama - Chapter 12
İleri Seviye T-SQL Programlama - Chapter 12İleri Seviye T-SQL Programlama - Chapter 12
İleri Seviye T-SQL Programlama - Chapter 12
 
İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11
 
İleri Seviye T-SQL Programlama - Chapter 10
İleri Seviye T-SQL Programlama - Chapter 10İleri Seviye T-SQL Programlama - Chapter 10
İleri Seviye T-SQL Programlama - Chapter 10
 

MLaaS - Presenting & Scaling Machine Learning Models as Microservices

  • 1. MLaaS Presenting & Scaling Machine Learning Models as Microservices Cihan Özhan | DeepLab.co | Developer/Hacker, AI Engineer, Data Master
  • 2.
  • 3. DeepLab : Teknolojiler ML/DL/CV Odaklı • Teknolojiler – Go, Python, C/C++, Rust, C# – PyTorch, TensorFlow, Keras, scikit-learn • Web, Mobile, IoT/Edge ve Back-End olarak… – OpenCV – … ve farklı onlarca araç-gereç… • Cloud Computing – AWS Machine Learning – Google Cloud Machine Learning – IBM Watson Machine Learning – Microsoft Azure Machine Learning – … ve farklı birçok Cloud çözüm… • Distributed Systems – Distributed Databases – Distributed Deep Learning
  • 4. Klişe No : 85496477
  • 6. Neuron & Neural Network
  • 8. Yapay Zeka Kavramlar [Bilimsel Temeller] • Bilgisayar Bilimleri ve Müh. : Donanım ve Yazılım • Felsefe : Muhakeme Kuralları • Matematik : Mantık, Algoritma ve Optimizasyon • Kavram Bilimi ve Psikoloji : İnsan Düşünce Sürecinin Modellenmesi • Sinir Bilimi : İnsanın Aşağı Seviyede Beyin Faaliyet M. • Biyoloji : Taklit Bilimi • Dilbilim : Temel Bilgisayar Bilimi
  • 9. Yapay Zeka Alt Kavramlar • Artificial Intelligence AI • Machine Learning ML • Deep Learning DL • Data Science – Machine Learning[+Deep Learning] + Domain • Computer Vision CV • Natural Language Processing NLP • Data Engineering – DevOps + Machine Learning[+Deep Learning]
  • 10. Yapay Zeka Kavramlar [Kapsam] • İnsan Modeli Üzerinden Yapay Zeka – Beyin(Algı ve Öğrenme) : Machine Learning / Deep Learning – Görü : Computer Vision – Hafıza : BigData – İletişim : NLP & Speech Recognition – Fiziksel Beden : IoT & Robotics
  • 11. ‘Machine Learning girişimlerinin %85’i hayata geçemiyor.’ Neden?
  • 12. MLaaS? Machine Learning as a Service ML/DL algoritma ve yazılımlarının, bulut bilişim hizmetlerinin bir bileşeni olarak sunulması modeline denir. MLaaS = (SaaS + [ML/DL/CV])
  • 13. Ne Zaman MLaaS Kullanmalı? • Yazılım BigData ile çalışıyorsa • Yazılımın sürekli iyileştiriliyorsa • Yazılım yeterince güvenli ise… • Gerçek-Zamanlı anlamlandırma varsa • Anlık karar alma süreçleri • Yüksek boyutlu veriler üzerinde çalışılıyorsa • Yazılım küçük ise • Kaynaklar sınırlı ise • Finans • Donanım • İnternet Hızı • Ekip • Basit özelliklere sahip bir yazılım ise MLaaS için uygun şartlar MLaaS için uygun olmayabilir
  • 14. MLaaS Üretmek Vs. Tüketmek Tüketim : Bir Cloud MLaaS hizmetinin kullanıcısı olmak. Üretim : Bir MLaaS hizmetinin üreticisi olmak.
  • 15. MLaaS MLaaS Cloud Service Providers (Örnekler) • AWS Machine Learning : aws.amazon.com/tr/machine-learning • Speech &Text Processing APIs – Amazon Lex – Amazon Transcribe – Amazon Polly – Amazon Comprehend – Amazon Translate • Google Cloud ML Services : cloud.google.com/ai-platform – Cloud Vision API : https://cloud.google.com/video-intelligence/ • Cloud Vision Intelligence • AutoML Vision API • AutoML Video Intelligene Classification API – Speech & Text Processing APIs • Dialogflow • Cloud Natural Language APIs • Cloud Speech API • Cloud Translation API • AutoML Natural Language API • AutoML Translation API
  • 16. MLaaS MLaaS Cloud Service Providers (Örnekler) • Microsoft Azure ML Studio : studio.azureml.net • Cognitive Services – Speech – Language • Image & Video Processing • IBM Watson ML : ibm.com/cloud/machine-learning • Speech to Text • Text to Speech • Language Translator • Natural Language Classifier • Natural Language Understanding • Personality Insights • Tone Analyzer
  • 17. ‘Biz MLaaS platformu geliştirmek için hem üretim hem de tüketim başlıklarındaki yetenekleri kullanacağız.’
  • 18. Hidden Technical Debt in Machine Learning Systems https://papers.nips.cc/paper/2015/file/86df7dcfd896fcaf2674f757a2463eba-Paper.pdf Genellikle tüm ekip, odak ve kaynakların yönlendirildiği alan!
  • 19. ‘Machine Learning girişimlerinin %85’i hayata geçemiyor.’ %15’lik dilim içerisinde nasıl olabiliriz?
  • 20. Başarı İçin Neler Gerekli? Süper Özet! • Her şeyden önce yetenekli ve tecrübeli bir geliştirici ekibe sahip olmak! • ML/DL/CV geliştirme ortamına, süreçlerine hakim ve tecrübe sahibi olmak. • Donanımsal gereksinimleri doğru anlamak ve karşılamak. – Ekibe donanım(GPU vb.) konusunda destek olacak birinin olması harika olurdu! • MLaaS mimarisini çok iyi anlamak. • Paralel Programlama ve Distributed Systems konularına hakim olmak. – Hem programlama hem de altyapı çözümlerini içerir. • BigData, Data Engineering, MLOps araç-gereçlerine(çok geniş) hakim olmak. – Bu seviyede artık model geliştirme ile değil, o modeli battle-tested hale getirmeye odaklıyız! • Realtime Systems konularına hakim ve tecrübe sahibi olmak – Genellikle modern uygulamalarda kullandığımız tekniğe Near-Realtime denir. – Realtime Vs Near-Realtime
  • 22. MLaaS MLaaS Ürünleşme Sürecine Genel Bakış • Donanım – CPU • Sadece alıştırma/araştırma kodları için kullanılabilir. • Bazen de metinsel ML projelerinin ürün ortamında tercih edilebilir. • Ses, Görüntü ve Video işleyecek projelerin ürün ortamında tavsiye edilmez. – GPU • Ürün ortamı için mecburi! Geliştirme ortamı için de tavsiye edilir. • Ürün ortamı için: özellikle Ses, Görüntü ve Video veri projelerinde… – HDD • Yüksek depolama alanı ve hızlı disk okuma-yazma kapasitesi… • Yazılım – Büyük ihtimalle projeniz planladığınız sürede bitmeyecek… • Cloud Computing – Depolama hizmetleri, metinsel, görüntü ve ses gibi verilerin depolanması ve işlenmesi. – Cloud tabanlı hazır yapay zeka servislerinin kullanılması. • Zaman! – Doğru algoritma seçimi, model geliştirme, model eğitme… Tecrübeli bile olsanız deneme/yanılma yapacaksınız.
  • 23. MLaaS MLaaS Ürünleşme Sürecine Genel Bakış • Python – HPC in Python : Python’ı yüksek performanslı kullanmak için gereken birçok ileri seviye konu! – Python’ın paralel programlama yeteneklerini kullanmak. – Python ile geliştirilmiş birçok yüksek performanslı distributed computing altyapısını kullanmak • C++ – Çekirdek ML/DL/CV algoritmalarını library/framework’ler ile model geliştirmek için kullanmak! – TensorFlow ve PyTorch gibi library/platform’lar C++ ile geliştiriliyor ve siz de C++ yazabilirsiniz. • Çok daha performanslı modeller oluşturulabilir. • Go – MLaaS’in microservice mimarisini Go ile yüksek performanslı hale getirmek… • Rust – MLaaS’in back-end/sistem tarafındaki işlemlerini daha performanslı hale getirmek… – Rust’ı sistem seviyeli hesaplama ya da I/O işlemlerinde tercih edebilirsiniz • JavaScript – Bazı projelerde hesaplama işlemini client’e yaptırabiliriz. Örnek: TensorFlow.js
  • 24. MLaaS MLaaS Ürünleşme Sürecine Genel Bakış PyTorch pytorch.org TensorFlow tensorflow.org Keras keras.io scikit-learn scikit-learn.org OpenCV opencv.org *Ürün ortamında genellikle bunları kullanırız
  • 26. MLaaS Donanımsal Altyapı • NVIDIA CUDA GPUs – developer.nvidia.com/cuda-gpus – CUDA Toolkit • developer.nvidia.com/cuda-downloads • PyTorch : 9.2 • TensorFlow : 10.1 – cuDNN SDK (>= 7.6) (Deep Neural Network library) • developer.nvidia.com/cudnn – CUPTI (CUDA Profiling Tools Interface) • docs.nvidia.com/cuda/cupti/ • Özel ML/DL Bilgisayarı(Örnek) : lambdalabs.com – Bu örnek bir ML geliştiricisi için gereken bilgisayar özelliklerini anlatmak amacıyla verilmiştir. – Bu tür bilgisayar konfigürasyonlarını inceleyerek kendiniz de toplayabilirsiniz. – Ancak ürün ortamında yayın hizmeti verecek bir sunucuyu hazırlamanın çook daha fazla detayı bulunmaktadır. – Not : Aynı donanımlara sahip sunucuları kendiniz toplayarak %20 kar edebilirsiniz!
  • 27. MLaaS Donanım [Development Machine] Bu versiyondan önceki CUDA destekli GPU’lar da işe yaramaz.
  • 28. MLaaS Donanım [Production Server] LambdaLabs ile hiçbir ticari bağım olmamakla birlikte, yapılandırmalar hakkında kopya çekmeniz için paylaşıyorum. Aynı özelliklerdeki donanımları toplayarak %20-25’lik oranda maliyeti azaltabilirsiniz. ya da…
  • 29. MLaaS Donanım [Development Machine] ‘Kendin pişir kendin ye’ ile daha ucuza geliyor.
  • 30. MLaaS Donanım [Development Machine] Büyük indirimden de yararlanabilirsiniz! MonsterNotebook ile de ticari bir bağlantım yok. En önemli kısım sadece şu!
  • 31. MLaaS Donanım [Performance/Benchmark/Ranking] • Donanım seçimi önemli. Benchmark’lar detaylı incelenmeli… – http://ai-benchmark.com/ranking_deeplearning.html – http://ai-benchmark.com/ranking.html – http://ai-benchmark.com/tests.html – https://developer.nvidia.com/deep-learning-performance-training-inference • … ve diğer şeyler için birkaç örnek: – https://mlbench.github.io/ – https://dawn.cs.stanford.edu/benchmark/ – https://mlperf.org/ • https://mlperf.org/inference-overview Paper : Benchmarking Contemporary Deep Learning Hardware and Frameworks: A Survey of Qualitative Metrics https://hal.archives-ouvertes.fr/hal-02501736/document
  • 35. Geliştirici Rehberi Machine Learning • Kişisel Bilgisayarlar – Python, Anaconda, VSCode, PyCharm vb… • Bulut Bilgisayar Çözümleri (Ücretsiz) – Microsoft Azure Notebook (CPU Destekli) • notebooks.azure.com/ – Google Colab (GPU Destekli) • colab.research.google.com/ • Bulut Bilgisayar Çözümleri (Ücretli) – Amazon Machine Learning • aws.amazon.com/machine-learning – Google Cloud • cloud.google.com/ml-engine/ – MS Azure ML Studio • studio.azureml.net/ – IBM Watson • ibm.com/tr-tr/cloud/machine-learning Başlangıç için en ideal çözüm
  • 36. Model Lifecycle Machine Learning Model Development Lifecycle
  • 37. Model Lifecycle Machine Learning Model Development Lifecycle Biz buradan başlıyoruz! ML model hazırlık süreci Angarya ama mecburi görev: Veriyi hazırlamak! Modeli hazırlamışız! Modeli veri ile eğitiyoruz. Cloud ya da On-Premise Eğitilmiş modeli test verisi ile test ettik! Eğitilen model programsal ortam için paketlenir. Yayın sonrası: Model sürekli izlenir.
  • 41. Machine Learning projesi Nasıl Yayınlanır? • TensorFlow Serving – https://www.tensorflow.org/serving – https://github.com/tensorflow/serving – Architecture • https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/architecture.md – Docker • https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/docker.md – Kubernetes • https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/serving_kubernetes.md – REST API • https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/api_rest.md – gRPC • https://github.com/tensorflow/serving/tree/master/tensorflow_serving/apis • PyTorch Serve – https://github.com/pytorch/serve – https://github.com/pytorch/serve/blob/master/docs/README.md – https://pytorch.org/blog/model-serving-in-pyorch/ – https://pytorch.org/serve/
  • 42. Machine Learning Model Deployment TensorFlow Serving
  • 43. Machine Learning Model Deployment TensorFlow Serving
  • 44. Machine Learning Model Deployment TensorFlow Serving
  • 45. Machine Learning Model Deployment PyTorch Serve
  • 47. MLaaS Model Serving Yaklaşımı Belirlemek • Embedded Model – Yaygın ve en kolay yol. Model uygulamanın doğrudan içine gömülür. – Bu yaklaşımın avantajı ML geliştiricinin modeli kendi aşina olduğu dil ile eğitmesini kolaylaştırır. • Model Deployed as a Separate Service – Model uygulamadan bağımsız bir servis halinde sunulur. – Örnek: Web Service, Microservice, GraphQL vb… • Model Published as Data – Model uygulamadan bağımsız sunulur. Farkı, uygulama modeli veri olarak alır. Genellikle streaming/real-time mimarilerde kullanılan veri akış ve işleme mimarisine uygundur. – Software Release Pattern : Canary Release ya da Blue Green Deployment Tool : Pickle File, MLeap, PMML, PFA, ONNX, Tool : H20 (export model as a POJO in a JAR Java Library)
  • 49. MLaaS Model Deployment Yaklaşımı Belirlemek • Multiple Model – Bir görevi gerçekleştirmek için birden fazla modelin kullanılması yöntemidir. – Tek bir API çağrısı ile arka planda birden fazla modelin işletilmesini sağlar. • Shadow Model – Ürün ortamı için uygun desenlerden biridir. – Yeni modeli mevcut ile birlikte dağıtabilir ve ürün ortamındaki modele gönderilen ürün trafiğini shadow model’a da göndererek performansı takip edilebilir. • Competing Model – Çok modelli senaryolarda hangi modelin daha performanslı olduğunu bulmak için kullanılır. – Trafiği doğru modele yönlendirmek için routing ve altyapının çalışma mantığı değiştiği için biraz karmaşıktır. – Bu tür işlemlerde doğru karar alabilmek için yeterince veri toplanmış olmalıdır. – Diğer yöntem : Multi-Armed Bandits (Refer : Seldon Core, Azure Personalizer) • Online Learning Model – Önceki modeller offline olarak eğitilir, online olarak sunulur idi. Bu yöntemle ise model kendi performansını yeni veriler ile sürekli artırır. Ancak, bazı zorlukları mevut… – Aynı verilerle beslenmeyen ve statik olarak versiyonlanmış bir model aynı sonuçları veremez. – Bu nedenle model hem eğitim hem de ürün(production) ortamındaki verilerle beslenmelidir. – Online Methods in Machine Learning : Teori ve Uygulama
  • 50. MLaaS Örnek İnceleme : Shadow Mode https://alexgude.com/blog/machine-learning-deployment-shadow-mode/ Yöntem 1 Yöntem 2
  • 51. MLaaS Machine Learning Model Exchange ONNX : The Open Neural Network EXchange
  • 52. MLaaS Model Exchange : ONNX ONNX : https://github.com/onnx/onnx ONNX Runtime : https://github.com/microsoft/onnxruntime
  • 53. MLaaS Model Exchange : ONNX ONNX : https://github.com/onnx/onnx ONNX Runtime : https://github.com/microsoft/onnxruntime
  • 54. MLaaS Bir MLaaS hizmeti hem Batch API hem de Realtime API desteği sunmalıdır.
  • 55. MLaaS Ne zaman Realtime API Kullanmalı? • Tahminler talep üzerine sunuluyorsa… • Tahminlerin, bir request anında yapılması gerekiyorsa. (Near-Realtime) • Tahminlerin doğrudan istemciye sunulması gerektiğinde.
  • 56. MLaaS Realtime API ile Yapılabilecekler(Yaptıklarımız) • Request-Based Autoscaling • Downtime olmadan model güncellemeleri • Log Streaming • Server-Side Batching • Multi-Model Serving • Traffic Splitting • Realtime Metrics
  • 57. MLaaS Ne zaman Batch API Kullanmalı? • Büyük bir veriseti ve çoklu worker’lar ile dağıtık çalışması gereken süreçler. • İş sürecinin ve durumunun izlenmesi gereken süreçler. • Karmaşık ve birbirine zincirlenmiş şekilde çalışan/çalışması gereken süreçler. • İstek sayısı az ama her isteğin dakikalar/saatler sürdüğü süreçler.
  • 58. MLaaS Batch API ile Yapılabilecekler(Yaptıklarımız) • Klasik RESTful servis gereksinimlerinde. • Log alma/toplama ve streaming vb…
  • 59. MLaaS Server-Side Batching? • Birden fazla gerçek zamanlı request’i tek bir toplu çıkarımda toplama işlemidir. • Bu yöntem gecikme oluşturur ancak performansı artırır. • Hangi request önce gelirse, maksimum sayıda istek alındığında veya ilk isteği aldıktan belirli bir süre sonra süreç tetiklenir. • Belirlenen eşiğe ulaşıldığında, alınan talepler üzerinde anlamladırma/tahmin yapılır ve tahmin sonuçları istemciye ayrı ayrı gönderilir. • Tüm bu süreçler istemciler için izlenebilir/gözlenebilirdir.
  • 60. MLaaS Modeli API/Web App. olarak yayına vermek yeterli mi?
  • 61. MLaaS Request Başına Düşen Kaynak! • Her request türünün tüketeceği sistem kaynağı çok farklı olacak. – Request-Based Autoscaling • Metinsel veri üzerinde çalışan ML servisi 0.3s’de cevap üretebilir. Fakat aynı response time’ı bir resim ya da video üzerinde almak isterseniz çok daha fazla donanımsal kaynak gerekir. – Request başına CPU, GPU, RAM ve Donanımı kullandıracak kaynak yönetimi gerekiyor. • Her ML request’i GPU gerektirmeyebilir. CPU’da kullanmalı… – Biz genellikle düşük hesaplama gerektiren request’leri GPU’ya değil CPU’ya yönlendiririz. • Ayrıca dakikada birkaç request için bu süreler yakalanabilir. Fakat saatte 2000 görsel veri request’i alıyorsanız işiniz çok daha zor olacaktır. – Distributed Task Queue • Request başına düşen disk veri kullanımı ve okuma-yazma oranları her request tipine göre yönetilmelidir.
  • 62. MLaaS Distributed Task Queue : Celery ‘Celery is an asynchronous task queue based on distributed message passing’
  • 65. MLaaS Model Monitoring & Observability Elasticsearch : An open source search engine. FluentD : An open source data collector for unified logging layer. Kibana : An open source webUI that makes it easy to explore and visualize the data indexed by Elasticsearch.
  • 66. MLaaS Model Monitoring & Observability MartinFowler.com : Continuous Delivery for Machine Learning end-to-end process
  • 67. MLaaS Versioning [Data & Model & Metrics]
  • 68. Versioning DVC.org - Büyük dosyaları almak ve kaynak kontrol havuzunun dışındaki harici bir depolama alanında depolamak için birden çok arka uç eklentisine sahiptir. - Tüm bu dosyaların sürümlerini takip edebilir ve veriler değiştiğinde modelleri yeniden eğitebiliriz. - Git ile entegre çalışabilir.
  • 70. Versioning Data Versioning The 3 steps to automate it with DVC (https://dvc.org)
  • 71. MLaaS Machine Learning in Cloud Computing
  • 73. Machine Learning on Kubernetes https://www.kubeflow.org/
  • 74. Machine Learning on Kubernetes
  • 75. MLaaS Machine Learning & Streaming(Kafka)
  • 76. MLaaS Machine Learning & Streaming(Kafka)
  • 77. MLaaS Machine Learning & Streaming(Kafka)
  • 78. MLaaS Machine Learning & Streaming(Kafka)
  • 81. Distributed Machine/Deep Learning • Python Standard Library – multiprocessing : https://docs.python.org/3/library/multiprocessing.html • Ray : Universal API for building distributed applications – https://ray.io/ – https://github.com/ray-project/ray – Ray Serve • https://docs.ray.io/en/master/serve/index.html – Ray Tune • https://docs.ray.io/en/master/tune.html • Dask : Parallel computing with task scheduling – https://dask.org/ – https://github.com/dask/dask • Horovod – Distributed training framework for TensorFlow, Keras, PyTorch, and Apache MXNet. – https://horovod.ai/ – https://github.com/horovod/horovod – https://eng.uber.com/horovod/
  • 83. Distributed Machine Learning Horovod • Framework Bağımsız – PyTorch, TensorFlow, Keras, Apache MXNet • Yüksek Performans Özellikleri – NCCL, GPUDirect, RDMA, Tensor Fusion • Kolay Kullanım – 5 satır Python kodu! • Açık Kaynak – Linux Foundation AI Foundation • Kolay Kurulum – pip install horovod
  • 87. Cihan Özhan Bağlantılar • cihanozhan.com • deeplab.co • linkedin.com/in/cihanozhan • medium.com/@cihanozhan • youtube.com/cihanozhan • twitter.com/UnmannedCode • github.com/cihanozhan E-Mail • cihan@deeplab.co

Editor's Notes

  1. - https://christophergs.com/machine%20learning/2019/03/17/how-to-deploy-machine-learning-models/
  2. - Realtime Vs Near-Realtime : https://www.skylinetechnologies.com/Blog/Skyline-Blog/November_2019/realtime-vs-near-realtime-data-pros-cons
  3. https://medium.com/analytics-vidhya/machine-learning-models-to-production-72280c3cb479 Packaging and Sharing Machine Learning Models via the Acumos AI Open Platform (https://arxiv.org/ftp/arxiv/papers/1810/1810.07159.pdf)
  4. Multi-Aarmed Bandits : Another popular approach for evaluating multiple competing models is Multi-Armed Bandits, which also requires you to define a way to calculate and monitor the reward associated with using each model. Applying this to ML is an active area of research, and we are starting to see some tools and services appear, such as Seldon core and Azure Personalizer . - https://www2.slideshare.net/turi-inc/machine-learning-in-production
  5. - https://opendatascience.com/tutorial-accelerate-and-productionize-ml-model-inferencing-using-open-source-tools/
  6. https://blog.imaginea.com/scale-part-i-task-queues/ https://www2.slideshare.net/nicolasgrasset/scaling-up-task-processing-with-celery
  7. - https://aws.amazon.com/tr/blogs/opensource/why-use-docker-containers-for-machine-learning-development/