Logo GH

ML მოდელების განლაგება

1) როლი და მიზნები

განლაგება = პროდუქტისა და ოპერაციების საიმედო მიწოდება RG/AML/Legal და ბიუჯეტების შესაბამისად.
მიზნები: დაბალი ლატენტობა, მაღალი წვდომა, რეპროდუქცია, უსაფრთხოება და სწრაფი შექცევადობა (rollback).

2) Serving არქიტექტურა

2. 1 შაბლონები

ონლაინ (რეალური დრო): REST/gRPC, p95 50-150 ms პერსონალიზაციისთვის; 2-5 წმ RG/AML ალერტებისთვის.
Near real time: მიკრობატები 1-5 წთ (OLAP ფანჯრები).
Batch/offline: Gold ღამის ფანჯრები, WORM ექსპორტები რეგულატორისთვის.
In-process scoring: მსუბუქი მოდელის დაყენება მომსახურებაში (დაბალი შეფერხება).
Serverless: ცივი დაწყების ფუნქციები იშვიათი დავალებებისთვის.

2. 2 ტოპოლოგია

სინგლის მოდელის სერვისი მარტივი და სწრაფი იყო.
Ensemble/Graph (router - preprocess - model - postprocess) - რთული პლაკატები.
Sidecar Feature Fetcher- მა ონლაინ ფიჩები ამოიღო ქეში (Redis/Scylla).

3) სამოდელო რეესტრი და ვერსიები

რეგისტრი: 'მოდელის _ id', 'version', 'stage = {Staging, Production, Archived} ", ნივთები (წონა, პროცესორი, კალიბრაცია), მოთხოვნები (CPU/GPU/მეხსიერება), მოდელის ბარათი (მონაცემები, მეტრიკა, რისკები, fairness).
Imputable ნიმუშები: შინაარსი-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 და skaling

Eployment (ფრაგმენტი):
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 ტესტირებით.

მარშრუტიზაცია (იდეა):
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) Fichi online/offline: ეკვივალენტი

ტრანსფორმაციების ერთიანი ბიბლიოთეკა და Feature Store (ონლაინ + ოფლაინ).
ეკვივალენტობის ტესტი: MAE/MAPE ონლაინ ფინიკებსა და ოფლაინ სტანდარტს შორის მითითების ნიმუშზე.
კაში ფიჩი: Redis/Scylla, TTL ფანჯრის ნიშნებისთვის; ტაიმაუტები და fallbacks.

8) დაკვირვება, SLO და ალერტინგი

8. 1 SLI/SLO სახელმძღვანელო

ლატენტობა: p95-150 ms (პერსონალიზაცია), p99-300 ms; RG/AML ალერტები - 5 end-end.
წვდომა: 99 ევრო. 9%.
ინვესტიციის შეცდომა: 0. 5% 5xx; coverage ≥ 99%.
დრიფტი: PSI fich/score <ბარიერი, 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, საიდუმლო მენეჯერი; არ არის PII ლოგოებში/ტრეისებში.

10) კალიბრაცია, ბარიერები და გადაწყვეტილებების პოლიტიკა

კალიბრაცია (Platt/Isotonic), როგორც არტეფაქტი.
ექსპექტირებული ბარიერი; კონფიგურაცია რეესტრში/ფიგურის დროშაში.
Safety caps: მოქმედების ზედა/ქვედა საზღვრები, სახელმძღვანელო override კომპოზიციისთვის.

11) გამოტოვება, დეგრადაცია და DR

One-click rollback: მარშრუტის შეცვლა წინა 'მოდელზე _ ვერსიაზე ".
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) Cost ინჟინერია და პროდუქტიულობა

ბილიკის პროფილირება: ფიჩები (30-60%), მოდელი (20-40%), ქსელი/IO (10-30%).
ღირებულების შემცირება: ცხელი ფიჩის ქეშირება, კვოტები, lightweight მოდელები, INT8/FP16 (შესაფერისი), lazy-postprocess.
HPA RPS/CPU/latence, სახელმწიფო შეზღუდვა stream fich- ზე.
Chargeback: cost/request, cost/feature; ბიუჯეტები ბაზრებზე/გუნდებისთვის.

13) უსაფრთხო გამოშვებები და შესაბამისობა

პროდუქტების მზადყოფნის კრიტერიუმები: SLO მწვანეა shadow, არ არსებობს დრიფტი/გაჟონვა, მოდელის ბარათი ივსება, ჩვეულებრივ fairness სლაისები.
მარეგულირებელი: გამოშვების WORM არქივი (წონა, კალიბრაცია, ბარიერები, მეტრიკა, ტესტის ლოგოები), უცვლელი საექსპორტო მოხსენებები.
DSAR/RTBF: კონკრეტული მომხმარებლის კვალი ამოიღეთ ქეშიდან/ლოგოდან/fich.

14) QA გასვლამდე

