اتصل بنا للحصول على مزيد من المعلومات

الذكاء الاصطناعي

فهم معلمات نماذج اللغة الكبيرة ومتطلبات الذاكرة: نظرة عميقة

mm

تم النشر

 on

حساب المعلمات في LLMs القائمة على المحولات

نماذج اللغات الكبيرة (LLMs) شهدت تطورات ملحوظة في السنوات الأخيرة. نماذج مثل GPT-4، وGemini من Google، وClaude 3 تضع معايير جديدة في القدرات والتطبيقات. لا تعمل هذه النماذج على تحسين إنشاء النص وترجمته فحسب، بل إنها تفتح أيضًا آفاقًا جديدة في المعالجة متعددة الوسائط، حيث تجمع بين مدخلات النص والصورة والصوت والفيديو لتوفير حلول ذكاء اصطناعي أكثر شمولاً.

على سبيل المثال، أظهر GPT-4 من OpenAI تحسينات كبيرة في فهم وإنشاء نص يشبه الإنسان، في حين تتفوق نماذج Gemini من Google في التعامل مع أنواع البيانات المتنوعة، بما في ذلك النصوص والصور والصوت، مما يتيح تفاعلات أكثر سلاسة وذات صلة بالسياق. وبالمثل، تتميز نماذج Anthropic's Claude 3 بقدراتها المتعددة اللغات وأدائها المعزز في مهام الذكاء الاصطناعي.

مع استمرار تسارع تطوير LLMs، يصبح فهم تعقيدات هذه النماذج، وخاصة معلماتها ومتطلبات الذاكرة، أمرًا بالغ الأهمية. ويهدف هذا الدليل إلى إزالة الغموض عن هذه الجوانب، وتقديم شرح مفصل وسهل الفهم.

أساسيات نماذج اللغات الكبيرة

ما هي نماذج اللغات الكبيرة؟

نماذج اللغة الكبيرة هي شبكات عصبية مدربة على مجموعات بيانات ضخمة لفهم وتوليد اللغة البشرية. إنهم يعتمدون على بنيات مثل المحولات، والتي تستخدم آليات مثل الاهتمام الذاتي لمعالجة النص وإنتاجه.

أهمية المعلمات في LLMs

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

فهم بنية المحولات

المحولات-الهندسة المعمارية

هندسة المحولات

البرنامج

بنية المحولات، التي تم تقديمها في ورقة "الانتباه هو كل ما تحتاجه" التي أعدها فاسواني وآخرون. (2017)، أصبح الأساس للعديد من ماجستير إدارة الأعمال. وهو يتألف من جهاز تشفير وجهاز فك تشفير، يتكون كل منهما من عدة طبقات متطابقة.

مكونات التشفير وفك التشفير

  • التشفير: يعالج تسلسل الإدخال وينشئ تمثيلاً مدركًا للسياق.
  • فك: يُنشئ تسلسل الإخراج باستخدام تمثيل برنامج التشفير والرموز المميزة التي تم إنشاؤها مسبقًا.

اللبنات الأساسية

  1. اهتمام متعدد الرؤوس: يمكّن النموذج من التركيز على أجزاء مختلفة من تسلسل الإدخال في وقت واحد.
  2. الشبكات العصبية ذات التغذية الأمامية: يضيف عدم الخطية والتعقيد إلى النموذج.
  3. تطبيع الطبقة: استقرار وتسريع التدريب من خلال تطبيع النواتج المتوسطة.

حساب عدد المعلمات

التدريب على المحولات

نماذج مُدربة مسبقًا لتدريب المحولات بكفاءة

حساب المعلمات في LLMs القائمة على المحولات

دعنا نحلل حساب المعلمة لكل مكون من LLM القائم على المحولات. سوف نستخدم الترميز من الورقة الأصلية، حيث d_model يمثل أبعاد الحالات المخفية للنموذج.

  1. طبقة التضمين:
    • المعلمات = vocab_size * d_model
  2. اهتمام متعدد الرؤوس:
    • في حالة h رؤساء، مع d_k = d_v = d_model / h:
    • المعلمات = 4 * d_model^2 (لإسقاطات Q وK وV والمخرجات)
  3. شبكة التغذية إلى الأمام:
    • المعلمات = 2 * d_model * d_ff + d_model + d_ff
    • في d_ff عادة 4 * d_model
  4. تطبيع الطبقة:
    • المعلمات = 2 * d_model (للحجم والتحيز)

إجمالي المعلمات لطبقة محول واحدة:

  • Parameters_layer = Parameters_attention + Parameters_ffn +2 * Parameters_layernorm

لنموذج مع N طبقات:

  • إجمالي المعلمات = N * Parameters_layer + Parameters_embedding + Parameters_output

مثال على الحساب

