nlp_stuff | Неотсортированное

Telegram-канал nlp_stuff - NLP stuff

3988

مطالب خوب و به‌دردبخور در حوزه‌ی هوش مصنوعی و پردازش زبان طبیعی! شکرشکن شوند همه طوطیان هند زین قند پارسی که به بنگاله می‌رود اگر انتقاد، پیشنهاد و یا مطلب مفیدی (لینک، پست و ...) داشتید: @AliAkbarBadri @mmsamiei @MmahdiAghajani

Подписаться на канал

NLP stuff

مفهوم Agent چیست و چگونه کار می‌کنند؟

خانم چیپ هوین بلاگ پست مفصلی راجع به Agent (به قول راسل، هدف غایی هوش مصنوعی) نوشتند. به شدت توصیه می‌کنیم به دور از هایپ بخونید.
این پست ۴ بخش داره: تعاریف، ابزارها، برنامه‌ریزی، ارزیابی و نقاط شکست!

تعاریف. agent هر چیزیه که از محیطش اطلاعات دریافت کنه و روی محیط عملی انجام بده. پس دو مشخصه داره: محیطش و عملگرهاش. محیطش با هدفی که داره تعریف میشه و عملگرهاش با ابزارهایی که در اختیارش قرار دادیم. مثلا یک ایجنت نرم افزاری محیطش میشه ترمینال و فایل سیستم و اکشن‌هاش میشه سرچ کردن و خوندن  و نوشتن در فایلها (عکس ۱). agentها ‌نیاز به مدل قوی‌تری دارند، چون کارهای مهم‌تری می‌کنند و ریسک بالاتری دارند و چون مراحل زیادی طی می‌کنند، خطاها در هم ضرب میشن و مثلا یک مدل با دقت ۹۵٪ در انجام کاری، بعد از ده مرحله، با ۶۰٪ دقت کار نهایی را تحویل میده.

ابزارها. ابزار بیرونی کمک میکنه ورودی بهتر جمع بشه و اکشن‌های بهتری داشته باشیم. اما نباید همه ابزارها را همینجوری در اختیارش بگذاریم چون بعدش فهمیدن و استفاده مفید ازشون سخت میشه. ابزارها سه گروه میشن: knowledge augmentation، capability extension و write actions. دسته‌ی اول ابزارهای تولید محتوا هستند که کمک میکنند بروز باشیم و کمتر هذیون بگیم مثلا سرچ در اینترنت یا API دیتای محصولات فروشگاه. دسته دوم ابزارهای بهبود یهویی توانایی مدل هستند. مثلا مدل‌های زبانی در انجام عملگرهای ساده ریاضی مثل تقسیم هم گاهی گند می‌زنند. پس بهش یه ماشین حساب بدیم یا مثلا از یک مدل تولید عکس جدا استفاده کنیم. دسته سوم. ابزارهایی که تغییر ایجاد میکنند. مثلا ایمیل زدن، انتقال پول.

برنامه‌ریزی. مغز یک agent همون مدلیه که تسک پیچیده را برنامه‌ریزی میکنه. خروجی برنامه یک سری مراحله که باید به ترتیب طی بشه. برنامه‌ریزی باید از اجرا جدا باشه. یعنی از مدل اول میخواهی (مثلا با CoT) برنامه (یا برنامه‌ها) را ارائه بده و بعد از تایید شروع به اجرا کنه. تا اینجا سیستم ما سه قسمت داشت: تولید برنامه، ارزیابش، اجراش (عکس ۲). حالا اگر بیای برای هر کدوم یک agent بذاری، میشه mutli-agent مثلا قبل از هر چیز یه agent تشخیص هدف مشتری (intent) بذاری. راحتترین راه برای تولید برنامه هم پرامپته. مثلا برای آموزش مشتری‌ها راجع به محصولات، به مدل توابع لازم و چند تا مثال از سوالات کاربران و جواب درست را میدیم (عکس ۳‍).
سه تا نکته مهم در تولید برنامه هست: نحوه تعریف و صدا زدن ابزارها، ریزدانگی برنامه، برنامه‌های پیچیده. اولی (نحوه معرفی)، یه سری چارچوب داره که به مدل بفهمونیم لازمه از این ابزارها استفاده کنه یا خودش هر طور صلاح میدونه (عکس ۴). در ریزدانگی باید دقت کنیم که نباید زیاد جزئی (تا اسم تابع) از مدل تولیدکننده بخواهی. چون دوباره تعریف کردن یا فاین تیون کردنشون سخته. خوبه بهشون بگی به زبون طبیعی مراحل را تولید کن. بعد یه مدل ساده‌تر این جملات زبان طبیعی را به اسم توابع تبدیل کنه. برای سومی هم؛ همیشه برنامه‌ها به صورت پشت سر هم نیستند. میتونه موازی یا شرطی باشه یا حلقه داشته باشه (عکس ۵).
در ادامه راجع Reflection صحبت میکنه. agent باید مداوم خودش، خودشو بررسی کنه که از برنامه تا نتیجه همه چی درسته؟ این ارزیابی و اصلاح، میتونه توسط خود agent انجام بشه یا بیرونش. چارچوب‌هایی مثل ReAct هست که یک حلقه متشکل از برنامه، اکشن و ارزیابیه تا وقتی که به جواب برسه (عکس ۶). اگر ارزیاب مدل دیگه‌ای باشه به این Reflexion میگن.
برای نحوه انتخاب ابزارها از مقالاتی مثل Chameleon صحبت میکنه که از ۱۳ تا ابزار استفاده میکنه. هر چی تعداد ابزارها بیشتر باشه، مثل انسان برای مدل سخت‌تره ازشون استفاده کنه. راه‌هایی برای انتخاب مجموعه ابزارها هست؛ مثلا با کدوم ابزارها خطای مدل بیشتره، حذف ابزار چقدر کارایی را کاهش میده، از کدوم‌ها بیشتر استفاده میکنه. مقاله Chameleon نشون داد که تسک‌ها و مدل‌های مختلف ابزارهای مختلفی لازم دارند و نباید همینجوری همه ابزارها رو به مدل بدیم (عکس ۷).

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

لینک پست:
https://huyenchip.com/2025/01/07/agents.html

#read
#blog

@nlp_stuff

Читать полностью…

NLP stuff

چه قدر تا بی‌کارشدن بک‌اندی‌ها فاصله داریم؟

عمده استفاده برنامه‌نویس‌ها از LLM‌ها در سطح پیاده‌سازی فانکشن‌ها و یا ادیت تکه‌های مختلف کد بوده. اما آیا LLM‌ها می‌تونند یک پروژه رو به صورت انتها به انتها و ماژولار و البته با کیفیت مناسب پروداکشن پیاده‌سازی کنند؟ یک کار جالبی اومده که سعی کرده برای همین نیازمندی پیاده‌سازی انتها به انتها پروژه‌های بک‌اندی بنچمارک ارائه بده. این بنچمارک که BaxBench نام داره، ۲۸ تا سناریو نیازمندی تعریف کرده و تلاش کرده با ۱۴ تا فریمورک (از شش زبان مختلف) مختلف این نیازمندی‌های رو با LLM‌ها پیاده‌سازی کنه (یعنی سرجمع ۳۹۲ تسک می‌شه). از اونور هم ۱۱ تای LLM‌ پیشرو فعلی رو روی این تسک‌ها گذاشته و خواسته که کدشون رو تولید کنند. برای ارزیابی اما چه کرده؟ دو جهت ارزیابی رو در پیش گرفته، یک جهت فانکشنال تست‌هایی که تعریف کرده و روی کدهای خروجی تست می‌گیره تا ببینه آیا سیستم درست پیاده‌سازی شده یا نه، و جهت دیگه هم این که از نظر امنیتی و آسیب پذیری، کدهای نوشته‌شده رو سنجیده. برای این کار برای هر سناریو، از یک متخصص امنیت خواسته تا اتک‌های ممکن رو تعریف کنه و سپس اونها رو سیستم‌های خروجی تولیدشده اجرا گرفتند تا ببیند وضعشون چه طوریه. پس در نهایت کد خروجی LLM‌ می‌تونه سه وضعیت داشته باشه: اصلا درست نباشه، درست باشه ولی آسیب‌پذیری امنیتی داشته باشه و در نهایت هم درست باشه و هم عاری از آسیب‌پذیری.

نتایج LLM‌های مختلف هم روی این بنچمارک که بهترین‌‌شون که o3-mini بوده باشه حدود ۶۰ درصد از تسک‌ها رو تو فانکشنال تست پاس شده که البته نصف همین رقمش هم دچار آسیب پذیری امنیتی بودند و یعنی o3-mini روی این بنچمارک سرجمع فقط ۳۵.۲ درصد تسک‌ها رو براشون خروجی درست و عاری از آسیب‌پذیری تونسته تولید کنه (البته یک ablation جالبی که زده این بوده که اومده در پرامپت‌دهی به LLM بهش نکات امنیتی رو گوشزد کرده و همینجوری تونسته درصد کدهای درست امن تولیدشده رو بیشتر کنه) البته o3-mini نه بهترین در تولید کد بوده و نه بهترین در امنیت، بلکه شبیه وزنه‌بردارها تونسته در مجموع بهترین باشه. در واقع ممکنه یک مدل در تولید کد عملکرد خوبی داشته باشه ولی در امنیت اون کد نه و بالعکس.

اما اکسپریمنت‌هاش از مقایسه اونوری، یعنی عملکرد روی فریمورک‌های مختلف، هم مطابق انتظار این شکلی بوده که LLM ها روی فریمورک‌هایی که شهرت و محبوبیت کمتری دارند و البته اونایی که برای راه‌اندازی یک http server نیازمند پیاده‌سازی در چند فایل هستند عملکرد پایین‌تری دارند.

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

