Logo GH

استقرار مدل های ML

1) نقش و اهداف

استقرار = ارائه استنتاج قابل اعتماد به محصول و عملیات در حالی که جلسه RG/AML/حقوقی و بودجه.
اهداف: تاخیر کم، در دسترس بودن بالا، تکرارپذیری، ایمنی و بازگشت سریع.

2) خدمت معماری

2. الگوهای 1

آنلاین (زمان واقعی): REST/gRPC، p95 50-150 ms برای شخصی سازی ؛ ≤2 -5 برای هشدارهای RG/AML.
نزدیک به زمان واقعی: میکرو مسابقات 1-5 دقیقه (OLAP-ویترین).
دسته ای/آفلاین: ویترین شب طلا، صادرات WORM برای تنظیم کننده.
در فرایند به ثمر رساند: جاسازی مدل نور به سرویس (تاخیر کم).
Serverless: ویژگی های شروع سرد برای کارهای نادر.

2. 2 توپولوژی ها

خدمات تک مدل ساده و سریع است.
Ensemble/Graph (router → preprocess → model → postprocess) → خطوط لوله پیچیده.
Sidecar Feature Fetcher → ویژگی های آنلاین را از کش ها (Redis/Scylla) می کشد.

3) مدل ثبت نام و نسخه ها

رجیستری: 'model _ id'، 'version'، 'stage = {Staging، Production، Archived}'، مصنوعات (وزن، پیش پردازنده، کالیبراسیون)، الزامات (CPU/GPU/حافظه)، کارت مدل (داده ها، معیارها، خطرات، انصاف).
مصنوعات غیر قابل تغییر: محتوا هش ؛ نسخه های WORM از انتشارات.
سیاست خروجی: فقط از طریق رجیستری و اعلامیه ها.

4) کانتینری و بسته بندی

پروندۀ اسناد:
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/هلم و Autoscaling

استقرار (قطعه):
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) استراتژی های رول کردن

سایه: مدل جدید کپی درخواست ها را پردازش می کند، پاسخ ها نادیده گرفته می شوند ؛ مقایسه معیارها/تاخیر/هزینه.
قناری: 1-10٪ از ترافیک → 25٪ → 50٪ → 100٪ با SLO های سبز ؛ چرخش خودکار در تخریب.
آبی سبز: پشته موازی ؛ سوئیچ مسیریابی فوری.
پرچم ویژگی تدریجی: مسیریابی بازار/مستاجر/دستگاه.

A/B/n: آزمایش های آنلاین با آزمایش متوالی

مسیریابی (ایده):
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) ویژگی آنلاین/آفلاین: هم ارزی

کتابخانه تحول یکپارچه و فروشگاه ویژگی (آنلاین + آفلاین).
آزمون هم ارزی: MAE/MAPE بین ویژگی های آنلاین و مرجع آفلاین در یک نمونه مرجع.

ویژگی های حافظه پنهان: Redis/Scylla، TTL برای ویژگی های پنجره ؛ زمان و عقب نشینی

8) قابلیت مشاهده، SLO و هشدار

8. 1 معیار SLI/SLO

تاخیر: p95 ≤ 150 ms (شخصی سازی)، p99 ≤ 300 ms ؛ RG/AML هشدار ≤ 5 با پایان به پایان.
دسترسی: ≥ 99 9%.

نتیجه خطا: ≤ 0 5٪ 5xx ؛ پوشش ≥ 99٪

رانش: PSI مشخصه/نرخ <آستانه، ECE (کالیبراسیون) پایدار است.
Бизнес: درآمد خالص بالا، تقلب ذخیره شده، زمان مداخله.

8. 2 متریک (پرومتئوس)

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 و سیاست امنیتی

قبل/بعد از فیلتر: ماسک اقدامات ممنوع (فرکانس برداشت، خنک کردن، ممنوعیت پیشنهادات تهاجمی).
سیاست حفاظت: سرعت بالاتر از آستانه RG → مداخله نرم/مکث.
حسابرسی: ورود به سیستم «سیاست _ id»، «گرایش»، «ماسک»، «تصمیم»، «دلیل».
PII و اقامت: توکن ها به جای شناسه، رمزگذاری جداگانه و کلیدهای خوشه ای در EEA/UK/BR ؛ ممنوعیت پیوستن متقابل منطقه بدون توجیه.
اسرار: KMS/CMK، مدیر مخفی ؛ بدون PII در سیاهههای مربوط/آهنگ.

10) کالیبراسیون، آستانه و سیاست تصمیم گیری

کالیبراسیون (Platt/Isotonic) به عنوان یک مصنوع.
آستانه با هزینه مورد انتظار ؛ قابل تنظیم در پرچم رجیستری/ویژگی.
کلاه ایمنی: محدودیت عمل بالا/پایین، لغو دستی برای انطباق.

11) عقب نشینی، تخریب و DR

یک کلیک برگشت - مسیر را به «model _ version» قبلی تغییر می دهد.
Runbook: اسکریپت «latentnost↑», «خطاهای 5xx↑», «رانش/کالیبراسیون شکست», «ارائه دهنده ویژگی های خارجی در دسترس نیست».
جداسازی گسل: قطع کننده مدار، سعی مجدد/عقب نشینی، حافظه پنهان آخرین راه حل معتبر.
DR: پشتیبان گیری از مصنوعات/رجیستری، تکرار به یک منطقه «گرم»، تمرینات.

