ML modellarini joylashtirish
(Bo’lim: Texnologiyalar va infratuzilma)
Qisqacha xulosa
ML ning ishonchli prodakshn-joylashtirilishi: takrorlanadigan artefaktlar (model/tokenayzer/ ), standartlashtirilgan serving (Triton/KServe/vLLM), xavfsiz reliz-jarayon (kanari/blu-grin/shadow), kuzatilganlik (latentlik, sifat, drift) va hodisalarga runbook’lar. iGaming uchun past kechikish (antifrod/personalizatsiya), qattiq SLO, PII/komplayens va qiymatni nazorat qilish juda muhimdir.
1) Joylashtirish rejimlari
Batch (oflayn): tungi/soatlik vazifalar (skoring retrospektivlari, segmentlarni yangilash). Arzon, oldindan aytish mumkin.
Online (sinxron API): antifrod, shaxsiylashtirish, tavsiyalar, LLM-maslahatlar. p95 SLA talab qiladi (masalan, 100-300 ms ≤).
Stream (near-real-time): CRM signallari va triggerlari uchun 1-60 sek (Flink/Spark/Kafka Streams) derazalar.
Gibrid: onlayn tezkor qo’pol skorer + oflayn qayta hisoblash/kalibrlash.
2) Artefaktlar va qadoqlash
Modelli artefaktlar: og’irlik, tokenizator, preprotsessing/post-proprotsessing konfigi, dataset/kod versiyasi.
Formatlar: PyTorch/TF SavedModel, muvofiqlik uchun ONNX, tezlashtirish uchun TensorRT-engine, LLM kvantlash uchun GGUF/awq/gptq.
Konteynyerlar: Docker OCI-pinned qaramliklari bo’lgan tasvirlar; ko’p platformli teglar (CPU/GPU).
Immutable-relizlar: teglash’model: fraud-v3. 2. 1`, `image: fraud:3. 2. 1`.
3) Serving platformasi
Triton Inference Server: multimodel, dinamik batching, ensemble-pipelines.
KServe (K8s-nativ): avto-skeyl (HPA/KPA), kanari/shadou, oʻz runtime.
vLLM/TGI (LLM): continuous batching, KV-kesh, spekulyativ dekoding.
Fichestor: online (ms-SLA) + offline uchun fich (feature parity).
yaml apiVersion: serving. kserve. io/v1beta1 kind: InferenceService metadata: { name: fraud }
spec:
predictor:
canaryTrafficPercent: 15 model:
modelFormat: { name: triton }
storageUri: s3://models/fraud/v3. 2. 1/
resources: { limits: { nvidia. com/gpu: "1" } }
4) Relizlar strategiyasi
Blue-Green: ikkita bir xil stek, bir zumda trafikni o’zgartirish, oddiy orqaga qaytish.
Canary: SLO/sifat geytlari bo’yicha (1% → 5% → 25% → 100%) trafikni bosqichma-bosqich oshirish.
Shadow: yangi model trafikning nusxasini oladi, javoblar hech narsaga ta’sir qilmaydi - xavfsiz baholash.
A/B-testlar: biznes-metrikani (konvertatsiya, ushlab turish), statistik ahamiyatini o’lchaymiz.
map $request_id $route {
default old;
"~ canary" new; # 5-15% by flag/cook/feature-toggle
}
5) SLO va ishchi budjetlar
Onlayn antifrod/personalizatsiya: p95 ≤ 100-150 ms, p99 ≤ 250-400 ms.
LLM maslahatlar (128-512 token): p95 ≤ 300-800 ms birinchi token ishlab chiqarish, tokens/s ≥ maqsadli.
Foydalanish imkoniyati: 99 ≥. Kritik yo’llar uchun 9%.
Sifati: AUC/PR-AUC/Top-K @N ≥ chegara;% zaharli/noto’g "ri javoblar ≤ X.
Qiymati: $/1k so’rovlar yoki $/1k tokenlar - budjet doirasida.
6) Modellar uchun CI/CD
Konveyer:1. Train/finetune → reyestrdagi model (meta maʼlumotlar: maʼlumotlar/kod/metrika/litsenziya).
2. Pack & Validate: unit-testlar prepros ./post-prots., uyg’unlik API, yuklash testlari (latency/tokens/s).
3. Canary Deploy: 1-5% trafik; kuzatilganlik (SLO/sifat/qiymat).
4. Promote/Rollback.
GitHub Actions namunasi:yaml jobs:
build-serve:
steps:
- run: make export_onnx && make docker_build
- run: pytest tests/serve --maxfail=1
- run: python perf_check. py --p95 120 --fail-on-regress
- run: kubectl apply -f kserve-canary. yaml
7) Kechikish va ruxsatnomani optimallashtirish
Batching/mikrobatching (Triton/vLLM), so’rovlarning parallelligi, CPUda pre-/post-processing.
Kalibrlash bilan kvantlash (INT8/FP8/INT4); TensorRT/ONNX Runtime kompilyatsiyasi.
Kesh: fich (online-fichestor/Redis), natijalar va LLM uchun KV-kesh.
Warmup: deployda tarozi/keshni isitish; avtoskeyl uchun «iliq» podalar.
Taym-budjet: erta to’xtash, tokenlarni cheklash/beam, haroratni moslashtirish.
8) Kuzatuvchanlik: telemetriya, dreyf, sifat
SRE-metriklar: RPS, p50/p95/p99, xatolar (5xx/4xx), GPU/CPU util, xotira, navbat, batch-fill.
ML-metriklar: AUC/PR-AUC, calibration error, coverage, tokens/s, javob uzunligi, kesh-hit.
Dreyf: PSI/JS-divergensiya kirish/chiqish, taqsimotning siljishi monitoringi; alertlar.
Sifat onlayn: nazorat oltin misollar, javoblar sempling, avtomatik RAG-score/LLM uchun toksiklik.
Jurnallash: prompt/javob (anonimlashtirish bilan), trace_id, model versiyasi.
inference_latency_ms_bucket{model="fraud-v3. 2. 1",le="100"} 12345 inference_qps{model="fraud-v3. 2. 1"} 450 tokens_per_second{model="llm-help-v1"} 210
9) Chichlarni boshqarish va kelishish
Feature-parity: xuddi shu transformatsiyalar offline/online; fichlarni kod sifatida versiya qiling.
Onlayn fichestor: ms-SLA, TTL, upsert, idempotency; kesh servingga yaqinroq.
Backfill/refresh: onlayn skoring oflayn metrlarga mos kelmasligi uchun reja.
10) Xavfsizlik, PII va litsenziyalar
PII: tokenizatsiya/niqoblash, mintaqalar bo’yicha segmentatsiya (EU/TR/LATAM), tinch/tranzit shifrlash.
Sirlar/kalitlar: KMS/Secrets Manager, tasvirlarda sir yo’q.
LLM siyosati: kontent filtrlari, xavfsiz stoperlar, red-teaming.
Litsenziyalar: datasetlar/vaznlar shartlarini, redistributsiya/tijorat taqiqlarini tekshiring.
Izolyatsiya: namespace-RBAC, kvotalar, GPU-pullar uchun taints/tolerations.
11) Avtoskeyl va QoS
Autoscaling: RPS/navbat/latency/GPU-util; min-ready-pods.
QoS sinflari: tanqidiy onlayn (anti-fraud)> LLM chat> eksperimentlar. Preemption tanqidchilar foydasiga.
Multiregion: latency-based routing, isitilgan vazn keshlari, fich replikatsiyasi.
12) Runbooks va hodisalar
O’sish p99: tekshirish batch-fill, navbat, GPU-util, kesh-miss; agressiv batching/beam/tokenlarni pasaytirish.
Sifat pasayib ketdi: oldingi versiyaga qaytish, shadow yoqish, drift manbalarini tuzatish.
Narxi o’sib bormoqda: kvantizatsiyani/TensorRT ni o’z ichiga oladi, batchni oshiradi, fichi/keshni optimallashtiradi, RAG/natija-kesh orqali LLM-generatsiyalar chastotasini pasaytiradi.
PII-hodisa: darhol stop-the-line, artefaktlarni chaqirib olish, kirish auditi, tartib bo’yicha regulyatorga hisobot berish.
13) Namunalar
Triton - dynamic batching (parcha):text dynamic_batching { preferred_batch_size: [4, 8, 16, 32]
max_queue_delay_microseconds: 2000 }
instance_group { kind: KIND_GPU count: 2 }
vLLM ishga tushirish (gʻoyalar):
--tensor-parallel-size 2
--max-num-seqs 512
--gpu-memory-utilization 0. 9
API (psevdokod) mosligini tekshirish:
python resp = client. score({"features": f}) # v3. 2. 1 assert set(resp. keys()) >= {"score","version","latency_ms"}
14) Joriy etish chek-varaqasi
1. SLO/SLA (latency/availability/quality/cost) ni aniqlang.
2. Artefaktlar va modellar reyestrini (versiyalar, meta maʼlumotlar) standartlashtiring.
3. Serving steki (Triton/KServe/vLLM) va fichestorni tanlang.
4. Kanari/blu-grin/shadow va avtomatik geytlarni moslash.
5. CI/CD’ni yarating: muvofiqlik testlari, perf regressiyalari, xavfsiz reklama.
6. Kuzatishni (SRE + ML-metriklar), dreyf monitoringini va alertlarni kiriting.
7. PII/xavfsizlik/litsenziya va auditni ta’minlang.
8. Avtoskayl/QoS va ko’p mintaqaviy siyosatni moslash.
9. Runbook’ni tayyorlang va game-day’ni o’tkazing.
10. Qiymatni boshqarish: batching, kvantizatsiya, kesh, RAG.
15) Antipatternlar
Kanari/kuzatuvsiz «bo’lgani kabi» → kutilmagan hodisalar.
Kelishilmagan fichlar offline/online → metrik tafovut.
Perf-testlar va limitlar yo’qligi → p99 «suzmoqda».
Prompt/javoblarni anonimlashtirmasdan loglash → PII xavfi.
QoS’siz hamma narsa uchun bitta umumiy GPU puli → tanqidiy onlayn azob chekmoqda.
Artefaktlarning orqaga qaytishi va snapshotlari yo’q → uzoq nuqsonlar.
Yakunlar
ML-modellarni muvaffaqiyatli joylashtirish - bu konteynerlashtirilgan artefaktlar, standartlashtirilgan serving, xavfsiz reliz jarayoni (canary/blue-green/shadow), qattiq SLO va sifat/drift/qiymat kuzatilishi. Fichestor, perf-geytli CI/CD, PII gigiyena, avtoskeyl va QoS qo’shing - va sizning antifrod/personalizatsiya/LLM xizmatlaringiz p99 va byudjet bo’yicha oldindan aytib bo’ladigan iGaming yuklamalarini barqaror ushlab turadi.