لینک:
https://baxbench.com/

@nlp_stuff

Читать полностью…

NLP stuff

مدل‌های استدلالی (reasoning) چیست و چگونه ساخته می‌شوند؟

حتما این روزها بارها مدل‌های استدلالی مثل DeepSeek R1 به گوش و چشمتون خورده. اگر هنوز دقیق نمی‌دونید این مدلها معنیشون چیه و کجا به درد میخورند، بیاید که دواتون پیش آقای سباستین راشکا (نویسنده کتاب Build a Large Language Model From Scratch) هست. ایشون یه بلاگ مشتی راجع به مدل‌های استدلالی (همون reasoning) نوشته و مثل همیشه خیلی خوب داستان را شفاف کرده. این را داشته باشید تا منابع بعدی.

مواردی که در این بلاگ توضیح میده:
- تعریف مدل استدلالی چیه؟
- کجا باید از این مدل‌ها استفاده کنیم؟
- پایپلاین پشت R1 چیه؟
- چهار روش اصلی برای ساختن و بهبود مدلهای استدلالی چیه؟
- نکاتی پیرامون مدل R1
- نکاتی برای توسعه مدل‌های استدلالی با بودجه بسیار کم (حتی به اندازه دانشگاه‌های ایران کم ☺️)

اول میگه استدلال (reasoning) واسه وقتیه که سوالی را حل کنیم که نیاز به راه‌حل پیچیده و چندمرحله‌ای داره. مثلا پایتخت فرانسه کجاست اینجوری نیست ولی مثلا حل یه سوال فیزیک و ریاضی یا سوال acmای اینجوریه.

بعد میاد میگه سه جا خوب نیست اصلا از این مدل‌ها استفاده کنیم:
- وقتی ما نیاز به سرعت و قیمت پایین داریم
- وقتی سوال‌های دانشی (knowledge based) مثل همین پایتخت داریم چون این مدل‌ها دچار هذیان‌گویی میشن
- سوالات ساده چون این مدل‌ها مثل اکثر ما overthink میکنند

در ادامه میاد پایپلاین R1 را به شکل بسیار روان و ساده‌ای توضیح میده. عکس ضمیمه یک کلیتی از این پایپلاینه. میگه deepseek سه تا مدل داده: DeepSeek-R1-Zero، DeepSeek-R1 و DeepSeek-R1-Distill.
اول. با مدل DeepSeek-V3 که سپتامبر بیرون دادن، با یک RL cold start (بدون SFT) شبیه همون RLHF با دو تا reward (یکی دقت و دومی فرمت به جای ترجیح آدمیزاد) آموزش میده؛ و مدل DeepSeek-R1-Zero را درست میکنه. بعد از همین مدل میاد یه داده SFT بزرگ درست میکنه. ریوارد دقت میاد از leetcode استفاده میکنه که نتیجه کد را مستقیما اجرا کنه و بگه!! فرمت هم میاد از یه سری تگ استفاده میکنه که دقیقا با همون فرمت جواب بده.
دوم. بعد دوباره همون مدل زبانی اولیه سپتامبری DeepSeek-V3 را با همین دیتا SFT که در مرحله قبل ساخته شده بود یه بار فاین تیون میکنه و دوباره همون RL رو میزنه. این بار ولی بهش consistency هم اضافه میکنه که مدل سر چند زبانه بودن پنالتی نزنه. از همین مدل دو تا دیتاست SFT میسازه که یکیش با اندازه ۶۰۰ هزارتا chaing of thoughts داره و دیگری با اندازه ۲۰۰هزارتا knowldegeای هستش. بعد میاد یه RL دیگه هم میزنه که دیتاش کد و ریاضی هست. اینجا مدل DeepSeek R1 معروف ساخته میشه.
سوم. از اون دوتا دیتای SFT هم برای آموزش مدل‌های distill استفاده میکنه. البته اینجا distill مثل اون معروفه نیست، اینجا وقتی دیتای sft رو یه مدل قوی درست میکنه و مدل کوچیک (نیم الی ۷۰ میلیاردی) باهاش فاین تیون میشه، بهش میگن distillation.

خلاصه چهار تا روش برای تولید مدل استدلالی میگه:
- روش inference-time scaling: که از پرامپت و اینا استفاده میشه. منابع بیشتری لازمه. گرونتر هم درمیاد چون خیلی حرف میزنه.
- روش RL خالص مثل DeepSeek-R1-Zero
- روش SFT + RL مثل DeepSeek-R1
- روش SFT خالص با distillation: مثل DeepSeek-R1-Distill-Qwen
برای هر کدوم میزان کارایی رو توضیح میده و نهایتا میگه حالت سوم بهترین نتیجه رو میده ولی موارد دیگه هم چیزای جالبی بهمون یاد میده مثل اینکه RL خالی هم به استدلال مدل خیلی کمک میکنه.

در این بلاگ حدس‌های خوبی هم راجع به اینکه O1 و mini-O1 هم چطور آموزش داده شدند میگه که O1 ترکیب سوم و اولیه و o1-mini روش چهارم هست.

در نهایت هم میاد نظراتش رو راجع به R1 vs O1 میگه: در کل شبیه هم هستند ولی R1 بهینه‌تر و ارزانتره که دلیلش رو این میدونه که دیپ‌سیک بیشتر روی آموزش مدل وقت گذاشته ولی o1 روی inference-time رفته. و چون ما اندازه مدل o1 رو نمیدونیم خیلی مقایسه منصفانه‌ای نخواهیم داشت. درباره‌ی هزینه هم میگه این ۶ میلیون دلار که معروف شده ترکیب DeepSeek-R1 (همون سپتامبریه که پایه‌ی R1 هست) و R1 هستش ولی هزینه R1 رو دیپ‌سیک مشخص نکرده.

برای موضوع آخر هم میگه کسایی که پول کم هم دارند خوبه برن سراغ Distillation: به لطف مقاله مفصلی که برای R1 نوشتند مشخص شد که این روش هم خیلی موثره. مثلا میگه مقاله‌ای اومده یه مدل به نام Sky-T1 منتشر کرده که با ۴۵۰ دلار (۴۰ تومن) مدل ۳۲ میلیاردی را با ۱۷ هزارتا دیتای sft یه فاین تیون هدفمند کرده و در مواردی شبیه o1 عمل کرده!! موارد مهمی هم ادامش راجع به Journey Learning میگه که دیگه توی پست جا نمیشه :))

لینک پست:
https://sebastianraschka.com/blog/2025/understanding-reasoning-llms.html

#read
#blog

@nlp_stuff

Читать полностью…

NLP stuff

فاین تیون در سال ۲۰۲۵

اخیرا یکی از مهندس‌های هاگینگ فیس به نام فیلیپ اشمیت با یک بلاگ پست زیر و بم «تنظیم دقیق (SFT) مدل‌های زبانی وزن‌باز با هاگینگ فیس» را توضیح داده. نوت‌بوک‌ها و اسکریپت‌های پایتونیش را هم گذاشته.

پست شامل این موارده:
- کجا خوبه فاین تیون کنیم و کجا از پراپمتینگ استفاده کنیم؟
- چطور از کتابخونه‌ای مثل TRL (Transformer Reinforcement Learning) (برای SFT) استفاده کنیم؟
- چطور دیتاست مناسب فاین تیون را آماده کنیم؟
- چطور از روش QLoRA (برای آموزش با کوانتیزیشن ۴ بیتی)، روش Spectrum (برای انتخاب بهینه‌ی لایه‌های پراطلاعات)، Flash Attention و Liger Kernel (برای سریعتر شدن) استفاده کنیم؟
- چطور از کتابخونه‌ی فوق العاده‌ی DeepSpeed و Accelerate برای استفاده از چندین GPU بهره ببریم؟
- چطور ارزیابی کنیم؟
- چطور با استفاده از کتابخونه‌هایی مثل TGI (Text Generation Inference) و vLLM مدلمون را روی پروداکشن ببریم.

خلاصه توصیه می‌کنیم این پست جمع و جور (البته با کلی لینک برای مطالعه عمیق‌تر) را حتما بخونید.

لینک به بلاگ:
https://www.philschmid.de/fine-tune-llms-in-2025

#read
#blog

@nlp_stuff

Читать полностью…

NLP stuff

معرفی دوره آموزشی و مسابقه rayan

• دانشگاه شریف، مسابقه و دوره پیشرفته و جالبی با نام RAYAN AI در زمینه اعتمادپذیری در یادگیری عمیق (Trustworthiness in Deep Learning) برگزار می‌کنه. این مسابقه ۳۵ هزار دلار جایزه نقدی داره (درست خوندید) و پاییز برگزار میشه.

• دو تا دوره با اساتید خفن (مثل دکتر رهبان، دکتر سلیمانی و دکتر نجفی و ...) هم برگزار می‌کنه؛ یکی دوره مقدمه یادگیری ماشین و یادگیری عمیق و دومی هم اعتمادپذیری در یادگیری عمیق.

• دوره‌ها تمرین و پروژه دارند، هم برای مسابقه آماده میشید و هم گواهی پایان دوره از دانشگاه شریف میگیرید. و واقعا سیلابس خوبی دارند (تصویر دو و سه را ببینید).

• دقت کنید که تا ۲۰ تیر (سه روز دیگه) وقت برای ثبت نام دوره‌ها دارید و از ۲۴ تیر تا ۲۸ شهریور برگزار میشه. هزینه ثبت‌نام هر دوره فقط ۱۰۰ هزار تومنه و مجازی هم هست. تکرار میکنم که ۳۵ هزار دلار جایزه مسابقه‌ست!

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


