AI & GPU
راهنمای سریع و آسان برای تنظیم مجدد LLaMA2

راهنمای سریع و آسان برای تنظیم مجدد LLaMA2

۱. معرفی تنظیم مجدد LLaMA-2

الف. مروری بر LLaMA-2 و توانایی‌های آن

LLaMA-2 نسخه دوم مدل زبان بزرگ برای هوش مصنوعی (LLaMA) است که توسط شرکت آنتروپیک توسعه داده شده است. این مدل زبان قدرتمند و چندگانه قابل استفاده برای مجموعه گسترده‌ای از وظایف پردازش زبان طبیعی است، مانند تولید متن، پاسخ به سوالات و ترجمه زبان.

LLaMA-2 بر روی مدل اصلی LLaMA بنیانگذاری شده است که در اوایل سال ۲۰۲۳ منتشر شد و به سرعت توجه زیادی به‌خود جلب کرد به دلیل عملکرد قابل توجهی که در انواع بنچمارک‌ها داشت. مدل به‌روز شده LLaMA-2 شامل چندین بهبود است، از جمله بهبود داده‌های آموزشی، معماری مدل و تکنیک‌های بهینه‌سازی، که منجر به قابلیت‌های پیشرفته‌تری در درک و تولید زبان می‌شود.

یکی از ویژگی‌های کلیدی LLaMA-2، قابلیت تنظیم مجدد بر روی مجموعه‌داده‌های ویژه‌ی دامنه است که امکان تطبیق آن را با وظایف و سناریوهای ویژه فراهم می‌سازد. در این آموزش، این فرآیند تنظیم مجدد را مورد توجه قرار داده‌ایم، زیرا امکان استفاده از قدرت مدل LLaMA-2 پیش‌آموزش دیده و تطبیق آن با نیازهای خاص شما را فراهم می‌کند.

ب. اهمیت تنظیم مجدد برای وظایف ویژه‌ی دامنه

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

تنظیم مجدد مدل LLaMA-2 بر روی داده‌های خاص دامنه به چندین مزیت منجر خواهد شد:

  1. بهبود کارایی: با آموزش مدل بر روی داده‌هایی که مرتبط‌تر و مناسب‌تر برای وظیفه یا دامنه هدف هستند، مدل تنظیم شده می‌تواند عملکرد بهتری داشته باشد و بسیاری از مواقع مدل پیش‌آموزش دیده عمومی را پشت سر بگذارد.

  2. دانش تخصصی: فرآیند تنظیم مجدد به مدل اجازه می‌دهد دانش و درک تخصصی از دامنه مورد نظر را بدست آورد و در نتیجه قادر خواهد بود خروجی‌های دقیق‌تر، مرتبط‌تر و منسجم‌تری تولید کند.

  3. قابلیت‌های شخصی‌سازی: تنظیم مجدد می‌تواند رفتار و قابلیت‌های مدل را با نیازهای وظیفه یا برنامه مورد نظر هماهنگ کند و مدل را برای نیازهای کاربر پایانی مناسب‌تر کند.

  4. کارایی: تنظیم مجدد مدل پیش‌آموزش دیده به طور عمومی کارایی و سرعت بیشتری نسبت به آموزش مدل از ابتدا دارد، زیرا مدل پیش‌آموزش دیده در حالت قبلی نمایش‌ها و الگوهای ارزشمندی را از داده‌های آموزشی با مقیاس بزرگ یاد گرفته است.

در بخش‌های زیر، شما را در طول فرآیند تنظیم مجدد مدل LLaMA-2 برای وظیفه خاصی همراهی خواهیم کرد و مراحل لازم و شیوه‌های مناسب را برای اطمینان از تطابق واکنش موثر و مؤثر مدل را پوشش خواهیم داد.

۲. آماده‌سازی محیط

الف. نیازمندی‌های سیستمی

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

۱. سخت‌افزار

تنظیم مجدد مدل‌های LLaMA-2 یک وظیفه محاسباتی قدرتمند است، بنابراین توصیه می‌شود به یک GPU قدرتمند دسترسی داشته باشید، بهتر است با حداقل ۱۶ گیگابایت حافظه ویدیویی. نیازمندی‌های دقیق سخت‌افزاری ممکن است بسته به اندازه مجموعه داده و پیچیدگی وظیفه متفاوت باشد، اما GPU از سطح بالایی در فرآیند آموزش سریع‌تر و موثرتر استفاده می‌کند.

علاوه بر این، شما احتیاج به حافظه سیستم کافی (RAM) برای جای‌دهی مدل و داده‌های آموزشی دارید. به طور کلی، به حداقل ۳۲ گیگابایت رم اهداف بازیابی.

۲. نرم‌افزار

فرآیند تنظیم مجدد به کمک پایتون انجام می‌شود، بنابراین باید یک محیط پایتون روی سیستم شما نصب شده باشد. توصیه می‌کنیم از پایتون نسخه ۳/۷ یا بالاتر استفاده کنید.

علاوه بر این، باید کتابخانه‌های کلیدی زیر را نصب کنید:

  • PyTorch : یک چارچوب یادگیری عمیق محبوب که برای بارگذاری و تغییر LLaMA-2 استفاده می‌شود.
  • Hugging Face Transformers: یک کتابخانه قدرتمند که رابط‌های آسان برای کار با مدل‌های زبان پیش‌آموزش دیده ارائه می‌دهد، از جمله LLaMA-2.
  • NumPy : یک کتابخانه اساسی برای محاسبات علمی در پایتون است، برای دسته‌بندی و پیش‌پردازش داده‌ها استفاده می‌شود.
  • Pandas: یک کتابخانه برای پیش‌پردازش و تجزیه‌وتحلیل داده است، که برای کار با داده‌های جدولی مفید است.
  • Tensorboard: یک ابزار نمایش برای پیگیری و تجسم معیارهای مختلف در طول فرآیند تنظیم مجدد.

ب. نصب کتابخانه‌های مورد نیاز

برای نصب کتابخانه‌های مورد نیاز، می‌توانید از pip، نصب کننده بسته‌های پایتون، استفاده کنید. یک ترمینال یا خط فرمان را باز کنید و دستورات زیر را اجرا کنید:

pip install torch transformers numpy pandas tensorboard

به طور جایگزین، می‌توانید یک محیط مجازی ایجاد کرده و وابستگی‌ها را در آن محیط نصب کنید تا در تداخل با بسته‌های پایتون دیگر در سیستم خود قرار نگیرید.

#ایجاد یک محیط مجازی
python -m venv finetuning-env
# فعال سازی محیط مجازی
source finetuning-env/bin/activate
# نصب کتابخانه‌های مورد نیاز
pip install torch transformers numpy pandas tensorboard

با تنظیمات سخت‌افزاری و نرم‌افزاری مورد نیاز، حالا آماده به مرحله بعدی هستید: دریافت مدل LLaMA-2.

۳. دریافت مدل LLaMA-2

الف. دانلود مدل پیش‌آموزش دیده LLaMA-2

مدل LLaMA-2 در حال حاضر عمومی نیست، زیرا یک مدل اختصاصی توسط شرکت آنتروپیک توسعه یافته است. با این حال، آنتروپیک مجموعه‌ای از مدل‌های LLaMA پیش‌آموزش دیده را منتشر کرده است که به عنوان نقطه شروعی برای تنظیم مجدد قابل استفاده است.

برای دریافت مدل پیش‌آموزش دیده LLaMA، باید دستورالعمل‌های ارائه شده توسط آنتروپیک را دنبال کنید. به طور معمول، این شامل ثبت نام برای دسترسی و قبول شرایط استفاده است. پس از اینکه دسترسی بدست آمد، می‌توانید فایل‌های مدل را از وب سایت یا مخزن آنتروپیک دانلود کنید.

ب. تایید اصالت مدل

پس از دانلود فایل‌های مدل LLaMA، بررسی اصالت آنها مهم است تا اطمینان حاصل شود که فایل‌ها به درستی دریافت شده و هیچ تغییری در آنها ایجاد نشده است.

یک روش برای این کار بررسی برهم‌کنشهای فایل ارائه شده توسط آنتروپیک است و آنها را با برهم‌کنشهای فایل‌های دریافت شده مقایسه می‌کند. می‌توانید از دستور sha256sum (در لینوکس یا macOS) یا ابزاری مانند Get-FileHash (در PowerShell ویندوز) برای محاسبه هش SHA-256 فایل‌های دریافت شده و مقایسه آنها با مقادیر انتظاری استفاده کنید.

در زیر مثالی از چگونگی تأیید صحت فایل در لینوکس یا macOS آورده شده است.

# محاسبه هش SHA-256 فایل مدل دریافت شده
sha256sum llama.7b.pth

# مقایسه هش محاسبه شده با هش مورد انتظار ارائه شده توسط آنتروپیک

در صورت تطابق هش، مطمئن می‌توانید فایل‌های دریافت شده اصیل هستند و در طول فرآیند دانلود آسیبی ندیده‌اند.

با داشتن فایل‌های مدل LLaMA-2 و تایید اصالت، حالا آماده شروع فرآیند تنظیم مجدد هستید.

۴. تنظیم مجدد LLaMA-2 برای وظیفه خاص

الف. تعریف وظیفه و مجموعه داده

مرحله اول در فرآیند تنظیم مجدد، تعریف صریح وظیفه مورد نظر و مجموعه داده استفاده شده برای تنظیم مجدد است.

۱. شناسایی وظیفه

نوع وظیفه‌ای که انتخاب می‌کنید، به مورد استفاده و نیازهای خاص شما بستگی دارد. برخی از وظایف معمول که می‌توان به وسیله تنظیم مجدد LLaMA-2 به آنها پرداخت عبارتند از:

  • تولید متن: تولید متن منسجم و مناسب به حالت متنی مانند داستان، مقاله یا توصیف محصول.
  • پاسخ به سوالات: آموزش مدل برای درک سوالات و ارائه پاسخ‌های دقیق و اطلاعاتی.
  • ترجمه زبان: تنظیم مجدد مدل برای ترجمه متن بین زبان‌های مختلف.
  • تحلیل احساس: سازگاری مدل با طبقه‌بندی احساس (مثبت، منفی و یا خنثی) متن ورودی.
  • خلاصه‌سازی: آموزش مدل برای تولید خلاصه‌ای مختصر و اطلاعاتی از متن بلندتر.