قطع کننده مدار (شبه کد):
python try:
features = fetch_features(timeout=30)
except TimeoutError:
features = last_known_good(user_id) # fallback

12) مهندسی هزینه و عملکرد

پروفایل مسیر: ویژگی ها (30-60٪)، مدل (20-40٪)، شبکه/IO (10-30٪).
کاهش هزینه: ذخیره ویژگی های داغ، سهمیه پخش، مدل های سبک وزن، INT8/FP16 (در صورت لزوم)، lazy-postprocess.
HPA در RPS/CPU/تاخیر، محدودیت اندازه دولت در ویژگی جریان.

بازپرداخت: هزینه/درخواست، هزینه/ویژگی ؛ بودجه برای بازارها/تیم ها

13) انتشار امن و انطباق

معیارهای آمادگی محصول: SLO سبز بر روی سایه، بدون رانش/نشت، کارت مدل کامل است، برش عدالت طبیعی است.
تنظیم کننده: بایگانی WORM از انتشار (وزن، کالیبراسیون، آستانه، معیارها، سیاهههای مربوط به آزمون)، گزارش صادرات غیر قابل تغییر.
DSAR/RTBF: روش برای از بین بردن اثری از یک کاربر خاص از کش/سیاهههای مربوط/ویژگی های.

14) QA قبل از نورد کردن

تست ادغام: قرارداد API, نمودار ویژگی, موارد خالی/شدید.
بار: p99، دم توزیع، ترافیک پشت سر هم.
آزمون معادل آنلاین/آفلاین.
تست هرج و مرج: خاموش کردن ویژگی کش/پایه، زمان بندی خدمات خارجی.

15) نمونه های پیکربندی

ورود با مسیریابی قناری (ایده):
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 (مسئول): MLOps (خدمت/ارکستراسیون/مشاهده)، Data Eng (ویژگی ها/انبارها/قراردادها)، علوم داده (کارت های مدل/کالیبراسیون/آستانه).
A (پاسخگو): رئیس داده/CDO.
C (مشورت): انطباق/DPO (PII/RG/AML/DSAR)، امنیت (KMS/اسرار/حسابرسی)، SRE (SLO/حوادث)، امور مالی (ROI/بودجه).
I (مطلع): محصول/بازاریابی/عملیات/پشتیبانی.

17) نقشه راه پیاده سازی

MVP (3-6 هفته):

1. رجیستری مدل و مصنوعات غیر قابل تغییر ؛ سرویس FastAPI/gRPC + K8s/Helm.

2. راه اندازی سایه با نظارت p95/5xx/رانش، آزمون هم ارزی ویژگی.

3. Canary 10% → 50% → 100% با بازگشت خودکار اسکریپت و هشدار.

4. کارت مدل، کالیبراسیون، آستانه هزینه مورد انتظار و Guardrails v1.

مرحله 2 (6-12 هفته):
  • حافظه پنهان، قطع کننده مدار، کتابهای اجرا/تمرینات DR.
  • خودکار بر روی RPS/latency، هزینه داشبورد و بازپرداخت.
  • نظارت بر عدالت، آرشیو انتشار WORM.
مرحله 3 (12-20 هفته):
  • نمودار خدمت (نامزدها → دوباره رتبه)، تمایل تخته سنگ ورود به سیستم.
  • چند منطقه ای، اقامت (EEA/UK/BR) با کلید های فردی.
  • خودکار رول/overdrive، گزارش کیفیت/کالیبراسیون autogene.

18) چک لیست تحویل

  • کارت مدل کامل است ؛ داده ها/ویژگی ها/کالیبراسیون/آستانه ها نسخه بندی می شوند.
  • ویژگی های قرارداد و آزمون معادل آنلاین/آفلاین سبز است.
  • SLO: p95، 5xx، پوشش - سبز بر روی سایه و 10٪ قناری ≥ 24 ساعت.
  • هشدارها و داشبورد (تاخیر/خطا/رانش/هزینه مورد انتظار) گنجانده شده است.
  • Guardrails RG/AML و ممیزی راه حل فعال هستند ؛ PII/اقامت ملاقات کرد.
  • یک کلیک برگشت و حوادث runbook تست شده است.
  • هزینه متناسب با بودجه ؛ HPA و حافظه پنهان پیکربندی شده اند.

19) ضد الگوهای و خطرات

اجرای دستی بدون رجیستری و مصنوعات غیر قابل تغییر.
ویژگی های ناسازگار آنلاین/آفلاین → اختلاف در فروش.
بدون سایه/قناری → رگرسیون پنهان.
آستانه هزینه مورد انتظار نیست، کالیبراسیون وجود ندارد.
جستجوی خارجی همزمان بدون وقفه/کش.
بدون DR/rollback، هیچ آرشیو انتشار WORM.

20) خط پایین

تولید ML یک «چالش مدل» نیست، بلکه یک پلت فرم مهندسی است: رجیستری و نسخه ها، رول های ایمن (سایه/قناری/آبی-سبز)، رشته ویژگی و کالیبراسیون، قابلیت مشاهده و SLO، گارد محافظ برای RG/AML، و یک طرح بازپرداخت روشن. با پیروی از این راهکار، شما یک نتیجه گیری سریع، قابل اعتماد و سازگار دریافت می کنید که به طور مداوم ارزش کسب و کار را با هزینه ای کنترل می کند.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.