لینک ثبت نام دوره آموزشی و مسابقه:
https://rayancup.ir/ai
کانال تلگرام:
@Rayan_AI_Course


#other

@nlp_stuff

Читать полностью…

NLP stuff

اندر تفاوت‌های ML در ریسرچ و پروداکشن

تا حالا زیاد درباره تفاوت‌های نگاه در یادگیری ماشین به جهت ریسرچ و پروداکشن صحبت شده. اما در این پست به بهانه معرفی کتاب Designing Machine Learning Systems می‌خواستیم که خیلی جمع و جور و خلاصه این تفاوت نگاه رو به رشته تحریر دربیاریم. همون‌طور که در تصویر دوم ضمیمه‌شده مشخصه (این جدول برگرفته از فصل اول این کتابه) یکی از ملموس‌ترین تفاوت‌ها بحث اولویت محاسباتیه که در ریسرچ، بیشتر تمرکز بر روی کوتاه‌تر کردن زمان Train گذاشته میشه اما در پروداکشن بیشتر تمرکز بر روی زمان inference کوتاهه. یا مثلا بحث distribution shiftهای مداوم که در یک مساله تحقیقاتی شاید کمتر اتفاق بیفته.
اما به نظر مهم‌ترین تفاوت که عمدتا باعث fail شدن پروژه‌های ML در صنعت میشه همون سطر اول این جدوله که شاید برای افراد ناملموس‌تر باشه. بله؛ وجود افراد در سازمان با نگاه‌های متفاوت که هر کدوم به نوعی هدف و سهمی از این نوع پروژه‌ها دارند، مهم‌ترین تهدید و همزمان مهم‌ترین فرصت برای این پروژه‌هاست. اگر بتونیم به جای تمرکز بر متریک‌های تکنیکال بر روی بهبود متریک‌های بیزنسی تمرکز کنیم این تهدید رو تبدیل به فرصت کردیم و در غیر این صورت باید بریم خونه‌هامون.
در آینده منتظر پست‌های بعدی از این کتاب باشید.

لینک کتاب:
https://www.amazon.com/Designing-Machine-Learning-Systems-Production-Ready/dp/1098107969

#book

@nlp_stuff

Читать полностью…

NLP stuff

دادگان PCoQA: Persian Conversational Question Answering

دادگان (دیتاست) جدیدی به نام PCoQA منتشر شده که شامل ۹۰۲۶ پرسش از ۸۷۰ صفحه ویکی‌پدیاست. هر گفتمان (conversation) روی یک صفحه ویکی‌پدیا انجام شده و طول هر گفتمان هم حدودا ۱۰ است. به منظور ارزیابی انسانی شبیه دادگان‌های گذشته مثل SQuAD و CoQA، برای هر پرسش در مجموعه‌ی ارزیابی و تست چندین پاسخ دراومده و دقت F1 انسان‌ها و چندین مدل بر روی پاسخ‌دهی به این پرسش‌ها بدست اومده که برای انسان حدودا ۸۶ درصده.

دو نوع مدل روی این داده تست شده. یکی با فقط فاین‌تیون کردن چند مدل زبانی ترنسفورمری روی همین دادگان و یک مدل دیگه هم با فاین‌تیون کردن مدل روی دادگان قبلی QA و بعد فاین تیون روی این دادگان و بعد تست گرفتن.

دو خصوصیت مهم این دیتاست:
- پرسش‌های این دادگان بیشتر open ended هستند، بر خلاف قبلی‌ها مثل CoQA و SQuAD که بیشتر به شکلی مصنوعی‌ بر روی named entity و noun phrase متمرکزند.
- سعی شده lexical overlap تا حد امکان کاهش داده بشه تا کیفیت بالاتر بیاد.

لینک مقاله: 
arxiv.org/abs/2312.04362

لینک گیت‌هاب:
github.com/HamedHematian/PCoQA

#dataset

@nlp_stuff

Читать полностью…

NLP stuff

بهبود عملکرد LLM با نشون‌دادن Chain of Thought غلط

مدل‌های زبانی بزرگ با این که کلی از مسائل حوزه پردازش زبان رو درنوردیدند ولی همچنان در برخی مسائل با فاز reasoning‌طور (مثل مثلا حل مسائل ریاضی) دچار مشکلات جدی هستند. یکی از راه‌حل‌های پیشنهادشده برای بهبود عملکرد این مدل‌ها روی این مسائل، راهکار Chain-of-Thought Prompting (به اختصار CoT) هست. تو این راهکار وقتی میخوایم یک مساله را به صورت few-shot به LLM توضیح بدیم عوض این که در example‌هامون صرفا جواب آخر رو بنویسیم و میایم و مرحله به مرحله نحوه رسیدن به جواب رو توضیح می‌دیم و این جوری مدل هم وقتی میخواد به کوئری ما پاسخ بده به نوعی مجبور میشه که مرحله به مرحله جواب رو بنویسه. آزمایشات نشون داده که باعث می‌شه درصد جواب‌های پایانی درستی که می‌ده بیشتر بشه.

حالا یک مقاله اومده و یک ایده به نام contrastive chaint of thought prompting رو مطرح کرده. تو این ایده، علاوه بر این که CoT درست به مدل داده می‌شود بهش CoT اشتباه هم نشون داده می‌شه و آزمایشات مقاله نشون می‌ده که این ایده نشون دادن CoT غلط در کنار CoT باعث میشه تا عملکرد LLM باز هم بهبود پیدا کنه.

لینک مقاله:
https://arxiv.org/abs/2311.09277

#paper
#read

@nlp_stuff

Читать полностью…

NLP stuff

ایجاد optical illusion با مدل‌های دیفوژنی

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

https://huggingface.co/spaces/pngwn/IllusionDiffusion

#link

@nlp_stuff

Читать полностью…

NLP stuff

مخزنی از مقالات کلیدی هوش/یادگیری‌ماشین به ترتیب سال

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

لینک لیست مقالات:
aman.ai/papers
لینک سایت:
aman.ai

پی‌نوشت: با دنبال‌کردن #coach می‌تونید منابع آموزشی معرفی‌شده رو بیابید.

#coach
#link

@nlp_stuff

Читать полностью…

NLP stuff

معرفی Toolformer

مدل‌های زبانی، در حل وظایف جدید با تنها چند مثال یا دستورالعمل متنی توانایی‌های قابل توجهی دارند، به ویژه در مقیاس بزرگ. در عین حال، برای عملکردهای پایه‌ای مثل محاسبات یا جستجوی factها دچار مشکل هستند، جایی که مدل‌های ساده‌تر و کوچک‌تر بسیار عالی عمل می‌کنند. این مقاله با معرفی Toolformer، نشون میده که مدل‌های زبانی چطوری می‌تونند خودشون رو با استفاده از API‌های ساده، آموزش بدن تا بهترین راهکار رو داشته باشند. مدل Toolformer، آموزش میبینه که تصمیم بگیره کدام API رو فراخوانی کنه، چه زمانی اونها رو فراخوانی کنه، چه آرگومان‌هایی رو منتقل کنه و چطوری به بهترین شکل از ترکیب نتایج برای پیش‌بینی توکن بعدی استفاده کنه.

این APIهای گنجانده شده در Toolformer شامل ماشین حساب، سیستم پرسش و پاسخ، موتور جستجو، سیستم ترجمه و یک تقویمه. آموزش این مدل به صورت خودبخودی و خودآموزه، که تنها به چند تا نمونه برای هر API نیاز داره. یعنی با استفاده از تعداد انگشت شماری نمونه‌های نوشته شده توسط انسان از فراخوانی یک API، به مدل این امکان داده میشه که برای یک مجموعه داده‌ی زبانی بزرگ، کاندیدهای فرخوانی API رو مرتبط با محتوای متن ایجاد کند (in-context learning). سپس با استفاده از یک تابع self-supervised loss مشخص میشه کدام فراخوانی‌ APIها واقعا به مدل برای پیش‌بینی توکن بعدی کمک می‌کنه. در نهایت مدل روی فراخوان‌های API ای که مفیدند finetune میشه.

مدل Toolformer، عملکرد zero-shot  رو برای مدل GPT-J با 6.7B پارامتر به طور قابل توجهی بهبود می بخشه و باعث میشه حتی از مدل بسیار بزرگتر GPT-3 در طیف وسیعی از وظایف مختلف پایین‌دستی (یا همان downstream tasks) بهتر عمل کنه، بدون اینکه تواناهایی مدل سازی زبان اصلی را ازدست بده.

لینک مقاله:
https://arxiv.org/abs/2302.04761

پ.ن. این پست را خانم وحیدی درست کردند و به کانال فرستادند. شما هم اگر پست خوبی دارید بگید تا به اسم و با لینک به لینکداین خودتون منتشر کنیم.

#read
#paper

@nlp_stuff

Читать полностью…

NLP stuff

قلب چت جی‌پی‌تی: هوش مصنوعی با فیدبک‌های واقعی

قبلا در این پست (/channel/nlp_stuff/313) به توضیح مختصری از داستان ChatGPT پرداخته بودیم.
حالا در یک بلاگ پست قصد داریم قلب آموزش این مدل یعنی Reinforcement Learning from Human Preferences رو توضیح بدیم.
لطفا با بقیه هم به اشتراک بذارید.

لینک پست ویرگول:
https://virgool.io/overfit/rlhf-vkpgfist80nt

لینک مقاله:
https://arxiv.org/abs/1706.03741

#read
#blog

@nlp_stuff

Читать полностью…

NLP stuff

اسپارک؛ سهل و ممتنع!

