نویسنده (ها): پرانجال خادکا
در ابتدا منتشر شده در به سمت هوش مصنوعیبشر
تنظیم دقیق مدل های بزرگ زبان (LLMS) به لطف در دسترس بودن ابزارهای کم کد/بدون کد که به شما امکان می دهد داده های خود را به سادگی بارگذاری کنید ، یک مدل پایه را انتخاب کرده و یک مدل تنظیم شده را به دست آورید ، امروز به یک کار ساده تر تبدیل شده است. با این حال ، درک اصول قبل از غواصی در این ابزارها مهم است. در این مقاله ، ما کل روند LLM های تنظیم دقیق را با جزئیات بررسی خواهیم کرد.
LLM ها در دو مرحله اصلی کار می کنند: قبل از آموزش و تنظیم دقیق.
1 قبل از آموزش
در مرحله قبل از آموزش ، LLM ها در معرض عظیم قرار می گیرند مجموعه داده ها متن این مرحله شامل تعریف معماری مدل ، انتخاب توکنیزر و پردازش داده ها با استفاده از واژگان Tokenizer است. در مدل های خودکار مانند GPT و LLAMA ، این مدل یاد می گیرد که کلمه بعدی را در یک جمله پیش بینی کند. برای معماری های رمزگذار فقط مانند برت ، این مدل یاد می گیرد که کلمات گمشده را در یک جمله پیش بینی کند. این دو رویکرد به عنوان مدل سازی زبان علیت شناخته می شوند (کلوچه) و مدل سازی زبان ماسک (MLM) به ترتیب
معمولاً ، ما از مدل سازی زبان علی استفاده می کنیم که در آن مدل کلمه بعدی را در دنباله بر اساس متن قبلی پیش بینی می کند. با این حال ، مدل های از قبل آموزش دیده هدف کلی هستند و فاقد دانش خاص دامنه هستند و نمی توانند کارهای تخصصی را انجام دهند. اینجاست که تنظیم دقیق وارد می شود.
2. تنظیم خوب
تنظیم دقیق به ما امکان می دهد با تنظیم پارامترهای مدل به روشی که از دست دادن خاص کار را به حداقل برساند ، قابلیت های یک مدل را برای یک کار خاص تخصص دهیم. با این حال ، انجام یک فرآیند تنظیم دقیق کامل که شامل بازآفرینی تمام پارامترهای مدل است می تواند از نظر محاسباتی گران باشد.
اخیراً ، تکنیک های پیشرفته مانند لفظی (سازگاری با درجه پایین) و قورس (سازگاری با درجه پایین) با تنظیم دقیق و در دسترس تر تنظیم شده است. مقاله رسمی لورا با مثال GPT-3 175B نشان داد که لورا می تواند تعداد پارامترهای قابل آموزش را 10،000 بار کاهش دهد و GPU نیاز به حافظه 3 بار و با وجود داشتن پارامترهای قابل آموزش کمتر ، توان آموزش بالاتر و هیچ تأخیر استنتاج اضافی ، به صورت 3 بار و بهتر از تنظیم دقیق معمولی انجام می شود.
بیایید نگاهی دقیق تر به روند تنظیم دقیق بیندازیم:-
1. الزامات محاسبه آموزش
تنظیم دقیق مدل های بزرگ مانند Llama 7B و Mistral 7B به طور معمول به حدود 150-195 گیگابایت نیاز دارد GPU حافظه برای آموزش این مدل ها ، باید GPU ها را از ارائه دهندگان ابر مانند AWS Sagemaker یا Google Colabبشر
2. تهیه مجموعه داده
شما می توانید مجموعه داده های خود را ایجاد کنید یا از منابع موجود در دسترس از منابعی مانند بغل کردن Face استفاده کنید. استفاده از داده های با کیفیت جنبه بسیار اساسی تنظیم دقیق است.
3 با استفاده از ابزارهای کم کد
ابزارهایی مانند Axolotl با ارائه تنظیمات از پیش تعریف شده برای LORA و QLORA و LLMS منبع باز ، فرآیند تنظیم دقیق را ساده می کنند. Axolotl به حداقل برنامه نویسی نیاز دارد. شما فقط باید مخزن GitHub را کلون کنید ، دستورالعمل های تنظیم را دنبال کنید و قادر خواهید بود LLM موجود را با یک ماشه ساده تنظیم کنید.
درک لورا و قلرا
لورا تکنیکی است که با انجماد وزن مدل از قبل آموزش دیده و معرفی ماتریس های درجه پایین ، تنظیم دقیق LLM ها را امکان پذیر می کند. این ماتریس های درجه پایین تنظیم شده اند در حالی که وزن مدل اصلی یخ زده باقی می مانند. این روش تعداد پارامترهای قابل آموزش را کاهش می دهد و ضمن حفظ عملکرد بالا ، حافظه فرآیند تنظیم دقیق را کار می کند.
پارامترهای کلیدی هنگام تنظیم دقیق LORA:-
- LORA_R:- رتبه ماتریس تجزیه رتبه پایین. یک مقدار بالاتر امکان ضبط اطلاعات بیشتر (عملکرد بهتر) را فراهم می کند ، اما میزان مصرف حافظه را افزایش می دهد. اگر یک مجموعه داده بسیار پیچیده دارید ، تنظیم این مقدار را در نظر بگیرید.
- LORA_ALPHA:- عامل مقیاس گذاری برای کنترل تأثیر به روزرسانی وزن LORA بر روی وزن مدل اصلی. مقدار کمتری وزن بیشتری به داده های اصلی قبل از آموزش می دهد و دانش موجود مدل را تا حد بیشتری حفظ می کند.
- LORA_TARGET_MODULE:-تعیین می کند که کدام لایه ها/ماتریس های خاص آموزش دیده می شوند. به طور معمول ، ماتریس های پرس و جو و پیش بینی ارزش در مکانیسم خودآگاهی انتخاب می شوند زیرا بیشترین تأثیر را در سازگاری مدل دارند.
Qlora با استفاده از به روزرسانی های رتبه پایین در مدلی که به دقت کمتری اندازه گیری شده است ، لورا را تقویت می کند. این اجازه می دهد تا مدل های بزرگ تنظیم شده با نیازهای حافظه به میزان قابل توجهی کاهش یابد ، و کار با منابع محدود را آسان تر می کند.
پارامترهای کلیدی در Qlora:-
- LOAD_IN_4BIT:- مدل بار در دقت 4 بیتی برای راندمان حافظه. می تواند بر روی درست یا نادرست تنظیم شود. به همین ترتیب ، Load_in_8bit وجود دارد.
علاوه بر پارامترهای خاص برای Lora و Qlora ، با رایج روبرو خواهید شد یادگیری ماشین HyperParameters هنگام تنظیم دقیق مانند num_epochs ، batch_size ، بهینه ساز ، Learning_Rate ، LR_Scheduler ، پارامترهای WANDB برای آزمایش مدل و غیره.
LLMS تنظیم دقیق دیگر به لطف ابزارها و تکنیک های کم کد و کم کد مانند Lora و Qlora دیگر یک کار دلهره آور نیست. با درک این اصول اصلی و پارامترهای آموزشی ، می توانید هر LLM را به خوبی تنظیم کنید تا نیازهای خاص برنامه خود را برآورده کنید.
References:
1. https://www.upstage.ai/blog/en/understanding-fine-tuning-of-large-language-models
2. https://kim95175.tistory.com/28
3. https://docs.nvidia.com/nemo-framework/user-guide/latest/sft_peft/qlora.html
منتشر شده از طریق به سمت هوش مصنوعی
منبع: https://towardsai.net/p/artificial-intelligence/how-to-fine-tune-any-large-language-model-llm