في مشهد الذكاء الاصطناعى المتطور بسرعة اليوم ، يكون الطلب على مجموعات البيانات عالية الجودة والمشرح والنماذج المخصصة أكبر من أي وقت مضى. لمعالجة هذه الحاجة ، يهدف مشروعنا إلى تطوير وحدة مبتكرة تدمج بسلاسة شرح البيانات مع النموذج النموذجي. ستستفيد هذه الوحدة النمطية من طرز اللغة المتطورة مثل Claude أو ChatGPT-4 لتسمية صور العملاء المقدمة ، وبعد ذلك ، قم بتصنيع نموذج نشر مستقر XL (SDXL) باستخدام هذه التعليقات التوضيحية.
الهدف من هذا المشروع هو إنشاء وحدة قوية وفعالة تؤدي إلى أتمتة عملية شرح البيانات وتعزيز التدريب النموذجي. من خلال دمج إمكانيات الذكاء الاصطناعى المتقدمة ، نهدف إلى إنتاج نموذج SDXL للتكيف ودقيق مع مجموعة البيانات المشروحة حديثًا.
استخدم واجهة برمجة تطبيقات Claude/ChatGPT-4 (أو ما شابه ذلك) لإنشاء تعليقات توضيحية عالية الجودة لمجموعة من 5-20 صور العملاء.
تأكد من أن التعليقات التوضيحية دقيقة ومتسقة لإنشاء مجموعة بيانات موثوقة لأغراض التدريب.
ضبط طراز SDXL باستخدام مجموعة البيانات المشروحة.
قم بتنفيذ تقنيات التكيف منخفضة الرتبة (LORA) لتحسين أداء النموذج استنادًا إلى الخصائص المحددة للبيانات المشروحة.
تم تصميم هذا المشروع لتعزيز كفاءة ودقة تطوير نموذج الذكاء الاصطناعي من خلال أتمتة ودمج العمليات الحاسمة. سيؤدي مزيج من نماذج اللغة المتقدمة للتعليق الشرح وأساليب الضبط المتطورة إلى حل فعال للغاية يلبي الاحتياجات المتزايدة لتطبيقات الذكاء الاصطناعي. من خلال الحد من العمل اليدوي وتحسين أداء النموذج ، سيوفر هذا المشروع قيمة كبيرة للصناعات التي تعتمد على تقنيات الذكاء الاصطناعي.

