بناء واجهة محادثة تفاعلية ثنائية اللغة (العربية والإنجليزية)

فهم المكونات

قبل الخوض في التنفيذ، دعونا نستكشف المكونات الرئيسية وأدوارها في هذا المشروع.

نموذج Meraj-Mini من Arcee

يمثل Meraj-Mini خطوة مهمة إلى الأمام في نماذج اللغات المتاحة بسهولة. تم تطوير هذا النموذج بواسطة Arcee، وهو مدرب خصيصًا للتعامل مع اللغتين العربية والإنجليزية، مما يجعله مثاليًا لمساعد الدردشة ثنائي اللغة الخاص بنا. تشجع طبيعته مفتوحة المصدر على التجريب والتخصيص، مما يسمح للمطورين بتكييفه مع الاحتياجات المحددة. تم تصميم بنية النموذج لتحقيق الكفاءة، مما يمكنه من العمل بفعالية حتى في البيئات محدودة الموارد مثل T4 GPU في Google Colab.

مكتبة Transformers

أصبحت مكتبة Transformers من Hugging Face هي المعيار للعمل مع نماذج اللغات المدربة مسبقًا. إنها توفر واجهة موحدة وسهلة الاستخدام لتحميل وضبط واستخدام مجموعة واسعة من النماذج، بما في ذلك Meraj-Mini. في مشروعنا، نستخدم Transformers لتحميل نموذج Meraj-Mini والمُرمِّز (tokenizer) المرتبط به. المُرمِّز ضروري لتحويل إدخال النص إلى تنسيق رقمي يمكن للنموذج فهمه، والعكس صحيح.

Accelerate و BitsAndBytes: التحسين من أجل الكفاءة

يمكن أن يكون تشغيل نماذج لغوية كبيرة مكلفًا من الناحية الحسابية. Accelerate و BitsAndBytes مكتبتان تساعداننا في التغلب على هذا التحدي.

  • Accelerate: تعمل هذه المكتبة من Hugging Face على تبسيط تشغيل نماذج PyTorch على تكوينات أجهزة مختلفة، بما في ذلك وحدات معالجة الرسومات (GPUs) ووحدات المعالجة المتجهة (TPUs). إنها تتعامل تلقائيًا مع العديد من تعقيدات التدريب الموزع والتدريب الدقيق المختلط، مما يسمح لنا بزيادة أداء أجهزتنا المتاحة.
  • BitsAndBytes: توفر هذه المكتبة أدوات للتقييم الكمي (quantization)، وهي تقنية تقلل من دقة أوزان النموذج (على سبيل المثال، من النقطة العائمة 32 بت إلى الأعداد الصحيحة 8 بت). يؤدي هذا إلى تقليل بصمة ذاكرة النموذج بشكل كبير ويسرع الحساب، مما يجعل من الممكن تشغيل نماذج كبيرة على أجهزة أقل قوة.

PyTorch: أساس التعلم العميق

PyTorch هو إطار عمل مفتوح المصدر للتعلم الآلي يستخدم على نطاق واسع ومعروف بمرونته والرسم البياني الحسابي الديناميكي الخاص به. يوفر البنية التحتية الأساسية لتعريف وتدريب ونشر الشبكات العصبية، بما في ذلك نموذج Meraj-Mini. واجهة برمجة التطبيقات (API) البديهية لـ PyTorch ودعم المجتمع الواسع تجعله خيارًا شائعًا لكل من تطبيقات البحث والإنتاج.

Gradio: إنشاء واجهة المستخدم

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

خطوات التنفيذ

الآن، دعنا نتناول خطوات بناء مساعد الدردشة ثنائي اللغة الخاص بنا.

إعداد البيئة

أولاً، نحتاج إلى التأكد من أن لدينا المكتبات الضرورية مثبتة. داخل دفتر ملاحظات Google Colab، يمكننا استخدام pip لتثبيتها: