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

LoRa و QLoRA و QA-LoRA: تعديل كفء للنماذج اللغة الكبيرة من خلال تحليل الرتبة المنخفضة

mm
LoRA : Low-Rank Adaptation of Large Language Models

النماذج اللغة الكبيرة (LLM) قد حظيت بمكانة فريدة في فهم اللغة البشرية وتوليد النصوص الشبيهة باللغة البشرية. يمكن إرجاع قوة النماذج اللغة الكبيرة إلى حجمها الهائل، حيث غالباً ما تحتوي على مليارات المعلمات. ومع ذلك، فإن هذا الحجم الهائل يؤدي إلى تحديات، خاصة عند تعديل النموذج للtasks أو المجالات المحددة. الطرق التقليدية لإدارة النماذج اللغة الكبيرة، مثل تعديل جميع المعلمات، تresents تحديات كبيرة، خاصة فيما يتعلق بالحوسبة والتخزين.

في مقال سابق، قد تناولنا تعديل النماذج اللغة الكبيرة لتلائم المتطلبات المحددة. وقد استكشفنا مختلف أساليب التعديل، مثل التعديل القائم على الإرشادات، التعديل الفردي للمهام، والتعديل الكفء للمعلمات (PEFT). كان التركيز الرئيسي على هيكل Transformer، الذي يُعتبر العمود الفقري للنماذج اللغة الكبيرة، والتحديات التي تطرحها الحوسبة والتخزين.

معلمات في LLM

https://huggingface.co/blog/hf-bitsandbytes-integration

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

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

دخلت Low-Rank Adaptation (LoRA) التي تم تقديمها من قبل Microsoft في هذا السياق، بهدف التغلب على هذه التحديات وجعل النماذج اللغة الكبيرة أكثر سهولة ومتكيفة.

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

تطور استراتيجيات تعديل LLM

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

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

مع استكشاف المتخصصين لطرق أكثر كفاءة، ظهر تعديل كامل كنهج صارم ومجزي.

مقدمة إلى LoRA

ترتيب رتبة المصفوفة يعطينا نظرة على الأبعاد التي تم إنشاؤها بواسطة أعمدتها، ويتم تحديدها بواسطة عدد الصفوف أو الأعمدة الفريدة.

  • مصفوفة رتبة كاملة: ترتيبها يطابق العدد الأقل بين صفوفها وأعمدتها.
  • مصفوفة رتبة منخفضة: ترتيبها أقل بكثير من كل من عدد صفوفها وأعمدتها، مما يؤدي إلى 捕获 أقل.

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

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

تطبيق LoRA على Transformer

LoRA يساعد في تقليل الحمل التدريبي في الشبكات العصبية عن طريق التركيز على مصفوفات الأوزان المحددة. في هيكل Transformer، هناك مصفوفات أوزان مرتبطة بآلية الانتباه الذاتي، وهي Wq و Wk و Wv و Wo، بالإضافة إلى مصفوفتين أخريين في وحدة MLP.

هيكل Transformer

هيكل Transformer

 

رؤوس الانتباه في Transformer

رؤوس الانتباه في Transformer

الشرح الرياضي ل LoRA

دعونا نناقش الرياضيات وراء LoRA:

  1. مصفوفة الأوزان المسبقة .
  2. التحليل الرتبة المنخفضة: بدلاً من تعديل المصفوفة الكاملة، يتم اقتراح نهج التحليل الرتبة المنخفضة.
  3. التدريب: خلال عملية التدريب، تظل بدون تغيير.
  4. الضرب والجمع: يتم ضرب كلا والتحديث (الذي هو منتج و ) بواسطة نفس المدخل (المعروف باسم ).

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

LoRA

LoRA

التحضير والتحجيم:

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

LoRA يجد تطبيقه العملي في مكتبة Hugging Face Parameter Efficient Fine-Tuning (PEFT)، مما يسهل استخدامه. لمستخدمي QLoRA، يمكن الوصول إليها من خلال مزيج من مكتبات bitsandbytes و PEFT. بالإضافة إلى ذلك، توفر مكتبة HuggingFace Transformer Reinforcement Learning (TRL) دعمًا متكاملًا ل LoRA.

QLoRA (مكمّلة)

في حين أن LoRA تقلل من احتياجات التخزين، لا تزال تتطلب كمبيوترًا قويًا لتحميل النموذج للتدريب. هنا يأتي QLoRA، أو Quantized LoRA، الذي يجمع بين LoRA والكمية لنهج أكثر ذكاء.

الكمية

الكمية

الوزن المعاملات عادةً ما يتم تخزينها في تنسيق 32 بت (FP32)، مما يعني أن كل عنصر في المصفوفة يأخذ 32 بت من المساحة. تخيل لو كنت قادرًا على ضغط نفس المعلومات في 8 بت أو حتى 4 بت. هذا هو الفكرة الأساسية وراء QLoRA.

الكمية في LLM

الكمية في LLM

هنا يأتي QLoRA:

  1. الكمية الأولية: يتم كمية النموذج اللغة الكبير إلى 4 بت، مما يقلل بشكل كبير من بصمة التخزين.
  2. تدريب LoRA: ثم يتم تدريب LoRA، ولكن في دقة 32 بت (FP32).

الآن، قد تتساءل لماذا العودة إلى 32 بت للتدريب بعد تقليلها إلى 4 بت؟ حسنًا، لتدريب محولات LoRA بشكل فعال في FP32، تحتاج معلمات النموذج إلى العودة إلى FP32 أيضًا. يتم هذا التبديل بشكل متعمد لتفادي إرهاق ذاكرة GPU.

الختام

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

كما تناولنا QLoRA، وهو مزيج من LoRA والكمية، الذي يقلل من بصمة التخزين للنموذج مع الحفاظ على الدقة الأساسية للتدريب. بهذه التقنيات المتقدمة، أصبح المتخصصون الآن مجهزين بمكتبات قوية، مما يسهل تبني وتنفيذ النماذج اللغة الكبيرة في مجموعة واسعة من السيناريوهات الواقعية.

المصفوفة

المصفوفة

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

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