۱. مقدمه
در این مقاله، ابتدا سعی کردهام یادداشتهای خود را در مورد مدل Llama 2 که (ژوئیه 2023) منتشر شده است (Large Language Model Meta AI) ادغام کنم. مطالب مربوط به این موضوع در بخشهای 2، 3 و 4 مورد بحث قرار گرفته است.
بخش 5 برخی از جزئیات را در مورد بسته HuggingFace پیشرفته با آموزش خودکار ارائه میکند که میتواند برای تنظیم دقیق یک LLM با یک خط کد استفاده شود!
در بخش 6، من در مورد گوریلا بحث کردهام - این مدلی است که توسط Microsoft Research و UC Berkeley توسعه یافته است که یک مدل مبتنی بر Llama 2 تنظیم شده است که در فراخوانهای API به خوبی تنظیم شده است.
بخش 7 پیوندی به مخزن GitHub من ارائه میدهد که استفاده از مدل گوریلا را نشان میدهد.
۲. راز زدایی از مدل Llama 2
متای فیس بوک Llama v2 را در جولای 2023 منتشر کرد - این دومین نسخه از مدل اصلی Llama است که در فوریه 2023 منتشر شد و انقلاب LLMهای منبع باز را آغاز کرد. یکی از محدودیتهای مدل اصلی این بود که فقط استفاده تحقیقاتی بود، اما نسخه دوم Llama که در جولای 2023 منتشر شد هم برای تحقیقات و هم برای استفاده تجاری رایگان است. میتوانید درخواست دانلود وزنها و پارامترها و کد مرجع را بدهید، فرمی را پر کنید و کد را به همراه پارامترها/وزنهای مدل دریافت کنید.
شکل: از https://ai.meta.com/llama/
انواع LLaMA-2 و معیارهای ارزیابی:
در جولای 2023، متا 3 نوع LLaMA 2 را منتشر کرد. بزرگترین آنها با پارامترهای 70B است، یعنی LLaMa 2 که بر روی 40٪ داده بیشتر از نسخه اصلی آموزش داده شده است و اندازه زمینه دو برابر شده است - اندازه زمینه 4096 توکن است.
این گونهها نیازهای محاسباتی و سناریوهای کاربردی مختلف را برآورده میکنند و به محققان و توسعهدهندگان اجازه میدهند بهترین مدل مناسب را برای وظایف خاص خود انتخاب کنند. این به استارتآپها اجازه میدهد تا به مدلهای LLaMa 2 دسترسی داشته باشند تا محصولات یادگیری ماشینی خود، از جمله برنامههای هوش مصنوعی تولیدی یا رباتهای چت را ایجاد کنند. مدل کوچکتر، منابع محاسباتی کمتر خواهد بود، اگر میخواهید مدل را بر روی مجموعه دادههای خود آموزش دهید، تنظیم دقیقتر آسانتر خواهد بود، نیازهای زیرساختی کمتری دارد. بنابراین، ما 3 نوع داریم.
شکل: عکس از https://ai.meta.com/llama/
به غیر از مدل پایه - یعنی مدل از پیش آموزش دیده، یک نسخه تنظیم شده برای چت نیز وجود دارد - که با 1 میلیون نمونه با استفاده از روش RLHF آموزش داده شده است، با یادگیری تقویتی با بازخورد انسانی تنظیم شده است. همان تکنیک مورد استفاده در OpenAI.
جدول زیر ارزیابی انواع LLaMA -2 از معیارهای مختلف را نشان میدهد:
شکل: عکس از https://ai.meta.com/llama/
مدل پارامتر Llama 2 7B از سایر مدلهای منبع باز پارامتر 7B بهتر عمل میکند.
همانطور که از جدول مشخص است، Llama2 در بسیاری از معیارهای خارجی، از جمله استدلال، کدنویسی، مهارت و آزمونهای دانش، از مدلهای زبان منبع باز بهتر عمل میکند.
این مجموعه دادهها به شرح زیر است:
MMLU - درک زبان چند وظیفهای عظیم – سوالات چند گزینهای در 57 موضوع – علوم انسانی، علوم، علوم اجتماعی و موارد دیگر.
GSM8K - مسائل کلمهای ریاضی کلاسیک با کیفیت بالا
BoolQ - مجموعه داده پاسخگویی به سؤال با سؤالات بله یا خیر
مجموعه داده AGIEval - مجموعه داده آزمون صلاحیت – SAT/English/Math، آزمونهای پذیرش دانشکده حقوق، آزمونهای خدمات ملکی، آزمونهای GRE/GMAT
OpenBook QA - تحقیق در پاسخ به سؤالات پیشرفته برای درک عمیقتر موضوع و زبان بیان شده در آن
مجموعه داده Hellaswag - مجموعه داده چالش برانگیز برای ارزیابی عقل سلیم در LLM
مجموعه دادههای Winograde - استدلال عقل سلیم
همانطور که از جدول بالا مشخص است عملکرد مدل Llama-2 از همه مدلهای منبع باز موجود پیشی میگیرد.
در اینجا مقایسهای بین مدلهای Llama2 با پارامترهای 7B و 70B وجود دارد، تفاوت برای برخی معیارها زیاد است - با این حال بسته به زیرساختهای موجود، پتانسیل مناسبی برای برخی موارد استفاده دارد.
شکل: مقایسه عملکرد – Llama2 7B در مقابل Llama2 70B
3. پیش-آموزش و تنظیم دقیق Llama
نسخه از پیش-آموزش Llama مشابه GPT از ChatGPT است. پیش-آموزش مبتنی بر ترانسفورمر- مشابه مدل OpenAIs است. با این حال، مدل Llama2 از توجه پرس و جو گروهی[1] به جای توجه چند راس[2] استفاده کرد. توجه پرس و جوی گروهی، راسهای پرس و جو را به گروههای G تقسیم میکند، که هر کدام از آنها یک راس کلید و یک راس مقدار مشترک دارند، همانطور که در شکل زیر نشان داده شده است:
توجه چند راس در مقابل توجه پرس و جو گروهی
همچنین یک نسخه چت از مدل Llama2 وجود دارد که با استفاده از یادگیری تقویتی از بازخورد انسانی[3] [RLHF] بهخوبی تنظیم شده است - مانند OpenAI.
این شامل دو مدل پاداش است:
· مدل پاداش ایمنی[4] - که در یادگیری تقویتی برای حذف محتوای غیرقابل قبول استفاده میشود.
· مدل پاداش سودمندی[5] - که بر اساس درخواست مفید بودن پاسخ را اندازهگیری میکند.
یادگیری تقویتی مبتنی بر بهینهسازی خط مشی پروگزیمال و نمونهگیری رد است.
این کم و بیش در مقایسه با رویکرد OpenAI برای آموزش ChatGPT است.
شکل: تنظیم دقیق نسخه چت Llama2
4. نحوه استفاده از Llama2 در حال حاضر
اگرچه Llama2 در یک پلتفرم عمومی مانند ChatGPT در دسترس نیست، اما همچنان میتوانید با دانلود یک نسخه از مدل و اجرای آن به صورت محلی یا استفاده از دسترسی به آن از طریق یک نمونه میزبان ابری Hugging Face، مدل را به دست آورید. برای دسترسی به Llama on Hugging Face، به سادگی پیوند مربوطه Hugging Face را در زیر باز کنید و شروع به درخواست چت ربات هوش مصنوعی کنید.
5. ابزار هوش مصنوعی برای تماشا: autotrain-پیشرفته
تنظیم دقیق با مدل Llama 2 با مجموعه دادههای خود تنها یک خط کد است که می توانید با کتابخانه Autotrain HuggingFace انجام دهید:
Autotrain پیشرفته HuggingFace: https://pypi.org/project/autotrain-advanced/
شما میتوانید هر مدلی را که میخواهید با Autotrain پیشرفته تنظیم کنید. برای تنظیم دقیق یک مدل به GPU NVIDIA نیاز دارید یا اگر از مجموعه دادههای کوچکی استفاده میکنید، میتوانید از Google Colab استفاده کنید تا مطمئن شوید که از زمان اجرای GPU استفاده میکنید:
در صورت نداشتن توکن HuggingFace ایجاد کنید: https://huggingface.co/settings/tokens
دستور تک خطی:
فرمت مجموعه داده:
https://huggingface.co/datasets/vicgalle/alpaca-gpt4/viewer/default/train?row=0
6. گوریلا: مدلهای زبانی بزرگ متصل به APIهای عظیم
در ادامه، اجازه دهید به پروژه دیگری به نام گوریلا – مدل زبان بزرگ متصل با APIهای عظیم نگاه کنیم. این مدلی است که به جای زبان، بر روی فراخوانیهای API آموزش داده شده است، بنابراین، آنها آن را به عنوان “API App Store for LLMs” مینامند.
شکل: عکس از https://shishirpatil.github.io/gorilla/
تنظیم دقیق پارامتر 7B مدل Llama به صورت زیر انجام میشود:
آنها مدل Llama را با پارامتر 7B تنظیم کردهاند و آن را گوریلا نامیدهاند - مدل Llama2 برای برقراری تماسهای API با استفاده از مجموعه دادهای متشکل از تماسهای API از 3 پلت فرم مختلف تنظیم شده است: HuggingFace، TorchHub و APIهای TensorHub.
برای هر یک از فراخوانیهای API، جفتهای instruction-API با هدف تنظیم دقیق ساخته شدند - گوریلا یک مدل تنظیم دقیق دستورالعمل با استفاده از جفتهای instruct-API است.
هنگامی که کاربر یک درخواست را ارسال میکند، این درخواست به یک سیستم بازیابی اطلاعات ارسال میشود. در سیستم بازیابی اطلاعات، ما به دنبال همه APIها میگردیم و API نزدیک به پرس و جو را انتخاب میکنیم. ما اکنون API را داریم. سپس مدل گوریلا (بر اساس تنظیم/آموزش دقیق) ورودی تماس API را برمیگرداند. شکل پایین مشخص است.
عملکرد:
در این مقاله ذکر شده است که گوریلا 20٪ بهتر از GPT-4 و 10٪ بهتر از ChatGPT در مورد تماسهای API عمل میکند - بنابراین ChatGPT در مورد تماسهای API بهتر از GPT4 عمل میکند.
شکل: عکس فوری از https://shishirpatil.github.io/gorilla/
شکل: مقاله تحقیقاتی گوریلا - https://arxiv.org/abs/2305.15334
7. استفاده از مدل گوریلا
مثال 1:
شکل: اسکرین شات های نوت بوک Colab که استفاده از مدل گوریلا را نشان میدهد
Colab: مثال 2
شکل: اسکرین شات های نوت بوک Colab که استفاده از مدل گوریلا را نشان میدهد
GitHub: https://github.com/