لنفكر في نموذج بالمواصفات التالية:

  • d_model = 768
  • h (عدد رؤوس الانتباه) = 12
  • N (عدد الطبقات) = 12
  • vocab_size = 50,000
  1. طبقة التضمين:
    • 50,000 * 768 = 38,400,000
  2. اهتمام متعدد الرؤوس:
    • 4 * 768 ^ 2 = 2,359,296
  3. شبكة التغذية إلى الأمام:
    • 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4,719,616
  4. تطبيع الطبقة:
    • 2 * 768 = 1,536

إجمالي المعلمات لكل طبقة:

  • 2,359,296 + 4,719,616 + (2 * 1,536) = 7,081,984

إجمالي المعلمات لـ 12 طبقة:

  • 12 * 7,081,984 = 84,983,808

إجمالي معلمات النموذج:

  • 84,983,808 + = 38,400,000 123,383,808

سيكون لهذا النموذج ما يقرب من 123 مليون معلمة.

أنواع استخدام الذاكرة

عند العمل مع LLMs، نحتاج إلى النظر في نوعين رئيسيين من استخدام الذاكرة:

  1. نموذج الذاكرة: الذاكرة المطلوبة لتخزين معلمات النموذج.
  2. الذاكرة العاملة: الذاكرة اللازمة أثناء الاستدلال أو التدريب لتخزين عمليات التنشيط المتوسطة والتدرجات وحالات المُحسِّن.

حساب الذاكرة النموذجية

ترتبط ذاكرة النموذج مباشرة بعدد المعلمات. عادةً ما يتم تخزين كل معلمة كرقم فاصلة عائمة 32 بت، على الرغم من أن بعض النماذج تستخدم تدريبًا مختلط الدقة مع عوامات 16 بت.

ذاكرة النموذج (البايت) = عدد المعلمات * البايت لكل معلمة

بالنسبة لنموذجنا الذي يحتوي على 123 مليون معلمة:

  • ذاكرة الطراز (32 بت) = 123,383,808 * 4 بايت = 493,535,232 بايت ≈ 494 ميجابايت
  • ذاكرة الطراز (16 بت) = 123,383,808 * 2 بايت = 246,767,616 بايت ≈ 247 ميجابايت

تقدير الذاكرة العاملة

يمكن أن تختلف متطلبات الذاكرة العاملة بشكل كبير بناءً على المهمة المحددة وحجم الدفعة وطول التسلسل. التقدير التقريبي للذاكرة العاملة أثناء الاستدلال هو:

الذاكرة العاملة ≈ 2 * ذاكرة النموذج

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

ذاكرة التدريب ≈ 4 * ذاكرة النموذج

بالنسبة لنموذجنا المثالى:

  • الذاكرة العاملة الاستدلالية ≈ 2 * 494 ميجابايت = 988 ميجابايت ≈ 1 جيجابايت
  • ذاكرة التدريب ≈ 4 * 494 ميجابايت = 1,976 ميجابايت ≈ 2 جيجابايت

استخدام ذاكرة الحالة المستقرة واستخدام ذاكرة الذروة

عند تدريب نماذج لغوية كبيرة استنادًا إلى بنية Transformer، يعد فهم استخدام الذاكرة أمرًا بالغ الأهمية لتخصيص الموارد بكفاءة. دعونا نقسم متطلبات الذاكرة إلى فئتين رئيسيتين: استخدام ذاكرة الحالة الثابتة واستخدام ذاكرة الذروة.

استخدام ذاكرة الحالة المستقرة

يشتمل استخدام ذاكرة الحالة الثابتة على المكونات التالية:

  1. الأوزان النموذجية: نسخ FP32 من معلمات النموذج، تتطلب 4N بايت، حيث N هو عدد المعلمات.
  2. الدول محسن: بالنسبة لمحسن Adam، يتطلب هذا 8N بايت (حالتان لكل معلمة).
  3. التدرجات: نسخ FP32 من التدرجات، والتي تتطلب 4N بايت.
  4. ادخال البيانات: بافتراض مدخلات int64، فإن هذا يتطلب 8 بايت بايت، حيث B هو حجم الدُفعة وD هو بُعد الإدخال.

يمكن تقريب إجمالي استخدام ذاكرة الحالة المستقرة من خلال:

  • M_steady = 16N + 8BD بايت

ذروة استخدام الذاكرة

يحدث استخدام الذاكرة الذروة أثناء التمرير للخلف عندما يتم تخزين عمليات التنشيط لحساب التدرج. المساهمين الرئيسيين في ذروة الذاكرة هم:

  1. تطبيع الطبقة: يتطلب 4E بايت لكل معيار طبقة، حيث E = BSH (B: حجم الدفعة، S: طول التسلسل، H: الحجم المخفي).
  2. كتلة الاهتمام:
    • حساب QKV: 2E بايت
    • مصفوفة الانتباه: 4 بايت BSS (S: طول التسلسل)
    • إخراج الاهتمام: 2E بايت
  3. كتلة التغذية إلى الأمام:
    • الطبقة الخطية الأولى: 2E بايت
    • تفعيل جيلو: 8E بايت
    • الطبقة الخطية الثانية: 2E بايت
  4. خسارة عبر الانتروبيا:
    • السجلات: 6BSV بايت (V: حجم المفردات)