ინტეგრაციის ტესტები: API კონტრაქტი, fick სქემები, „ცარიელი/ექსტრემალური“ შემთხვევები.
დატვირთვა: p99, განაწილების კუდები, ბურსტის ტრაფიკი.
ონლაინ/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 (კონსოლიდირებული): კომპლექტი/DPO (PII/RG/AML/DSAR), უსაფრთხოება (KMS/საიდუმლოებები/აუდიტი), SRE (SLO/ინციდენტები), Finance (ROI/ბიუჯეტები).
I (ინფორმირებული): პროდუქტი/მარკეტინგი/ოპერაციები/მხარდაჭერა.

17) საგზაო რუკა

MVP (3-6 კვირა):

1. სამოდელო რეესტრი და იმუნური ნივთები; FastAPI/gRPC სერვისი + K8s/Helm.

2. Shadow გაშვება p95/5xx/draif მონიტორინგით, fich ექვივალენტურობის ტესტი.

3. Canary 10% - 50% - 100% გამოტოვება და ალერტები.

4. მოდელის ბარათი, კალიბრაცია, ექსპექტირებული ბარიერი და Guardrails v1.

ეტაპი 2 (6-12 კვირა):
  • Fich ქეში, circuit breakers, runbooks/DR სწავლებები.
  • ავტო სკეილინგი RPS/latency, cost dashboard და chargeback.
  • Fairness Slys მონიტორინგი, WORM გამოშვების არქივი.
ეტაპი 3 (12-20 კვირა):
  • Earl of Serving (re-rank- ის კანდიდატები), slate-logation propensity.
  • მულტფილმის რეგიონი, რეზიდენცია (EEA/UK/BR) ცალკეული კლავიშებით.
  • ავტომატური გადაკვეთა/გადატვირთვა დრიფტის მიხედვით, ხარისხის/კალიბრაციის ანგარიშების ავტოგენი.

18) Prod List მზადყოფნა

  • მოდელის ბარათი სავსეა; მონაცემები/ფიჩები/კალიბრაცია/ბარიერები განახლებულია.
  • კონტრაქტები fich და ეკვივალენტობის ტესტი ონლაინ/offline - მწვანე.
  • SLO: p95, 5xx, coverage - მწვანე shadow და 10% canary - 24:
  • ალერტები და დაშბორდები (ლატენტობა/შეცდომები/დრიფტი/ექსპექტირებული-საყრდენი) შედის.
  • Guardrails RG/AML და გადაწყვეტილებების აუდიტი აქტიურია; PII/რეზიდენტობა დაცულია.
  • ერთი კლიკის როლბაკი და runbook ინციდენტები ტესტირებულია.
  • ღირებულება ჯდება ბიუჯეტში; HPA და ქეში.

19) ანტი შაბლონები და რისკები

ხელით გადაყლაპვა რეესტრის გარეშე და იმუნური არტეფაქტები.
არაკოორდინირებული ონლაინ/offline ფიჩები - გაყიდვების შეუსაბამობები.
Shadow/canary- ის არარსებობა - ფარული რეგრესიები.
ბარიერი არ არის გაფართოებული საფარით, არ არის კალიბრაცია.
სინქრონული გარე lookups ტაიმაუტის/ქეშის გარეშე.
არა DR/rollback, არ არსებობს WORM გამოშვების არქივი.

20) შედეგი

ML წარმოება არ არის „მოდელის გამოწვევა“, არამედ საინჟინრო პლატფორმა: რეესტრი და ვერსიები, უსაფრთხო გამოსხივება (shadow/canary/blue-green), წინა და კალიბრაციის დისციპლინა, დაკვირვება და SLO, guardrails RG/AML - სთვის და მკაფიქსი. ამ ფლეიბუკის შემდეგ, თქვენ მიიღებთ სწრაფ, საიმედო და კომპოზიციურ ინვესტიციას, რომელიც სტაბილურად მოაქვს ბიზნესის ღირებულებას კონტროლირებადი ღირებულებით.

Contact

დაგვიკავშირდით

დაგვიკავშირდით ნებისმიერი კითხვის ან მხარდაჭერისთვის.ჩვენ ყოველთვის მზად ვართ დაგეხმაროთ!

Telegram
@Gamble_GC
ინტეგრაციის დაწყება

Email — სავალდებულოა. Telegram ან WhatsApp — სურვილისამებრ.

თქვენი სახელი არასავალდებულო
Email არასავალდებულო
თემა არასავალდებულო
შეტყობინება არასავალდებულო
Telegram არასავალდებულო
@
თუ მიუთითებთ Telegram-ს — ვუპასუხებთ იქაც, დამატებით Email-ზე.
WhatsApp არასავალდებულო
ფორმატი: ქვეყნის კოდი და ნომერი (მაგალითად, +995XXXXXXXXX).

ღილაკზე დაჭერით თქვენ ეთანხმებით თქვენი მონაცემების დამუშავებას.