اگر در حوزه تحلیل دیتا کار کرده باشید قطعا با ابزارهای data manipulation مانند pandas یا spark کار کردید. در این پست قصد داریم رشته بلاگی رو به شما معرفی کنیم که مفاهیم پایه‌ای spark رو به شما یاد میده. فهم این مفاهیم کمک می‌کنه که کوعری‌های بهتری در اسپارک بزنید و یا علت کند اجرا شدن برخی از کوعری‌ها رو بفهمید. همون‌طور که می‌دونید spark در دوحالت cluster mode و client mode اجرا میشه که معمولا برای کارهای تحلیلی که خیلی پروداکشنی نیست از همین حالت client mode استفاده می‌کنیم که در واقع تنها کاری که برای بهره بردن از اسپارک باید انجام بدید نصب پکیج pyspark بر روی سیستمتون هست (درست مثل pandas). حسن بزرگ اسپارک اینه که محاسبات بر روی دیتای حجیم رو می‌تونه بین چندین executor بشکونه و محاسبات هر executor توی ram اجرا میشه و executorها نتایج کارشون رو با استفاده از ارتباط با driver به اشتراک می‌ذارن تا نتیجه نهایی بدست بیاد (همون‌طور که متوجه شدید معماری کل اسپارک حالت master/slave داره) این وسط با کانفیگ‌هایی که روی اسپارک انجام میدید میتونید حداکثر استفاده از ram رو تعیین کنید تا خیالتون راحت باشه که همه ram سیستم شما مورد استفاده قرار نگیره. این رشته بلاگ ابتدا مفاهیمی مانند driver و executor و scheduler رو توضیح داده و سپس به سراغ توضیح پارتیشن‌ها رفته. پارتیشن‌ها بخش‌هایی از دیتا هستند که می‌تونند به صورت توزیع‌شده باشند و یا به صورت موازی پردازش بر روی اون‌ها انجام بگیره. در واقع هر executor در لحظه می‌تونه فقط یک پارتیشن از دیتا رو پردازش کنه ولی driver می‌تونه چندین executor رو به کار بگیره برای اینکه پردازش دیتا همزمان روی چندین پارتیشن انجام بشه.
این رشته بلاگ توضیح داده که برخی از transformationها یا کوعری ها حالت narrow دارند که به این معنیه که انجام اونها منجر به repartition شدن دیتا نمیشه مانند map یا filter ولی برخی دیگه wide transformation هستند که منجر به repartition شدن دیتا میشه مانند groupby که wide transformationها می‌تونند کوعری‌های سنگین‌تری باشند.  (همون‌طور که می‌دونید کوعری‌ها در اسپارک lazy هستند به این معنی که در لحظه اجرا نمیشند بلکه مواقع خاصی مانند تبدیل نتایج به list و یا ذخیره کردن داده اجرا میشند که این به اسپارک اجازه میده از زنجیره کوعری‌ها یک گراف محاسباتی بسازه و اون رو قبل از اجرا بهینه کنه)
در نهایت اومده و memory management در اسپارک رو توضیح داده که یکی از مهم‌ترین و البته پیچیده‌ترین قسمت‌های فهم اسپارک هست و گفته که memory management در سطوح مختلف قابل تعریفه مثل driver memory و یا executor memory و ...
توصیه می‌کنیم حتما این رشته بلاگ رو بخونید و سعی کنید از این به بعد به جای pandas از spark استفاده کنید که وقتی دیتای حجیم دیدید هول نکنید!

لینک رشته بلاگ:
https://luminousmen.com/post/hadoop-yarn-spark

#handsOn
#read
#blog

@nlp_stuff

Читать полностью…

NLP stuff

و اکنون GPT-4

و سرانجام لحظاتی پیش Open-AI رسما انتشار مدل GPT-4 را تایید کرد. فعلا تحولات اخیر در رابطه با این مدل به صورت خلاصه وار اینه که:

- در تسک‌های تست‌های انسانی آکادمیک (مثل GRE) از مدل‌‌های قبلی مثل GPT-3 بهتره و در خیلی از تسک‌ها در صدک‌های بالایی قرار داره که یعنی از بیش از نیمی از انسان‌ها هم برتره. این رو به این معنا تفسیر کردند که این مدل توانایی‌های Reasoning قابل توجهی داره.

- مولتی مداله، یعنی میتونه تصویر رو هم در کنار prompt ورودی بگیره و با توجه به اون پرامپت روی اون تصویر توضیحی بده. مثلا بهش میگید تو این عکس چه میبینی و میاد براتون توضیح میده. در خیلی از تسکای پرسش و پاسخ تصویری با این که دقتش به حد SOTA نمی‌رسه اما باز هم قابل قبوله و از مدل‌های مولتی مدال قبلی بهتر داره نتیجه می‌گیره (وقتی می‌تونید ارزش این کار رو درک کنید که دقت کنید که به صورت Zero-Shot داره این کار رو انجام میده!)

- قابلیت شخصی‌سازی و فرمان‌پذیری سبک پاسخ دادن داره! در واقع این امکان وجود داره که شما با پیام‌هاتون به GPT بفهمونید که دوست دارید با چه سبکی بهتون پاسخ بده. یک مثال جالب خود Open-AI تو دموش گذاشته که به طرف میگه فرض کن سقراط هستی و در نقش معلم و هیچ وقت به دانش آموزات پاسخ رو نمیدی بلکه سعی میکنی با سوال پرسیدن اونها رو به جواب برسونی و بعد به طرز جالبی سعی کردن که باهاش یک معادله دو مجهولی رو حل کنند!

- همچنان با همون تسک ساده پیش‌بینی کلمه بعدی آموزش دیده اما با تاثیرپذیری از Chat-GPT اینجا هم اومدن و از RHLF برای فاین‌تیون‌کردن GPT-4 استفاده کردند.

برای توضیحات بیشتر اینجا را ببینید:
https://openai.com/research/gpt-4


@nlp_stuff

Читать полностью…

NLP stuff

مسابقه‌ی رتبه‌بندی نتایج جستجوی ترب

این روزها یک مسابقه‌ی درست و درمون رو شرکت ترب داره برگزار می‌کنه: «بهبود رنکینگ جستجو در ترب با استفاده از دیتای جستجوی کاربرها». اصطلاحا به این مسئله learning to rank گفته میشه. در این مسئله، اطلاعات سرچ کاربرها شامل عبارت جست و جو شده، نتایج نشان داده شده به اون‌ها، کلیک کاربرها و همچنین نام و قیمت محصولات به شما داده شده و از شما خواسته شده که در ازای یک عبارت جست و جو، n محصول رو پیشنهاد بدید. بنابراین علاوه بر مسئله learning to rank با مسائل فضای information retrieval و روش های مختلف استخراج ویژگی‌های متنی از محصولات سرو کار دارید. البته اطلاعات امبدینگ تصاویر محصولات هم چاشنی کار میشه.

شروع مسابقه از ۱۵ بهمن اتفاق افتاده و تا ۱۵ اسفند برای ثبت‌نام وقت دارید. یه سری جایزه‌ی تپل هم گذاشتند. پس توصیه می‌کنیم این مسابقه رو شرکت کنید و خودتون رو به چالش بکشید!

لینک ثبت نام و توضیحات رویداد:
https://tdc.torob.com

پ.ن. اگر رویداد جون‌دار دیتایی مثل همین رویداد دارید، ندا بدید که روی کانال بگذاریم تا ملت بهره ببرند.

#other

@nlp_stuff

Читать полностью…

NLP stuff

خلاصه‌تر فکر کن

از اونجایی که در مسائل استدلالی (reasoning) ، مدل برای رسیدن به جواب نهایی، باید دنباله افکار میانی رو به شکل CoT تولید کنه، یکی از دردهای آزاردهنده اینه که باید گاهی توکن‌های زیادی اون وسط تولید بشن و این امر هم هزینه پولی و هم هزینه زمانی زیادی داره. حالا با توجه به این نکته، این که چطور توکن‌های کمتری تولید کنیم و در عین حال دقت مطلوب‌تری رو حفظ کنیم مساله‌ی پیشروی ماست.

به تازگی کار جالبی اومده با عنوان Chain of Draft یا CoD که همون CoT هست با این تفاوت که در پرامپت از مدل خواسته می‌شه که هر سگمنت استدلالی (reasoning) که می‌خواد خروجی بده حداکثر ۵ کلمه طول داشته باشه. نتایجش جالب شده و نشون داده که با میزان توکن و در نتیجه latency خیلی کمتر تونسته دقت قابل رقابت با CoT رو حفظ کنه و حتی بعضی جاها بهتر از اون نتیجه بده. خلاصه که یکی از جهت‌های آینده احتمالا اینه که چطور مدل‌هایی داشته باشیم که کاراتر فکر کنند.

لینک پیپر:
https://arxiv.org/abs/2502.18600

#read
#paper

@nlp_stuff

Читать полностью…

NLP stuff

به سوی سیستم‌۲

