ML үлгілерін орналастыру
1) Рөлі мен мақсаттары
Өрістету = RG/AML/Legal және бюджеттерді сақтай отырып, инференсті өнімге және операцияларға сенімді жеткізу.
Мақсаттары: төмен жасырындылық, жоғары қолжетімділік, қайталану, қауіпсіздік және жылдам қайтымдылық (rollback).
2) Сервинг сәулеті
2. 1 Үлгілер
Online (real-time): REST/gRPC, p95 персоналдандыру үшін 50-150 мс; RG/AML-алерттер үшін 2-5 с ≤.
Near-real-time: микробатчи 1-5 мин (OLAP-витриналар).
Batch/offline: Gold түнгі витриналар, реттегіш үшін WORM-экспорт.
In-process scoring: лайт моделін сервиске кірістіру (төмен кідіріс).
Serverless: сирек тапсырмалар үшін суық бастау функциялары.
2. 2 Топологиялар
Single Model Service → оңай және жылдам.
Ensemble/Graph (router → preprocess → model → postprocess) → күрделі пайплайндар.
Sidecar Feature Fetcher → кэштен online-фичтерді шығарады (Redis/Scylla).
3) Модельдік тізілім және нұсқалар
Registry: 'model _ id', 'version', 'stage = {Staging, Production, Archived}', артефакттар (салмақтар, препроцессор, калибрлеу), талаптар (CPU/GPU/жад), модель карточкасы (деректер, метрика, тәуекелдер, fairness).
Иммутабельді артефактілер: content-hash; WORM көшірмелері.
Шығару саясаты: тек тізілім және декларативтік манифесттер арқылы.
4) Контейнерлеу және орау
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"]
Сервер (FastAPI + gRPC, идея):
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/Helm және автоскейлинг
Deployment (үзік):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 бойынша):
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) Қайтарып алу стратегиялары
Shadow (қараңғы іске қосу): жаңа үлгі сұраулардың көшірмелерін өңдейді, жауаптар еленбейді; метриканы/жасырындылықты/құнды салыстыру.
Canary: 1-10% трафик → 25% → 50% → 100% жасыл SLO; тозу кезінде автоматты түрде домалату.
Blue-Green: параллель ағындар; жедел бағыттау свитші.
Gradual Feature Flag: нарықтар/тенанттар/құрылғылар бойынша бағыттау.
A/B/n: sequential testing бар онлайн эксперименттер.
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) Online/offline фичтері: баламалылығы
Бірыңғай трансформациялар кітапханасы және Feature Store (online + offline).
Баламалық тест: онлайн-фич пен эталондық іріктемедегі офлайн-эталон арасындағы MAE/MAPE.
Кэш фич: Redis/Scylla, терезе белгілеріне арналған TTL; таймауттар мен fallbacks.
8) Бақылау, SLO және алертинг
8. 1 SLI/SLO бағдарлары
Жасырындылығы: p95 ≤ 150 мс (дербестендіру), p99 ≤ 300 мс; RG/AML алерты ≤ 5 с end-to-end.
Қолжетімділік: 99 ≥. 9%.
Инференс қатесі: ≤ 0. 5% 5xx; coverage ≥ 99%.
Дрейф: PSI фич/скора <табалдырық, ECE (калибрлеу) тұрақты.
Бизнес: uplift Net Revenue, fraud saved, time-to-intervene.
8. 2 Өлшемдер (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
Алерталар (фрагмент):
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`, `guardrail`.
9) RG/AML guardrails және қауіпсіздік саясаты
Pre-/Post-filter: тыйым салынған әрекеттер маскалары (көрсету жиілігі, cooldown, агрессивті офферлерге тыйым салу).
Policy Shielding: RG → жұмсақ интервенция/үзіліс табалдырығынан жоғары.
Аудит: 'policy _ id', 'propensity', 'mask', 'decision', 'reason'.
PII және резиденттілік: ID орнына токендер, EEA/UK/BR-дағы жеке шифрлау және кластер кілттері; негізсіз кросс-өңірлік join 'оларға тыйым салу.
Құпиялар: KMS/CMK, Secret Manager; логдарда/трестерде PII жоқ.
10) Калибрлеу, табалдырықтар және шешімдер саясаты
Калибрлеу (Platt/Isotonic) артефакт ретінде.
expected cost бойынша шегі; тізілімде/фича-жалауда конфигурацияланатын.
Safety caps: әрекеттің жоғарғы/төменгі шегі, комплаенс үшін қолмен override.
11) Кері қайту, тозу және DR
One-click rollback: бағытты алдыңғы 'model _ version' дегенге ауыстыру.
Runbook: сценарийлер «жасырындылық ↑», «қателер 5xx ↑», «дрейф/калибрлеу сынған», «сыртқы фич-провайдер қол жетімді емес».
Ақауларды оқшаулау: circuit breaker, retry/backoff, соңғы валидті шешімнің кэші.
DR: артефактілердің/тізілімнің бэкаптары, «жылы» аймаққа репликалау, оқу-жаттығулар.
python try:
features = fetch_features(timeout=30)
except TimeoutError:
features = last_known_good(user_id) # fallback
12) Cost-инжиниринг және өнімділік
Жолды бейіндеу: фичи (30-60%), модель (20-40%), желі/IO (10-30%).
Құнын төмендету: ыстық фичтерді кэштеу, реплеяларға квоталар, lightweight-модельдер, INT8/FP16 (егер орынды болса), lazy-postprocess.
RPS/CPU/latency үшін HPA, стрим-фичте state-size шектеу.
Chargeback: cost/request, cost/feature; нарықтарға/командаларға арналған бюджеттер.
13) Қауіпсіз релиздер және сәйкестігі
Өнімділік-дайындық критерийлері: SLO shadow-да жасыл, дрейф/ағым жоқ, модель карточкасы толтырылған, fairness-слайстар қалыпты.
Реттегіш: WORM-релиз мұрағаты (салмақ, калибрлеу, табалдырықтар, өлшемдер, тест логтары), өзгермейтін экспорттық есептер.
DSAR/RTBF: кэштерден/лог/фич.
14) QA домалату алдында
Интеграциялық тесттер: келісімшарт API, сызбалар, «бос/шеткі» кейстер.
Жүктемелі: p99, бөлу қалдықтары, burst-трафик.
Баламалық тест online/offline.
Chaos-тесттер: фич-кэшті/базаны өшіру, сыртқы сервистердің таймауттары.
15) Конфигурация мысалдары
Канареялық маршрутизациясы бар Ingress (идея):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}
Модель денсаулығы (эндпоинт):
python
@app. get("/healthz")
def health():
return {"ok": True, "model_version": "1. 8. 3", "registry_sig_ok": verify_signature()}
16) Процестер және RACI
R (Responsible): MLOps (сервинг/оркестрлеу/бақылау), Data Eng (фичтер/кэштер/келісімшарттар), Data Science (үлгілер карточкалары/калибрлеу/табалдырықтар).
A (Accountable): Head of Data / CDO.
C (Consulted): Compliance/DPO (PII/RG/AML/DSAR), Security (KMS/құпиялар/аудит), SRE (SLO/инциденттер), Finance (ROI/бюджеттер).
I (Informed): Өнім/Маркетинг/Операциялар/Қолдау.
17) Енгізу жол картасы
MVP (3-6 апта):1. Модельдік тізілім және иммутабельді артефактілер; FastAPI/gRPC-сервис + K8s/Helm.
2. Shadow-мониторинг р95/5хх/дрейфі бар ұшыру, фич.
3. Canary 10% → 50% → 100% автоскрипт пен алертпен.
4. Модель карточкасы, калибрлеу, expected-cost табалдырығы және Guardrails v1.
2-фаза (6-12 апта):- Фича-кэш, circuit breakers, runbooks/DR-жаттығулар.
- Автоскейлинг RPS/latency, cost-дашборд және chargeback.
- Fairness слайс-мониторингі, WORM-релиздер мұрағаты.
- Сервинг бағаны (кандидаттар → re-rank), пропенситті slate-логирлеу.
- Жеке кілттері бар көп өңір, резиденттік (ЕЭА/UK/BR).
- Сапа/калибрлеу есептерінің автогені, дрейфі бойынша автоматтандырылған/аударылған.
18) Өнiм дайындығының чек-парағы
- Модель карточкасы толтырылған; деректер/фичтер/калибрлеу/табалдырықтар нұсқаланған.
- Келісімшарттар фич және online/offline баламалық тесті - жасыл.
- SLO: p95, 5xx, coverage - shadow жасыл және 10% canary ≥ 24 сағ.
- Алерттар мен дашбордтар (жасырындылық/қателер/дрейф/expected-cost) қосылған.
- Guardrails RG/AML және шешімдердің аудиттері белсенді; PII/резиденттік сақталған.
- One-click rollback және runbook оқиғалар сыналған.
- Құны бюджетке жазылады; HPA және кэш теңшелді.
19) Анти-паттерндер және тәуекелдер
Тізілімсіз және иммутабельді артефактілерсіз қолмен шығару.
Келісілмеген online/offline фичи → өнімдегі алшақтықтар.
shadow/canary → жасырын регрессия жоқ.
Шекті expected cost бойынша емес, калибрлеу жоқ.
Таймаусыз/кэшсіз синхронды сыртқы lookups.
DR/rollback жоқ, WORM архиві жоқ.
20) Қорытынды
ML шығарылымы - бұл «модельді шақыру» емес, инженерлік платформа: тізілім және нұсқалар, қауіпсіз шығулар (shadow/canary/blue-green), фич және калибрлеу тәртібі, бақылау және SLO, RG/AML үшін guardrails және нақты кері қайтару жоспары. Осы плейбукке сүйене отырып, сіз тез, сенімді және комплаентті инференске ие боласыз, ол тұрақты түрде бақыланатын құнмен бизнес-құндылық әкеледі.