۲. آماده‌سازی مجموعه داده

بعد از شناسایی وظیفه، مجموعه داده‌ای که برای تنظیم مجدد استفاده خواهد شد، باید آماده‌سازی شود. این شامل مراحل زیر است:

а. جمع‌آوری داده‌ها: جمع‌آوری مجموعه داده مرتبط با وظیفه، از منابع عمومی یا ایجاد آنها توسط خود شما می‌باشد.

ب. پیش‌پردازش داده‌ها: تمیز و پیش‌پردازش داده‌ها برای اطمینان از آنکه به یک فرمت قابل مصرف توسط مدل تبدیل می‌شود. این شامل وظایفی مانند ریسه‌بندی، نرمال‌سازی متن و رفتار با نشانه‌های خاص است.

c. تقسیم مجموعه آموزش، اعتبارسنجی و آزمون: تقسیم کردن مجموعه داده به مجموعه‌های آموزش، اعتبارسنجی و آزمون. مجموعه آموزش برای تنظیم مجدد مدل، مجموعه اعتبارسنجی برای نظارت بر عملکرد مدل در طول آموزش و مجموعه آزمون برای ارزیابی نهایی استفاده خواهد شد.

با تعریف وظیفه و آماده‌سازی یک مجموعه داده با کیفیت بالا، مرحله بعد مشخص کردن می‌شود:آماده‌سازی لوله تنظیم مجدد.```python input_ids = self.tokenizer.encode(self.data[idx][0], return_tensors='pt') output_ids = self.tokenizer.encode(self.data[idx][1], return_tensors='pt') return input_ids, output_ids

ایجاد مجموعه داده و داده گیر

dataset = MyDataset(train_data, tokenizer) dataloader = DataLoader(dataset, batch_size=8, shuffle=True)


### 3. مقداردهی اولیه مدل و پیکربندی

در نهایت ، شما باید مدل LLaMA-2 را مقداردهی اولیه کنید و آن را برای وظیفه آموزش تنظیم کنید. این شامل بارگذاری وزنه های مدل پیش آموزش دیده و تنظیم اجزای مدل مورد نیاز است.

```python
from transformers import LlamaForCausalLM

model = LlamaForCausalLM.from_pretrained('path/to/llama-2-model')
model.config.pad_token_id = tokenizer.pad_token_id

با توکن ساز ، مجموعه داده و مدل تنظیم شده ، حالا آماده اجرای فرآیند آموزش مدل هستید.

C. پیاده سازی فرآیند آموزش

فرآیند آموزش شامل آموزش مدل LLaMA-2 بر روی مجموعه داده وظیفه خاص است ، به روزرسانی پارامترهای مدل برای بهبود عملکرد آن بر روی وظیفه هدف.

1. تعریف حلقه آموزش

حلقه آموزش هسته فرآیند آموزش است که بر اساس داده های آموزشی پارامترهای مدل بروزرسانی می کند. در اینجا یک مثال ساده است:

import torch.optim as optim
import torch.nn.functional as F
 
# راه اندازي بهينه ساز و تابع هزینه
optimizer = optim.AdamW(model.parameters(), lr=1e-5)
loss_fn = F.cross_entropy
 
# حلقه آموزش
for epoch in range(num_epochs):
    for inputs, outputs in dataloader:
        optimizer.zero_grad()
        logits = model(inputs, labels=outputs).logits
        loss = loss_fn(logits.view(-1, logits.size(-1)), outputs.view(-1))
        loss.backward()
        optimizer.step()
 
    # ارزیابی مدل بر روی مجموعه اعتبارسنجی
    # و پیاده سازی early stopping در صورت نیاز

در این مثال از بهینه ساز AdamW و تابع هزینه cross-entropy برای آموزش مدل استفاده می شود. شما می توانید با الگوریتم های بهینه سازی ، توابع هزینه و فراپارامترهای مختلف آزمایش کنید تا تنظیمات بهتری برای وظیفه خاص خود پیدا کنید.

2. پایش و ارزیابی بهبود عملکرد

حین فرآیند آموزش ، نظارت بر عملکرد مدل و ارزیابی پیشرفت آن مهم است. این کار با دوره های دوره ارزیابی مدل بر روی مجموعه اعتبارسنجی و پیگیری بخش های مختلفی مانند اینها انجام می شود:

  • شگفتی: اندازه گیری اینکه مدل چقدر خوب پیش بینی می کند که توکن بعدی در دنباله چیست.
  • امتیاز BLEU: یک معیار استفاده شده برای ارزیابی کیفیت ترجمه ماشینی یا تولید متن.
  • **امتیاز F1 امیدواریم که این آموزش به شما اساس قوی برای یادگیری عمیق ویژه فراگیری و همچنین توانمندتر کردن تکنیک‌های قدرتمند دیگر را فراهم کرده باشد. موفق و پیروز باشید!