پیشرفت‌های هوش مصنوعی در دهه ۲۰۱۰، مدیون آموزش مدل‌های بزرگ دیپ لرنینگی روی دیتاست‌های بزرگ بوده، چیزی که بهش اسکیل‌کردن دیتا و پارامتر گفته می‌شه. با وجود تمام پیشرفت‌های دیپ لرنینگ، اما همچنان شبکه‌های عصبی در برخی مسائل مخصوصا ریزنینگی با سطح انسان فاصله دارند.در چنین شرایطی به قول ایلیا ساتسکیور، دیتا برای هوش مصنوعی به حکم سوخت فسیلی در حال اتمامه و ما دیگه بیشتر از یک اینترنت نداریم تا ازش دیتای آموزشی جدید برای مدل‌هامون بسازیم. وقتی که دیگه نمی‌شه پارامتر‌های مدل و یا داده آموزشی رو اسکیل کرد، شاخه تحقیقاتی جدیدی در پی اسکیل‌کردن میزان محاسبه در زمان اینفرنس یا به اصطلاح inference time compute هست، ایده‌ای که مغز اصلی کارهایی مثل o1 و deepseek هست. این ایده خیلی شبیه بحث‌های دو سیستم پردازشی سیستم‌۱ و سیستم‌۲ در ذهن انسانه. جایی که سیستم‌۱ مسئول اعمال ناخودآگاه و ادراکی انسانه و سیستم‌۲ هم مسئول اعمالی که نیاز به راه‌حل‌های گام به گام دارند (قبلا اینجا راجع بهش صحبت کرده بودیم) حالا این ترم در دانشگاه شریف، درسی با عنوان سیستم‌۲ ارائه شده که قراره به بررسی این داستان و راه‌حل‌های ارائه شده براش بپردازه. موارد زیر جزو سیلابس این درس هستند:

- مقدمه بر مسائل ریزنینگ و سیستم‌۲
- معرفی روش‌های نوروسیمبلیک
- تولید برنامه
- انواع روش‌های پرامپت‌دهی مبتنی بر CoT مثل ToT
- مکانیزم‌های اسکیل‌کردن محاسبه در LLM‌ها
- ریزنینگ با کمک گراف‌های دانش
- نقش LLM Agent‌ها در ریزنینگ
- ارتباط کامپوزیشنالیتی با سیستم‌۲

لینک پلی‌لیست یوتیوب درس:
https://www.youtube.com/playlist?list=PLFr7f4WLNwracR8k8jgYONAp-2pmKrdc3

لینک پلی‌لیست آپارات درس:
https://www.aparat.com/playlist/14269123

لینک کانال تلگرامی درس:
/channel/system2_spring2025

پی‌نوشت: اگر میخواید بدانید o1 و deepseek چه ایده‌ و تاریخچه‌ای پشتشونه و مسیر چند سال آتی هوش مصنوعی چه شکلی هست این کورس رو ببینید

#course

@nlp_stuff

Читать полностью…

NLP stuff

درس یادگیری ماشین شریف

دکتر شریفی زارچی و تیم ۷۰نفرشون، محتوای (ویدیوها، کدها و اسلایدها) درس یادگیری ماشین دانشگاه شریف رو به صورت رایگان منتشر کردند.
سیلابس جلسات (عکس ضمیمه شده) مخصوصا جلسه ۲۰ به بعد، بسیار جذاب و به‌روزه و یک منبع فارسی غنیه. البته موضوعات کلاسیک و بسیار مهم مثل SVM و GMM هم داخلش نیست و در موضوعاتی مثل ensemble learning کم صحبت شده و لازمه از کورس‌های دیگه (کورس انگلیسی اندرو انگ و کورس فارسی دکتر سلیمانی) یاد گرفته بشه. اما در کل قدر بدونیم!

سایت این درس:
https://www.sharifml.ir
لینک پلی‌لیست یوتیوب:
https://www.youtube.com/playlist?list=PLk-NQNQe8Inds3uL0JrE5NwLUM9dBGVsL

#coach
#course

@nlp_stuff

Читать полностью…

NLP stuff

ابزار markitdown؛ همه چیز را به فرمت markdown تبدیل کن!

ما با معرفی یه ابزار به‌دردبخور برگشتیم!
مایکروسافت یک کتابخونه به نام MarkItDown را به صورت متن‌باز بیرون داده که باهاش می‌تونید فایل‌هایی با فرمت‌های زیر (فرمت‌های آفیسش مهمه) را به فرمت markdown (مثل فایل‌های readme گیت) تبدیل کنید. همچین ابزاری موقع ساختن دیتاست (برای آموزش مدل زبانی مثلا) خیلی میتونه کمک کنه. تا حالا هم بیشتر از ۳۰ هزارتا استار گرفته. فایل ورد فارسی رو هم خوب پشتیبانی می‌کنه اما پی‌دی‌اف فارسیش تعریفی نداره. برای OCR و تبدیل صوت هم به llmها مثل جی‌پی‌تی وصل میشه. خدا بده برکت. فرمت‌های پشتیبانی شده:
• PDF
• PowerPoint
• Word
• Excel
• Images (EXIF metadata and OCR)
• Audio (EXIF metadata and speech transcription)
• HTML
• Text-based formats (CSV, JSON, XML)
• ZIP files (iterates over contents)


لینک ریپو گیتهاب:
https://github.com/microsoft/markitdown/tree/main

#tool

@nlp_stuff

Читать полностью…

NLP stuff

سفت کردن جای پا با فریم‌بندی درست مسائل ML

در ادامه رشته‌پست‌ها از کتاب Designing Machine Learning Systems با یک موضوع مهم از فصل دوم این کتاب در خدمتتون هستیم. فریم‌بندی درست مسائل در حوزه ML می‌تونه درصد موفقیت پروژه‌ها رو در این حوزه تا حد زیادی بالا ببره. برای فریم‌بندی می‌تونیم به این شکست فکر کنیم که چه نوع ورودی باید به مدل بدیم (input features)، چه خروجی باید بگیریم (target labels) و انتظار داریم چه چیزی رو مدل یاد بگیره (objective functions).
درباره مورد اول و دوم یک چاله رایج وجود داره و اون هم وابسته کردن مدل به مفاهیمیه که متغیر هستند. کتاب درباره نوع خروجی دادن مدل یک مثال میزنه و اون هم مساله تشخیص اپ بعدی‌ای ست که کاربر بر روی اون در یک اپ‌استور کلیک می‌کنه. یک مدل اولیه می‌تونه این باشه که خروجی مدل رو یک وکتور به اندازه سایز تمام اپ‌ها درنظر بگیریم و مدل با دادن فیچرهای ترجیحات کاربر، حدس بزنه که احتمال کلیک بر روی هر یک از اپ‌ها چقدر هست. با این فریم‌بندی عملا سایز خروجی مدل به تعداد اپ‌های حاضر بر روی اپ استور bind شده که می‌دونیم با نرخ بالایی تغییر می‌کنه. همچنین مساله شبیه یک multi class classification شده که مساله‌ای به مراتب سخت‌تر از binary classification است. شکل درست کار در این جا می‌تونه ورودی دادن فیچرهایی از ترجیحات کاربر و فیچرهای اپ‌ها به صورت توامان با هم باشه و از مدل بخوایم که بگه فلان اپ رو کاربر کلیک میکنه یا نه (طبق تصاویر در اینجا موقع inference نیاز داریم که به تعداد اپ‌ها مدل رو صدا بزنیم که قابلیت موازی‌سازی داره و مشکلی ایجاد نمی‌کنه ولی در عوض خروجی باینری برای مدل داریم و ابعاد خروجی متغیر نیست).
با این تغییر همچنین نیاز نیست برای adopt شدن مدل با هر اپ جدید، حتما retrain انجام بشه و حتی چالش cold start برای اپ‌های جدید هم تا حدی با الگویابی مدل از اپ‌های قبلی که شبیه اپ‌های جدید هستند، می‌تونه بهتر بشه.
همین چاله برای فیچرهای ورودی هم می‌تونه پیش بیاد که البته کتاب بهش اشاره‌ای نمی‌کنه اما با کمی فکر کردن می‌تونیم مثال‌های مختلفی براش پیدا کنیم. مثلا ممکنه شما در مساله‌تون فیچری داشته باشید که انواع مختلف واکنش‌های کاربر رو بخواید بشمارید و ممکنه مثلا واکنش‌های مثبت، انواع مختلفی داشته باشند که اثر یکسانی در بیزنس دارند اما بسته به برخی تصمیمات دیزاین یا بیزنس کم و زیاد می‌شند. در اینجا یک مفهوم ثابت وجود داره و اون واکنش مثبت کاربره و تفکیک انواع واکنش‌ها باعث میشه روی فیچری تکیه کنید که جزییات بیشتری رو فراهم می‌کنه اما در عوض می‌تونه تغییر کنه و یا حتی مرز مشخصی بین کاربر‌ها برای اون وجود نداره.
نکته‌ای که مهمه اینه که با فریم‌بندی درست مسائل ML می‌تونیم تا حد زیادی از effort مساله کم کنیم و به نوعی جای پامون رو برای توسعه پروژه در آینده سفت‌تر کنیم.

#book

@nlp_stuff

Читать полностью…

NLP stuff

لاما۳ با پشتیبانی از فارسی آمد!

سلام بعد از مدتها. گفتیم با یه خبر برگردیم: شرکت متا لاما۳ رو بیرون داد. علی الحساب چند تا بولت راجع بهش بگیم تا جزئیات مفصل‌تر رو در آینده نزدیک بهتون بگیم:
• پشتیبانی از فارسی (لینک دمو در انتهای پست و عکس اول از نمونه سوال و جواب)
• ۱۰ درصد بهبود نسبت به ورژن‌های قبلی داره
• در دو سایز ۷ و ۷۰ میلیاردی در دو نسخه base و instruct ارائه شده
• توکنایزرش با اندازه ۱۲۸ هزار تا آپدیت شده
• باز هم اجازه استفاده تجاری داده شده
• روی ۱۵ تریلیون توکن آموزش داده شده
• روی ۱۰ میلیون نمونه لیبل‌زده شده توسط انسان فاین‌تیون شده
• برای alignment هم از sft و ppo و dpo استفاده شده
• روی mmlu بهترین مدل زبانی وزن‌باز هست (بالای ۸۰)
• مدل ۷ و ۷۰ میلیاردی نسخه instruct یه ترتیب با ۶۲.۲ و ۸۱.۷ در HumanEval وضعیت بسیار خوب در کدزنی دارند.
• اندازه context window با اندازه پیش فرض ۸۱۹۲ و با قابلیت افزایش