هناك أنواع مختلفة من الضبط الدقيق. يعتمد اختيار أساليب الضبط الدقيقة على مواصفات النظام والاستخدام. توفر نماذج Lora (التكيف منخفض الرتبة) كفاءة أكبر وضغطًا. تعمل مثل المحولات التي تعتمد على نماذج نقاط التفتيش الحالية. على وجه التحديد ، تقوم نماذج Lora بتحديث مجموعة فرعية فقط من المعلمات من نموذج نقطة التفتيش ، وبالتالي تعزيز قدراتها. يتيح هذا النهج نماذج LORA للحفاظ على حجم أصغر ، تتراوح عادة من 2 ميغابايت إلى 500 ميجابايت ، وتمكّن من الضبط المتكرر لمفاهيم أو أنماط محددة.
على سبيل المثال ، عند صياغة نموذج نشر مستقر باستخدام DreamBooth ، والذي يعدل النموذج بأكمله للتكيف مع مفهوم أو نمط معين ، تكون الموارد الحسابية المهمة مطلوبة بسبب حجم النموذج الكبير الناتج (حوالي 2 إلى 7 جيجابايت) واستخدام GPU المكثف. في المقابل ، تحقق نماذج Lora نتائج استنتاج مماثلة مع متطلبات GPU أقل بكثير.
في حين أن لورا هي طريقة معتمدة على نطاق واسع ، هناك طرق بديلة لتعديل الانتشار المستقر. تتضمن إحدى هذه الطرق وحدة Crossattention ، التي تقوم بمعالجة الإدخال المستمدة من تحويل النص المطري إلى تضمينات نصية. تمثل الانقلابات النصية مقاربة أخرى ، حتى أكثر إحكاما وأسرع من Lora. ومع ذلك ، تقتصر الانعكاسات النصية على تضمينات النص الدقيقة وحدها لمفاهيم أو أنماط محددة. يظل U-NET المسؤول عن توليد الصور دون تغيير ، ويقيد الانقلابات النصية لإنشاء صور مماثلة لتلك المستخدمة أثناء التدريب ، دون القدرة على إنتاج مخرجات جديدة تمامًا.
في هذا المشروع ، هناك نوعان من أساليب الضبط الدقيقة. الخيار الأول هو استخدام مزيج من Dreambooth و Lora والآخر يستخدم Lora فقط. إن استخدام الخيار الأول هو الخيار الأفضل وهو الطريقة المفضلة في هذا المشروع. أسباب هذا الاختيار هي:
القدرة على التكيف المحسّنة: Dreambooth هي طريقة صقلها تسمح بالتكيف الشامل للنموذج بأكمله مع مفاهيم أو أنماط محددة. من خلال ضبطها مع Dreambooth ، يمكن أن يتعلم نموذج SDXL التفاصيل والخصائص الدقيقة التي تتماشى عن كثب مع المخرجات المطلوبة.
الكفاءة والضغط: Lora (التكيف المنخفض الرتبة) تدخل حيز التنفيذ بعد صقل Dreambooth. تم تصميم نماذج Lora لتحسين الكفاءة من خلال تحديث مجموعة فرعية فقط من معلمات نموذج نقطة التفتيش. يقلل هذا النهج بشكل كبير من حجم النموذج (عادةً 2 ميغابايت إلى 500 ميجابايت) مقارنة بالنماذج التي تم ضبطها بالكامل ، مثل تلك التي تم تعديلها فقط بواسطة Dreambooth.
الموارد الحسابية المخفضة: يؤدي الجمع بين Dreambooth و Lora إلى نماذج تتطلب عددًا أقل من موارد GPU أثناء التدريب والاستدلال. يتطلب Dreambooth في البداية موارد كبيرة نظرًا لعملية التثبيت الشاملة ، لكن تخفيض المعلمة اللاحق لـ Lora يضمن أن النموذج لا يزال قابلاً للإدارة وفعالًا.
الحفاظ على الأداء: على الرغم من مكاسب الكفاءة ، فإن Lora تحافظ على الأداء عالي الجودة الذي تم تحقيقه من خلال صقل Dreambooth. يضمن هذا المزيج أن يحتفظ النموذج بقدرته على توليد مخرجات رائعة ، مماثلة لتلك التي تنتجها نموذج تم ضبطه بالكامل.
المرونة في التحسين التكراري: يسمح النهج التكراري لـ Dreambooth متبوعًا Lora بالتحسين التكراري والضبط. تعتبر هذه المرونة حاسمة في السيناريوهات التي يلزم التكيف المستمر مع المفاهيم أو الأنماط المتطورة دون المساس بكفاءة أو أداء النموذج.
كما ذكر أعلاه ، فإن الطريقة المفضلة لضبط نموذج SDXL في هذا المشروع هي مجموعة Dreambooth و Lora. يكمن الأساس المنطقي وراء الجمع بين Dreambooth و Lora في تحسين المفاضلة بين القدرة على التكيف النموذجية والكفاءة الحسابية. يسمح Dreambooth بالتكيف الشامل لمعلمات النموذج مع فروق محددة في البيانات أو المخرجات المطلوبة. ومع ذلك ، يمكن أن يؤدي هذا التكيف الشامل إلى أحجام نموذجية أكبر وزيادة المتطلبات الحسابية ، خاصة أثناء التدريب والاستدلال. من ناحية أخرى ، تتدخل لورا بعد أحلامها لتبسيط النموذج ، مما يقلل من حجمه مع الحفاظ على أدائه. هذا المزيج يعزز نقاط قوة كلا النهجين: Dreambooth للتكيف الدقيق و Lora لإدارة المعلمات الفعالة.
الخطوات الرئيسية لهذا النهج الدقيق هي:
تعديل المعلمة: استخدم DreamBooth لضبط مجموعة المعلمات الكاملة داخل نموذج SDXL لتتماشى بشكل أوثق مع الأهداف المحددة. تتضمن هذه العملية تحديثات تكرارية بناءً على مجموعة البيانات المستهدفة أو خصائص الإخراج المطلوبة.
مرحلة التدريب: تنفيذ عملية الضبط باستخدام الأهداف المحددة وبيانات التدريب. تضمن هذه المرحلة أن يتم ضبط نموذج SDXL بدقة على الفروق الدقيقة ومتطلبات المهمة في متناول اليد.
اختيار المعلمة: بعد أحلام ، حدد مجموعات فرعية من المعلمات الأكثر أهمية للحفاظ على الأداء أو تعزيزه. تتضمن هذه الخطوة تحليل أهمية وتأثير المعلمات المختلفة داخل نموذج SDXL الذي تم ضبطه.
العوامل المنخفضة الرتبة: تطبيق تقنيات LORA ، مثل معامل المصفوفة منخفضة الرتبة ، على هذه المجموعات الفرعية المعلمة المحددة. تحلل Lora مصفوفات المعلمة إلى مكونات منخفضة الرتب ، مما يقلل من التكرار ويركز الموارد الحسابية على المعلمات الأكثر نفوذاً.
تحديث المعلمة الانتقائية: قم بتحديث المكونات المنخفضة الرتبة المحددة فقط ، وبالتالي تحسين كفاءة النموذج مع الحفاظ على مقاييس الأداء أو تحسينها.
(العودة إلى الأعلى)
Accelerate هي مكتبة متعددة الاستخدامات وسهلة الاستخدام مصممة من خلال معانقة الوجه لتبسيط وتحسين عملية التدريب ونشر نماذج التعلم الآلي على مجموعة متنوعة من إعدادات الأجهزة. إنه يوفر واجهة موحدة تمنع تعقيدات تكوين وإدارة بيئات التدريب المختلفة الموزعة ، مثل إعدادات GPU و TPU متعددة. يسهل التسارع على المطورين من توسيع نطاق رمز Pytorch الخاص بهم ، مع التركيز على تطوير النماذج بدلاً من البنية التحتية الأساسية.
فوائد هذه المكتبة هي:
يبسط التدريب الموزع: يلغي الحاجة إلى تكوين وإدارة الإعدادات الموزعة المعقدة يدويًا ، مما يتيح لك التركيز على تطوير النماذج الخاصة بك وضبطها.
يعزز استخدام الموارد: يزيد من استخدام الأجهزة المتاحة ، مما يضمن استخدام وحدات معالجة الرسومات و TPUs بشكل فعال لتسريع عمليات التدريب والاستدلال.
يدعم النماذج الكبيرة: يسهل التعامل مع النماذج الكبيرة التي تتطلب ذاكرة كبيرة وقوة حسابية ، مما يجعلها في متناول الشبكات العصبية المتطورة.
يقلل من التنمية النفقات العامة: يبسط تكامل التدريب الموزع في مشاريعك ، وتوفير الوقت وتقليل النفقات العامة المرتبطة بإدارة بيئات الأجهزة المختلفة.
BitsandBytes هي مكتبة فعالة ومبتكرة مصممة لتحسين أداء الشبكات العصبية على نطاق واسع ، وخاصة في سياق التدريب والاستدلال. يوفر الأدوات والتقنيات لتقليل استهلاك الذاكرة بشكل كبير والنفقات العامة الحسابية دون التضحية بالدقة. واحدة من الميزات البارزة لـ BitsandBytes هي دعمها للمحسّنات الدقيقة ذات 8 بت.
في هذا المشروع ، نستخدم تقنية مُحسّنة 8 بت. المحسن 8 بت في BitsandBytes هو تقنية تقوم بتكميات دقة الأوزان والتدرجات من أرقام الفاصلة العائمة 32 بت إلى أعداد صحيحة 8 بت أثناء عملية التدريب. يعد استخدام مُحسِّن 8 بت من BitsandBytes مفيدًا بشكل خاص للمشاريع التي تتضمن شبكات عصبية واسعة النطاق ، مثل ضبط النماذج التوليدية مثل الانتشار المستقر XL (SDXL). تتضمن الأسباب الأساسية لاستخدام مُحسّن 8 بت:
معالجة النماذج الأكبر: قم بتناسب نماذج أكبر في ذاكرة الأجهزة المتاحة ، مما يتيح تدريب البنية الحديثة التي قد تكون غير ممكنة.
التدريب بشكل أسرع: تسريع أوقات التدريب عن طريق تقليل الحمل الحسابي ، مما يسمح بتجربة وتكرار أسرع.
تحسين الموارد: زيادة استخدام الأجهزة المتاحة إلى الحد الأقصى ، مما يقلل من الحاجة إلى ترقيات مكلفة واستخدام فعال للموارد الحالية.
الأداء المحسن: تحقيق دقة وأداء مماثلة لطرق التدريب التقليدية 32 بت مع الاستفادة من الذاكرة المنخفضة والمتطلبات الحسابية.
مكتبة Transformers ، التي تم تطويرها عن طريق Hugging Face ، هي مكتبة مفتوحة المصدر توفر مجموعة واسعة من النماذج الحديثة التي تم تدريبها قبل التدريب للمعالجة الطبيعية (NLP) وغيرها من المهام. وهو يدعم مجموعة متنوعة من بنيات المحولات ، مثل Bert و GPT و T5 و Roberta وغيرها الكثير. تم تصميم المكتبة لتسهيل استخدام هذه النماذج القوية لمجموعة متنوعة من التطبيقات ، بما في ذلك تصنيف النص والترجمة والإجابة على الأسئلة والمزيد.
فوائد استخدام هذه المكتبة هي:
الوصول إلى النماذج المتطورة: الوصول بسهولة وتنفيذ بعض النماذج الأكثر تقدماً في NLP وما بعده ، مما يضمن أنك تعمل مع البنية ذات الأداء الأعلى.
التطوير السريع: تتيح واجهة برمجة تطبيقات المكتبة المباشرة النماذج الأولية والتجريب السريع ، مما يسرع بشكل كبير من عملية التطوير. نقل إمكانيات التعلم: النماذج القوية التي تم تدريبها القوية على مهامك المحددة ، والاستفادة من المعرفة السابقة وتحقيق الأداء العالي مع بيانات أقل.
التطبيقات متعددة الاستخدامات: استخدم المكتبة للحصول على مجموعة واسعة من المهام ، بما في ذلك تصنيف النص ، وتحليل المشاعر ، والتعرف على الكيان المسماة ، والترجمة الآلية ، والمزيد.
الدعم القوي للمجتمع: الاستفادة من مجتمع قوي وموارد واسعة النطاق يوفرها Hugging Face ، مما يضمن أن لديك الدعم اللازم للتغلب على التحديات والابتكار في مشاريعك.
تم تصميم مكتبة PEFT (ضبط المعلمة الموفرة للمعلمة) لتحسين عملية ضبط نماذج التعلم الآلي على نطاق واسع. تم تطوير PEFT لمواجهة تحديات صياغة النماذج الضخمة ذات الموارد الحسابية المحدودة ، وتركز على التقنيات التي تتيح التكيف الفعال للنماذج التي تم تدريبها مسبقًا مع مهام جديدة مع تغييرات الحد الأدنى على معلمات النموذج.
فوائد استخدام PEFT:
الكفاءة: يركز على طرق كفاءة المعلمة ، مما يقلل من النفقات العامة الحسابية والذاكرة المرتبطة بنماذج كبيرة صقلها.
إمكانية الوصول: يجعل من الممكن ضبط النماذج الحديثة على الأجهزة القياسية ، مما يضعف الوصول إلى تقنيات التعلم الآلي المتقدم.
السرعة: يسارع عملية الضبط ، مما يتيح تحديثات النموذج والنشر بشكل أسرع.
الأداء: يضمن الأداء العالي حتى مع تعديل عدد أقل من المعلمات ، وذلك بفضل تقنيات الضبط المتقدمة.
التنوع: يمكن تطبيقه على مجموعة واسعة من النماذج والمهام ، مما يوفر أداة متعددة الاستخدامات لممارسي التعلم الآلي.
(العودة إلى الأعلى)
يتطلب backpropagation ، التي تحسب هذه التدرجات ، تخزين تنشيطات وسيطة للنموذج. يمكن أن يكون هذا كثافة في الذاكرة ، خاصة بالنسبة للطرز الكبيرة مثل SDXL. يتناول التدرج المعالج تحدي الذاكرة هذا من خلال التداول خارج استخدام الذاكرة لوقت حساب إضافي. بدلاً من تخزين جميع عمليات التنشيط الوسيطة في جميع أنحاء النموذج بأكمله أثناء التراجع الخلفي ، يعيد تحديد التدرج بشكل دوري عمليات التنشيط التي تبدأ من نقاط التفتيش المحفوظة مسبقًا. يقلل هذا النهج من استخدام ذاكرة الذروة عن طريق إعادة حساب التنشيط على الطيران أثناء التمريرة المتخلفة. باستخدام تحديد التدرج التدرج ، يتم تقليل النفقات العامة لذاكرة تخزين جميع عمليات التنشيط الوسيطة. هذا مفيد بشكل خاص عند صقل النماذج التي خضعت لتعديلات واسعة المعلمة (Dreambooth) والتحديثات الانتقائية (LORA). بينما يقلل تحديد التدرج عن استهلاك الذاكرة ، فإنه يقدم النفقات الحاسوبية الإضافية بسبب إعادة التثبيت. يجب موازنة المفاضلة بين الذاكرة والحساب بناءً على الموارد المتاحة وأهداف التثبيت المحددة.
آدم (تقدير اللحظة التكيفية) هو خوارزمية تحسين شهيرة تستخدم على نطاق واسع في التعلم العميق. فهو يجمع بين معدلات التعلم التكيفي لكل معلمة مع الزخم لتسريع التقارب. عادةً ما يستخدم آدم أرقام النقطة العائمة 32 بت (دقة واحدة) لتخزين التدرجات وتحديث المعلمات. يعدل "8 بت آدم" هذا باستخدام أرقام نقطة ثابتة 8 بت لهذه العمليات. باستخدام دقة 8 بت بدلاً من 32 بت ، يقلل "8 بت آدم" بشكل كبير من بصمة الذاكرة المطلوبة لتخزين التدرجات والمعلمات أثناء التدريب. هذا مفيد بشكل خاص للنماذج الكبيرة مثل SDXL ، والتي لديها العديد من المعلمات. يمكن أن تؤدي العمليات الحسابية الدقيقة إلى تسريع الحسابات بسبب انخفاض متطلبات عرض النطاق الترددي للذاكرة. يمكن أن يؤدي ذلك إلى أوقات تدريب أسرع ، وخاصة على بنية الأجهزة المحسنة للعمليات الدقيقة المنخفضة. ومع ذلك ، هناك مفاضلة. يمكن أن يؤثر استخدام الدقة المنخفضة على دقة النموذج واستقراره ، خاصة إذا لم يتم تنفيذه بعناية. قد تكون التقنيات مثل التدرج المتدرج أو تعديل الدقة التكيفية ضرورية للتخفيف من أي فقدان محتمل للدقة.
هناك مستويان دقيقان في دقة نقطة العائمة ، ونقطة عائمة 32 بت ونقطة عائمة 16 بت. النقطة العائمة 32 بت هي الدقة القياسية المستخدمة في معظم أطر التعلم العميق لتخزين معلمات النموذج وإجراء الحسابات. يوفر دقة عددية عالية ولكنه يتطلب المزيد من الذاكرة والموارد الحسابية. النقطة العائمة 16 بت هي تنسيق الدقة المخفضة الذي يستخدم نصف ذاكرة النقطة العائمة 32 بت. إنه يسرع الحسابات ، وخاصة على وحدات معالجة الرسومات مع نوى الموتر ، مع الحفاظ على الدقة العددية الكافية للعديد من مهام التعلم العميقة. يمكن أن يؤدي استخدام الدقة 16 بت إلى تسريع أوقات التدريب بشكل كبير ، خاصة بالنسبة للنماذج الكبيرة مثل SDXL التي تتضمن حسابات معقدة. أيضًا ، تتطلب الدقة المخفضة عرض النطاق الترددي للذاكرة أقل ، مما يجعل من الممكن تدريب النماذج الكبيرة أو أحجام الدفعات ضمن حدود الأجهزة المتاحة.
(العودة إلى الأعلى)
تعليمات حول إعداد مشروعك باستخدام كولاب. يرجى اتباع الرابط أدناه لتدريبه بنفسك. يمكنك العثور على النموذج المسبق في مجلد "تمثال_اللورا".
لتشغيل العرض التجريبي للاستدلال المعياري مع النموذج المسبق المدربين مع مجموعة بيانات تمثال الرخام ، استخدم الأوامر التالية.
لتثبيت الحزم المطلوبة ، في محطة ، اكتب:
pip install -r requirements.txtفي محطة ، اكتب:
streamlit run main.py(العودة إلى الأعلى)