» هوش مصنوعی » QLoRA: تنظیم دقیق کارآمد LLM های کوانتیزه شده
هوش مصنوعی

QLoRA: تنظیم دقیق کارآمد LLM های کوانتیزه شده

دی 11, 1348 1053

QLoRA رویکرد جدیدی برای تنظیم دقیق مدل‌های زبان بزرگ (LLM) است که بدون از دست دادن سرعت، حافظه را ذخیره می‌کند. QLoRA بدین صورت کار می‌کند که ابتدا LLM را به 4 بیت تبدیل می‌کند، که منجر به کاهش قابل توجه حافظه برای مدل می‌شود. سپس LLM کوانتیزه شده با استفاده از رویکرد آداپتورهای رتبه پایین (LoRA) تنظیم می شود. LoRA مدل تصفیه شده را قادر می سازد تا اکثریت دقت LLM اصلی را حفظ کند و در عین حال بسیار کوچکتر و سریعتر باشد.

تنظیم دقیق QLoRA کارآمد LLMهای کوانتیزه

QLoRA یا آداپتورهای کم رتبه کوانتیزه شده، یک رویکرد جدید برای تنظیم دقیق مدل‌های زبان بزرگ (LLM) است که ضمن حفظ سرعت، از حافظه کمتری استفاده می‌کند. QLoRA بدین صورت کار می کند که ابتدا LLM را به 4 بیت تبدیل می کند و ردپای حافظه مدل را به میزان قابل توجهی کاهش می دهد. سپس LLM کوانتیزه شده با استفاده از رویکرد آداپتورهای رتبه پایین (LoRA) به خوبی تنظیم می شود. LoRA مدل تصفیه شده را قادر می سازد تا اکثریت دقت LLM اصلی را حفظ کند و در عین حال بسیار کوچکتر و سریعتر باشد.

QLoRA بر این فرض استوار است که بخش عمده ای از اطلاعات در یک مدل زبان بزرگ در وزن مدل موجود است و ممکن است اطلاعات باقیمانده بدون تأثیر زیادی بر دقت مدل تقریبی شود. QLoRA وزن های LLM را به 4 بیت کوانتیزه می کند و ردپای حافظه مدل را 8 برابر کاهش می دهد. سپس LLM کوانتیزه شده توسط QLoRA با استفاده از روشی به نام آداپتورهای رتبه پایین (LoRA) تنظیم می شود. LoRA مدل تصفیه شده را قادر می سازد تا اکثریت دقت LLM اصلی را حفظ کند و در عین حال بسیار کوچکتر و سریعتر باشد.

نشان داده شده است که QLoRA در طیف وسیعی از کارها، از جمله طبقه بندی متن، پاسخ به سؤال و ایجاد زبان طبیعی مؤثر است. این یک راه جدید و هیجان انگیز برای تنظیم دقیق LLM است که این پتانسیل را دارد که LLM ها را برای طیف وسیع تری از کاربران و برنامه ها در دسترس قرار دهد.

تنظیم دقیق مدل GPT با QLoRa

نیازهای سخت افزاری برای QLoRa:

  • GPU: برای مدل‌هایی با کمتر از 20 میلیارد پارامتر، مانند GPT-J، یک GPU با حداقل 12 گیگابایت VRAM پیشنهاد می‌شود. برای مثال می توان از یک پردازنده گرافیکی 12 گیگابایتی RTX 3060 استفاده کرد. اگر یک GPU بزرگتر با 24 گیگابایت VRAM دارید، می توانید از مدلی با 20 میلیارد پارامتر مانند GPT-NeoX-20b استفاده کنید.
  • RAM: پیشنهاد می شود حداقل 6 گیگابایت رم داشته باشید. این معیار توسط اکثر رایانه های فعلی مطابقت دارد.
  • هارد دیسک: از آنجایی که GPT-J و GPT-NeoX-20b مدل های بزرگی هستند، باید حداقل 80 گیگابایت فضای خالی روی هارد دیسک خود داشته باشید.

اگر سیستم شما این معیارها را برآورده نمی‌کند، می‌توانید به جای آن از نمونه رایگان Google Colab استفاده کنید.

نیازهای نرم افزار برای QLoRa:

  • CUDA: مطمئن شوید که CUDA روی دستگاه شما نصب شده است.
  • وابستگی ها:
  • bitsandbytes: این کتابخانه شامل تمام ابزارهای لازم برای کمی کردن یک مدل زبان بزرگ (LLM) است.
  • ترانسفورماتور و شتاب دهنده صورت در آغوش گرفتن: این کتابخانه های استاندارد برای آموزش مدل کارآمد از Hugging Face Hub استفاده می شود.
  • PEFT: این کتابخانه پیاده سازی هایی را برای روش های مختلف برای تنظیم دقیق تعداد کمی از پارامترهای مدل اضافی ارائه می دهد. برای LoRa لازم است.
  • مجموعه داده ها: اگرچه اجباری نیست، کتابخانه Datasets می تواند برای به دست آوردن یک مجموعه داده برای تنظیم دقیق استفاده شود. از طرف دیگر، می توانید مجموعه داده خود را ارائه دهید.

