Logo GH

Implementarea modelelor ML

1) Rol și obiective

Implementare = Furnizarea de deducții fiabile pentru produs și operațiuni în timp ce îndeplinesc RG/AML/Legal și bugete.
Obiective: latență scăzută, disponibilitate ridicată, reproductibilitate, siguranță și rollback rapid.

2) Deservirea arhitecturilor

2. 1 Modele

Online (în timp real): REST/gRPC, p95 50-150 ms pentru personalizare, ≤2 -5 s pentru alerte RG/AML.
Aproape în timp real: micro-meciuri 1-5 min (OLAP-vitrine).
Lot/offline: Vitrine de aur pentru noapte, exporturi WORM pentru regulator.
Scoring în proces: încorporarea modelului de lumină în serviciu (latență scăzută).
Serverless: caracteristici de pornire la rece pentru sarcini rare.

2. 2 Topologii

Single Model Service → simplu și rapid.
Ansamblu/Grafic (router → preprocess → model → postproces) → conducte complexe.
Sidecar Feature Fetcher → trage caracteristici online din cache-uri (Redis/Scylla).

3) Înregistrarea modelului și versiunile

Registry: 'model _ id',' version ',' stage = {Staging, Production, Archived} ', artefacte (greutăți, preprocesor, calibrare), cerințe (CPU/GPU/memorie), model card (date, valori, riscuri, corectitudine).
Artefacte imuabile: conținut-hash; VIERME copii ale versiunilor.
Politica de ieșire: numai prin registru și manifestări declarative.

4) Containerizare și ambalare

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, idee):
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 și Autoscaling

Implementare (fragment):
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 (de 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) Strategii de lansare

Shadow: noul model procesează copii ale cererilor, răspunsurile sunt ignorate; comparație metrică/latență/cost.
Canare: 1-10% din trafic → 25% → 50% → 100% cu SLO-uri verzi; rollback automat pe degradare.
Albastru-verde: stive paralele; comutator de rutare instantanee.
Pavilion caracteristică treptată: Piață/chiriaș/dispozitiv de rutare.
A/B/n: experimente online cu teste secvențiale.

Rutare (idee):
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) Caracteristică online/offline: echivalență

Biblioteca de transformare unificată și Feature Store (online + offline).
Test de echivalență: MAE/MAPE între caracteristicile online și referința offline pe un eșantion de referință.
Caracteristică cache: Redis/Scylla, TTL pentru caracteristicile ferestrei; timeout și fallback.

8) Observabilitate, SLO și alertare

8. 1 repere SLI/SLO

Latenta: p95 ≤ 150 ms (personalizare), p99 ≤ 300 ms; Alerte RG/AML ≤ 5 cu end-to-end.
Disponibilitate: ≥ 99. 9%.
Concluzie eroare: ≤ 0. 5% 5xx; acoperire ≥ 99%.
Drift: PSI caracteristică/rata <prag, ECE (calibrare) este stabil.
Бизнес: ridicare venituri nete, fraudă economisită, timp de intervenție.

8. 2 Metrics (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
Alerte (fragment):
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 parapete și politica de securitate

Pre-/Post-filtru: măști de acțiuni interzise (frecvența impresiilor, cooldown, interzicerea ofertelor agresive).
Policy Shielding: viteză peste pragul RG → intervenție ușoară/pauză.
Audit: logare 'policy _ id',' înclinaţie ',' mască ',' decizie ',' motiv '.
PII și rezidență: jetoane în loc de ID, criptare separată și chei de cluster pe SEE/UK/BR; interzicerea regiunii transversale se alătură fără justificare.
Secretele: KMS/CMK, Secret Manager; fără PII în jurnale/piste.

10) Calibrarea, pragurile și politica de decizie

Calibrarea (Platt/Isotonic) ca artefact.
Prag după costul preconizat; configurabil în steagul registry/feature.
Capacele de siguranță: limite de acțiune superioare/inferioare, suprascriere manuală pentru conformitate.

11) Rollback-uri, degradare și DR

Rollback cu un singur clic - Comută traseul la „model _ version” anterior.
Runbook: scripturi "latentnost↑", "erori 5xx↑", "drift/calibrare rupt'," furnizor de caracteristici externe indisponibil ".
Izolarea defecțiunilor: întrerupător de circuit, reîncercare/backoff, memoria cache a ultimei soluții valide.
DR: copii de rezervă ale artefactelor/registru, replicarea într-o regiune „caldă”, exerciții.

Întrerupător de circuit (pseudocod):
python try:
features = fetch_features(timeout=30)
except TimeoutError:
features = last_known_good(user_id) # fallback

12) Ingineria costurilor și performanța

Profilare traseu: caracteristici (30-60%), model (20-40%), rețea/IO (10-30%).
Reducerea costurilor: cache caracteristici fierbinți, reluarea cotelor, modele ușoare, INT8/FP16 (dacă este cazul), leneș-postprocess.
HPA pe RPS/CPU/latență, restricție de mărime de stat pe caracteristica flux.
Chargeback: cost/cerere, cost/caracteristică; bugete pentru piețe/echipe.

13) Eliberări sigure și conformitate

Criterii de pregătire a produsului: verde SLO pe umbră, fără derivă/scurgere, cardul modelului este plin, feliile de corectitudine sunt normale.
Regulator: arhiva WORM a eliberării (greutăți, calibrare, praguri, valori, jurnale de testare), rapoarte de export neschimbabile.
DSAR/RTBF: proceduri pentru eliminarea urmelor unui anumit utilizator din cache-uri/jurnale/caracteristici.

14) QA înainte de rulare

Teste de integrare: contract API, diagrame de caracteristici, cazuri goale/extreme.
Încărcare: p99, cozi de distribuție, trafic izbucnit.
Testul de echivalență online/offline.
Teste de haos: oprirea cache-ului/bazei caracteristicilor, timeout-urile serviciilor externe.

15) Exemple de configurare

Intrare cu rutare canar (idee):
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 de sănătate (criteriu final):
python
@app. get("/healthz")
def health():
return {"ok": True, "model_version": "1. 8. 3", "registry_sig_ok": verify_signature()}

16) Procese și RACI

R (Responsabil): MLOps (servire/orchestrare/observabilitate), Data Eng (caracteristici/cache/contracte), Data Science (model carduri/calibrare/praguri).
A (Responsabil): șef de date/CDO.
C (Consultat): Compliance/DPO (PII/RG/AML/DSAR), Security (KMS/Secrets/Audit), SRE (SLO/Incidente), Finance (ROI/Bugete).
I (Informat): Produs/Marketing/Operațiuni/Suport.

17) Foaia de parcurs privind implementarea

MVP (3-6 săptămâni):

1. Model de registru și artefacte imuabile; Serviciu FastAPI/gRPC + K8s/Helm.

2. Shadow lansare cu p95/5xx/drift monitorizare, caracteristică de testare echivalență.

3. Canare 10% → 50% → 100% cu auto-script rollback și alerte.

4. Model de card, calibrare, pragul de cost așteptat și Guardrails v1.

Faza 2 (6-12 săptămâni):
  • Caracteristică cache, întrerupătoare de circuit, runbooks/exerciții DR.
  • Autoscaling pe RPS/latență, cost-tablou de bord și chargeback.
  • Monitorizarea corectitudinii feliei, arhiva de eliberare WORM.
Faza 3 (12-20 săptămâni):
  • Graficul de servire (candidați → re-rang), tendința de ardezie-logare.
  • Multi-regiune, rezidență (SEE/UK/BR) cu chei individuale.
  • Auto-roll/overdrive, rapoarte de calitate/calibrare autogene.

18) Lista de verificare a livrării

  • Cardul de model este plin; datele/caracteristicile/calibrarea/pragurile sunt versionate.
  • Caracteristica contractelor și testul de echivalență online/offline sunt verzi.
  • SLO: p95, 5xx, acoperire - verde pe umbră și 10% canar ≥ 24 h.
  • Sunt incluse alerte și tablouri de bord (latență/erori/drift/costul așteptat).
  • Guardrails RG/AML și auditurile soluțiilor sunt active; PII/rezidență îndeplinită.
  • Un singur clic rollback și runbook incidente testate.
  • Costul se încadrează în buget; HPA și cache sunt configurate.

19) Anti-modele și riscuri

Rulouri manuale fără registru și artefacte imuabile.
Caracteristici inconsecvente online/offline → discrepanțe în vânzări.
Fără umbră/canar → regresii ascunse.
Pragul nu este costul așteptat, nu există nici o calibrare.
Căutări externe sincrone fără temporizări/cache.
Nu DR/rollback, nici o arhivă de eliberare WORM.

20) Linia de jos

Producția ML nu este o „provocare a modelului”, ci o platformă de inginerie: registru și versiuni, rulouri sigure (umbră/canar/albastru-verde), caracteristică și disciplină de calibrare, observabilitate și SLO, parapete pentru RG/AML și un plan clar de revenire. Urmând această carte de redare, veți obține o inferență rapidă, fiabilă și conformă, care oferă în mod constant valoare de afaceri la un cost controlat.

Contact

Contactați-ne

Scrieți-ne pentru orice întrebare sau solicitare de suport.Suntem mereu gata să ajutăm!

Telegram
@Gamble_GC
Pornește integrarea

Email-ul este obligatoriu. Telegram sau WhatsApp sunt opționale.

Numele dumneavoastră opțional
Email opțional
Subiect opțional
Mesaj opțional
Telegram opțional
@
Dacă indicați Telegram — vă vom răspunde și acolo, pe lângă Email.
WhatsApp opțional
Format: cod de țară și număr (de exemplu, +40XXXXXXXXX).

Apăsând butonul, sunteți de acord cu prelucrarea datelor dumneavoastră.