MLaaS - Presenting & Scaling Machine Learning Models as Microservices

Cihan Özhan
Cihan ÖzhanDeveloper, AI Engineer/Hacker, Data Master
MLaaS
Presenting & Scaling Machine Learning Models as Microservices
Cihan Özhan | DeepLab.co | Developer/Hacker, AI Engineer, Data Master
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
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
1 of 87

Recommended

Endüstriyel Yapay Zeka ve Otonom Sistemler by
Endüstriyel Yapay Zeka ve Otonom SistemlerEndüstriyel Yapay Zeka ve Otonom Sistemler
Endüstriyel Yapay Zeka ve Otonom SistemlerCihan Özhan
507 views101 slides
Go Programlama Dili - Seminer by
Go Programlama Dili - SeminerGo Programlama Dili - Seminer
Go Programlama Dili - SeminerCihan Özhan
974 views82 slides
MLOps with serverless architectures (October 2018) by
MLOps with serverless architectures (October 2018)MLOps with serverless architectures (October 2018)
MLOps with serverless architectures (October 2018)Julien SIMON
2.2K views19 slides
Using MLOps to Bring ML to Production/The Promise of MLOps by
Using MLOps to Bring ML to Production/The Promise of MLOpsUsing MLOps to Bring ML to Production/The Promise of MLOps
Using MLOps to Bring ML to Production/The Promise of MLOpsWeaveworks
5.4K views89 slides
Amazon SageMaker 모델 배포 방법 소개::김대근, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스페셜 웨비나 by
Amazon SageMaker 모델 배포 방법 소개::김대근, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스페셜 웨비나Amazon SageMaker 모델 배포 방법 소개::김대근, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스페셜 웨비나
Amazon SageMaker 모델 배포 방법 소개::김대근, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스페셜 웨비나Amazon Web Services Korea
3.3K views50 slides
[Feb AWS 101] What is AWS? by
[Feb AWS 101] What is AWS?[Feb AWS 101] What is AWS?
[Feb AWS 101] What is AWS?Amazon Web Services Korea
1.3K views113 slides

More Related Content

What's hot

Introduction to AWS by
Introduction to AWSIntroduction to AWS
Introduction to AWSHesham Amin
2.9K views20 slides
Deep Dive on AWS Lambda by
Deep Dive on AWS LambdaDeep Dive on AWS Lambda
Deep Dive on AWS LambdaAmazon Web Services
6.3K views38 slides
Building Your Cloud Strategy by
Building Your Cloud StrategyBuilding Your Cloud Strategy
Building Your Cloud StrategyAmazon Web Services
8.2K views24 slides
MLOps and Reproducible ML on AWS with Kubeflow and SageMaker by
MLOps and Reproducible ML on AWS with Kubeflow and SageMakerMLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMakerProvectus
277 views49 slides
MLOps - The Assembly Line of ML by
MLOps - The Assembly Line of MLMLOps - The Assembly Line of ML
MLOps - The Assembly Line of MLJordan Birdsell
1.7K views19 slides
Understanding cloud with Google Cloud Platform by
Understanding cloud with Google Cloud PlatformUnderstanding cloud with Google Cloud Platform
Understanding cloud with Google Cloud PlatformDr. Ketan Parmar
8.4K views44 slides

What's hot(20)