تصاویر ضمیمه شده‌اند. ورق بزنید.

لینک بلاگ متا:
https://ai.meta.com/blog/meta-llama-3/
لینک بلاگ توضیح و استفاده لاما:
https://huggingface.co/blog/llama3
لینک دمو لاما۳ (پشتیبانی از فارسی):
https://www.llama2.ai/
لینک کالکشن هاگینگ‌فیس:
https://huggingface.co/collections/meta-llama/meta-llama-3-66214712577ca38149ebb2b6

#model

@nlp_stuff

Читать полностью…

NLP stuff

شکست gpt3.5 توسط مدل وزن‌باز Mixtral-8x7B-v0.1 !

خلاصه بخوایم بگیم: جدیدا شرکت Mistral.ai یه مدل داده بیرون به اسم Mixtral-8x7B-v0.1 که با هشت تا مدل هفت میلیارد پارامتری Mistral با روش  high-quality sparse mixture of experts model (SMoE) ساخته شده، تونسته در اکثر ارزیابی‌ها هم لاما ۷۰ میلیاردی و هم جی‌پی‌تی۳.۵ رو شکست بده. خوش‌مزگی داستان اینه که یک سال بعد از جی‌پی‌تی ۳.۵ حالا میشه این مدل رو به صورت لوکال (طبیعتا با رم و جی‌پی‌یو به اندازه کافی) سرو کرد. این مدل رو میسترال خیلی لاتی‌طور اول یه لینک تورنت بدون توضیح گذاشت و بعد که ملت به جنب و جوش دراومدند، چند روز بعد یه توضیحی هم منتشر کرد!

مدل mixtral 8x7b که امروز توسط میسترال منتشر شد یک سطح جدیدی برای مدل وزن‌باز (نه متن‌باز، چون کد و دیتا و... رو نداده) را ارائه کرد و تونست مدل چت جی‌پی‌تی ۳.۵ رو در اکثر بنچمارک‌ها شکست بده. معماری این مدل شبیه مدل میسترال ۷ میلیاردیه (به زودی معماری اون هم براتون شرح خواهیم داد) با این تفاوت که در حقیقت این مدل جدید ۸ تا مدل expert در یک پکه. اینجا از یک تکنیک به نام MoE (Mixture of Experts) استفاده شده. این مدل یک مدل دیکودریه که بلوک فیدفوروارد بین ۸ گروه از پارامترها در هر لایه و برای هر توکن دو تا از این کارشناس‌ها (expert) رو انتخاب میکنه که توکن پردازش بشه. در معماری ترنسفورمرها یک سری لایه feed-forward داره، در MoE جای بعضی از این لایه‌ها از لایه‌های MoE استفاده شده است. لایه‌ی MoE یک شبکه‌ی روتری داره که انتخاب میکنه کدوم کارشناس (Expert) کدوم توکن‌ها رو بهتر پردازش می‌کنند. این تکنینم باعث میشه تعدا پارامترها زیاد بشه اما هزینه و سرعت کنترل بشه چون مدل فقط از بخشی از تعداد کل پارامترها رو برای یک توکن استفاده می‌کنه. همونطور که گفتیم در این میکسترال دو تا کارشناس در هر لحظه انتخاب میشن که باعث میشه سرعت دیکودینگ شبیه یه مدل ۱۲.۹ میلیاردی بشه در صورتی که ۴ برابرش (۴۶.۷ میلیارد) پارامتر داره!! یه عده اشتباه فکر میکردند ۵۶ میلیارد (۸*۷) پارامتر داره ولی اشتباهه چون فقط بعضی لایه‌های feed-forward فقط تکرار شدند نه همگی پارامترها. اگر بابت MoE کمی گیج شدید، نگران نباشید چون این یکی هم مفصلا در پست دیگه‌ای شرح میدیم. تا اینجا دو تا  طلبتون پس.

جونمون براتون بگه که مدل پایه و مدل Instruct رو منتشر کردند. طول کانتکستش ۳۲ هزار شده. تونسته مساوی یا بهتر از مدل ۷۰ میلیاردی لاما۲ و  جی‌پی‌تی ۳.۵ در اکثر بنچ‌مارک‌ها باشه. عکس نتایج رو در پیوست گذاشتیم. پنج تا زبون انگلیسی، فرانسوی، آلمانی، اسپانیایی و ایتالیایی رو بلده (به نظر روی دیتای togethercomputer/RedPajama-Data-V2 ترینش کردند، حدس ماست). توی تسک کدزنی هم خوبه و توی HumanEval به ۴۰.۲ رسیده. در نهایتا هم با Apache2.0 منتشرش کردند که همگی صفا کنیم. مدل Instruct فرمت پرامپت خودشو داره که توی لینک‌هایی که آخر میذاریم هست. مثل میسترال ۷b نمیدونیم دیتاستش چیه و چه حجمی داره و چجور پیش‌پردازش شده. دیتای sft و DPO (برای فاین تیون کردن) هم نمیدونیم! کد لود کردن و اینفرنس هم توی لینک‌ها هست که البته حداقل ۳۰ گیگ رم و جی‌پی‌یویی مثل A100 می‌خواد.


لینک بلاگ پست انتشار مدل:
https://mistral.ai/news/mixtral-of-experts/

لینک مدل پایه Mixtral-8x7B-v0.1:
https://huggingface.co/mistralai/Mixtral-8x7B-v0.1

لینک مدل Mixtral-8x7B-Instruct-v0.1:
https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1

لینک بلاگ هاگینگ‌فیس:
https://huggingface.co/blog/mixtral

#read
#blog
#link
#model

@nlp_stuff

Читать полностью…

NLP stuff

کورس LLM دانشگاه شریف

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

لینک کورس:
sharif-llm.ir

لینک ویدیوها:
https://ocw.sharif.edu/course/id/524

#course
#coach

@nlp_stuff

Читать полностью…

NLP stuff

ویدیوهای کارگاه آشنایی با HF و میزگرد آیا زمستان هوش مصنوعی در پیش است؟

مهدی‌مون در دو برنامه از WSS امسال حضور داشت.
اولی ورکشاپی بود با عنوان آHugging Face: A Platform to Democratize Open-Source AI که در اون سعی کرده به شکل متفاوتی از ابتدای تایم‌لاین دیپ لرنینگ شروع کنه به توضیح دادن تا به این برسه که هاگینگ‌فیس چجوری داره به دموکراتایز کردن هوش مصنوعی کمک می‌کنه. دیدنش دید خیلی خوبی از بالا بهتون میده.
دومی هم میزگردی بود که زمستان هوش مصنوعی را بررسی می‌کنند. آقای دکتر ربیعی، آقای دکتر رهبان و محمدرضا صمصامی (از محققین موسسه میلا) هم در این میزگرد حضور داشتند و راجع به این موضوع صحبت می‌کردند که آیا این مسیر به AGI ختم می‌شه یا به زمستان بعدی هوش مصنوعی خواهیم رسید.


لینک ویدیوی ورکشاپ:
https://aparat.com/v/PC952

لینک ویدیوی میزگرد:
https://aparat.com/v/nUVJR

#overfit
#coach

@nlp_stuff

Читать полностью…

NLP stuff

اندر حکایت GPT-4 و چاله‌چوله‌های آن!

اندکی از انتشار GPT-4 میگذره و حالا در این پست ویرگول قصد داریم بر اساس مقاله اخیری که تیم microsoft منتشر کرده به نقاط کور و چالش‌های این مدل بپردازیم. در این مقاله به صورت هنرمندانه promptهایی تهیه شده که این نقاط ضعف رو نشون میده و دیدنش خالی از لطف نیست.

پ.ن.۲: اینا نشستند ۱۵۰ صفحه مقاله نوشتند خداوکیلی ظلم در حق‌شون هست که شما مقاله شون رو حتی یه تورق هم نکنید! حداقل تصاویرش رو ببینید D:

لینک پست ویرگول:
https://virgool.io/overfit/gpt-4-b35cyw5oxi4t

لینک مقاله:
https://arxiv.org/abs/2303.12712

#read
#paper
#overfit

@nlp_stuff

Читать полностью…

NLP stuff

مدل HuggingGPT، مدلی با مغز GPT و بازوی HuggingFace

همانطور که خودتون هم می‌بینید و می‌شنوید ChatGPT همه جا رو در نوردیده و طیف مختلف و وسیعی از وظایف مختلف رو میتونه بهتر از انسان انجام بده. با وجود این همه قدرت مدل‌های زبانی، اما این مدل‌ها محدودیت‌هایی هم دارند. مثلا صرفا به مسائلی که ورودی و خروجی‌شون متنی هستند محدود هستند (ممکنه بگید GPT4 مدل مولتی موداله بله اما GPT4 اولا فقط میتونه در ورودی تصویر بگیره و ثانیا اگر بخواد تصویر خروجی بده باید تحت کدی مثل tikz این کار رو بکنه که کیفیت عکس‌هاش اصلا اون چیزی که در نظر هست نیست). محدودیت دیگه این که در سناریوهای دنیای واقعی که نیازمند شکستن وظیفه به چندزیروظیفه هست هم عملکرد کاملی ندارند و البته در بعضی مسائل خاص متنی هم حتی نسبت به مدل‌های اکسپرت عملکرد پایین‌تری دارند. حالا یک عده چینی از دانشگاه zhejiang ایده‌ای برای حل این محدودیت‌ها به سرشون زده و اون رو با نام HuggingGPT پیاده کردند. شهود این ایده این شکلیه که بیایم از chat-gpt به عنوان مغز و یک جور کنترلگر و از مدل‌های حاضر در هاب هاگینگ‌فیس در حکم بازوان اجرایی متخصص استفاده کنیم. در این صورت می‌تونیم هم از قدرت منطقی gpt استفاده کنیم و هم این که تسک‌هایی که gpt نمی‌تونه اجراشون کنه (مثل تسک‌های تصویری و صوتی) رو با استفاده از مدل‌های متخصص حاضر بر روی HuggingFace بتونیم انجام بدیم.

