توفير الموارد الحاسوبية ب thanks لتقنية LoRA و QLoRA في تحسين نماذج اللغات الكبيرة تعديل نموذج لغوي كبير بدون تضييع موارد: تقنية LoRA وQLoRA للتأقلم السريع والفعال التدقيق السريع لنماذج اللغات الكبيرة: كيف تحقق LoRA و QLoRA كفاءة عالية وتخفيض كبير في الاستهلاك الحاسوبي كيف تسهل LoRA و QLoRA عملية تحسين نماذج الذكاء الاصطناعي اللغوية الكبيرة على الأجهزة المحلية؟ تقنيات LoRA و QLoRA لتقليل متطلبات الحوسبة وتحسين كفاءة النماذج اللغوية الكبيرة
تحسين نماذج اللغات الكبيرة: LoRA و QLoRA مع ظهور ChatGPT، أدرك العالم القدرة القوية لنماذج اللغات الكبيرة (LLMs) التي يمكنها فهم اللغة الطبيعية والاستجابة لطلبات المستخدمين بدقة عالية. تشير الحرف الأولى في LLM إلى "Large" (كبيرة)، مما يعكس العدد الكبير من المعلمات التي تحتوي عليها هذه النماذج. تحتوي النماذج الحديثة من LLMs على أكثر من مليار معلمة. عندما نرغب في تكييف نموذج لغة كبير لمهمة ثانوية، فإن النهج الشائع يتضمن "التuning الدقيق" (fine-tuning)، وهو عملية تعديل أوزان النموذج الموجودة على مجموعة بيانات جديدة. ومع ذلك، هذه العملية تكون بطيئة للغاية وتحتاج إلى موارد كبيرة، خاصة عند تنفيذها على جهاز محلي به إمكانيات محدودة. LoRA (Low-Rank Adaptation) تعتبر LoRA تقنية شائعة لتقليل العبء الحسابي أثناء "التuning الدقيق" للنماذج الكبيرة. الفكرة الأساسية وراء LoRA هي تقريب مصفوفة الأوزان الكبيرة بتحليلها إلى حاصل ضرب مصفوفتين أصغر بكثير. إذا كانت مصفوفة الأوزان الأصلية لها أبعاد n × m، يمكن تقريبها باستخدام مصفوفتين بحجم n × k و k × m، حيث k هو بعد داخلي أصغر بكثير (k << n, m). على سبيل المثال، إذا كانت مصفوفة الأوزان الأصلية بحجم 8192 × 8192، أي ما يعادل حوالي 67 مليون معلمة، واخترنا k = 8، فستكون المصفوفات المجزأة بحجم 8192 × 8 و 8 × 8192، التي تحتوي مجتمعة على حوالي 131 ألف معلمة فقط — وهو عدد أقل بحوالي 500 مرة من الأصل، مما يقلل بشكل كبير من متطلبات الذاكرة والحساب. التدريب باستخدام LoRA لنفترض أن لدينا متجه إدخال x يتم تمريره إلى طبقة مترابطة بالكامل في شبكة عصبية، والتي قبل "الت tuning الدقيق" تمثلها مصفوفة الأوزان W. لحساب متجه الإخراج y، نقوم بضرب المصفوفة في المتجه الإدخال: y = Wx. خلال "الت tuning الدقيق"، الهدف هو تعديل النموذج للمهام الثانوية عن طريق تعديل الأوزان. يمكن التعبير عن هذا بتعلم مصفوفة إضافية ΔW، بحيث: y = (W + ΔW)x = Wx + ΔWx. باستخدام حيلة الضرب المذكورة سابقًا، يمكننا استبدال ΔW بحاصل ضرب مصفوفتين A و B، لتحصل في النهاية على: y = Wx + BAx. نتيجة لذلك، نجمد مصفوفة W ونحل مهمة الأمثلة لحساب مصفوفتي A و B اللتين تحتويان على عدد أقل بكثير من المعلمات مقارنة بـ ΔW! ومع ذلك، فإن حساب حاصل ضرب (BA)x مباشرة خلال كل مرور قد يكون بطيئًا جدًا بسبب ثقل عملية ضرب المصفوفات. لتجنب هذا، يمكننا استغلال الخاصية الربطية لضرب المصفوفات وإعادة كتابة العملية كـ B(Ax). ضرب A في x ينتج متجهًا سيتم ضربه بمصفوفة B، مما ينتج متجهًا نهائيًا. هذه سلسلة العمليات أسرع بكثير. بعد التدريب بعد التدريب، نكون قد حسبنا المصفوفات الأمثل A و B. كل ما نحتاجه هو ضربهما لحساب ΔW، ثم إضافتها إلى مصفوفة التدريب السابقة W للحصول على الأوزان النهائية. رغم أن ضرب المصفوفات B و A قد يبدو عملية ثقيلة، إلا أنها تتم مرة واحدة فقط، فلا ينبغي أن تكون مصدر قلق كبير! بالإضافة إلى ذلك، بعد الإضافة، لم تعد هناك حاجة لتخزين A، B، أو ΔW. المكيفات (Adapters) بينما ندرس نظرية LLMs، من المهم ذكر مصطلح "المكيف" (adapter) الذي يظهر في العديد من أوراق البحث حول LLMs. في سياق LoRA، يعتبر "المكيف" مزيجًا من المصفوفتين A و B اللتين يستخدمان لحل مهمة ثانوية معينة لمصفوفة W المعطاة. على سبيل المثال، إذا قمنا بتدريب مصفوفة W بحيث يكون النموذج قادرًا على فهم اللغة الطبيعية، يمكننا بعد ذلك تنفيذ عدة عمليات LoRA مستقلة لتكييف النموذج على مهام مختلفة. نتيجة لذلك، نحصل على عدة أزواج من المصفوفات: (A₁, B₁) لعملية محددة (A₂, B₂) لعملية أخرى (A₃, B₃) لعملية ثالثة تطوير مكيف منفصل لكل مهمة ثانوية هو طريقة فعالة وقابلة للتوسع لتكييف نموذج كبير واحد لمشاكل مختلفة. ضبط المكيفات في الوقت الحقيقي الشيء الرائع في المكيفات هو أنه يمكن تبديلهما بشكل ديناميكي. تخيل سيناريو حيث نحتاج إلى تطوير نظام للدردشة يسمح للمستخدمين باختيار كيفية استجابة الروبوت بناءً على شخصية محددة، مثل هاري بوتر أو طائر غاضب أو كريستيانو رونالدو. ومع ذلك، قد تمنع القيود النظامية تخزين أو "الت tuning الدقيق" لنماذج كبيرة منفصلة ثلاثة بسبب حجمها الكبير. ما الحل؟ هنا تأتي المكيفات لإنقاذ الموقف! كل ما نحتاج إليه هو نموذج كبير واحد W وثلاثة مكيفات منفصلة، واحدة لكل شخصية. نحتفظ في الذاكرة بمصفوفة W فقط وثلاثة أزواج من المصفوفات: (A₁, B₁)، (A₂, B₂)، (A₃, B₃). كلما اختار المستخدم شخصية جديدة للروبوت، نقوم بتبديل مصفوفة المكيف بشكل ديناميكي عن طريق إجراء عملية الجمع بين W و (Aᵢ, Bᵢ). نتيجة لذلك، نحصل على نظام يتوسع بشكل رائع إذا احتجنا لإضافة شخصيات جديدة في المستقبل! QLoRA QLoRA هو مصطلح آخر شائع، والذي يختلف عن LoRA فقط في حرفه الأول Q، والذي يعني "مكتملة" (quantized). مصطلح "الكمية" يشير إلى تقليل عدد البتات المستخدمة لتخزين أوزان العصبونات. على سبيل المثال، يمكن تمثيل أوزان الشبكة العصبية كأعداد عائمة تتطلب 32 بت لكل وزن. فكرة الكم هي ضغط أوزان الشبكة العصبية إلى دقة أصغر دون فقدان كبير أو تأثير سلبي على أداء النموذج. إذن، بدلاً من استخدام 32 بت، يمكننا تقليل البتات إلى استخدام، على سبيل المثال، فقط 16 بت. في سياق QLoRA، تستخدم الكم لضغط مصفوفة الأوزان المدربة مسبقًا W لتقليل حجم أوزانها. التuning الدقيق البادئة (Prefix-Tuning) التuning الدقيق البادئة هو بديل مثير للاهتمام لـ LoRA. الفكرة هي أيضًا استخدام المكيفات لمهام ثانوية مختلفة، ولكن هذه المرة يتم دمج المكيفات داخل طبقة الانتباه (attention) في النموذج النسخي (Transformer). بشكل أكثر تحديدًا، أثناء التدريب، يتم تجميد جميع طبقات النموذج باستثناء تلك التي يتم إضافتها كبادئات لبعض الترميزات (embeddings) التي يتم حسابها داخل طبقات الانتباه. مقارنة بـ LoRA، لا يتغير تمثيل النموذج في التuning الدقيق البادئة، وهو بشكل عام لديه عدد أقل بكثير من المعلمات القابلة للتدريب. كما كان سابقًا، يجب إجراء عملية الجمع لحساب البادئة المكيف، ولكن هذه المرة مع عدد أقل من العناصر. الخلاصة في هذا المقال، اطلعنا على مفاهيم متقدمة لنماذج اللغات الكبيرة لفهم كيفية تكييف النماذج الكبيرة بكفاءة دون زيادة العبء الحسابي. جمال LoRA في ضغط مصفوفة الأوزان من خلال تحليل المصفوفات ليس فقط يسمح للنماذج بالتدرب بشكل أسرع ولكنه أيضًا يحتاج إلى مساحة ذاكرة أقل. بالإضافة إلى ذلك، تعتبر LoRA مثالًا ممتازًا لشرح فكرة المكيفات التي يمكن استخدامها وتبديلها بمرنة للمهام الثانوية. بالإضافة إلى ذلك، يمكننا إضافة عملية الكم (quantization) لخفض مساحة الذاكرة بشكل أكبر عن طريق تقليل عدد البتات المطلوبة لتمثيل كل عصبون. أخيرًا، استكشفنا بديلًا آخر يُعرف بـ "الت tuning الدقيق البادئة"، الذي يؤدي نفس الدور مثل المكيفات بدون تغيير تمثيل النموذج. تقييم الحدث من قبل المختصين يعتبر LoRA و QLoRA من التقنيات الواعدة في مجال النماذج اللغوية الكبيرة، حيث يوفران حلولًا فعالة لتقليل متطلبات الذاكرة والحساب أثناء "الت tuning الدقيق". هذه التقنيات تساعد في تسريع عملية التدريب وتتيح التوسع في استخدام النموذج الواحد لأكثر من مهمة ثانوية، مما يجعلها خيارًا مفضلًا للمطورين الذين يعملون في بيئات ذات موارد محدودة. نبذة تعريفية عن شركات ذات صلة شركات مثل Anthropic و Google و Meta تساهم بشكل كبير في تطوير وتحسين نماذج اللغات الكبيرة. Anthropic، على سبيل المثال، طورت نموذج LLaMA الذي يتميز بقدرته على التكيف السريع للمهام الجديدة باستخدام تقنيات مثل LoRA. فيما يتعلق بـ Google، فلديها نماذج مثل PaLM التي تستخدم تقنيات مشابهة لتحقيق كفاءة عالية في التدريب والتنفيذ. Meta، من جهتها، طورت نموذج OPT، والذي يعد أحد النماذج الرائدة في مجال الذكاء الصناعي اللغوي وأثبت فعاليته في مهام متعددة. هذه الشركات تواصل البحث والتطوير في مجالات التكيف والكم والتقنيات الأخرى لتحسين كفاءة النماذج اللغوية الكبيرة، مما يفتح آفاقًا جديدة في تطبيقات الذكاء الصناعي اللغوي.