Introduction to AWS by Hesham Amin
Introduction to AWSIntroduction to AWS
Introduction to AWS
Hesham Amin2.9K views
MLOps and Reproducible ML on AWS with Kubeflow and SageMaker by Provectus
MLOps and Reproducible ML on AWS with Kubeflow and SageMakerMLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMaker
Provectus277 views
MLOps - The Assembly Line of ML by Jordan Birdsell
MLOps - The Assembly Line of MLMLOps - The Assembly Line of ML
MLOps - The Assembly Line of ML
Jordan Birdsell1.7K views
Understanding cloud with Google Cloud Platform by Dr. Ketan Parmar
Understanding cloud with Google Cloud PlatformUnderstanding cloud with Google Cloud Platform
Understanding cloud with Google Cloud Platform
Dr. Ketan Parmar8.4K views
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017 by Amazon Web Services Korea
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
Amazon Personalize Event Tracker 실시간 고객 반응을 고려한 추천::김태수, 솔루션즈 아키텍트, AWS::AWS ... by Amazon Web Services Korea
Amazon Personalize Event Tracker 실시간 고객 반응을 고려한 추천::김태수, 솔루션즈 아키텍트, AWS::AWS ...Amazon Personalize Event Tracker 실시간 고객 반응을 고려한 추천::김태수, 솔루션즈 아키텍트, AWS::AWS ...
Amazon Personalize Event Tracker 실시간 고객 반응을 고려한 추천::김태수, 솔루션즈 아키텍트, AWS::AWS ...
클라우드 마이그레이션을 통한 비지니스 성공 사례- AWS Summit Seoul 2017 by Amazon Web Services Korea
클라우드 마이그레이션을 통한 비지니스 성공 사례- AWS Summit Seoul 2017클라우드 마이그레이션을 통한 비지니스 성공 사례- AWS Summit Seoul 2017
클라우드 마이그레이션을 통한 비지니스 성공 사례- AWS Summit Seoul 2017
AWS Certified Solutions Architect Professional Course S15-S18 by Neal Davis
AWS Certified Solutions Architect Professional Course S15-S18AWS Certified Solutions Architect Professional Course S15-S18
AWS Certified Solutions Architect Professional Course S15-S18
Neal Davis1.4K views
Amazon Sagemaker Studio를 통한 ML개발하기 - 소성운(크로키닷컴) :: AWS Community D... by AWSKRUG - AWS한국사용자모임
Amazon Sagemaker Studio를 통한 ML개발하기 - 소성운(크로키닷컴) :: AWS Community D...Amazon Sagemaker Studio를 통한 ML개발하기 - 소성운(크로키닷컴) :: AWS Community D...
Amazon Sagemaker Studio를 통한 ML개발하기 - 소성운(크로키닷컴) :: AWS Community D...
[금융사를 위한 AWS Generative AI Day 2023] 4_AWS Generative AI 서비스의 활용 방ᄇ... by AWS Korea 금융산업팀
[금융사를 위한 AWS Generative AI Day 2023] 4_AWS Generative AI 서비스의 활용 방ᄇ...[금융사를 위한 AWS Generative AI Day 2023] 4_AWS Generative AI 서비스의 활용 방ᄇ...
[금융사를 위한 AWS Generative AI Day 2023] 4_AWS Generative AI 서비스의 활용 방ᄇ...
Intro to Vertex AI, unified MLOps platform for Data Scientists & ML Engineers by Daniel Zivkovic
Intro to Vertex AI, unified MLOps platform for Data Scientists & ML EngineersIntro to Vertex AI, unified MLOps platform for Data Scientists & ML Engineers
Intro to Vertex AI, unified MLOps platform for Data Scientists & ML Engineers
Daniel Zivkovic679 views
Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스... by Amazon Web Services Korea
Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...
Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...
IDC 서버 몽땅 AWS로 이전하기 위한 5가지 방법 - 윤석찬 (AWS 테크에반젤리스트) by Amazon Web Services Korea
IDC 서버 몽땅 AWS로 이전하기 위한 5가지 방법 - 윤석찬 (AWS 테크에반젤리스트) IDC 서버 몽땅 AWS로 이전하기 위한 5가지 방법 - 윤석찬 (AWS 테크에반젤리스트)
IDC 서버 몽땅 AWS로 이전하기 위한 5가지 방법 - 윤석찬 (AWS 테크에반젤리스트)

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

Cloud computing and technologies by
Cloud computing and technologiesCloud computing and technologies
Cloud computing and technologiesBilal Dursun
86 views16 slides
Microsoft Azure Temelleri - Modul 2 by
Microsoft Azure Temelleri - Modul 2Microsoft Azure Temelleri - Modul 2
Microsoft Azure Temelleri - Modul 2MSHOWTO Bilisim Toplulugu
3.3K views32 slides
Cloud_Computer by
Cloud_ComputerCloud_Computer
Cloud_ComputerBarış Kömürcü, MENG, LLM2
209 views12 slides
Eticaret akademi Yazılım ve IT süreçleri by
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
539 views23 slides
12factor apps by
12factor apps12factor apps
12factor appsDilaver Demirel
80 views16 slides
Introduction to Amazon Web Services by
Introduction to Amazon Web ServicesIntroduction to Amazon Web Services
Introduction to Amazon Web ServicesAnkaraCloud
867 views83 slides

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

