Model sunumu: eğitilmiş modelin gerçek uygulamalara hizmet vermesi
Model sunumu, eğitilmiş bir modeli API ile uygulamaların kullanımına açma işidir. Çalışma akışı, sunum türleri ve üretimde dikkat edilecek noktalar.
Model sunumu nedir?
Model sunumu (model serving), eğitilmiş bir makine öğrenmesi modelinin uygulamaların ve kullanıcıların çağırabileceği bir hizmet olarak çalıştırılmasıdır. Model bir dosya olarak diskte durduğu sürece kimseye fayda sağlamaz. Sunum katmanı bu dosyayı belleğe yükler, gelen girdiyi modelin beklediği biçime çevirir, tahmini üretir ve sonucu çağıran sisteme geri döndürür.
Günlük dilde 'modeli canlıya almak' ya da 'modeli devreye almak' denen işin teknik karşılığı budur. Eğitim zaman zaman yapılan bir iştir. Sunum ise kesintisiz çalışması, yük arttığında büyümesi ve izlenebilir olması gereken sürekli bir hizmettir.
Bir tahmin isteği sunum katmanında nasıl ilerler?
Tipik bir çevrimiçi sunumda akış şöyledir:
- İstemci uygulama, REST ya da gRPC ile bir tahmin isteği gönderir.
- Ön işleme adımı ham girdiyi doğrular ve eğitimde kullanılan dönüşümlerle özelliklere çevirir.
- Bellekte hazır bekleyen model çıkarım (inference) yapar.
- Son işleme adımı ham skoru iş kuralına uygun bir yanıta, örneğin bir sınıf etiketine ya da olasılığa dönüştürür.
- Yanıt istemciye gider; istek, yanıt süresi ve girdi özeti izleme için kaydedilir.
Model dosyası genellikle sürümlü bir model kayıt defterinden alınır ve bağımlılıklarıyla birlikte bir konteyner imajına paketlenir.
Çevrimiçi, toplu ve akış sunumu nasıl ayrılır?
Sunum biçimi, tahminin ne kadar çabuk gerektiğine göre seçilir.
Ölçüt: Gecikme beklentisi. Çevrimiçi sunum: kullanıcı beklerken, çoğunlukla çok kısa sürede yanıt gerekir. Toplu sunum: sonuç hemen gerekmez, zamanlanmış bir iş büyük bir veri kümesini topluca skorlar. Akış sunumu: olaylar bir mesaj kuyruğundan sürekli gelir ve her olay geldikçe skorlanır.
Ölçüt: Tipik kullanım. Çevrimiçi sunum: öneri, arama sıralama, dolandırıcılık kontrolü. Toplu sunum: gece çalışan müşteri kaybı skorlaması, talep tahmini. Akış sunumu: sensör verisinde anomali yakalama.
Ölçüt: Maliyet mantığı. Çevrimiçi sunum sürekli açık kaynak ister. Toplu sunum işi bittiğinde kaynağı bırakır, bu yüzden hız gerekmiyorsa genellikle daha ekonomiktir.
Üretimde sunum kalitesini ne belirler?
Model doğruluğu tek başına yetmez; hizmetin davranışı da ölçülür. Gecikme, kullanıcı deneyimini doğrudan etkiler. Birim zamanda işlenen istek miktarı (throughput) ise altyapının yükü kaldırıp kaldıramayacağını gösterir. Yük arttığında aynı modelin birden çok kopyası çalıştırılır ve otomatik ölçekleme bu kopya sayısını talebe göre ayarlar.
Yeni model sürümü çıkarken tüm trafiği bir anda çevirmek risklidir. Bu yüzden önce küçük bir trafik dilimi yeni sürüme yönlendirilir (canary), sonuçlar eskisiyle karşılaştırılır ve sorun yoksa pay artırılır. Sorun çıkarsa eski sürüme dönüş hızlı olmalıdır.
Sık yapılan bir hata, eğitimdeki ön işlemeyi sunumda farklı yazmaktır. Aynı özellik farklı yerlerde ayrı kodlanırsa model üretimde sessizce yanlış tahmin üretir. Ön işlemeyi tek bir yerde tanımlamak ya da modelle birlikte paketlemek bunu önler.
Örnek senaryo: öneri modelinin yeni sürümü
Örneğin bir e-ticaret şirketi ürün sayfasında 'bunlara da bakın' önerisi veren bir modeli sunuyor olsun. Sayfa açılırken öneri servisi çağrılır, yanıt gecikirse sayfa yavaşlar. Ekip yeni bir model sürümünü önce yalnızca küçük bir ziyaretçi grubuna açar, gecikmeyi ve tıklama davranışını eski sürümle yan yana izler.
Gecikme kabul edilebilir ve öneri kalitesi düşmüyorsa trafik payı kademeli artırılır. Kampanya yoğunluğunda ölçekleme kuralı kopya sayısını artırır, yoğunluk geçince azaltır.
Hangi kavramlarla karıştırılır?
Eğitim, modelin veriden öğrenmesidir. Çıkarım ise öğrenilmiş modelin yeni girdiye tahmin üretmesidir. Model sunumu, çıkarımı bir hizmet olarak organize eden altyapıdır. MLOps bu zincirin tamamını, yani veri, eğitim, sunum ve izlemeyi birlikte yöneten disiplindir. Sunum sonrasında girdi verisi eğitimdekinden uzaklaşırsa model kayması (model drift) başlar ve izleme bunu yakalamalıdır.
Büyük dil modellerinde ayrım ayrıca önemlidir. Sağlayıcının barındırdığı bir modeli API ile çağırmak sunum işini sağlayıcıya bırakır. Kendi modelini kendi altyapısında çalıştırmak ise yukarıdaki tüm sorumlulukları ekibe yükler.
Mindset programlarında model sunumu
Model sunumunu ayrıntısıyla ele alan program, 'Model Sunumu (Model Serving) ve Ölçekleme (BentoML, Seldon)' eğitimidir. Modül başlıkları sunum mimarilerinden Kubernetes üzerinde dağıtıma, sürüm yönetimi ve trafik yönlendirmeden GPU maliyetine uzanır; modeli üretime çıkaran makine öğrenmesi mühendisleri ve platform ekipleri için uygundur.
Uçtan uca bakış isteyen ekipler için 'MLOps Engineer Programı' ve 'MLOps Mühendisliği Sertifika Programı' sunumu eğitim, izleme ve yeniden eğitimle birlikte işler. Hazır bir modeli uygulamasına bağlayan yazılım ekipleri için ise 'Anthropic Claude API ile Uygulama Geliştirme' programındaki üretim entegrasyonu ve izleme başlıkları ilgilidir.
İlgili Mindset programı
Model Sunumu (Model Serving) ve Ölçekleme (BentoML, Seldon)
Sık sorulan sorular
Model sunumu ile model dağıtımı (deployment) aynı şey midir?
Birbirine yakındırlar ama aynı değildir. Dağıtım, yeni model sürümünün üretim ortamına yerleştirilmesi işlemidir. Sunum ise o modelin istekleri karşılayan çalışan hizmet olarak yaşadığı süreçtir. Dağıtım bir olay, sunum sürekli bir durumdur; ikisi birlikte model yaşam döngüsünü oluşturur.
Model sunumunda hangi araçlar kullanılır?
Modeli HTTP ya da gRPC arkasında yayımlayan paketleme ve sunum çerçeveleri vardır; BentoML ve Seldon bunlara örnektir. Çoğu ekip bunları konteyner ve Kubernetes ile birleştirir. Araç seçimi modelin türüne, gecikme beklentisine ve ekibin mevcut altyapısına bağlıdır.
Her model gerçek zamanlı sunulmak zorunda mıdır?
Hayır. Sonucun anında gerekmediği durumlarda toplu sunum daha basit ve ekonomiktir. Müşteri kaybı skorları ya da haftalık talep tahminleri gibi çıktılar zamanlanmış bir iş ile üretilip bir tabloya yazılabilir. Çevrimiçi sunum yalnızca kullanıcı ya da süreç yanıtı beklerken gerekir.
Sunulan modelin bozulduğu nasıl anlaşılır?
Teknik sağlık için gecikme ve hata oranı izlenir. Model kalitesi için girdi verisinin dağılımı eğitim verisiyle karşılaştırılır ve gerçek sonuçlar geldikçe tahmin doğruluğu ölçülür. Sapma belirgin hale geldiğinde modelin yeniden eğitilmesi ya da önceki sürüme dönülmesi gündeme gelir.
Büyük dil modelleri için sunum farklı mıdır?
Temel mantık aynıdır ama bellek ve GPU ihtiyacı, yanıtın parça parça akıtılması ve istek başına maliyet gibi konular daha ağır basar. Sağlayıcı API'si kullanıldığında bu yük sağlayıcıdadır; kendi modelini barındıran ekip ise kapasite ve maliyeti kendisi yönetir.