تطبيق عملي على LoRA
تعرف على كيفية ضبط LLM على مجموعة بيانات مخصصة باستخدام LoRA.
سنغطي ما يلي...
يُستخدم نموذج ميتا لاما 3.1 في مجموعة متنوعة من حالات الاستخدام، بما في ذلك الإجابة على الأسئلة، وتوليد النصوص، وتوليد الأكواد البرمجية، وكتابة القصص، وغيرها الكثير. تتضمن إحدى حالات الاستخدام أيضًا حل مسائل رياضية كلامية، إلا أن النموذج عادةً ما يُقدم حلولًا بلغة طبيعية بدلًا من التعبيرات الرياضية البحتة. نسعى إلى تحسين نموذج لاما 3.1 لتوفير حلول للمسائل الكلامية باستخدام التعبيرات الرياضية.
سوف نستخدم openai/gsm8k
مجموعة بيانات من Hugging Face للضبط الدقيق. GSM8K (رياضيات المدارس الابتدائية 8K) هي مجموعة بيانات تحتوي على 8.5 ألف مسألة كلامية في الرياضيات للمدارس الابتدائية تتضمن التفكير متعدد الخطوات مع حلولها في تعبيرات رياضية بحتة.
لنبدأ رحلة ضبط نموذج Meta's Llama 3.1 علىopenai/gsm8k
مجموعة البيانات باستخدام LoRA.
تثبيت التبعيات
أولاً، لنثبّت المكتبات اللازمة للضبط الدقيق. سنقوم بتثبيت أحدث إصدارات المكتبات (وقت كتابة هذا المقال).
pip3 install transformers==4.44.1pip3 install acceleratepip3 install bitsandbytes==0.43.3pip3 install datasets==2.21.0pip3 install trl==0.9.6pip3 install peft==0.12.0!pip install -U "huggingface_hub[cli]"
الخط 1: نقوم بتثبيت
transformers
المكتبة، وهي مكتبة Hugging Face التي توفر واجهات برمجة التطبيقات والأدوات اللازمة لتنزيل وتدريب النماذج المدربة مسبقًا على أحدث طراز.الخط 2: نقوم بتثبيت
accelerate
مكتبة مصممة لتسهيل تدريب نماذج التعلم العميق عبر مختلف الأجهزة. فهي تُمكّن التدريب والاستنتاج من أن يكونا بسيطين وفعالين وقابلين للتكيف.الخط 3: نقوم بتثبيت
bitsandbytes
المكتبة، وهي مكتبة المحولات التي تساعد في تحديد كمية النموذج.الخط 4: نقوم بتثبيت
dataset
مكتبة لمشاركة مجموعات البيانات والوصول إليها للمهام اللاحقة.الخط 5: نقوم بتثبيت
trl
مكتبة لتدريب نماذج المحولات باستخدام التعلم التعزيزي والضبط الدقيق المشرف.الخط 6: نقوم بتثبيت
peft
مكتبة لضبط دقيق فعال للمعايير الخاصة بنماذج اللغة الكبيرة للمهام اللاحقة.السطر 7: نقوم بتثبيت Hugging Face CLI لتسجيل الدخول والوصول إلى النموذج ومجموعة البيانات من Hugging Face.
Hugging Face CLI
بعد تثبيت المكتبات المطلوبة، حان وقت تسجيل الدخول إلى CLI Hugging Face . يتطلب Hugging Face هذه الخطوة للوصول إلى أي نموذج أو مجموعة بيانات من Hugging Face.
!huggingface-cli login --token "Enter your token" --add-to-git-credential
سيطلب منا الأمر أعلاه إدخال رمز . أدخل رمز Hugging Face الذي أنشأته أثناء إعداد حساب Hugging Face . عندما يطلب منك "إضافة رمز كبيانات اعتماد git؟"، اضغط على مفتاح"y". بعد التحقق من رمز، سيتم تسجيل الدخول بنجاح إلى Hugging Face.
التكميم
الآن، دعنا نحمل النموذج المدرب مسبقًا بالكمية ونرى كيف يستجيب لمسألة كلمة رياضية.
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfigimport torchbnb_config = BitsAndBytesConfig(load_in_8bit=True,)model_name = "meta-llama/Meta-Llama-3.1-8B-Instruct"quantized_model = AutoModelForCausalLM.from_pretrained(model_name,quantization_config = bnb_config,device_map = "auto")tokenizer = AutoTokenizer.from_pretrained(model_name)input = tokenizer("Natalia sold clips to 48 of her friends in April, and then she sold half as \many clips in May. How many clips did Natalia sell altogether in April and May?", return_tensors="pt").to('cuda')response = quantized_model.generate(**input, max_new_tokens = 100)print(tokenizer.batch_decode(response, skip_special_tokens=True))
السطر 1: نقوم باستيراد
AutoModelForCausalLM
،AutoTokenizer
، و ...