تجربة عملية لورا
تعلم كيفية ضبط نموذج LLM بدقة على مجموعة بيانات مخصصة باستخدام LoRA.
يُستخدم نموذج Llama 3.1 من Meta في العديد من التطبيقات، بما في ذلك الإجابة على الأسئلة، وتوليد النصوص، وتوليد الأكواد، وكتابة القصص، وغيرها الكثير. ومن بين هذه التطبيقات حلّ المسائل الكلامية الرياضية، إلا أن النموذج يُقدّم عادةً حلولاً بلغة طبيعية بدلاً من المعادلات الرياضية البحتة. نسعى إلى تحسين نموذج Llama 3.1 لتقديم حلول للمسائل الكلامية باستخدام المعادلات الرياضية.
سنستخدم openai/gsm8k مجموعة بيانات من Hugging Face لضبط النموذج بدقة. GSM8K (رياضيات المرحلة الابتدائية 8K) هي مجموعة بيانات تضم 8.5 ألف مسألة كلامية في الرياضيات للمرحلة الابتدائية تتضمن استدلالًا متعدد الخطوات، بالإضافة إلى حلولها في تعابير رياضية بحتة.
لنبدأ رحلة ضبط نموذج لاما 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: نقوم بتثبيت CLI Hugging Face لتسجيل الدخول والوصول إلى النموذج ومجموعة البيانات من Hugging Face .
CLI Hugging Face
بعد تثبيت المكتبات المطلوبة، حان وقت تسجيل الدخول إلى 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، و ...