Cloud computing and technologies by Bilal Dursun
Cloud computing and technologiesCloud computing and technologies
Cloud computing and technologies
Bilal Dursun86 views
Eticaret akademi Yazılım ve IT süreçleri by Murat Kader
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
Murat Kader539 views
Introduction to Amazon Web Services by AnkaraCloud
Introduction to Amazon Web ServicesIntroduction to Amazon Web Services
Introduction to Amazon Web Services
AnkaraCloud867 views
Azure Sanal Makineler by Mustafa
Azure Sanal MakinelerAzure Sanal Makineler
Azure Sanal Makineler
Mustafa 518 views
Azure Cloud Engineer - Bölüm 1 by Önder Değer
Azure Cloud Engineer - Bölüm 1Azure Cloud Engineer - Bölüm 1
Azure Cloud Engineer - Bölüm 1
Önder Değer192 views
Microsoft Azure ITPro - Microsoft Azure'a Giriş- Bölüm 1 by Önder Değer
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ğer700 views
Bulut Bilişim (Overview) by Burak Okumuş
Bulut Bilişim (Overview)Bulut Bilişim (Overview)
Bulut Bilişim (Overview)
Burak Okumuş1.4K views
Berkeley Data Analytics Stack Genel Bakış by techbase
Berkeley Data Analytics Stack Genel BakışBerkeley Data Analytics Stack Genel Bakış
Berkeley Data Analytics Stack Genel Bakış
techbase1.1K views
Blockchain : Decentralized Application Development (Turkish) by Cihan Özhan
Blockchain : Decentralized Application Development (Turkish)Blockchain : Decentralized Application Development (Turkish)
Blockchain : Decentralized Application Development (Turkish)
Cihan Özhan267 views
Xsteel odev-sitesi by sersld85
Xsteel odev-sitesiXsteel odev-sitesi
Xsteel odev-sitesi
sersld85458 views
Azure Cloud Engineer - Bölüm 3 by Önder Değer
Azure Cloud Engineer - Bölüm 3Azure Cloud Engineer - Bölüm 3
Azure Cloud Engineer - Bölüm 3
Önder Değer64 views
Docker - Ankara Cloud Meetup by Mustafa AKIN
Docker - Ankara Cloud Meetup Docker - Ankara Cloud Meetup
Docker - Ankara Cloud Meetup
Mustafa AKIN761 views
OPENSHIFT KONTEYNER PLATFORM İLE GELİŞTİRMEYE HIZLI BAŞLANGIÇ - Webinar-Aug2017 by Serhat Dirik
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
Serhat Dirik674 views
Xsteel dokumani by sersld85
Xsteel dokumaniXsteel dokumani
Xsteel dokumani
sersld85449 views
Bulutistan 2017 - Türkiyenin Bulut Entegratörü by Bulutistan
Bulutistan 2017 - Türkiyenin Bulut EntegratörüBulutistan 2017 - Türkiyenin Bulut Entegratörü
Bulutistan 2017 - Türkiyenin Bulut Entegratörü
Bulutistan390 views

More from Cihan Özhan

MongoDB Overview by
MongoDB OverviewMongoDB Overview
MongoDB OverviewCihan Özhan
65 views51 slides
MongoDB - NoSQL Overview by
MongoDB - NoSQL OverviewMongoDB - NoSQL Overview
MongoDB - NoSQL OverviewCihan Özhan
42 views21 slides
MongoDB - JSON'a Genel Bakış by
MongoDB - JSON'a Genel BakışMongoDB - JSON'a Genel Bakış
MongoDB - JSON'a Genel BakışCihan Özhan
126 views49 slides
AI and Machine Learning - Today’s Implementation Realities by
AI and Machine Learning - Today’s Implementation RealitiesAI and Machine Learning - Today’s Implementation Realities
AI and Machine Learning - Today’s Implementation RealitiesCihan Özhan
177 views212 slides
Mobil Uygulama Güvenliği (Mobile Security) by
Mobil Uygulama Güvenliği (Mobile Security)Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Cihan Özhan
348 views66 slides
Golang Book - Go Programlama Dili Temelleri by
Golang Book - Go Programlama Dili TemelleriGolang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili TemelleriCihan Özhan
415 views33 slides

More from Cihan Özhan(20)

MongoDB - NoSQL Overview by Cihan Özhan
MongoDB - NoSQL OverviewMongoDB - NoSQL Overview
MongoDB - NoSQL Overview
Cihan Özhan42 views
MongoDB - JSON'a Genel Bakış by Cihan Özhan
MongoDB - JSON'a Genel BakışMongoDB - JSON'a Genel Bakış
MongoDB - JSON'a Genel Bakış
Cihan Özhan126 views
AI and Machine Learning - Today’s Implementation Realities by Cihan Özhan
AI and Machine Learning - Today’s Implementation RealitiesAI and Machine Learning - Today’s Implementation Realities
AI and Machine Learning - Today’s Implementation Realities
Cihan Özhan177 views
Mobil Uygulama Güvenliği (Mobile Security) by Cihan Özhan
Mobil Uygulama Güvenliği (Mobile Security)Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)
Cihan Özhan348 views
Golang Book - Go Programlama Dili Temelleri by Cihan Özhan
Golang Book - Go Programlama Dili TemelleriGolang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili Temelleri
Cihan Özhan415 views
Golang Book - Genel Bakış by Cihan Özhan
Golang Book - Genel BakışGolang Book - Genel Bakış
Golang Book - Genel Bakış
Cihan Özhan195 views
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec... by 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...
Cihan Özhan737 views
AI Security : Machine Learning, Deep Learning and Computer Vision Security by Cihan Özhan
AI Security : Machine Learning, Deep Learning and Computer Vision SecurityAI Security : Machine Learning, Deep Learning and Computer Vision Security
AI Security : Machine Learning, Deep Learning and Computer Vision Security
Cihan Özhan319 views
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec... by 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...
Cihan Özhan538 views
Python Programlama Dili by Cihan Özhan
Python Programlama DiliPython Programlama Dili
Python Programlama Dili
Cihan Özhan2K views
İleri Seviye T-SQL Programlama - Chapter 21 by Cihan Özhan
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21
Cihan Özhan1.5K views
İleri Seviye T-SQL Programlama - Chapter 20 by Cihan Özhan
İleri Seviye T-SQL Programlama - Chapter 20İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20
Cihan Özhan929 views
İleri Seviye T-SQL Programlama - Chapter 19 by Cihan Özhan
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19
Cihan Özhan2.1K views
İleri Seviye T-SQL Programlama - Chapter 18 by Cihan Özhan
İleri Seviye T-SQL Programlama - Chapter 18İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18
Cihan Özhan3K views
İleri Seviye T-SQL Programlama - Chapter 17 by Cihan Özhan
İleri Seviye T-SQL Programlama - Chapter 17İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 17
Cihan Özhan2.8K views
İleri Seviye T-SQL Programlama - Chapter 16 by Cihan Özhan
İleri Seviye T-SQL Programlama - Chapter 16İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16
Cihan Özhan1.8K views
İleri Seviye T-SQL Programlama - Chapter 15 by Cihan Özhan
İleri Seviye T-SQL Programlama - Chapter 15İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15
Cihan Özhan742 views
İleri Seviye T-SQL Programlama - Chapter 14 by Cihan Özhan
İleri Seviye T-SQL Programlama - Chapter 14İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14
Cihan Özhan1.3K views
İleri Seviye T-SQL Programlama - Chapter 13 by Cihan Özhan
İleri Seviye T-SQL Programlama - Chapter 13İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13
Cihan Özhan964 views

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
  • 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/