الفصل 1 — ميكانيكا توليد الرموز

تم النشر في: 1447-11-06 آخر تحديث في: 1448-01-23 الإصدار: 1
الفصل 1 — ميكانيكا توليد الرموز

الفصل 1 — ميكانيكا توليد الرموز

المقالة الأولى من الجولة الفصلية لـ LLM Primer VI: توسيع أنظمة الذكاء الاصطناعي. الفصل الذي يحاجج بأن كل سؤال صعب في تخديم LLM ينحدر من حقيقة واحدة — الحلقة التي تُنتِج كل رمز مُقيَّدة بعرض نطاق الذاكرة، وحوسبةُ العتاد باهظة الثمن تظل عاطلة بنسبة 99.7 بالمئة من الوقت.


لماذا يوجد هذا الفصل

الـ LLM، في تشغيله، مُتنبِّئ بالرمز التالي مُغلَّف في حلقة. تدخل الرموز، يخرج توزيعٌ احتماليٌّ للرمز التالي، يُختار أحدها ويُلحَق ثم تعمل الحلقة مرة أخرى. كل خاصية مهمة من خصائص مكدس الاستدلال — التجميع، والتكميم، وتخزين KV المؤقت، وفك التشفير التخميني، والتخديم المُفصَّل — تنحدر من نظرة قريبة داخل تلك الحلقة. تُخفي الحلقة عبأَي عمل يتشاركان مساراً برمجياً واحداً لكنهما يُجهدان العتاد بطرق متعاكسة. أحدهما مُقيَّد بالحوسبة. والآخر مُقيَّد بعرض النطاق. على نفس وحدة H100. في نفس التمرير الأمامي. تسميةُ هذا الانقسام تسميةً دقيقة هي الحركة الأولى في الكتاب، وهي الإطار الذي يُشير إليه كلُّ فصل لاحق.

في سطر واحد: الحلقة الانحدارية الذاتية متسلسلة بالرياضيات لا بالبرمجيات، ومرحلة فك التشفير فيها تترك وحدات الحوسبة في مُسرِّع الطليعة عاطلةً تقريباً كاملاً — وكل تقنية في هذا الكتاب استجابة لذلك الوقت العاطل.

1.1 الحلقة الانحدارية الذاتية متسلسلة قسراً

الرمز t+1 دالةٌ في كل رمز حتى t بضمنه. لا يستطيع النموذج التنبؤ بـ t+2 قبل معاينة t+1، لأن التنبؤ بـ t+2 يستلزم كون t+1 جزءاً من المُدخَل. لا توجد نواة ذكية تُوازي توليد رمزَين متتاليَين لتسلسل واحد؛ التسلسل مفروضٌ ببنية اعتماد الحوسبة. تكلفةُ زمن الجدار لإكمال بطول N رمزاً هي إذاً N في تكلفة خطوة واحدة زائد نفقات ثابتة. كل تحسين يلي في الكتاب — دُفعات أكبر، وتخمين متقدِّم على المسار، وحسابياتٌ أرخص في كل خطوة — إجابةٌ جزئية عن السؤال «بما أن الحلقة يجب أن تمشي رمزاً واحداً في كل مرة، كيف نجعل كل خطوة أسرع أو كل دُفعة أوسع؟». كذلك ليس للنموذج مسوَّدة خارجية: يُفكِّر بإصدار رموز. الحلقة هي الآلية الوحيدة التي تمنح النموذج فسحةً ليُفكِّر أطول، ولذلك يعيش سلسلةُ التفكير وفك التشفير التخميني داخل نفس المحاسبة.

1.2 التعبئة الأمامية وفك التشفير يُجهدان الرقاقة بطرق متعاكسة

تُخفي الحلقة مرحلتَين. التعبئة الأمامية هي التمرير الأمامي الأول، تستهلك مُوجِّه المستخدم بالشكل [batch, sequence_length, hidden_dim]. تعمل كل ضربة مصفوفات على كل مواضع التسلسل مرة واحدة؛ تتزايد الحسابيات مع طول التسلسل؛ تُقرأ الأوزان من HBM مرة واحدة وتُطبَّق على صفوف عمل كثيرة. كثافة الحوسبة عالية. التعبئة الأمامية مُقيَّدة بالحوسبة وتحصل على 989 TFLOP/s من BF16 التي تُقدِّمها H100. فك التشفير هو كل تمرير أمامي لاحق. ينهار شكل المُدخَل إلى [batch, 1, hidden_dim]. لا تزال أوزان كل طبقة يجب أن تتدفق من HBM، لكن صفاً واحداً من الحسابيات يُنفَّذ ضدها. تنهار كثافة الحوسبة بثلاث درجات عشرية. فك التشفير مُقيَّد بعرض نطاق الذاكرة. على نموذج 70B بدقة BF16، تعمل التعبئة الأمامية لموجِّه بطول 2,000 رمز قرب سقف حوسبة الرقاقة؛ ثم يعمل التمرير الأمامي التالي — خطوة فك التشفير الأولى — ضد نفس 140 GB من الأوزان ليُنتج رمزاً واحداً. الرقاقة لم تتغير. عبء العمل تغيَّر.

