نماذج ومنصات الذكاء الاصطناعي

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

mm
أضف Unite.AI إلى مصادرك المفضلة على Google

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

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

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

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

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

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

أهمية المعلمات في النماذج اللغوية الكبيرة

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

فهم هيكل الترانسفورمر

Transformers-architecture

هيكل الترانسفورمر

نظرة عامة

هيكل الترانسفورمر، الذي قدم في ورقة “الانتباه هو كل ما تحتاجه” بواسطة Vaswani et al. (2017)، أصبح أساسًا للعديد من النماذج اللغوية الكبيرة. يتكون من مشفر ومرسلة، كل منهما يتكون من طبقات متعددة.

مكونات المشفر والمرسلة

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

المكونات الرئيسية

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

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

Transformer Training

نماذج مسبقة التدريب للترانسفورمر الفعال

حساب المعلمات في النماذج اللغوية الكبيرة القائمة على الترانسفورمر

دعونا ننقسم حساب المعلمات لكل مكون من مكونات نموذج لغوي كبير قائم على الترانسفورمر. سنستخدم التدوين من الورقة الأصلية، حيث ي представ ديمينشن نموذج الحالة المخفية.

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

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

  • معلمات_طبقة = معلمات_انتباه + معلمات_شبكة_عصبونية + 2 * معلمات_تطبيق_الطبقة

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

  • المعلمات الإجمالية = ن * معلمات_طبقة + معلمات_تضمين + معلمات_إخراج

حساب مثال

دعونا نعتبر نموذجًا مع المواصفات التالية:

  • د_نموذج = 768
  • ه (عدد رؤوس الانتباه) = 12
  • ن (عدد الطبقات) = 12
  • حجم_القاموس = 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 مليون معلمة.

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

عند العمل مع النماذج اللغوية الكبيرة، يجب أن نأخذ في الاعتبار نوعين رئيسيين من استخدام الذاكرة:

  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 جيجابايت

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

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

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

استخدام الذاكرة المستقر يتكون من المكونات التالية:

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

يمكن تقدير استخدام الذاكرة المستقر بواسطة:

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

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

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

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

يمكن تقدير الذاكرة التنشيطية بواسطة:

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

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

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

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

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

المصطلح الإضافي 4BSV يعتبر لتخصيص إضافي في بداية المرحلة العكسية.

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

قوانين التماسك والكفاءة

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

أظهرت الأبحاث أن أداء النماذج اللغوية الكبيرة يتبع قوانين معينة للتوسع مع زيادة عدد المعلمات. لاحظ Kaplan et al. (2020) أن أداء النموذج يتحسن كقانون قوة لعدد المعلمات وميزانية الحوسبة وحجم المجموعة.

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

الأداء ∝ N^α

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

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

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

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

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

ب) توصيل النموذج: توزيع النموذج عبر عدة وحدات معالجة رسومات أو وحدات معالجة تензور لتعامل مع نماذج أكبر مما يمكن أن يتناسب مع جهاز واحد.

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

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

ه) التنقيح: تدريب نماذج أصغر على تقليد سلوك نماذج أكبر، مع الحفاظ على الكثير من الأداء بمعلمات أقل.

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

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

  • د_نموذج = 12288
  • د_ف = 4 * 12288 = 49152
  • عدد الطبقات = 96

لطبقة مرسلة واحدة:

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

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

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

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

  • 105.6 مليار + 38.4 مليار = 144 مليار

هذا النموذج سيكون له حوالي 144 مليار معلمة.

الختام

فهم معلمات ومتطلبات الذاكرة للنماذج اللغوية الكبيرة هو أمر بالغ الأهمية لتصميم وتدريب وتحسين أداء هذه الأدوات القوية. من خلال تفكيك مكونات هيكل الترانسفورمر ودراسة أمثلة عملية مثل GPT، نكتسب رؤية أعمق في تعقيد وขนาด هذه النماذج.

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

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