قبل از اینکه به تنظیم دقیق مدل‌های GPT مبتنی بر QLoRa بپردازید، مطمئن شوید که همه وابستگی‌های نرم‌افزاری مورد نیاز نصب شده‌اند.

نمایش QLoRA

Guanaco سیستمی است که صرفاً برای اهداف تحقیقاتی طراحی شده است و نتایج آن ممکن است دردسرساز باشد.

  1. شما ممکن است یک نسخه نمایشی زنده ببینید here noener لطفا به خاطر داشته باشید که این مدل 33B است. نسخه ی نمایشی مدل 65B بعداً دنبال خواهد شد.
  2. با استفاده از این نوت بوک، شما همچنین می توانید نسخه نمایشی Guanaco gradio خود را میزبانی کنید. برای مدل‌های 7B و 13B، با پردازنده‌های گرافیکی رایگان کار می‌کند.
  3. آیا می توانید تفاوت بین ChatGPT و Guanaco را تشخیص دهید؟ آن را برو! می‌توانید به پاسخ مدل Colab در اینجا در حال مقایسه ChatGPT و Guanaco 65B در درخواست‌های Vicuna.

همچنین

نحوه نصب QLoRA

برای بارگیری مدل‌ها در 4 بیت با ترانسفورماتورها و بیت‌سانبایت‌ها، باید شتاب‌دهنده و ترانسفورماتور را از منبع نصب کنید و نسخه فعلی کتابخانه bitsandbytes (0.39.0) را نصب کنید. می توانید با دستورات زیر به موارد فوق دست یابید:

pip install -q -U bitsandbytes
pip install -q -U git+https://github.com/huggingface/transformers.git
pip install -q -U git+https://github.com/huggingface/peft.git
pip install -q -U git+https://github.com/huggingface/accelerate.git

شروع به کار

عملکرد qlora.py ممکن است برای تنظیم دقیق و استنتاج مجموعه‌های داده مختلف استفاده شود. دستور زیر برای تنظیم دقیق مدل پایه در مجموعه داده Alpaca است:

python qlora.py --model_name_or_path 

برای مدل‌های بزرگ‌تر از 13B، توصیه می‌کنیم نرخ یادگیری را تنظیم کنید:

python qlora.py –learning_rate 0.0001 --model_name_or_path 

کوانتیزاسیون

پارامترهای کوانتیزاسیون از BitsandbytesConfig به صورت زیر کنترل می‌شوند:

  • بارگیری در 4 بیت از طریق load_in_4bit فعال می‌شود.
  • نوع داده ای که توسط bnb_4bit_compute_dtype برای محاسبات لایه خطی استفاده می شود.
  • کوانتیزاسیون تودرتو از طریق bnb_4bit_use_double_quant فعال می شود.
  • bnb_4bit_quant_type نوع داده مورد استفاده برای کوانتیزاسیون را مشخص می کند. دو نوع داده کوانتیزاسیون پشتیبانی می شود: fp4 (شناور چهار بیتی) و nf4 (شناور چهار بیتی معمولی). ما از استفاده از nf4 دفاع می‌کنیم زیرا از نظر تئوری برای وزن‌های توزیع شده معمولی بهینه است.
 model = AutoModelForCausalLM.from_pretrained(
        model_name_or_path='/name/or/path/to/your/model',
        load_in_4bit=درست است،
        device_map='auto',
        max_memory=max_memory،
        torch_dtype=torch.bfloat16،
        quantization_config=BitsAndBytesConfig(
            load_in_4bit=درست است،
            bnb_4bit_compute_dtype=torch.bfloat16،
            bnb_4bit_use_double_quant=درست است،
            bnb_4bit_quant_type='nf4'
        )
    )

بهینه ساز صفحه

با آرگومان می توانید به بهینه ساز صفحه شده دسترسی داشته باشید.

--optim paged_adamw_32bit

محدودیت‌ها

  1. استنتاج با استفاده از چهار بیت کند است. سیستم استنتاج 4 بیتی ما در حال حاضر با ضرب ماتریس 4 بیتی متصل نیست.
  2. از سرگیری اجرای آموزشی LoRA با استفاده از Trainer در حال حاضر ناموفق است.
  3. استفاده از bnb_4bit_compute_type='fp16' در حال حاضر ممکن است باعث بی ثباتی شود. فقط 80 درصد از تنظیمات دقیق بدون مشکل برای 7B LLaMA اجرا می شود. ما راه حل هایی داریم، اما هنوز در بیت و بایت ها اجرا نشده اند.
  4. برای جلوگیری از ایجاد مشکلات، tokenizer.bos_token_id را روی 1 تنظیم کنید.

این مقاله به شما کمک می کند تا در مورد QLoRA بیاموزید: تنظیم دقیق کارآمد LLM های کوانتیزه شده. ما اطمینان داریم که برای شما مفید بوده است. لطفاً نظرات و انتقادات خود را در بخش نظرات زیر به اشتراک بگذارید.

به این نوشته امتیاز بدهید!

افراد نیوز

افراد نیوز

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  • ×