# FLAN-UL2

## نظرة عامة

[Flan-UL2](https://www.yitay.net/blog/flan-ul2-20b) هو نموذج مُشفِّر-مُفكِّك (encoder-decoder) مبني على معمارية T5. يستخدم نفس الإعدادات المستخدمة في نموذج [UL2](ul2) الذي تم إصداره في وقت سابق من العام الماضي. تم ضبطه بدقة باستخدام تقنية ضبط الاستعلامات "Flan" ومجموعة البيانات الخاصة بها. وبالمثل مع `Flan-T5`، يمكن استخدام أوزان FLAN-UL2 مباشرة دون الحاجة إلى ضبط النموذج بدقة:

وفقاً للمدونة الأصلية، هذه أبرز التحسينات:

- تم تدريب نموذج UL2 الأصلي فقط بحقل استقبال يبلغ 512، مما جعله غير مثالي للاستدلال متعدد الأمثلة (N-shot prompting) عندما يكون N كبيراً.
- يستخدم نقطة التفتيش Flan-UL2 مجال استقبال يبلغ 2048، مما يجعلها أكثر قابلية للاستخدام في التعلم السياقي بعدد قليل من الأمثلة.
- كانت نموذج UL2 الأصلي يحتوي أيضًا على رموز تبديل وضع كانت ضرورية إلى حد كبير للحصول على أداء جيد. ومع ذلك، كانت هذه الرموز متعبة بعض الشيء لأن ذلك يتطلب غالبًا بعض التغييرات أثناء الاستدلال أو الضبط الدقيق. في هذا التحديث/التغيير، واصلنا تدريب UL2 20B لـ 100 ألف خطوة إضافية (مع دفعة صغيرة) لتنسيه «رموز الوضع» قبل تطبيق ضبط التعليمات الخاص بـ Flan. لا يتطلب نقطة الفحص هذه لـ Flan-UL2 رموز الوضع بعد الآن.
أصدرت Google المتغيرات التالية:

يمكن العثور على نقاط التفتيش الأصلية [هنا](https://github.com/google-research/google-research/tree/master/ul2).

## التشغيل على أجهزة ذات موارد محدودة

النموذج ثقيل إلى حد كبير (حوالي 40 جيجابايت بدقة نصفية)، لذا إذا كنت ترغب فقط في تشغيل النموذج، فتأكد من تحميله بدقة 8 بت، واستخدم `device_map="auto"` للتأكد من عدم حدوث أي مشكلة نفاد ذاكرة!

```python
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer, BitsAndBytesConfig

model = AutoModelForSeq2SeqLM.from_pretrained("google/flan-ul2", quantization_config=BitsAndBytesConfig(load_in_8bit=True), device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("google/flan-ul2")

inputs = tokenizer("A step by step recipe to make bolognese pasta:", return_tensors="pt").to(model.device)
outputs = model.generate(**inputs)
print(tokenizer.batch_decode(outputs, skip_special_tokens=True))
['In a large skillet, brown the ground beef and onion over medium heat. Add the garlic']
```

راجع [صفحة توثيق T5](t5) للاطلاع على مرجع واجهة برمجة التطبيقات، والنصائح، وأمثلة الأكواد، ودفاتر الملاحظات.

