Model Dağıtımı Nasıl Çalışır?
Model dağıtımı, eğitilmiş bir makine öğrenmesi modelinin bir API veya mikro servis aracılığıyla kullanıcı taleplerine yanıt verecek şekilde üretim ortamına taşınmasıdır. Süreç; model paketleme (ONNX veya TorchScript formatına dönüştürme), konteynerleştirme (Docker/Kubernetes), API uç noktası yapılandırması, yük dengeleme (load balancing) ve otomatik ölçekleme (auto-scaling) adımlarını kapsar. Gerçek zamanlı dağıtımda model, gelen her isteğe milisaniyeler içinde tahmin döndürür; toplu dağıtımda ise büyük veri kümesi periyodik olarak işlenir. Her iki modda da model sürüm yönetimi, A/B testi alt yapısı ve izleme pipeline'ı kritik bileşenlerdir.
Dağıtım Stratejileri
- check_circle Blue-Green Deployment: Eski (blue) ve yeni (green) model sürümleri eş zamanlı çalışır. Trafik bir anda yeni sürüme yönlendirilerek sıfır kesinti sağlanır; sorun çıkarsa anında geri dönülebilir.
- check_circle Canary Deployment: Yeni model sürümü önce kullanıcıların küçük bir yüzdesine (%5-10) sunulur. Sorun yoksa trafik kademeli artırılır; risk minimize edilmiş olur.
- check_circle A/B Testing: Farklı model varyantları kullanıcı gruplarına paralel sunularak performans metrikleri (dönüşüm, doğruluk, latency) karşılaştırılır ve kazanan model belirlenir.
- check_circle Shadow Deployment: Yeni model gerçek trafiği kopyalayarak arka planda çalışır fakat sonuçları kullanıcıya dönmez; production performansı güvenli ortamda test edilir.
Temel Araçlar ve Platformlar
- check_circle NVIDIA Triton Inference Server: GPU/CPU destekli yüksek performanslı model servis altyapısı; TensorFlow, PyTorch, ONNX modellerini destekler.
- check_circle BentoML: Python tabanlı, framework-agnostic model paketleme ve servis aracı; REST ve gRPC API oluşturmayı kolaylaştırır.
- check_circle Seldon Core: Kubernetes üzerinde kurumsal ölçekte model dağıtım ve izleme platformu; explainability ve drift detection desteği vardır.
- check_circle MLflow: Model yaşam döngüsü yönetimi: deney takibi, model registry ve dağıtım iş akışlarını tek çatı altında sunar.
- check_circle TensorFlow Serving: TF ve Keras modelleri için yüksek performanslı, üretime hazır servis altyapısı; versiyonlama ve sıcak model değişimi destekler.
Model Dağıtım Stratejileri
Gerçek Zamanlı Servis (REST/gRPC)
Model, HTTP veya gRPC endpoint'i olarak sunulur. Her istek bağımsız tahmin üretir. FastAPI, TorchServe, Triton Inference Server yaygın kullanılır. Düşük gecikme kritik senaryolar için uygundur.
Batch Inference
Büyük veri yığınları toplu işlenir; gerçek zamanlılık gerekmez. Gece raporları, ürün önerileri için uygun. Spark, SageMaker Batch Transform veya Vertex AI Batch kullanılabilir.
Kenar (Edge) Dağıtımı
Model mobil cihaz, IoT veya gömülü sistemde çalışır. ONNX, TFLite veya Core ML formatına dönüştürülür; kuantizasyon ile boyut küçültülür. İnternet bağlantısı gerekmez; gizlilik avantajı vardır.
Serverless İnferans
Model, talep geldiğinde otomatik ölçeklenen bir fonksiyon olarak çalışır. AWS Lambda + SageMaker, Google Cloud Run örnekleri. Aralıklı trafik için maliyet verimlidir; soğuk başlama süresi dezavantajdır.
monitor_heart Üretimdeki Modeli İzleme
- check_circle Veri kayması (Data Drift): Gelen özellik dağılımı eğitim dağılımından uzaklaşınca model performansı düşer. KS testi, Population Stability Index ile otomatik tespit yapılır.
- check_circle Kavram kayması (Concept Drift): Hedef değişkenin gerçek dünya davranışı değişir (ör. pandemi döneminde satış desenleri). Gerçek etiketler alınır alınmaz model yeniden değerlendirilir.
- check_circle Model sürüm yönetimi: MLflow, DVC veya model registry ile her dağıtım versiyonlanır; önceki sürüme anında geri dönüş mümkün olur.
- check_circle A/B testi & Canary: Yeni model, trafiğin %5-10'una açılır; hata oranı ve iş metrikleri karşılaştırılır. Başarılı sonuç alındıktan sonra tam dağıtım yapılır.
- check_circle SLO/SLA izleme: Gecikme (p99), throughput ve hata oranı için servis seviye hedefleri belirlenir; Prometheus + Grafana ile panoya yansıtılır.
Sıkça Sorulan Sorular
- check_circle Model deployment ile model training arasındaki fark nedir? Training, modeli veri üzerinde öğreten süreçtir; deployment ise eğitilmiş modeli gerçek kullanıcı taleplerine yanıt verecek şekilde üretim ortamına taşıma sürecidir. Training genellikle bir kez veya periyodik yapılırken deployment sürekli canlı durmak zorundadır.
- check_circle Edge deployment ile cloud deployment ne zaman tercih edilir? Düşük gecikme, çevrimdışı çalışma veya veri gizliliği gereken durumlarda edge (uç) deployment tercih edilir. Büyük model boyutu, elastik ölçekleme ihtiyacı veya merkezi veri erişimi gerekiyorsa cloud deployment daha uygundur.
- check_circle Model drift nedir ve nasıl tespit edilir? Model drift, üretim ortamındaki gerçek verinin eğitim verisinden uzaklaşmasıyla modelin performansının düşmesidir. Veri dağılımı değişikliği (data drift) veya giriş-çıkış ilişkisinin değişimi (concept drift) izleme araçlarıyla (Evidently, Whylogs) tespit edilir.
- check_circle Canary deployment kaç yüzde trafikle başlatılmalıdır? Genellikle toplam trafiğin %5-10'u ile başlanır. Risk düzeyi ve kullanıcı tabanına göre bu oran kademeli artırılır. Kritik sistemlerde %1 ile başlamak daha ihtiyatlı bir yaklaşımdır.