Search⌘ K
AI Features

تجربة عملية لورا

تعلم كيفية ضبط نموذج 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.1
pip3 install accelerate
pip3 install bitsandbytes==0.43.3
pip3 install datasets==2.21.0
pip3 install trl==0.9.6
pip3 install peft==0.12.0
!pip install -U "huggingface_hub[cli]"
Install the dependencies
  • السطر 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
Logging in to Hugging Face using CLI

سيطلب منك الأمر أعلاه إدخال رمز . أدخل رمز Hugging Face المميز الذي أنشأته أثناء إعداد حساب Hugging Face . عندما يُطلب منك "إضافة رمز كبيانات اعتماد Git؟"، اضغط على مفتاح"y". بعد التحقق من رمز، ستتمكن من تسجيل الدخول إلى Hugging Face بنجاح.

Logging into Hugging Face
Logging into Hugging Face

التكميم

والآن، دعونا نحمّل النموذج المدرب مسبقًا بتقنية التكميم ونرى كيف يستجيب لمسألة رياضية لفظية.

from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
import torch
bnb_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))
Load the model with 8-bit quantization
  • السطر 1: نستوردAutoModelForCausalLM ،AutoTokenizer ، و ...