ML Modellerini Dağıtma
1) Rol ve hedefler
Dağıtım = RG/AML/Legal ve bütçeleri karşılarken ürün ve operasyonlara güvenilir bir şekilde çıkarım yapın.
Hedefler: düşük gecikme süresi, yüksek kullanılabilirlik, tekrarlanabilirlik, güvenlik ve hızlı geri dönüş.
2) Hizmet veren mimariler
2. 1 Desenler
Çevrimiçi (gerçek zamanlı): Kişiselleştirme için REST/gRPC, p95 50-150 ms; RG/AML uyarıları için ≤2 -5 s.
Gerçek zamana yakın: Mikro eşleşmeler 1-5 dakika (OLAP-vitrinler).
Toplu/çevrimdışı: Altın gece vitrinleri, düzenleyici için WORM ihracatı.
Süreç içi puanlama: hafif modeli hizmete gömme (düşük gecikme süresi).
Sunucusuz: nadir görevler için soğuk başlangıç özellikleri.
2. 2 Topolojiler
Tek Model Servis - basit ve hızlı.
Ensemble/Graph (router - preprocess - model - postprocess) - karmaşık boru hatları.
Sidecar Feature Fetcher - önbelleklerden (Redis/Scylla) çevrimiçi özellikleri çeker.
3) Model kayıt ve versiyonları
Kayıt defteri: 'Model _ id', 'sürüm', 'aşama = {Evreleme, Üretim, Arşivlenmiş}', artifaktlar (ağırlıklar, ön işlemci, kalibrasyon), gereksinimler (CPU/GPU/bellek), model kartı (veri, metrikler, riskler, adalet).
Değişmez eserler: content-hash; Sürümlerin WORM kopyaları.
Çıktı politikası: yalnızca kayıt ve beyan manifestoları aracılığıyla.
4) Konteynerizasyon ve paketleme
Dockerfile:dockerfile
FROM python:3. 11-slim
ENV PYTHONUNBUFFERED=1
WORKDIR /app
COPY requirements. txt.
RUN pip install -r requirements. txt --no-cache-dir
COPY artifacts/./artifacts/
COPY src/./src/
CMD ["python", "src/serve. py"]
Sunucu (FastAPI + gRPC, fikir):
python serve. py from fastapi import FastAPI import joblib, time app = FastAPI()
model = joblib. load("artifacts/model. joblib")
scaler = joblib. load("artifacts/scaler. joblib")
@app. post("/score")
def score(payload: dict):
t0 = time. time()
x = preprocess(payload, scaler)
y = float(model. predict_proba([x])[0,1])
return {"score": y, "latency_ms": int((time. time()-t0)1000), "model_version": "1. 8. 3"}
5) Kubernetes/Dümen ve Otomatik Ölçekleme
Dağıtım (parça):yaml apiVersion: apps/v1 kind: Deployment metadata: {name: ml-score, labels: {app: ml-score}}
spec:
replicas: 3 selector: {matchLabels: {app: ml-score}}
template:
metadata: {labels: {app: ml-score}}
spec:
containers:
- name: api image: registry/ml-score:1. 8. 3@sha256:...
ports: [{containerPort: 8080}]
resources:
requests: {cpu: "500m", memory: "512Mi"}
limits: {cpu: "2", memory: "2Gi"}
envFrom: [{secretRef: {name: ml-secrets}}]
readinessProbe: {httpGet: {path: /healthz, port: 8080}, periodSeconds: 5}
livenessProbe: {httpGet: {path: /livez, port: 8080}, periodSeconds: 10}
HPA (RPS/CPU ile):
yaml apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: {name: ml-score-hpa}
spec:
scaleTargetRef: {apiVersion: apps/v1, kind: Deployment, name: ml-score}
minReplicas: 3 maxReplicas: 50 metrics:
- type: Pods pods:
metric: {name: requests_per_second}
target: {type: AverageValue, averageValue: "15"}
- type: Resource resource: {name: cpu, target: {type: Utilization, averageUtilization: 70}}
6) Yaygınlaştırma stratejileri
Gölge: yeni model isteklerin kopyalarını işler, yanıtlar göz ardı edilir; Metriklerin/gecikmelerin/maliyetlerin karşılaştırılması.
Kanarya: Yeşil SLO'larla trafiğin %1-10'u - %25 - %50 - %100; Bozulmada otomatik geri alma.
Mavi-Yeşil: paralel yığınlar; anlık yönlendirme anahtarı.
Kademeli Özellik Bayrağı: Pazar/Kiracı/Cihaz Yönlendirme.
A/B/n: Sıralı test ile çevrimiçi deneyler.
yaml routes:
- match: {tenant: "EEA"} # feature-flags/rules to: {model: "1. 8. 3", weight: 20}
- match: {tenant: "EEA"}
to: {model: "1. 7. 9", weight: 80}
7) Özellik çevrimiçi/çevrimdışı: eşdeğerlik
Birleştirilmiş dönüşüm kitaplığı ve Özellik Deposu (çevrimiçi + çevrimdışı).
Eşdeğerlik testi: Bir referans örnek üzerinde çevrimiçi özellikler ve çevrimdışı referans arasında MAE/MAPE.
Önbellek özelliği: Redis/Scylla, pencere özellikleri için TTL; Zaman aşımları ve geri dönüşler.
8) Gözlemlenebilirlik, SLO ve uyarı
8. 1 SLI/SLO kriterleri
Gecikme: p95 ≤ 150 ms (kişiselleştirme), p99 ≤ 300 ms; RG/AML ≤ 5'i uçtan uca uyarır.
Kullanılabilirlik: ≥ 99. 9%.
Hata çıkarımı: ≤ 0. %5 5xx; Kapsama alanı ≥ %99.
Sürüklenme: PSI karakteristiği/oranı <eşik, ECE (kalibrasyon) stabildir.
Бизнес: Net Geliri yükseltmek, dolandırıcılık tasarrufu, müdahale zamanı.
8. 2 Metrik (Prometheus)
yaml
- http_request_duration_seconds{quantile="0. 95"}
- http_requests_total{code=~"5.."}
- model_inference_latency_ms_bucket
- feature_fetch_latency_ms_bucket
- model_score_distribution_bucket
- psi_feature_{name}
- expected_cost_live
Uyarılar (fragman):
yaml
- alert: HighP95Latency expr: histogram_quantile(0. 95, sum(rate(model_inference_latency_ms_bucket[5m])) by (le)) > 0. 15 for: 10m
- alert: DriftDetected expr: psi_feature_amount_base > 0. 25 for: 15m
Трейсинг: OpenTelemetry - span'ы 'feature _ fetch', 'score', 'postprocess', 'guardirail'.
9) RG/AML korkulukları ve güvenlik politikası
Ön/Son filtre: Yasaklanmış eylemlerin maskeleri (gösterim sıklığı, bekleme süresi, agresif tekliflerin yasaklanması).
Politika Koruması: RG eşiğinin üzerindeki hız - yumuşak müdahale/duraklatma.
Denetim: 'policy _ id', 'propensity', 'mask', 'decision', 'reason'.
PII ve ikamet: Kimlik yerine belirteçler, EEA/UK/BR'de ayrı şifreleme ve küme anahtarları; Bölgeler arası birleşmeleri gerekçesiz yasaklamak.
Sırlar: KMS/CMK, Gizli Yönetici; Günlüklerde/izlerde PII yok.
10) Kalibrasyon, eşikler ve karar politikası
Kalibrasyon (Platt/İzotonik) bir eser olarak.
Beklenen maliyete göre eşik; kayıt defteri/özellik bayrağında yapılandırılabilir.
Güvenlik kapakları: üst/alt eylem sınırları, uyumluluk için manuel geçersiz kılma.
11) Geri dönüşler, bozulma ve DR
Tek tıklamayla geri alma - Rotayı önceki 'model _ sürüm'e geçirir.
Runbook: "latentnost↑", "5xx↑ hataları", "sürüklenme/kalibrasyon bozuldu", "harici özellik sağlayıcısı kullanılamıyor" komut dosyaları.
Arıza izolasyonu: devre kesici, yeniden deneme/geri alma, son geçerli çözümün önbelleği.
DR: artifaktların/kayıtların yedekleri, "sıcak'bir bölgeye çoğaltma, alıştırmalar.
python try:
features = fetch_features(timeout=30)
except TimeoutError:
features = last_known_good(user_id) # fallback
12) Maliyet mühendisliği ve performans
Yol profili oluşturma: özellikler (%30-60), model (%20-40), ağ/IO (%10-30).
Maliyet azaltma: sıcak özellikleri önbelleğe alma, tekrar kotaları, hafif modeller, INT8/FP16 (uygunsa), tembel-postprocess.
RPS/CPU/gecikmede HPA, akış özelliğinde durum boyutu kısıtlaması.
Ters ibraz: maliyet/talep, maliyet/özellik; pazarlar/takımlar için bütçeler.
13) Güvenli sürümler ve uyumluluk
Ürün hazırlık kriterleri: Gölgede SLO yeşili, sürüklenme/sızıntı yok, model kartı dolu, adalet dilimleri normal.
Regülatör: WORM-serbest bırakma arşivi (ağırlıklar, kalibrasyon, eşikler, metrikler, test günlükleri), değiştirilemez ihracat raporları.
DSAR/RTBF: Belirli bir kullanıcının izlerini önbellek/günlüklerden/özelliklerden kaldırma prosedürleri.
14) yayılmadan önce QA
Entegrasyon testleri: API sözleşmesi, özellik diyagramları, boş/aşırı durumlar.
Yük: p99, dağıtım kuyrukları, trafik patlaması.
Çevrimiçi/çevrimdışı eşdeğerlik testi.
Kaos testleri: özellik önbelleğini/tabanını kapatma, harici hizmetlerin zaman aşımları.
15) Yapılandırma örnekleri
Kanarya yönlendirme ile giriş (fikir):yaml
- match: [headers: {x-exp: "canary"}]
route:
- destination: {host: ml-score-v1-8-3, weight: 20}
- destination: {host: ml-score-v1-7-9, weight: 80}
Model sağlığı (uç nokta):
python
@app. get("/healthz")
def health():
return {"ok": True, "model_version": "1. 8. 3", "registry_sig_ok": verify_signature()}
16) Süreçler ve RACI
R (Sorumlu): MLOps (hizmet/orkestrasyon/gözlemlenebilirlik), Veri Müh (özellikler/önbellekler/sözleşmeler), Veri Bilimi (model kartlar/kalibrasyon/eşikler).
A (Sorumlu): Veri/CDO Başkanı.
C (Consulted): Uyumluluk/DPO (PII/RG/AML/DSAR), Güvenlik (KMS/Sırlar/Denetim), SRE (SLO/Olaylar), Finans (ROI/Bütçeler).
I (Bilgilendirilmiş): Ürün/Pazarlama/Operasyon/Destek.
17) Uygulama Yol Haritası
MVP (3-6 hafta):1. Model kayıt defteri ve değişmez eserler; FastAPI/gRPC hizmeti + K8s/Helm.
2. P95/5xx/drift izleme, özellik denklik testi ile gölge başlatma.
3. Otomatik komut dosyası geri alma ve uyarılarla kanarya %10 - %50 - %100.
4. Model kart, kalibrasyon, beklenen maliyet eşiği ve Korkuluklar v1.
Faz 2 (6-12 hafta):- Özellik önbelleği, devre kesiciler, çalışma kitapları/DR egzersizleri.
- RPS/gecikme, maliyet panosu ve ters ibrazda otomatik ölçekleme.
- Adalet dilimi izleme, WORM yayın arşivi.
- Hizmet grafiği (adaylar - yeniden sıralama), arduvaz günlüğü eğilimi.
- Çok bölgeli, bireysel anahtarlarla ikamet (EEA/UK/BR).
- Auto-roll/overdrive, autogene kalite/kalibrasyon raporları.
18) Teslimat kontrol listesi
- Model kart dolu; Veri/özellikler/kalibrasyon/eşikler sürümlüdür.
- Sözleşmeler özelliği ve çevrimiçi/çevrimdışı eşdeğerlik testi yeşil.
- SLO: p95, 5xx, kapsama - gölgede yeşil ve %10 kanarya ≥ 24 saat.
- Uyarılar ve gösterge panoları (gecikme/hatalar/sürüklenme/beklenen maliyet) dahildir.
- Korkuluklar RG/AML ve çözüm denetimleri aktiftir; PII/residency buluştu.
- Tek tıklamayla geri alma ve runbook olayları test edildi.
- Maliyet bütçeye uyar; HPA ve önbellek yapılandırılmıştır.
19) Anti-kalıplar ve riskler
Kayıt defteri ve değişmez eserler olmadan manuel sunumlar.
Tutarsız çevrimiçi/çevrimdışı özellikler - satışlardaki tutarsızlıklar.
Gölge/kanarya yok - gizli regresyonlar.
Eşik beklenen maliyet değildir, kalibrasyon yoktur.
Zaman aşımı/önbellek olmadan eşzamanlı harici aramalar.
DR/geri alma yok, WORM yayın arşivi yok.
20) Alt satır
ML üretimi bir "model mücadelesi'değil, bir mühendislik platformudur: kayıt defteri ve sürümleri, güvenli yayılımlar (gölge/kanarya/mavi-yeşil), özellik ve kalibrasyon disiplini, gözlemlenebilirlik ve SLO, RG/AML için korkuluklar ve net bir geri alma planı. Bu oyun kitabını takip ederek, sürekli olarak kontrollü bir maliyetle iş değeri sağlayan hızlı, güvenilir ve uyumlu bir çıkarım elde edersiniz.