عقد وحدة معالجة الرسومات وحسابات ML
موجز موجز
مكدس ML الناجح على وحدة معالجة الرسومات هو مجموعة من الأجهزة والبرامج والتخطيط والبيانات وحلول إمكانية المراقبة. وينبغي أن يكون أداء المجموعة جيداً بنفس القدر:1. نماذج القطار (الاستخدام العالي ونقاط التفتيش السريعة ومقاطعة التسامح)
2. خدمة الاستدلال (انخفاض زمن الوصول p95 عند التحويل العالي)،
3. أموال يمكن التنبؤ بها من حيث التكلفة (FinOps، الحصص، الإيجارات المتعددة)،
4. تكون آمنة (العزلة، سلسلة الإمداد، التحكم في المقاييس/مجموعات البيانات).
الأجهزة والطوبولوجيا
وحدة معالجة الرسومات والذاكرة
يعد حجم ونطاق HBM أكثر أهمية من "TFLOPs' الخام لـ LLM/RecSys.
لاستنتاج العديد من الطلبات الصغيرة - أولوية الذاكرة المدمجة (KV-cache) والساعات العالية/حد الطاقة.
الاتصال
NVLink/NVSwitch - داخل العقدة لتقليل كل شيء بسرعة.
InfiniBand/RoCE - التبادل بين العقدة لـ DDP/FSDP (≥ 100-200 جيجابايت/ثانية).
شجرة PCIe: حاول إبقاء NIC و GPU على نفس عقدة NUMA ؛ تجنب عنق الزجاجة الساخن PCIe-switch.
BIOS الأساسية/ضبط المضيف
أوضاع الأداء، تعطيل الحالات C (أو زيادة الحد الأدنى)، وعي NUMA، وإيقاف ASPM على PCIe الحرج.
القوة: ملفات تعريف مستقرة، وليس حفظ القوة العدواني - وإلا فإن p99 «ترتجف».
كومة ناعمة أساسية
NVIDIA + CUDA + cuDNN/TensorRT مطابقة مصفوفة التوافق.
مجموعة أدوات حاويات NVIDIA لوحدات معالجة الرسومات داخل الحاويات.
NCCL (مجموعات)، UCX (النقل)، Apex/xFormers/Flash-Antice - للسرعة.
اختياري GDS (GPUDirect Storage) على NVMe/IB السريع - يسرع تدفق البيانات.
Kubernetes لـ GPU
المكونات الرئيسية
مشغل وحدة معالجة الرسومات NVIDIA (السائقون، DCGM، ملحق الجهاز).
NVIDIA Device Plugin - resource export' nvidia. com/gpu '.
MIG (A100/H100) - تقسيم وحدة معالجة الرسومات الفيزيائية إلى ملامح معزولة (على سبيل المثال، 1g. 10 جيجابايت).
تقسيم الوقت - تقسيم منطقي لوحدة معالجة الرسومات في الوقت المناسب لمهام الاستدلال الصغيرة.
اكتشاف ميزة العقدة - ملصقات حسب نوع وحدة معالجة الرسومات/الطوبولوجيا.
التخطيط والعزلة
Tains/Tolerations/NodeSelectors لفصل التدريب/الاستدلال/التجارب.
مدير الطوبولوجيا ومدير وحدة المعالجة المركزية (ثابت) لمحاذاة NUMA.
بركان/سلورم على K8s/Ray - قوائم انتظار، أولويات، استباق للوظائف الكبيرة.
yaml resources:
limits:
nvidia. com/gpu: 1 # or MIG profile: nvidia. com/mig-1g. 10gb: 1 requests:
nvidia. com/gpu: 1
مثال على التقارب/التقارب لمجموعة تدريبية مخصصة:
yaml tolerations:
- key: "gpu-train"
operator: "Exists"
effect: "NoSchedule"
nodeSelector:
gpu. pool: "train"
التعلم: الحجم والاستدامة
Concurrency
DDP - تزامن البيانات القياسية.
FSDP/ZeRO - معلمات شحن/برد/محسنات، يقلل الذاكرة.
الموتر/خط الأنابيب الموازي - بالنسبة للممتلكات الكبيرة جدا ؛ يتطلب NVLink/IB.
تراكم التدرج - يزيد الدفعة الفعالة دون زيادة ذروة الذاكرة.
دقة مختلطة وتحسين الذاكرة
AMP (bf16/fp16) + مقياس الخسارة ؛ H100/new - FP8 حيثما أمكن ذلك.
تفعيل/نقطة تفتيش متدرجة، انتباه فلاش لتسلسلات طويلة.
Paged/Chunked KV-cache للتحضير للاستدلال.
نقاط التفتيش والتسامح مع الأخطاء
نقاط تفتيش تدريجية متكررة لـ NVMe/كائن سريع مع التخفيف.
اللكمات الغبية (معرفات الجرح المتكررة).
استقرار البقع: نصطاد SIGTERM، نندمج بسرعة ؛ الجدولة تعيد الوظيفة إلى قائمة الانتظار.
متغيرات NCCL/الشبكة المهمة (مثال)
bash
NCCL_IB_HCA=mlx5_0
NCCL_SOCKET_IFNAME=eth1
NCCL_P2P_LEVEL=NVL
NCCL_MIN_NRINGS=8
NCCL_NET_GDR_LEVEL=SYS
الاستنتاج: زمن انتقال منخفض وعائد مرتفع
أطر الخدمة
Triton Inference Server هو خادم واحد لـ TensorRT/ONNX/TS/PyTorch.
vLLM/TGI/TensorRT-LLM - أخصائيو LLM (انتباه استدعاء، مخبأ KV فعال، دفعة مستمرة).
تقنيات التسريع
الكمية: INT8/FP8/quantum. - على علم (AWQ، GPTQ) - انخفاض في VRAM، زيادة في TPS.
الدفع/الدفعة المستمرة: تقديم دفعات من الطلبات دون نمو p95.
تثبيت مخبأ KV في HBM، وتقليل السياق ؛ فك تشفير المضاربة (مشروع النموذج).
التزامن على وحدة معالجة الرسومات: خيوط/طرازات متعددة مع MIG/شريحة زمنية.
ملامح الأهداف (مثال SLO)
p95 زمن وصول استجابة نموذج الدردشة ≤ 300 مللي متر لكل بادئة/رمز ؛
إنتاجية ≥ 200 جار/ثانية/وحدة معالجة الرسومات على الموجز المستهدف ؛
يتم التحكم في ذيل p99 عن طريق التخلص (فئات QoS وحدود السياق).
نشر تريتون (شظية)
yaml env:
- name: CUDA_VISIBLE_DEVICES value: "0"
- name: TRITONSERVER_MODEL_CONTROL value: "explicit"
args: ["--backend-config=tensorrt,output_memory_pool_size=1024"]
البيانات وخطوط الأنابيب
التنسيقات: Parquet/Arrow، webdataset (شظايا القطران) للقراءة المتدفقة.
Prefetch/Async I/O: DataLoader- ы с pin-memory, prepetch-piplines, GDS.
متجر الميزات للميزات عبر الإنترنت (مكافحة الاحتيال/التوصيات).
الإصدار: سجل نموذج DVC/LakeFS/MLflow ؛ تلتقط مجموعات البيانات والشفرة والمقاييس الفائقة.
قابلية الملاحظة و SLO
مقاييس DCGM/Prometheus (الحد الأدنى)
"dcgm _ sm _ util'،" dcgm _ fb _ used "،" dcgm _ power _ usage "،" dcgm _ pcie _ rx/tx "،" dcgm _ dram _ bw "
درجات الحرارة/الترددات وأخطاء ECC (تنبيه للنمو).
تم تحقيق أسباب الإشغال والتوقف (الطبقة الأساسية الضيقة).
مقاييس الخدمة
نماذج التوليد: رمز/ثانية، p50/p95/p99، عمق قائمة الانتظار، فشل الذاكرة.
التدريب: خطوات/ثانية، وقت العصر، الكفاءة التقليل من الجميع، وقت٪ في I/O.
فريق SLO: الامتثال p95، «ميزانية الخطأ» (≥ 99. 5٪ استنتاج «ناجح»).
تنبيه (أفكار)
'fb _ used/ fb_total> 0. 95 '5 мин → دواسة الوقود/التوسع.
ينخفض TPS بنسبة N٪ مع نفس التخلص - تحلل النموذج/الرمز.
ECC/ارتفاع درجة الحرارة → هجرة الحديد الوظيفي/الحادث.
السلامة والعزلة
متعدد الإيجارات: ملفات تعريف MIG أو العقد لكل فريق، مساحات الأسماء/الحصص.
IOMMU/PSP، cgroups، حظر الحاويات المميزة، CAP _ قيد.
MPS (خدمة متعددة العمليات) - أنيق: التخلص الأعلى، لكن الفصل أضعف من MIG.
سلسلة الإمداد: توقيعات الحاويات (تجميلية)، التحقق من القطع الأثرية، التحكم في تحميلات النماذج.
البيانات/الأوزان: التشفير على القرص، والتحكم في الدخول (ABAC/RBAC)، والعلامات المائية/سجلات التجزئة للنماذج.
FinOps: التكلفة، الحصص، المقياس التلقائي
برك العقدة: «قطار» (عند الطلب/احتياطيات)، «استنتاج» (مزيج عند الطلب + بقعة)، «exp» (بقعة ثقيلة).
استقرار البقع: نقاط تفتيش متكررة، ومنطق إعادة التشغيل السريع، وقوائم انتظار البركان مع الأولويات.
الاحتياطيات/RI/خطط الادخار إلى قاعدة مستقرة ؛ العقد الفارغة المعطلة تلقائيا.
نماذج الحجم الصحيح: الكمية/محولات LoRA بدلاً من النموذج «الكامل» ؛ حدد ملامح MIG في إطار SLA.
مخطط الميزانية: حصص GPU-hour لكل فريق، «تكلفة 1 ألف طلب/رمز مميز».
أنماط وتحف YAML
1) موجز MIG (مفاهيمي)
yaml apiVersion: nvidia. com/v1 kind: MigStrategy metadata: { name: mig-a100-1g10gb }
spec:
deviceFilter: "a100"
mode: single resources:
- profile: "1g. 10gb"
count: 7
2) طابور البركان للتدريب
yaml apiVersion: scheduling. volcano. sh/v1beta1 kind: Queue metadata: { name: train-q }
spec:
weight: 100 reclaimable: true capability:
resources:
- name: nvidia. com/gpu quantity: 64
3) KEDA لمقياس الاستدلال الذاتي لعمق الدوران
yaml apiVersion: keda. sh/v1alpha1 kind: ScaledObject metadata: { name: llm-infer }
spec:
scaleTargetRef: { name: llm-deploy }
pollingInterval: 5 minReplicaCount: 2 maxReplicaCount: 80 triggers:
- type: rabbitmq metadata:
queueName: infer-queue mode: QueueLength value: "200"
قائمة التحقق من مجموعة GPU
- خريطة طوبولوجيا NVLink/IB ؛ NIC/GPU على NUMA واحد.
- السائقون/CUDA ثابت، المشغل/الجهاز الإضافي المثبت.
- MIG/موجزات تقسيم الوقت وحصص مساحات الأسماء.
- اختبر خط أنابيب DDP/FSDP على مراحل ؛ نقاط التفتيش سريعة.
- Triton/vLLM с الدفع المستمر ؛ p95 وتم تحديد أهداف TPS.
- تنبيهات DCGM/Prometheus/Grafana + ECC/درجة الحرارة/الذاكرة/TPS.
- السياسات الأمنية (PSP، التصميم، تشويش الوزن/التحكم).
- FinOps: برك سبوت/ري، تقرير رموز $/1 ألف، إغلاق تلقائي خامل.
أخطاء شائعة
يتم خلط التدريب والاستدلال على نفس العقد بدون توترات → يتم «نشر» وحدة معالجة الرسومات/IO لبعضها البعض.
لا توجد نقاط تفتيش ومنطق استباقي → فقدان التقدم على الفور.
عدم وجود مقاييس DCGM → التخلص «الأعمى» والحرارة الزائدة.
تجاهل طوبولوجيا NUMA/PCIe → عرض النطاق الترددي المنخفض NCCL.
غير صحيح MIG/time-sice → p99 latency and «Out of Memory» profiles.
HPA بواسطة وحدة المعالجة المركزية بدلاً من TPS/latency → مقياس متأخر.
خصوصية iGaming/fintech
Antifraud/scoring: induction SLA ≤ 50 ms p95 on critical paths (pays/conclusions); إبقاء نموذج «احتياطي» الضوء.
التوصيات/التخصيص: التعلم في السياسة العامة/خارج السياسة في الليل، الميزات عبر الإنترنت - زمن انتقال منخفض.
مساعدو الدردشة/RAG: مخبأ المحتوى، طلب التفريغ، الحراسة ؛ مؤشرات البحث عن ناقلات الشظايا.
القمم (المباريات/البطولات): نماذج الإحماء المسبق/ذاكرة التخزين المؤقت، وزيادة minReplicas، وفصول QoS لكبار الشخصيات.
المجموع
تصبح كومة الحوسبة GPU فعالة حقًا عندما تكون الأجهزة (HBM/NVLink/IB)، مصفوفة البرامج (CUDA/NCCL)، الجدولة (MIG، قائمة الانتظار، المطر)، البيانات (خط الأنابيب السريع/GDS)، قابلية الملاحظة (DCM/SLO) والتكلفة (FinOps/الحصص) يعملان بشكل متضافر. قم بتثبيت هذا في سياسة IaC والمجموعة - وستحصل على سرعات تعلم يمكن التنبؤ بها، واستنتاج مستقر منخفض لوقت الانتقال p95، واقتصاد ساعة GPU شفاف.