تطبيق عملي على 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 التي توفر واجهات برمجة التطبيقات والأدوات اللازمة لتنزيل وتدريب النماذج المدربة مسبقًا على أحدث طراز.الخط الثاني: نُثبّت مكتبة
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
و ...