ML моделдерин жайгаштыруу
1) ролу жана максаттары
Жайгаштыруу = RG/AML/Юридикалык жана бюджеттерди сактоо менен продукт жана иш-жылы ишенимдүү жеткирүү.
Максаттары: төмөн латенттүүлүк, жогорку жеткиликтүүлүк, кайра ойнотуу, коопсуздук жана тез артка кайтаруу (rollback).
2) Архитектура Serving
2. 1 Үлгүлөр
Online (реалдуу убакыт): REST/gRPC, p95 персоналдаштыруу үчүн 50-150 мс; ≤ RG/AML-алерттер үчүн 2-5 с.
Near-реалдуу убакыт: микробатчи 1-5 мин (OLAP-дисплей).
Batch/оффлайн: Gold түнкү витриналары, WORM экспорту үчүн жөнгө салуучу.
In-process scoring: жарык моделин кызматка киргизүү (төмөн кечигүү).
Serverless: сейрек милдеттери үчүн муздак баштоо менен өзгөчөлүктөрү.
2. 2 Топология
Single Model Service → жөнөкөй жана тез.
Ensemble/Graph (router → preprocess → model → postprocess) → татаал пайплайн.
Sidecar Feature Fetcher → кэшден онлайн чүчүкулак чыгарат (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"]
Server (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 жана автоскейлинг
Деплоймент (фрагмент):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) Онлайн/оффлайн чүчүкулак: эквиваленттүүлүк
Трансформациялардын бирдиктүү китепканасы жана Feature Store (онлайн + оффлайн).
Эквиваленттик сыноо: MAE/MAPE онлайн жана эталондук үлгүдөгү оффлайн стандарттын ортосунда.
Cache fich: Redis/Scylla, терезе белгилери үчүн TTL; тайм жана fallbacks.
8) байкоо, SLO жана alerting
8. 1 SLI/SLO багыттары
Жашыруун: p95 ≤ 150 мс (жекелештирүү), p99 ≤ 300 мс; RG/AML Алерт ≤ 5 менен end-to-end.
Жеткиликтүү: ≥ 99. 9%.
жүрөктүн катасы: ≤ 0. 5% 5xx; coverage ≥ 99%.
Дрейф: PSI fich/skora <босого, 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 коопсуздук жана коопсуздук саясаты
Pre-/Post-filter: тыюу салынган иш-маска (көрсөтүү жыштыгы, cooldown, агрессивдүү offers тыюу).
Policy Shielding: RG → жумшак интервенция/тыныгуу босогосунан жогору ылдамдык.
Аудит: логин 'policy _ id', 'propensity', 'mask', 'decision', 'reason'.
PII жана резиденттүүлүк: ЭЭА/UK/BR боюнча ID, жеке шифрлөө жана кластердин ордуна белгилер; негизсиз кросс-региондук join's тыюу салуу.
Secrets: 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: артефакттардын/реестрдин артефакттары, "жылуу" аймакка репликация, машыгуулар.
Circuit breaker
python try:
features = fetch_features(timeout=30)
except TimeoutError:
features = last_known_good(user_id) # fallback
12) Наркы-инженердик жана аткаруу
Profile жол: Fich (30-60%), модель (20-40%), тармак/IO (10-30%).
наркын төмөндөтүү: Hot Fich кэш, репликалар боюнча квота, lightweight моделдер, INT8/FP16 (ылайыктуу болсо), lazy-postprocess.
RPS/CPU/latency боюнча HPA, стрим-фич боюнча мамлекеттик-өлчөмүн чектөө.
Chargeback: cost/request, cost/feature; базарларга/командаларга бюджеттер.
13) Коопсуз релиздер жана шайкештик
Прод-даярдык критерийлери: SLO shadow жашыл, эч кандай дрейф/агып, картаны модели толтурулган, нормалдуу fairness-слайддар.
жөнгө салуучу: WORM-релизи Archive (салмагы, калибрлөө, босоголор, өлчөө, сыноо Логи), өзгөрүлбөс экспорттук отчеттор.
DSAR/RTBF: кэштерден/логдордон/fich белгилүү бир колдонуучунун изин алып салуу жол-жоболору.
14) сордуруп чейин QA
Интеграциялык тесттер: API келишими, схемалар, "бош/экстремалдык" учурлар.
Жүк: p99, куйруктары бөлүштүрүү, бурст-трафик.
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}
Ден соолук модели (EndPoint):
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-ишке мониторинг p95/5xx/drift, сыноо барабар fich.
3. Canary 10% → 50% → 100% autoscript кайтаруу жана alerts менен.
4. Карта модели, калибрлөө, expected-cost босого жана Guardrails v1.
2-этап (6-12 жума):- Фича-кэш, circuit breakers, runbooks/DR-машыгуулар.
- Автоскейлинг боюнча RPS/latency, cost-dashboard жана chargeback.
- Слайс мониторинг fairness, WORM-релиздер архиви.
- Count Serving (талапкерлер → re-rank), slate-логин пропенсити.
- Көп аймак, резиденттүүлүк (EEA/UK/BR) өзүнчө ачкычтар менен.
- Auto-жылдыруу/drift, autogenic сапаты отчеттор/калибрлөө.
18) Прод-даярдыктын чек-тизмеси
- Модель картасы толтурулган; маалыматтар/чиптер/калибрлөө/босоголор версияланган.
- Fich келишимдер жана онлайн/offline барабар сыноо - жашыл.
- SLO: p95, 5xx, coverage - жашыл көлөкө жана 10% canary ≥ 24 саат.
- Алерт жана dashboard (жашыруун/каталар/drift/expected-cost) кирет.
- Guardrails RG/AML жана чечимдерди текшерүү активдүү; PII/резиденттүүлүк сакталат.
- Бир-click rollback жана runbook окуялар сыналган.
- наркы бюджетке туура келет; HPA жана кэш орнотулган.
19) Анти-үлгүлөрү жана тобокелдиктер
Реестрсиз жана иммутабелдүү артефактсыз кол менен чыгаруулар.
Макулдашылбаган онлайн/оффлайн чүчүкулак → продукт айырмачылыктар.
Жок shadow/canary → жашыруун регрессия.
босого expected cost эмес, эч кандай калибрлөө.
убакыт/кэш жок синхрондуу тышкы lookups.
Эч кандай DR/rollback, эч кандай WORM-релиз Archive.
20) Жыйынтык
ML Production "чакырык модели" эмес, жана инженердик платформа болуп саналат: реестр жана нускалары, коопсуз кайра (shadow/canary/blue-green), тартип fich жана калибрлөө, байкоо жана SLO, RG/AML үчүн guardrails жана так кайра план. Бул ойнотмо ээрчип, Сиз туруктуу контролдонуучу наркы менен бизнес баалуулугун алып тез, ишенимдүү жана комплаенс inference алат.