How-To Guides

إتقان الذكاء الاصطناعي المتخصص في المجال: دليل لضبط نماذج اللغات الكبيرة باستخدام LoRA

شهدت مشهد نماذج اللغات الكبيرة (LLMs) تحولاً جذرياً. في حين أن النماذج المملوكة مثل GPT-4 تقدم قدرات عامة مذهلة، إلا أنها تفتقر غالباً إلى المعرفة المتخصصة المطلوبة لمجالات صناعية محددة مثل القانون أو الطب أو توثيق البرمجيات الخاصة. يعد إعادة تدريب هذه النماذج الضخمة من الصفر أمراً مكلفاً حسابياً بالنسبة لمعظم المؤسسات. وهنا يأتي دور التكيف منخفض الرتبة (LoRA)، الذي يقدم حلاً لضبط الكفاءة في المعلمات (PEFT) يسمح للمطورين بتكييف النماذج مفتوحة المصدر مثل Llama 3 أو Mistral أو Qwen مع مجالات متخصصة دون استهلاك كبير لذاكرة وحدات معالجة الرسومات (GPU).

فهم ميزة LoRA

يتضمن الضبط التقليدي تحديث جميع المعلمات في نموذج تم تدريبه مسبقاً. بالنسبة للنموذج الذي يحتوي على مليارات المعلمات، يتطلب ذلك ذاكرة فيديو (VRAM) كبيرة ويؤدي إلى إنشاء ملف نموذج ضخم لكل تكيف مع مجال معين. تقوم LoRA بتقريب تحديثات الأوزان من خلال إدخال مصفوفات تحلل منخفضة الرتبة قابلة للتدريب في كل طبقة من طبقات المحول (Transformer). بدلاً من تخزين تيرابايت من الأوزان المحدثة، تقوم فقط بتخزين مصفوفات تكيف صغيرة، غالباً ما تكون بحجم بضع مئات من الميجابايت فقط. لا يقلل هذا النهج من استخدام الذاكرة فحسب، بل يسرع أيضاً أوقات التدريب بشكل كبير، مما يجعله متاحاً للمطورين الأفراد والفرق متوسطة الحجم.

إعداد بيئة العمل

قبل الغوص في الكود، تأكد من تثبيت المكتبات اللازمة. ستحتاج إلى PyTorch و`transformers` و`peft` (التكيف منخفض الرتبة الفعال في المعلمات). يُوصى بشدة باستخدام وحدة معالجة رسومات (GPU) بسعة ذاكرة فيديو لا تقل عن 24 جيجابايت للمعالجة الفعالة، على الرغم من أن تقنيات مثل bitsandbytes تسمح لك بالعمل على أجهزة أصغر.

أولاً، دعنا نقوم بتحميل نموذج أساسي وتطبيق إعدادات LoRA. فيما يلي مقتطف برمجي بلغة Python يوضح كيفية تهيئة النموذج باستخدام الكمية الثمانية الأبعاد (8-bit quantization) وتحديد رتب LoRA.

from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import LoraConfig, get_peft_model
import torch

# Load model directly
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3-8b-instruct")

quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_compute_dtype=torch.float16,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_use_double_quant=True,
)

model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-3-8b-instruct",
    device_map="auto",
    quantization_config=quantization_config,
    use_cache=False,
)

# Define LoRA configuration
lora_config = LoraConfig(
    r=8, # Rank of the update matrix
    lora_alpha=32,
    target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
    lora_dropout=0.05,
    bias="none",
    task_type="CAUSAL_LM",
)

model = get_peft_model(model, lora_config)
model.print_trainable_parameters()

إعداد البيانات المتخصصة في المجال

جودة النموذج الذي تم ضبطه تعتمد بشكل مباشر على جودة مجموعة البيانات الخاصة بك. بالنسبة للمهام المتخصصة في المجال، يجب عليك انتقاء مجموعة بيانات من أزواج الأسئلة والأجوبة أو أمثلة تتبع التعليمات ذات الصلة بمجالك. على سبيل المثال، إذا كنت تقوم بضبط النموذج لتحليل العقود القانونية، فقد تبدو مجموعة البيانات الخاصة بك كسجلات JSON تحتوي على بنود قانونية وملخصاتها. تأكد من أن بياناتك مشفرة بشكل صحيح باستخدام نفس المشفر (tokenizer) المستخدم في النموذج الأساسي. استخدم `DataCollatorForSeqLen` للتعامل مع التسلسلات ذات الأطوال المختلفة بكفاءة.

التدريب والتقييم

استخدم `SFTTrainer` من مكتبة `trl` للتعامل مع حلقة التدريب. يبسط هذا المدرب عملية الضبط الخاضع للإشراف. يمكنك تعيين معدل التعلم على قيمة منخفضة (على سبيل المثال، $2e-4$) نظراً لأن الأوزان الأساسية مجمدة. راقب فقدان التحقق من الصحة (validation loss) عن كثب لمنع الإفراط في التخصيص (overfitting)، وهو أمر شائع عند التدريب على مجموعات بيانات صغيرة ومتخصصة في المجال.

الخاتمة

يُعد ضبط نماذج اللغات الكبيرة باستخدام LoRA ديمقراطية الوصول إلى قدرات الذكاء الاصطناعي المتخصصة. من خلال الاستفادة من التكيفات منخفضة الرتبة، يمكن للمطورين إنشاء مساعدين دقيقين ومتخصصين في المجال دون الحاجة إلى بنية تحتية على مستوى المؤسسات. ومع استمرار تحسن النماذج مفتوحة المصدر، سينخفض حاجز الدخول للحلول المخصصة للذكاء الاصطناعي فقط، مما يتيح تطبيقات أكثر ابتكاراً عبر كل صناعة. ابدأ بشكل صغير، وانتقِ بيانات عالية الجودة، وقم بالتكرار — حل الذكاء الاصطناعي المخصص الخاص بك أقرب مما تظن.
Share: