How-To Guides

تسلط بر هوش مصنوعی تخصصی: راهنمای تنظیم دقیق مدل‌های زبانی بزرگ با LoRA

منظره مدل‌های زبانی بزرگ (LLMs) به شدت تغییر کرده است. در حالی که مدل‌های انحصاری مانند GPT-4 قابلیت‌های عمومی چشمگیری ارائه می‌دهند، اغلب فاقد دانش تخصصی مورد نیاز برای صنایع خاصی مانند حقوق، پزشکی یا مستندات نرم‌افزارهای انحصاری هستند. آموزش مجدد این مدل‌های عظیم از صفر، از نظر محاسباتی برای اکثر سازمان‌ها غیرممکن است. اینجا است که تطبیق با رتبه پایین (LoRA) وارد عمل می‌شود و راه‌حلی برای تنظیم دقیق کارآمد از نظر پارامترها (PEFT) ارائه می‌دهد که به توسعه‌دهندگان اجازه می‌دهد مدل‌های متن‌بازی مانند Llama 3، Mistral یا Qwen را به حوزه‌های خاص بدون افزایش چشمگیر نیازهای حافظه GPU تطبیق دهند.

درک مزیت LoRA

تنظیم دقیق سنتی شامل به‌روزرسانی تمام پارامترها در یک مدل از پیش آموزش‌دیده است. برای مدلی با میلیاردها پارامتر، این کار به VRAM قابل توجهی نیاز دارد و منجر به ایجاد یک فایل مدل عظیم برای هر تطبیق حوزه می‌شود. LoRA این به‌روزرسانی‌های وزن را با معرفی ماتریس‌های تجزیه رتبه پایین قابل آموزش در هر لایه از ترانسفورمر تقریب می‌زند. به جای ذخیره ترابایت‌ها وزن‌های به‌روزشده، شما تنها ماتریس‌های تطبیق کوچک را ذخیره می‌کنید که اغلب تنها چند صد مگابایت حجم دارند. این رویکرد نه تنها استفاده از حافظه را کاهش می‌دهد، بلکه زمان‌های آموزش را به طور قابل توجهی نیز سرعت می‌بخشد و آن را برای توسعه‌دهندگان فردی و تیم‌های متوسط در دسترس می‌سازد.

آماده‌سازی محیط شما

قبل از غرق شدن در کد، مطمئن شوید که کتابخانه‌های ضروری نصب شده‌اند. شما به PyTorch، `transformers` و `peft` (تنظیم دقیق کارآمد از نظر پارامترها) نیاز دارید. به شدت توصیه می‌شود از یک GPU با حداقل ۲۴ گیگابایت VRAM برای پردازش کارآمد استفاده کنید، اگرچه تکنیک‌هایی مانند bitsandbytes به شما امکان می‌دهند روی سخت‌افزار کوچک‌تر نیز اجرا کنید.

ابتدا، بیایید یک مدل پایه را بارگذاری کرده و پیکربندی LoRA را اعمال کنیم. در زیر یک قطعه کد پایتون آورده شده است که نحوه مقداردهی اولیه مدل با کوانتیزاسیون ۸ بیتی و تعیین رتبه‌های 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 حاوی بندهای حقوقی و خلاصه‌های آن‌ها باشد. مطمئن شوید که داده‌های شما با استفاده از همان توکنایزر مدل پایه به درستی توکن‌بندی شده‌اند. از `DataCollatorForSeqLen` برای مدیریت کارآمد دنباله‌های با طول متغیر استفاده کنید.

آموزش و ارزیابی

از `SFTTrainer` موجود در کتابخانه `trl` برای مدیریت حلقه آموزش استفاده کنید. این مربی فرآیند تنظیم دقیق نظارت‌شده را ساده می‌کند. می‌توانید نرخ یادگیری را روی یک مقدار پایین (مثلاً $2e-4$) تنظیم کنید، زیرا وزن‌های پایه ثابت هستند. تلفات اعتبارسنجی را به دقت زیر نظر بگیرید تا از بیش‌برازش (Overfitting) که هنگام آموزش روی مجموعه‌های داده کوچک و تخصصی حوزه رایج است، جلوگیری کنید.

نتیجه‌گیری

تنظیم دقیق LLMها با LoRA دسترسی به قابلیت‌های تخصصی هوش مصنوعی را دموکراتیک می‌کند. با بهره‌گیری از تطبیق‌های با رتبه پایین، توسعه‌دهندگان می‌توانند دستیاران بسیار دقیق و تخصصی حوزه را بدون نیاز به زیرساخت‌های سطح سازمانی ایجاد کنند. با بهبود مستمر مدل‌های متن‌باز، مانع ورود برای راه‌حل‌های هوش مصنوعی سفارشی تنها کاهش خواهد یافت و این امر امکان ایجاد کاربردهای نوآورانه‌تر را در هر صنعتی فراهم می‌کند. کوچک شروع کنید، داده‌های با کیفیت بالا گردآوری کنید و تکرار نمایید—راه‌حل هوش مصنوعی سفارشی شما نزدیک‌تر از آن چیزی است که فکر می‌کنید.
Share: