0Pricing
Learn AI with Python · درس

تقديم عالي الأداء باستخدام Triton Inference Server

مستودع النموذج، وmodel config.pbtxt، ونسخ النموذج المتزامنة، والتجميع الديناميكي

تقديم عالي الأداء باستخدام Triton Inference Server درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

ما هو Triton

‏NVIDIA Triton Inference Server نظام خدمة مخصص لبيئات الإنتاج، ويستضيف عدة نماذج في الوقت نفسه عبر وحدات المعالجة المركزية والرسومية. وهو يدعم عدة واجهات خلفية (TensorRT وONNX وPyTorch وTensorFlow وPython) من خلال واجهة HTTP/gRPC واحدة، مع توفير التجميع والتزامن مضمّنَين.

مستودع النماذج

يحمّل Triton النماذج من مستودع نماذج: وهو دليل يضم مجلدًا خاصًا بكل نموذج، ومجلدًا فرعيًا لإصدار رقمي، وملف config.pbtxt.

model_repository/
  resnet50/
    config.pbtxt
    1/
      model.onnx
  bert/
    config.pbtxt
    1/
      model.pt

config.pbtxt: الواجهة الخلفية

يصف ملف config.pbtxt كيفية تشغيل Triton للنموذج. وتحدد الواجهة الخلفية (أو المنصة) بيئة التشغيل التي ينبغي لـ Triton استخدامها.

name: "resnet50"
backend: "onnxruntime"
max_batch_size: 32

موترات الإدخال والإخراج

تعلن عن كل إدخال وإخراج، بما في ذلك اسمه ونوع البيانات وأبعاده (شكله). ويجب أن تتطابق الأشكال مع ما يتوقعه النموذج. ويُفترض بُعد الدفعة في البداية وفقًا لقيمة max_batch_size.

input [
  {
    name: "input"
    data_type: TYPE_FP32
    dims: [ 3, 224, 224 ]
  }
]
output [
  {
    name: "output"
    data_type: TYPE_FP32
    dims: [ 1000 ]
  }
]

أنواع البيانات

يستخدم Triton أنواع بيانات صريحة للموترات حتى تتفق العملاء والنموذج على تخطيط البايتات:

  • TYPE_FP32 عدد عشري بدقة 32 بت (شائع للصور)
  • TYPE_FP16 دقة نصفية (أسرع على وحدات معالجة الرسومات)
  • TYPE_INT64 معرّفات الرموز لمعالجة اللغة الطبيعية
  • TYPE_INT8 نماذج مكمّمة

التجميع الديناميكي: الفكرة

يتيح التجميع الديناميكي لـ Triton دمج عدة طلبات واردة في دفعة واحدة أكبر قبل تشغيل النموذج. وتكون وحدات معالجة الرسومات أكثر كفاءة بكثير مع الدفعات الكبيرة، لذا يزيد ذلك معدل المعالجة زيادة كبيرة من دون تغيير رمز العميل.

تهيئة التجميع الديناميكي

تمكّنه في ملف الإعداد وتحدد المدة التي ينتظرها Triton لجمع الطلبات. وتتيح قيمة صغيرة لـ max_queue_delay_microseconds مبادلة قدر بسيط من زمن الاستجابة بمعدل معالجة أعلى بكثير.

dynamic_batching {
  preferred_batch_size: [ 8, 16 ]
  max_queue_delay_microseconds: 1000
}

مثيلات النماذج المتزامنة

يشغّل Triton افتراضيًا نسخة واحدة (مثيلًا واحدًا) من النموذج. وباستخدام instance_group، يمكنك تشغيل عدة مثيلات بالتوازي على وحدة معالجة رسومية واحدة أو أكثر، لمعالجة الطلبات المستقلة في الوقت نفسه وتحسين الاستفادة من الموارد.

instance_group [
  {
    count: 2
    kind: KIND_GPU
    gpus: [ 0 ]
  }
]

التجميع مقابل التزامن

تحلّ هاتان الآليتان مشكلتين مختلفتين:

  • التجميع الديناميكي يدمج الطلبات في استدعاء واحد للنموذج (معدل المعالجة لكل استدعاء)
  • المثيلات المتزامنة تشغّل عدة استدعاءات للنموذج في الوقت نفسه (التوازي)

وهما متكاملتان؛ فكثيرًا ما تستخدم إعدادات الإنتاج كلتيهما.

perf_analyzer

‏perf_analyzer أداة من Triton تُحمّل الخادم بطلبات اصطناعية، وتعرض معدل المعالجة (عمليات الاستدلال في الثانية) والنسب المئوية لزمن الاستجابة. استخدمها للعثور على إعدادات الدفعة والتزامن التي تحقق أعلى معدل معالجة ضمن ميزانية زمن الاستجابة لديك.

perf_analyzer -m resnet50 \
  --concurrency-range 1:8 \
  --percentile 95

قراءة مخرجات perf_analyzer

تختبر الأداة مستويات التزامن وتطبع معدل المعالجة وزمن الاستجابة لكل مستوى. ابحث عن نقطة الركبة في المنحنى: النقطة التي لا تؤدي عندها زيادة التزامن إلى تحسين معدل المعالجة، أو تدفع زمن الاستجابة عند P95 إلى تجاوز الحد المسموح به.

# Concurrency: 4, throughput: 1820 infer/sec, p95 latency: 9.1 ms
# Concurrency: 8, throughput: 1905 infer/sec, p95 latency: 17.4 ms

تحقق سريع

اختبر معرفتك بـ Triton.

مراجعة

لقد تعلّمت تقديم خدمة عالية الأداء باستخدام Triton:

  • مستودع النماذج: مجلدات خاصة بكل نموذج، تتضمن مجلدات فرعية للإصدارات وملف config.pbtxt
  • يعلن config.pbtxt عن الواجهة الخلفية، وأشكال موترات الإدخال والإخراج، وأنواع البيانات
  • يزيد التجميع الديناميكي معدل المعالجة، بينما تضيف المثيلات المتزامنة التوازي
  • يقيس perf_analyzer معدل المعالجة مقابل زمن الاستجابة لضبط الإعدادات

الأسئلة الشائعة

هل درس «تقديم عالي الأداء باستخدام Triton Inference Server» مجاني؟

نعم — نص درس «تقديم عالي الأداء باستخدام Triton Inference Server» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

ماذا ستتعلم في «تقديم عالي الأداء باستخدام Triton Inference Server»؟

مستودع النموذج، وmodel config.pbtxt، ونسخ النموذج المتزامنة، والتجميع الديناميكي تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟

لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «تقديم عالي الأداء باستخدام Triton Inference Server»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟

نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. وضع نماذج التعلم الآلي في حاويات باستخدام Docker
  2. النشر السحابي: AWS SageMaker
  3. تقديم عالي الأداء باستخدام Triton Inference Server
  4. توسيع نطاق نقاط نهاية النماذج وتوسيعها تلقائيًا
← العودة إلى Learn AI with Python