1.3 مستخدم واحد يترك 99.7 بالمئة من H100 عاطلة

النتيجةُ أن التوليد في الوقت الحقيقي لمستخدم واحد هو الحالة الأسوأ لمُسرِّع الطليعة. نموذج 70B بدقة BF16 على وحدة H100 SXM واحدة يفك تشفير نحو 24 رمزاً في الثانية — سرعة قراءة مريحة للمستخدم، وسعة HBM3 البالغة 3.35 TB/s مُشبَعة تماماً بنقل 140 GB من الأوزان لكل رمز. لكن بهذا المعدل تُنجز وحدات الحوسبة نحو 3.36 TFLOP/s فقط من الـ 989 القادرة عليها. استخدام الحوسبة 0.34 بالمئة. الرقاقة الفيزيائية ليست مُعدَّة بصورة سيئة؛ كل SM يقرأ ويضرب بأقصى سرعة، لكن نوى الموتِّرات مُصمَّمة لالتهام بلاطات من صفوف كثيرة ضد كل بلاطة أوزان، وتمرير أمامي لرمز واحد يمنحها صفاً واحداً. سعة الحوسبة مُقاسة بوحدة (عمليات لكل بايت مُحمَّل) لا يُنتجها عبء العمل. لا يزال أحدهم يدفع أربعة إلى ثمانية دولارات في الساعة عن الرقاقة كاملة. اقتصاديات تخديم LLM هي إذاً اقتصاديات إيجاد عمل للحوسبة المُتوقِّفة — عبر التجميع، وعبر عرض نطاق أرخص لكل رمز، وعبر التخمين، وعبر عتاد تُطابق نقطةُ توازنه عبءَ العمل.

يجدر بنا تذكُّره: رقم FLOP/s على ورقة المواصفات غير ذي صلة إلى حدٍّ كبير أثناء فك التشفير. ما يُحدِّد الإنتاجية هو سعة HBM (ما مقدار النموذج الذي يسع) وعرض نطاق HBM (بأي سرعة تتدفق الأوزان عبر الرقاقة). شراء بطاقة على أساس ذروة FLOP/s شراءٌ للرقم الخاطئ.

ما يُمهِّد له الفصل 1

بقية الكتاب استجابةٌ للاعتدال المُختلَّ المُسمَّى هنا. يُفكِّك الفصل 2 ذاكرةَ KV — بنية البيانات التي تدع فك التشفير يتجنَّب إعادة الحوسبة التربيعية، وتصير في هذه العملية أكبر مُستهلك مفرد لـ VRAM في عنقود التخديم. يمشي الفصلان 3 و4 على البنية التحتية العتادية بعدسة عرض النطاق مقابل الحوسبة. الفصلان 5 و6 يُقلِّصان عبء عرض النطاق لكل رمز بتقليص الأوزان. يمشي الفصل 7 على التجميع بوصفه الرافعة على مستوى النظام التي تُحوِّل الهدر المُقيَّد بعرض النطاق إلى إنتاجية. يُغيِّر الفصلان 8 و9 شكل العمل بإدارة KV المُصفَّحة وفك التشفير التخميني. كل حركة مقروءةٌ بوصفها محاولةً لملء الحوسبة العاطلة التي قاسها هذا الفصل للتو.


التالي — الفصل 2: تحدي ذاكرة KV. مساحة العمل التي تجعل فك التشفير في متناول اليد، وصيغة الذاكرة التي تُوضِّح لماذا تنفد سعة VRAM في عناقيد التخديم قبل أن تنفد الحوسبة.

هل تريد الصورة الكاملة؟ يشمل فصل الكتاب شيفرةً زائفةً قابلة للتشغيل لحلقة التوليد الجشعة، وأداتَي decode_regime وmeasure_decode_utilization اللتَين تجعلان الأرقام محسوسةً على نظام قيد التشغيل، وحواشي «بلغة بسيطة» التي تُلخِّصها هذه المقالة فحسب. اطّلع على LLM Primer VI على أمازون ←

SHO
SHO
مدير التكنولوجيا والمؤسس لشركة RECEIPTROLLER. يركز على البيانات، مدفوع بالابتكار، دائم الفضول.