أساسيات استدلال نماذج اللغة الكبيرة
خط أنابيب استدلال نماذج اللغة الكبيرة
فهم كيفية توليد النص بواسطة نماذج اللغة الكبيرة ضروري لتحسين أنظمة الإنتاج. دعنا نستكشف خط أنابيب الاستدلال الذي يحول المحث إلى استجابة.
التوليد ذو المرحلتين
يتكون استدلال LLM من مرحلتين متميزتين:
┌─────────────────────────────────────────────────────────────────┐
│ خط أنابيب استدلال LLM │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────────────────────┐ │
│ │ الملء المسبق │ │ الفك الترميزي (ذاتي) │ │
│ │ (محدود │ ───► │ (محدود بالذاكرة) │ │
│ │ بالحساب) │ │ │ │
│ └─────────────────┘ └─────────────────────────────────┘ │
│ │
│ • معالجة المحث بالكامل • توليد الرموز واحداً تلو الآخر │
│ دفعة واحدة • إعادة استخدام KV cache │
│ • بناء KV cache • تسلسلي، محدود بالذاكرة │
│ • حساب متوازي • يهيمن على زمن الاستجابة الكلي │
│ │
└─────────────────────────────────────────────────────────────────┘
مرحلة الملء المسبق
تعالج مرحلة الملء المسبق محث الإدخال بالكامل بشكل متوازي:
# الملء المسبق: معالجة جميع رموز الإدخال في وقت واحد
# للمحث "ما هو التعلم الآلي؟"
# الرموز: [ما, هو, التعلم, الآلي, ؟]
# معالجة جميع الرموز الخمسة في تمرير أمامي واحد
# توليد ذاكرة التخزين المؤقت KV لكل طبقة
# محدود بالحساب: استخدام GPU عالي
الخصائص:
- وقت الرمز الأول (TTFT): يقيس زمن انتقال الملء المسبق
- يتناسب مع طول المحث (محثات أطول = TTFT أطول)
- حساب GPU هو عنق الزجاجة
مرحلة الفك الترميزي
بعد الملء المسبق، يتم توليد الرموز واحداً تلو الآخر:
# الفك الترميزي: توليد الرموز بشكل تسلسلي
# الخطوة 1: توليد "التعلم"
# الخطوة 2: توليد "الآلي"
# الخطوة 3: توليد "هو"
# ... يستمر حتى رمز النهاية
# كل خطوة:
# 1. حساب الانتباه باستخدام قيم KV المخزنة
# 2. توليد توزيع احتمالية الرمز التالي
# 3. أخذ عينة للرمز التالي
# 4. تحديث KV cache بـ K,V للرمز الجديد
الخصائص:
- الوقت لكل رمز إخراج (TPOT): يقيس سرعة الفك الترميزي
- محدود بالذاكرة: قراءة KV cache تهيمن
- لا يمكن توازيه (كل رمز يعتمد على السابق)
التوليد الذاتي الانحداري
تولد LLMs النص بشكل ذاتي انحداري—كل رمز جديد يعتمد على جميع الرموز السابقة:
الإدخال: "عاصمة فرنسا هي"
│
▼
┌───────────────┐
│ تمرير LLM │
│ الأمامي │
└───────────────┘
│
┌───────────┴───────────┐
▼ ▼
P("باريس") = 0.95 P("ليون") = 0.03
│
▼ (أخذ عينة)
اختيار "باريس"
│
▼
الإدخال: "عاصمة فرنسا هي باريس"
│
▼
┌───────────────┐
│ تمرير LLM │
│ الأمامي │
└───────────────┘
│
▼
توليد الرمز التالي...
لماذا هذه البنية مهمة
يخلق التصميم ذو المرحلتين فرص التحسين:
| المرحلة | عنق الزجاجة | استراتيجية التحسين |
|---|---|---|
| الملء المسبق | الحساب | توازي الموترات، FlashAttention |
| الفك الترميزي | عرض نطاق الذاكرة | تحسين KV cache، التجميع |
رؤية إنتاجية: معظم زمن الاستجابة يأتي من مرحلة الفك الترميزي. استجابة من 1000 رمز تتطلب 1000 تمرير أمامي متسلسل، بغض النظر عن سرعة GPU.
مقاييس زمن الاستجابة
المقاييس الرئيسية لأنظمة LLM الإنتاجية:
# وقت الرمز الأول (TTFT)
# الوقت من استلام الطلب حتى توليد الرمز الأول
ttft = prefill_time + scheduling_overhead
# الوقت لكل رمز إخراج (TPOT)
# متوسط الوقت لتوليد كل رمز لاحق
tpot = total_decode_time / num_output_tokens
# زمن الاستجابة من طرف لطرف
e2e_latency = ttft + (tpot * num_output_tokens)
# الإنتاجية
# الرموز المولدة في الثانية عبر جميع الطلبات
throughput = total_tokens_generated / total_time
الأهداف الواقعية (اعتباراً من يناير 2026):
- TTFT: < 500 مللي ثانية للتطبيقات التفاعلية
- TPOT: < 50 مللي ثانية للبث السلس
- الإنتاجية: 1000+ رمز/ثانية لكل GPU للمعالجة الدفعية
فهم هذه الأساسيات يجهزك لتقنيات التحسين القادمة.
التالي، سنستكشف KV cache—هيكل البيانات الحرج الذي يجعل التوليد الفعال ممكناً. :::