این مدل به صورت کلی چهار بخش Task Planning و Model Selection و Task Execution و Response Generation دارد. روال کار هم به این صورته که کاربر درخواستش رو به مدل میده و مدل طی یک پایپلاین با کمک این چهار بخش درخواست کاربر رو انجام میده. در Task Planning درخواست کاربر ورودی گرفته می‌شه و به ChatGPT داده می‌شه. در این جا chatgpt وظیفه داره منظور این درخواست کاربر رو بفهمه و اون رو به زیروظایف کوچک‌تر بشکنه و همچنین ترتیب اجرای این زیروظایف و ورودی و خروجی‌ اون‌ها رو مشخص کنه. در گام بعدی یا Model Selection سپس هر کدوم از این زیروظایف و مشخصات مدل‌های حاضر بر روی هاب هاگینگ‌فیس به chatgpt داده می‌شن و chatgpt تصمیم می‌گیره که برای هر یک از این زیروظایف از چه مدلی می‌شه استفاده کرد. سپس در مرحله سوم یا Task Execution، هر یک از این زیروظایف توسط مدل‌های مشخص شده اجرا می‌شن و البته تحت ترتیبی که تو مرحله یک مشخص شده به هم وصل می‌شن و ورودی و خروجی‌های همدیگر رو فراهم می‌کنند. در گام آخر یا Repsonse Generation هم دوباره خروجی‌های مرحله سوم به ChatGPT داده می‌شن و ChatGPT با جمع‌بندی این خروجی‌ها، خروجی نهایی مدل رو آماده می‌کنه. برای فهم بهتر می‌تونید تصاویر پیوست شده رو مشاهده کنید. یک سری آزمایش هم اومدند و روی این مدل انجام دادند و نشون دادند که می‌تونه وظایف خیلی پیچیده‌ای که نیازمند ترکیب توانایی‌های تصویری و صوتی و متنی هست رو انجام بده. نکته واجب به ذکر اینه که برای این که ChatGPT بفهمه هر یک از مراحل بالا رو باید انجام بده هم از In-context Learning استفاده کردند، یعنی این که نمونه ورودی‌ها و خروجی‌ها رو در prompt ورودی به ChatGPT می‌دن و GPT خودش می‌فهمه باید چه جوری اوستا کنه قضیه رو.

قبلا در این پست (/channel/nlp_stuff/318) هم راجع به یک کیس جالب دیگه که از LLM به عنوان حتی بک‌اند استفاده کرده بود صحبت کرده بودیم. به نظر می‌رسه با قدرت‌گیری LLM‌ها در آینده نزدیک شاهد خیزش ترندی خواهیم بود که سعی می‌شه تا از اونها در حکم LLM as App یا حتی LLM as Everything استفاده بشه. آینده جذابی پیش روی محصولات این حوزه است. کسی چه می‌داند، شاید دنیای مهندسی نرم‌افزار بعد از LLM ها به شدت تکانده شود.

لینک مقاله:
https://arxiv.org/abs/2303.17580

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

#read
#paper

@nlp_stuff

Читать полностью…

NLP stuff

پیشرفت بس است، متوقفش کنید!

خبر جدید این که جمعی از دانشمندان، صاحبان فناوری و علاقه‌مندان به هوش مصنوعی (از بنجیو گرفته تا ایلان ماسک و گری مارکوس و حتی بنیانگذار stable-diffusion) با انتشار نامه‌ای سرگشاده با ابراز نگرانی از بابت پیشرفت سریع هوش مصنوعی، از آزمایشگاه‌های هوش مصنوعی دنیا خواسته‌اند که آموزش دادن مدل‌های هوش مصنوعی قوی‌تر از GPT-4 را به مدت حداقل ۶ ماه متوقف کنند. این دوستان در این نامه گفته‌اند که با این که هوش مصنوعی می‌تونه بشر رو وارد دوره جدیدی از تاریخ تمدنش کنه اما در صورتی که برنامه‌ریزی صحیحی برای نحوه مدیریت هوش مصنوعی صورت نگیره این پدیده به عکس می‌تونه موجب بروز رخدادهای سیاهی بشه. همونطور که در طی چند وقت اخیر شاهد رقابتی دیوانه‌کننده میان شرکت‌های غول بزرگ برای آموزش مدل‌های بزرگ و بهتر هستیم و البته حاصل این رقابت ظهور مدل‌های بسیار هوشمندی نظیر GPT هست که حتی سازندگان اون هم نمی‌تونن نحوه بروز هوشمندیش رو درک، پیش‌بینی و یا کنترلش کنند.

در بخش دیگه‌ای از این نامه سوال‌های جالبی مطرح شده. آیا ما باید تمامی مشاغل را اتومات و ماشینی کنیم؟ آیا باید کورکورانه به سمت ایجاد هوش مصنوعی‌هایی حرکت کنیم که در نهایت ممکن است جایگزین تمدن انسانی ما شوند؟ این دوستان نوشته‌اند که توسعه هوش مصنوعی مساله‌ای نیست که فقط مربوط به توسعه‌دهندگان این حوزه باشد و کل جامعه بشری را در بر می‌گیرد. بنابراین از آزمایشگاه‌های هوش مصنوعی دنیا خواسته‌اند که آموزش مدلی قدرتمند‌تر از GPT-4 را به مدت حداقل ۶ ماه متوقف کنند و نکته جالب این که گفته‌اند اگر این توقف امکان‌پذیر نباشد در این صورت دولت‌ها باید وارد عمل شده و این توقف را اعمال کنند.

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

این که چرا در این بحبوحه افراد بزرگ و معروفی این نامه عجیب را منتشر کرده‌اند خود سوال بزرگی است اما هر کدام از این افراد احتمالا با انگیزه‌های متفاوتی از محتوای این نامه حمایت کرده‌اند. بعضی انگیزه‌های محتمل این موارد هستند:

- نزدیک‌شدن به نقطه عطف هوش مصنوعی صنعتی: همانطور که شاهد هستیم اگر قبل از این در هوش مصنوعی آکادمی سعی می‌کرد تا با صنعت رقابت کند اما سطح رقابت اکنون به حدی رسیده است که گوگل نیز توانایی رقابت با Open-AI را ندارد. همچنین شایعاتی وجود دارد که Open-AI در حال آموزش دادن مدل GPT-5 است. با توجه به سیاست‌های مخفیانه این شرکت این امکان وجود دارد که روند تحولات هوش مصنوعی از دست سایر بازیگران خارج شده و به یک مونوپلی ترسناک تبدیل شود. (حال آن که ما الان هم واقعا نمی‌دانیم آیا Open-AI مدلی هوشمندتر از GPT را آموزش داده یا خیر!)

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

- خوابیدن هایپ هوش مصنوعی یا حتی تغییر مسیر رشد آن: هوش مصنوعی تا به امروز به صورت چراغ خاموش مشغول حرکت و رشد بوده است، اما در چند سال اخیر و مخصوصا بعد از انتشار chat-gpt توجه طیف زیادی از مردم عامه به آن جلب شد (خودتان در توییتر فارسی شاهد آن هستید!) در این بیان بسیاری از مردم بدون داشتن دانش خاصی از هوش مصنوعی توانستند چالش‌های chat-gpt را کشف کنند. ادامه وضع فعلی در مسیر پیشرفت هوش مصنوعی یا می‌تواند منجر به بدبین‌شدن جامعه نسبت به آن و خوابیدن هایپ آن و واردشدن هوش به زمستانی دیگر شود یا این که توسعه کورکورانه با نیت آموزش مدل‌ بزرگتر می‌تواند باعث خارج شدن مسیر تحقیقات دانشمندان هوش مصنوعی از چالش‌های اصلیتر و واردشدن تمرکز و انرژی آن‌ها بر رقابت بیهوده برای مدل‌های بزرگتر و بزرگتر شود.


لینک نامه:
https://futureoflife.org/open-letter/pause-giant-ai-experiments/


#read
#news

@nlp_stuff

Читать полностью…

NLP stuff

پَچ‌پَچ کردن تمام آن چیزی است که نیاز دارید.

اگر در این چند سال همراه ما بوده‌ باشید یادتون هست که معماری‌های ViT و MLP-Mixer سعی داشتند نشون بدن که برای به دست آوردن یک بازنمایی خوب از تصویر، لازم نیست که به کانولوشن مقید باشیم. ViT نشون داد که میشه با پچ‌پچ کردن (یعنی این که تصویر رو به تکه‌های کوچیکتر تقسیم کردن) و بعد اعمال اتشنن و MLP پچ‌محور این بازنمایی خوب رو به دست آورد و MLP-Mixer هم گفت که به همون اتنشن هم نیازی نیست و میشه بعد از پچ‌پچ‌کردن با دو تا MLP که یکیشون Depth-wise و دیگری Patch-wise هست بازنمایی خوبی را یاد گرفت. (قبلا در /channel/nlp_stuff/81 و /channel/nlp_stuff/168 این دو معماری رو معرفی کرده بودیم)

