tgoop.com/css_nlp/17
Last Update:
یه سری از نکته هایی رو که واقعا ازش لذت بردم میخوام اینجا لیست کنم. قبل لیست کردن چند تا نکته رو اشاره کنم، خب مدل product محور که وقتی وارد بازار شدن همه جا رو ترکوندن و گفتن که دیگه رسیدیم به آخر AI و خیلی چیزهای دیگه مثل ChatGPT. اما مساله ای که اینجا ارزش داره بهش دقت کنیم این هست که این مدل ها close source هستن یا به عبارتی ما نمیدونیم اون پشت چه اتفاقاتی داره میافته که به این نتایج انسان پسند و باحال دست پیدا میکنیم.
تو دنیای ریسرچ فعلی برای NLP و مخصوصا سمت ترین کردن LLM ها، الان رقابتی که وجود داره اینطور هستش که مدلی رو بیرون بدن که ریزالت های نزدیک یا حتی بهتر از این پروداکت ها رو داشته باشن.
استارتینگ پوینتش رو از Falcon 7b بعد از BLOOM شاید بشه بهش اشاره کرد. علت اینکه BLOOM رو نمیگم اولی چون قبل تر از ChatGPT اینا بودن.
ولی مشکلات و بدبختی زیادی وجود داره 🥺.
🥵مدل ها خیلی بزرگن - درحدی بزرگن که با کوانتایزر کردن و 2 بیت 4 بیت کردن هم باز یه GPU در حد 16 گیگ رم میخواد.
هر چند اندروکارپاسی با cpp اومد اسکریپتی داد که حتی رو cpu هم میشه inference گرفت ولی خب....
🥵 مدل ها wild و وحشی ان. اصلا جنریت کردن به نظرم یکی از سخت ترین قسمت های کاری LLM ها هستش. چرا؟
🗿 اصلا کنترل کردن جنریت سخته. میگی 100 کاراکتر بیشتر جنریت نکن میبینی داره 400 تا کاراکتر جنریت میکنه
🗿 میگی پنالتی تکرار جنریت کردن و ببرم بالا، میبینی که دوباره تکست تکراری جنریت میکنه
🗿میخوای که مواظب باشی حرف های بد نزنه باید یا Direct Finetune کنی یا بیای RLHF که عملا یه مدلی هست که میاد مدل اصلی رو کنترل میکنه
(نمونش اونجا که chatgpt میگی یه حرف racist طور بزنه اما بعدش میگه به عنوان یه LLM نمیتونم و فلان)
(یادم باشه یه پست هم درمورد آماده کردن دیتاست ها اینجا بنویسم)
حالا این چیزا رو کنار بزاریم و بریم ببینیم که LLama2 چه گلی به سرمون زده:
📌 دیتاستی که ترین کردن public هستش و مواظب بودن که شامل دیتای Meta نباشه.
📌 نسبت به LLama1 افزایش 40 درصدی دیتاست داشتن برای ترین کردن
📌 دیتاستی که ترین شدن multilingual هستش یعنی زبان های دیگه رو هم ساپورت میکنه اما تو پیپر گفتن که ما فقط انگلیسی رو زیرنظر گرفتیم
📌 چک کردن که دیتایی که هست شامل دیتای شخصی افراد نباشه به خاطر privacy.
📌 دیتا سرجمع 2 ترلیون توکن داشته
📌 ساختار مدل همون ترنسفورمر استاندارد هستش
📌 قبل ترین مدل وزن ها رو با RMSNorm نرمالایزر کردن
📌 اکتیویشن فانکشن SwiGLU
📌 برای positional embedding، از Rotary Positional Embeddings استفاده کردن
📌 به طور کلی input length یا همون context length رو بردن بالا (نکته قابل ذکر اینکه وقتی این سایزر ورودی رو میبرن بالا، computational cost هم خیلی زیبا میره بالا. برای این پیپر attention is all you need رو میتونید چک کنید)
📌 ماژول اتنشنشون یکمی متفاوت هستش با اتنشن عادی. از GQA استفاده کردن
تسک هایی که روش مدل های مختلف رو بنچ مارک گرفتن:
📌در کل روی تسک های اشاره شده ریزالت ها بهتر شدن روی LLama-2 که از این بین بهتریشون 70 بیلیون پارامتری لاما هستش
📌 من وقتی شنیدم که LLama 2 رو فاین تون کردن خوشحال شدم. چون کلا فاین تون رو گذاشته بودن کنار و کسی دیرکتلی فاین تون نمیکرد.
@css_nlp
ادامه دارد ...
