خطوات الاستخدام
الخطوة الأولى: أدخل إجمالي عدد العمليات الحسابية (FLOPs) التي يتطلبها تشغيل النموذج لاستدلال واحد، بوحدة GFLOPs كما يطلب عنوان الحقل. يتم حساب FLOPs بناءً على بنية النموذج (عدد الطبقات، حجم المصفوفات، وظائف التنشيط). على سبيل المثال، قاعدة 2xP تعطي لنموذج GPT-3 بـ 175 مليار معلمة حوالي 2 × 175e9 = 3.5x10^11 عملية لكل رمز مولّد، أي 350 GFLOP (لا 3.5x10^14 كما كان مكتوبًا، وهو مبالغ ألف ضعف). يمكنك حساب FLOPs يدويًا أو استخدام أدوات مثل torch.utils.flop_counter.
الخطوة الثانية: أدخل قوة الحوسبة القصوى لوحدة التسريع (accelerator FLOPS) بوحدة FLOPS (أي عملية فاصلة عائمة في الثانية). على سبيل المثال، وحدة NVIDIA A100 تبلغ ذروة أدائها حوالي 312 TFLOPS (3.12 × 10^14 FLOPS) في الدقة المختلطة. تأكد من استخدام القيمة المناسبة لنوع الدقة المستخدمة (FP16، BF16، FP32).
الخطوة الثالثة: انقر على زر الحساب. ستحسب الأداة زمن الاستدلال النظري باستخدام المعادلة: زمن الاستدلال = FLOPs / (acceleratorFLOPS). ومع ذلك، هذا الزمن مثالي ولا يأخذ في الاعتبار عوامل الكفاءة مثل عنق الزجاجة في الذاكرة، توازي المعالجة، ووقت نقل البيانات. في الواقع، قد يكون الزمن الفعلي أكبر بمقدار 2-5 مرات اعتمادًا على الحمل الزائد.
الخطوة الرابعة: (اختياري) لفهم أكثر دقة، يمكنك تطبيق عامل كفاءة بنسبة 30-50% (مثلاً 0.3) لحساب الزمن الواقعي التقريبي: الزمن الفعلي = FLOPs / (acceleratorFLOPS × معامل الكفاءة). يمكنك تعديل الناتج يدويًا باستخدام هذه المعادلة لتقدير أفضل.
الخطوة الخامسة: استخدم النتيجة لتقييم ما إذا كان النموذج مناسبًا لتطبيقك من حيث زمن الاستجابة. على سبيل المثال، إذا كان الزمن المحسوب أكبر من 100 مللي ثانية، فقد لا يكون مناسبًا للتطبيقات في الوقت الفعلي مثل المحادثات التفاعلية.
أمثلة محلولة
تطبيقات عملية على زمن استدلال النموذج بخطوات الحل كاملة.
الحل
المعادلة: الزمن = FLOPs ÷ قوة المسرع. بالتعويض: 3.5×10^11 ÷ 3.12×10^14 = 1.1218×10^-3 ثانية، أي 1.1218 مللي ثانية (الحاسبة تدخل flops = 350 GFLOPs فتعرض 1.121795 ms و 891.43 استدلالًا في الثانية نظريًا). لكن في الواقع، بسبب عرض نطاق الذاكرة وتنظيم العمليات وكفاءة التوازي، يكون الزمن الفعلي أكبر بمقدار 2-3 مرات، أي قرابة 2-3.5 مللي ثانية لكل رمز. وهذا ما يبرر النماذج الأصغر والتسريع المخصص، لا أن زمن الرمز ثانية كاملة كما قد يُوهم حساب خاطئ لوحدات القياس.
الحل
المعادلة: الزمن = FLOPs ÷ FLOPS = 3×10^12 ÷ 1×10^12 = 3 ثوانٍ على معالج بسرعة 1 TFLOPS. هذا زمن كبير لاستدلال واحد، مما يوضح أن وحدات المعالجة المركزية ليست مثالية لنماذج حتى متوسطة الحجم. بالمقارنة، وحدة A100 بقوة 312 TFLOPS تعطي 3×10^12 ÷ 3.12×10^14 = 9.615×10^-3 ثانية = 9.615 مللي ثانية (أدخل flops = 3000 GFLOPs لتظهر 9.615385 ms)، أي فرق يفوق 300 ضعف. لذلك يُنصح باستخدام مسرعات مثل GPU أو TPU للتطبيقات الحقيقية.
أمثلة محسوبة
قيم مُدخَلة ونتيجة محسوبة فعليًا بواسطة زمن استدلال النموذج.
رمز GPT-3 (350 GFLOPs) على A100: 1.1218 ms لا 1.12 ثانية
- العمليات الحسابية (GFLOPs)
- 350
- المسرع
- a100
نموذج 3000 GFLOPs على A100: 9.615 ms كما في المثال الموثق
- العمليات الحسابية (GFLOPs)
- 3,000
- المسرع
- a100
نفس الحمل على T4: 370.37 ms أي أبطأ 93 ضعفًا من H100
- العمليات الحسابية (GFLOPs)
- 3,000
- المسرع
- t4