حالا یک مقاله که در TMLR چاپ شده اومده و نویسندگانش گفتن که اصلا بحث اتنشن و MLP نیست. اون چیزی که باعث یادگیری بازنمایی خوب میشه خود patch کردن و استفاده از یک الگوی متقارن (یا به قول خودش isotropic) بین این پچ‌های مختلف هست. بر همین ایده، خودشون اومدن و یک مدل به نام Conv-Mixer ارائه دادن. ساختار و نحوه عملکرد این مدل این شکلیه که تصویر ورودی رو مثل ViT و MLP-Mixer میاد و پچ‌پچ می‌کنه و روی هر پچی هم patch-embedding رو اعمال میکنه (اینجا برای این که ژانگولربازی دربیاره بگه من تو مدلم از هیچ MLP استفاده نکردم اومده و این فرآیند Patch Embedding رو هم با کانولوشن با استراید اندازه سایز پچ انجام داده). سپس در مرحله بعدی میاد و لایه‌ای به نام Conv-Mixer رو به تعداد عمق d روی این پچ‌ها اعمال میکنه. اما هر کدوم از این لایه‌های ConvMixer چه شکلی هستند؟ هر لایه ConvMixer در واقع از دو کانولوشن تشکیل شده. یک کانولوشن که صرفا به صورت depth-wise روی فیچرهای حاضر در یک عمق مشخص کانال و در مکان‌های مختلف اون عمق اعمال میشه و یک کانولوشن دیگه که اون هم به صورت صرفا spatial-wise بر روی فیچرهای حاضر در یک مکان مشخص و در عمق‌های مختلف اون مکان اعمال میشه. در نهایت هم بعد از اعمال d تا از این لایه‌ها میاد و با میانگین‌گیری از بازنمایی پچ‌های مختلف یک بازنمایی کلی برای تصویر به دست میاره. عکس کد این مدل رو پیوست‌ کردیم که بسیار هم ساده است و اگر ببینیدش یحتمل بهتر بتونید بفهمید ماجرا رو.

بعد مقاله اومده و مدل Conv-Mixer و بقیه رقبا نظیر Resnet و ViT و MLP-Mixer رو روی دیتاست ImageNet-1k آموزش داده و نشون داده که Conv-Mixer نسبت به بقیه رقبا دقت بالاتری گرفته و البته تعداد پارامتر کمتر و سرعت Throughput بیشتری هم داره. نکته جالب این مقاله به نظر اینه که نشون داده که برای انتقال بازنمایی بین پچ‌ها لازم نیست که از فرآیند Self-Attention یا MLP-Mixer که هر دو فرآیندهای سنگینی به لحاظ حافظه‌ای هستند و استفاده کنیم و به صورت global اطلاعات بین پچ‌ها رو انتقال بدیم. بلکه میشه با خود کانولوشن این فرآیند انتقال اطلاعات رو به صورت لوکال پیاده‌سازی کنیم. یحتمل این پایان کار نیست و باز هم در آینده مدل‌های بیشتری خواهیم دید که سعی دارن با تغییر در معماری با معماری‌های سابق نظیر ResNet و ViT و MLP-Mixer و البته Conv-Mixer رقابت کنند.

لینک مقاله:
https://openreview.net/pdf?id=rAnB7JSMXL


#read
#paper

@nlp_stuff

Читать полностью…

NLP stuff

همه ممکن است نشت کنند!

یکی از مهمترین بخش‌های پایپ‌لاین دیتا، نحوه صحیح تقسیم‌بندی دیتا به داده‌ی train و test است. نکات زیادی داره که مهمتریناش اینه که نباید نشتی داشته باشید؛ یعنی از داده‌ی آموزش نباید توی داده‌ی ولیدیشن و تست داشته باشید وگرنه می‌بینید متریکتون به شکل غیرواقعی خوب میشه. باز یکی دیگه از نکاتش اینه که قرار نیست توزیع داده آموزش و تست تفاوت زیادی کنند وگرنه می‌بینید که روی داده تست نتایجتون خیلی ضعیف میشه. یا اینکه قرار نیست هر جور که دوست دارید دادتون رو تقسیم کنید و گاهی مثلا اگر مساله با سری زمانی در ارتباطه، لازمه روی خط زمانی تقسیم کنید و گاهی لازمه شافل کنید و رندوم تقسیم کنید. نکات بیشتر و دقیق‌تری رو در فصل یک و دو کتاب hands on ml میتونید پیدا کنید.

شاید با خودتون فکر کنید خب اینکه خیلی راحته؛ ولی اینطور نیست. استاد پوروطنِ ما همیشه این مثل معروف رو می‌گفت که: شیطان در جزئیاته.
سال ۲۰۱۷ اندرو انگِ گولاخ و شرکا یک مقاله با عنوان CheXNet: Radiologist-Level Pneumonia Detection on Chest X-Rays with Deep Learning دادند (تریلی اسم مقاله رو نمی‌کشه). اونجا یه مدل CNNای ارائه دادند و روی صد هزار تا تصویر رادیولوژی از ۳۰ هزار تا بیمار آموزش دادند تا بتونند بیماری ذات الریه رو تشخیص بدن (اولا عظمت دیتا رو داشته باشید. ثانیا دقت کردید که چند تا تصویر برای یک بیمار وجود داشته). بعد اومدند این دیتا رو ۸۰ به ۲۰ بین آموزش و تست به صورت رندوم تقسیم کردند. چشمتون مشکل رو دید؟ اگر شما بیاید دیتا رو به صورت رندوم تقسیم کنید تصاویر یک بیمار می‌تونه توی هر دو تا داده‌ی ترین و تست باشه و مدل می‌تونه از فیچرهای مربوط به بیمار کلی استفاده کنه؛ حتی اگر این فیچرها مستقیما مربوط به خود بیماری ذات الریه نباشه. مثلا یک زخمی از عمل رو توی یه عکس آموزش میبینه و یاد میگیره این مربوط به کلاس اوله. بعد دیگه هر جا عین همون زخم رو ببینه زرتی میگه کلاس اوله و دیگه فکر نمیکنه. یعنی یه میان‌بر پیدا کرد. بعد از  ۱۱ روز فهمیدند مشکل داره و اومدند این رو درست کردند و دوباره مقاله رو منتشر کردند. در عکس دوم ضمیمه‌شده به پست می‌تونید ببینید که جمله‌ی there was 𝗻𝗼 𝗽𝗮𝘁𝗶𝗲𝗻𝘁 𝗼𝘃𝗲𝗿𝗹𝗮𝗽 between the sets رو در تصویر راست (نسخه اصلاح شده) نسبت به تصویر چپ (نسخه اولیه) اضافه کردند و نحوه تقسیم رو تغییر دادند.

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

لینک مقاله نسخه اول:
https://arxiv.org/abs/1711.05225v1

لینک مقاله نسخه اصلاح شده:
https://arxiv.org/abs/1711.05225

لینک توئیت توضیح این داستان:
https://twitter.com/svpino/status/1592140348905517056

پ.ن. شما هم اگر پست خوبی داشتید بفرستید تا به اسم خودتون توی کانال بذاریم.

#tweet
#handson

@nlp_stuff

Читать полностью…

NLP stuff

مرا به بک‌اند چه حاجت که مست روی تو باشم

تا حالا بحث داغ این بود که در آینده نزدیک می‌شه برنامه‌نویس‌ها رو دور ریخت و جاشون از هوش مصنوعی برای تولید کد استفاده کرد و ظهور ابزارهایی مثل copilot و gpt هم این اتفاق رو ممکن نشون می‌دادند. اما حالا این ایده یک لول جلوتر رفته، به این صورت که آقا اصلا چه نیازی به backend داریم بیاید جاش از مدل‌های زبانی استفاده کنیم. در همین راستا یک عده اومدن در هکاتون Scale AI در این هفته ایده زدن و یک اپ ساده todo رو بدون پیاده‌سازی api‌های بک‌اندی‌اش و در واقع با جایگزین کردن GPT به جای بک‌اند پیاده‌سازی کردند و اتفاقا برنده جایزه اول این هکاتون هم شدند. در واقع مدل‌زبانی GPT در این پروژه به طور کامل جایگزین قسمت بک‌اند ماجرا شده و هم قسمت منطق و هم قسمت داده رو تونسته حل کنه و تازه هیچ‌گونه training ای هم در کار نبوده. به صورت جزیی‌تر اگر بخوایم توضیح بدیم ابتدا به GPT گفتند که مثلا This is a todo list app و بعد هم یک تیکه json رو به عنوان وضعیت دیتابیس به GPT ورودی دادند تا بفهمه که قالب دیتا چه شکلیه. در مرحله بعدی هر وقت نیاز به یک API Call بوده وضعیت فعلی و همچنین درخواست کاربر رو به GPT دادند و پاسخ GPT رو گرفتند. خوبی این اتفاق اینه که GPT که در حکم بک‌اند قرار گرفته هم در نحوه نحوه ذخیره‌سازی داده و هم انجام اعمال منطقی بسیار منعطفه و می‌تونه طیف گسترده‌ای از api call هایی که حتی بهشون فکر نشده رو هم انجام بده.

این پروژه با این که فعلا صرفا روی نیازمندی ساده‌ todo اجرا گرفته شده ولی می‌تونه آغازی بر یک روند جالب برای آینده باشه. آینده‌ای که توش نیاز به دیتابیس و بک‌اند و حتی شاید زبان‌های برنامه‌نویسی مثل پایتون نیست و یک مدل زبانی قدرتمند مثل GPT می‌تونه در حکم یک مغز متفکر تمامی نیازمندی‌های درخواستی رو انجام بده.

لینک رپو:
https://github.com/TheAppleTucker/backend-GPT

لینک توییت توضیحات:
https://twitter.com/DYtweetshere/status/1617471632909676544

#link

@nlp_stuff

Читать полностью…
Подписаться на канал