يمكن تقدير إجمالي ذاكرة التنشيط على النحو التالي:

  • M_act = L * (14E + 4BSS) + 6BSV بايت

حيث L هو عدد طبقات المحولات.

إجمالي استخدام الذاكرة الذروة

يمكن تقريب ذروة استخدام الذاكرة أثناء التدريب من خلال الجمع بين ذاكرة الحالة المستقرة وذاكرة التنشيط:

  • M_peak = M_steady + M_act + 4BSV بايت

يمثل مصطلح 4BSV الإضافي تخصيصًا إضافيًا في بداية التمريرة الخلفية.

ومن خلال فهم هذه المكونات، يمكننا تحسين استخدام الذاكرة أثناء التدريب والاستدلال، مما يضمن تخصيص الموارد بكفاءة وتحسين أداء نماذج اللغات الكبيرة.

قوانين التوسع واعتبارات الكفاءة

 قوانين التوسع في LLMs

أظهرت الأبحاث أن أداء LLM يميل إلى اتباع قوانين قياس معينة مع زيادة عدد المعلمات. كابلان وآخرون. (2020) لاحظ أن أداء النموذج يتحسن كقانون قوة لعدد المعلمات وميزانية الحساب وحجم مجموعة البيانات.

يمكن تقريب العلاقة بين أداء النموذج وعدد المعلمات من خلال:

الأداء ∝ N^α

حيث N هو عدد المعلمات و α هو أس القياس عادة حوالي 0.07 لمهام نمذجة اللغة.

وهذا يعني أنه لتحقيق تحسن في الأداء بنسبة 10%، نحتاج إلى زيادة عدد المعلمات بعامل 10^(1/α) ≈ 3.7.

تقنيات الكفاءة

مع استمرار نمو LLMs، طور الباحثون والممارسون تقنيات مختلفة لتحسين الكفاءة:

a) تدريب مختلط الدقة: استخدام أرقام الفاصلة العائمة ذات 16 بت أو حتى 8 بت لعمليات معينة لتقليل استخدام الذاكرة والمتطلبات الحسابية.

b) نموذج التوازي: توزيع النموذج عبر وحدات معالجة الرسومات أو وحدات TPU المتعددة للتعامل مع نماذج أكبر مما يمكن احتواؤه على جهاز واحد.

c) نقطة تفتيش التدرج: تداول الحساب للذاكرة عن طريق إعادة حساب بعض التنشيطات أثناء التمرير للخلف بدلاً من تخزينها.

d) التقليم والتكميم: إزالة الأوزان الأقل أهمية أو تقليل دقتها بعد التدريب لإنشاء نماذج أصغر وأكثر كفاءة.

e) التقطير: تدريب النماذج الأصغر حجمًا لتقليد سلوك النماذج الأكبر حجمًا، مما قد يؤدي إلى الحفاظ على جزء كبير من الأداء باستخدام معلمات أقل.

مثال عملي والحسابات

GPT-3، أحد أكبر النماذج اللغوية، يحتوي على 175 مليار معلمة. ويستخدم جزء فك التشفير من بنية المحولات. لفهم مقياسها، دعونا نقسم عدد المعلمات بقيم افتراضية:

  • d_model = 12288
  • d_ff = 4 * 12288 = 49152
  • عدد الطبقات = 96

لطبقة فك ترميز واحدة:

إجمالي المعلمات = 8 * 12288^2 + 8 * 12288 * 49152 + 2 * 12288 ≈ 1.1 مليار

إجمالي 96 طبقة:

1.1 مليار * 96 = 105.6 مليار

تأتي المعلمات المتبقية من التضمين والمكونات الأخرى.

وفي الختام

يعد فهم المعلمات ومتطلبات الذاكرة لنماذج اللغات الكبيرة أمرًا بالغ الأهمية لتصميم هذه الأدوات القوية وتدريبها ونشرها بشكل فعال. من خلال تحليل مكونات بنية المحولات وفحص الأمثلة العملية مثل GPT، نكتسب نظرة أعمق حول مدى تعقيد هذه النماذج وحجمها.

لمزيد من فهم أحدث التطورات في نماذج اللغات الكبيرة وتطبيقاتها، راجع هذه الأدلة الشاملة:

لقد أمضيت السنوات الخمس الماضية منغمسًا في عالم رائع من التعلم الآلي والتعلم العميق. قادني شغفي وخبرتي إلى المساهمة في أكثر من 50 مشروعًا متنوعًا لهندسة البرمجيات ، مع التركيز بشكل خاص على الذكاء الاصطناعي / التعلم الآلي. جذبني فضولي المستمر أيضًا نحو معالجة اللغة الطبيعية ، وهو مجال أتوق لاستكشافه بشكل أكبر.