PyTorch Howsam
ویدئوی جدید Andrej Karpathy 🤩 Let's Reproduce GPT-2 (124M) 4 ساعت! 😁 بریم ببینیم چطوری GPT-2 رو پیادهسازی کرده! لینک ویدئو
امروز، کمی زمان خالی داشتم و رفتم ادامه ویدئوی چهارساعته Andrej Karpathy برای پیادهسازی و آموزش GPT-2 رو ببینم. این ویدئو شامل چند بخش هست که من قبلا بخش اول رو دیده بودم. در بخش اول، مدل GPT-2 رو کامل پیادهسازی کرد و کارهای اولیه برای آموزش مدل رو انجام داد.
بخش دوم این ویدئو مربوط به کاهش زمان فرآیند آموزش مدل هست. در پایان بخش اول، مدت زمان آموزش مدل برای هر ایپاک روی دیتاست شکسپیر حدود 1000 میلی ثانیه هست. در بخش دوم، تکنیکهای مختلفی رو گام به گام اعمال میکنه و مدت زمان آموزش مدل رو کاهش میده. درادامه، بهصورت خلاصه این تکنیکها رو همراه با عدد و رقم گفتم...
در اولین گام، بجای آموزش مدل با float32 از TF32 یا تنسورفلوت 32 بیتی استفاده کرد. این باعث شد که مدت زمان اجرای هر ایپاک از 1000 به 333 میلی ثانیه کاهش پیدا کنه! البته، روی کاغذ انتظار 8 برابر بهتر شدن سرعت میرفت، ولی در عمل 3 برابر شد. این قابلیت TF32 بیتی برای هر GPU-ای فعال نیست. مثلا، A100 این قابلیت رو داره. مطالعه بیشتر
در گام دوم، بجای TF32 از bFloat16 استفاده کرد و زمان اجرای هر ایپاک از 333 به 300 میلی ثانیه رسید. بازهم این قابلیت در همه GPU-ها وجود نداره.
در گام سوم، از torch.compile پایتورچ استفاده کرد و مدت زمان اجرای هر ایپاک از 300 به 130 میلی ثانیه کاهش پیدا کرد. کاهش زمانی بسیار زیادی بود. کار سادهای هم هست.
در گام چهارم، بجای attention از flash attention استفاده کرد و مدت زمان از 130 به 96 میلی ثانیه رسید! این flash attention توی پایتورچ موجود هست و نیازی به پیادهسازی از صفر یا کتابخونه جانبی هم نیست.
و اما گام پنجم! پیشنهاد کرد که اعداد و هایپرپارامترهای موجود در کد رو به توانی از 2 تبدیل کنیم. توانی از 2 رو اعداد نایسی میدونه و GPU باهاش بهینهتر کار میکنه. مثلا وکب سایزش 50257 بود که این عدد زشتی هست! عدد رو تبدیل به 50304 کرد که باعث شد مدت زمان از 96 به 93 میلی ثانیه برسه! وکب سایز بزرگتر شد، ولی زمان کل کمتر! 😁 درسته که 50304 توانی از 2 نیست، اما تقریبا نایس هست، چون بر 2 4 8 16 32 64 128 بخشپذیره. اعداد زشت دیگهای هم توی کد بود؛ مثل تعداد لایهها، تعداد head در اتنشن که دیگه اینها رو دستکاری نکرد. بقیه زشتها با من و شما...
خلاصه اینکه، با یکسری تکنیک ساده ولی هوشمندانه، مدت زمان آموزش مدل به ازای هر ایپاک رو از 1000 میلی ثانیه به 93 میلی ثانیه رسوند. البته، خیلی از این روشها الان در مقالات استفاده میشن و اینطور نیست که وجود نداشته باشه.
یبار نگی 1000 میلی ثانیه برای یک ایپاک چیزی نیست! گناه بزرگیه! بخش سوم رو هنوز ندیدم...
@pytorch_howsam
بخش دوم این ویدئو مربوط به کاهش زمان فرآیند آموزش مدل هست. در پایان بخش اول، مدت زمان آموزش مدل برای هر ایپاک روی دیتاست شکسپیر حدود 1000 میلی ثانیه هست. در بخش دوم، تکنیکهای مختلفی رو گام به گام اعمال میکنه و مدت زمان آموزش مدل رو کاهش میده. درادامه، بهصورت خلاصه این تکنیکها رو همراه با عدد و رقم گفتم...
در اولین گام، بجای آموزش مدل با float32 از TF32 یا تنسورفلوت 32 بیتی استفاده کرد. این باعث شد که مدت زمان اجرای هر ایپاک از 1000 به 333 میلی ثانیه کاهش پیدا کنه! البته، روی کاغذ انتظار 8 برابر بهتر شدن سرعت میرفت، ولی در عمل 3 برابر شد. این قابلیت TF32 بیتی برای هر GPU-ای فعال نیست. مثلا، A100 این قابلیت رو داره. مطالعه بیشتر
در گام دوم، بجای TF32 از bFloat16 استفاده کرد و زمان اجرای هر ایپاک از 333 به 300 میلی ثانیه رسید. بازهم این قابلیت در همه GPU-ها وجود نداره.
در گام سوم، از torch.compile پایتورچ استفاده کرد و مدت زمان اجرای هر ایپاک از 300 به 130 میلی ثانیه کاهش پیدا کرد. کاهش زمانی بسیار زیادی بود. کار سادهای هم هست.
در گام چهارم، بجای attention از flash attention استفاده کرد و مدت زمان از 130 به 96 میلی ثانیه رسید! این flash attention توی پایتورچ موجود هست و نیازی به پیادهسازی از صفر یا کتابخونه جانبی هم نیست.
و اما گام پنجم! پیشنهاد کرد که اعداد و هایپرپارامترهای موجود در کد رو به توانی از 2 تبدیل کنیم. توانی از 2 رو اعداد نایسی میدونه و GPU باهاش بهینهتر کار میکنه. مثلا وکب سایزش 50257 بود که این عدد زشتی هست! عدد رو تبدیل به 50304 کرد که باعث شد مدت زمان از 96 به 93 میلی ثانیه برسه! وکب سایز بزرگتر شد، ولی زمان کل کمتر! 😁 درسته که 50304 توانی از 2 نیست، اما تقریبا نایس هست، چون بر 2 4 8 16 32 64 128 بخشپذیره. اعداد زشت دیگهای هم توی کد بود؛ مثل تعداد لایهها، تعداد head در اتنشن که دیگه اینها رو دستکاری نکرد. بقیه زشتها با من و شما...
خلاصه اینکه، با یکسری تکنیک ساده ولی هوشمندانه، مدت زمان آموزش مدل به ازای هر ایپاک رو از 1000 میلی ثانیه به 93 میلی ثانیه رسوند. البته، خیلی از این روشها الان در مقالات استفاده میشن و اینطور نیست که وجود نداشته باشه.
یبار نگی 1000 میلی ثانیه برای یک ایپاک چیزی نیست! گناه بزرگیه! بخش سوم رو هنوز ندیدم...
@pytorch_howsam
گوگل دیپمایند مدل Gemma-2 با دو بیلیون پارامتر رو عرضه کرده. یکی از بزرگترین دستاوردهای این کار، عملکرد بهتر مدل در پلتفرم ارزیابی Chatbot Arena نسبت به مدل GPT-3.5 هست! مدل GPT-3.5 بیش از 175 بیلیون پارامتر و Gemma-2 تنها با دو بیلیون پارامتر داره! 🤯 تصویر زیر هم مربوط به LMSYS Chatbot Arena هست که عملکرد مدل Gemma-2 رو نسبت به سایر مدلها نشون میده.
علاوه بر Gemma-2 2B دو نسخه دیگه بنام GemmaShield و GemmaScope هم عرضه شده که اینها هم کاربردهای بسیار جالبی دارن.
شاید ندونید LMSYS Chatbot Arena چی هست؟ یک پلتفرم آنلاین و آزاد هست برای ارزیابی LLM-ها و VLM-هاست. ارزیابیهای جالبی هم داره؛ مثلا، یک حالت Battle داره. شما یک سوال میپرسید و دو مدل A و B نامشخص بهش جواب میدن. شما جوابها رو میخونید و بعد میتونید انتخاب کنید که کدوم جواب بهتر هست. بعد از اینکه جواب دادید، بهتون میگه این دو مدل که بهت جواب دادن اسمشون چی بوده. حالتهای دیگه مثل side-by-side و Direct Chat هم داره. معیارهای ارزیابی مختلفی هم برای مقایسه داره. پیشنهاد میکنم به این سایت سر بزنید.
وبلاگ گوگل برای Gemma-2
@pytorch_howsam
علاوه بر Gemma-2 2B دو نسخه دیگه بنام GemmaShield و GemmaScope هم عرضه شده که اینها هم کاربردهای بسیار جالبی دارن.
شاید ندونید LMSYS Chatbot Arena چی هست؟ یک پلتفرم آنلاین و آزاد هست برای ارزیابی LLM-ها و VLM-هاست. ارزیابیهای جالبی هم داره؛ مثلا، یک حالت Battle داره. شما یک سوال میپرسید و دو مدل A و B نامشخص بهش جواب میدن. شما جوابها رو میخونید و بعد میتونید انتخاب کنید که کدوم جواب بهتر هست. بعد از اینکه جواب دادید، بهتون میگه این دو مدل که بهت جواب دادن اسمشون چی بوده. حالتهای دیگه مثل side-by-side و Direct Chat هم داره. معیارهای ارزیابی مختلفی هم برای مقایسه داره. پیشنهاد میکنم به این سایت سر بزنید.
وبلاگ گوگل برای Gemma-2
@pytorch_howsam
PyTorch Howsam
MobileLLM: Optimizing Sub-billion Parameter Language Models for On-Device Use Cases link متا یک شبکه جدید بنام MobileLLM معرفی کرده که جز دسته شبکههای مگسوزن محسوب میشه. هدفشون این بوده که مدلهای LLM برای موبایلها بسازن. دو تا مدل 125 و 350 میلیون پارامتری…
اگه خاطرتون باشه، قبلا درمورد MobileLLM نوشته بودم. همچنین، گفتم تلاش میکنم بیشتر ازش بگم. خب اومدم که بگم، بالاخره آماده شد...
یک پست نسبتا طولانی درمورد MobileLLM در هوسم نوشتم. از چالشها و ایدههای کار گفتم. امیدوارم، مفید باشه.
همچنان کار و مطالعه MobileLLM رو ادامه میدم. ممکن هست با خبرهای جذابتری برگردم...
https://howsam.org/mobilellm/
@pytorch_howsam
یک پست نسبتا طولانی درمورد MobileLLM در هوسم نوشتم. از چالشها و ایدههای کار گفتم. امیدوارم، مفید باشه.
همچنان کار و مطالعه MobileLLM رو ادامه میدم. ممکن هست با خبرهای جذابتری برگردم...
https://howsam.org/mobilellm/
@pytorch_howsam
This media is not supported in your browser
VIEW IN TELEGRAM
اگه توی حوزه بینایی کامپیوتر کار میکنید، مجموعه ultralytics رو مدنظر داشته باشید.
یک کتابخونه بنام ultralytics داره که یولو 8 در این کتابخونه هست. بهصورت پیوسته هم یولو 8 رو آپدیت میکنن. اخیرا به نسخه 8.2 آپدیت شده. قبلا در مورد یولو 8 صحبت کردیم و وبلاگ هم براش نوشتیم. لینک وبلاگ یولو 8 در سایت هوسم
اما، یک بخش دیگه از همین کتابخونه ultralytics، ماژول solutions هست. برای سناریوهای مختلفی که در دنیای واقعی پیش میاد، الگوریتمهایی رو آماده کردن. من چند نمونه از الگوریتمهایی که در بخش solutions وجود داره رو لیست کردم:
- Object Counting
- Object Blurring
- Speed Estimation
- Distance Calculation
- Parking Management
- Live Inference with Streamlit
مثلا، در ویدئوی بالا با Object Counting، اشیای موجود در ویدئو با دقت خوبی درحال شمارش هستن.
خلاصه اینکه، بهتون دید میده که بینایی کامپیوتر در چه جاهایی میتونه کاربرد داشته باشه. همچنین، در یک پروژه با ساختار مشابه میتونید از ایدهها و متدهای بخش solutions کتابخونه ultralytics استفاده کنید.
لینک بخش solutions در کتابخونه ultralytics
@pytorch_howsam
یک کتابخونه بنام ultralytics داره که یولو 8 در این کتابخونه هست. بهصورت پیوسته هم یولو 8 رو آپدیت میکنن. اخیرا به نسخه 8.2 آپدیت شده. قبلا در مورد یولو 8 صحبت کردیم و وبلاگ هم براش نوشتیم. لینک وبلاگ یولو 8 در سایت هوسم
اما، یک بخش دیگه از همین کتابخونه ultralytics، ماژول solutions هست. برای سناریوهای مختلفی که در دنیای واقعی پیش میاد، الگوریتمهایی رو آماده کردن. من چند نمونه از الگوریتمهایی که در بخش solutions وجود داره رو لیست کردم:
- Object Counting
- Object Blurring
- Speed Estimation
- Distance Calculation
- Parking Management
- Live Inference with Streamlit
مثلا، در ویدئوی بالا با Object Counting، اشیای موجود در ویدئو با دقت خوبی درحال شمارش هستن.
خلاصه اینکه، بهتون دید میده که بینایی کامپیوتر در چه جاهایی میتونه کاربرد داشته باشه. همچنین، در یک پروژه با ساختار مشابه میتونید از ایدهها و متدهای بخش solutions کتابخونه ultralytics استفاده کنید.
لینک بخش solutions در کتابخونه ultralytics
@pytorch_howsam
مجموعه poloclub ابزاری تحت عنوان Transformer Explainer معرفی کرده که برای اهداف آموزشی فوقالعاده هست. کار کردن با این ابزار رو پیشنهاد میکنم، اگه میخوایید به درک عمیقتری در ترنسفورمر و مدلسازی زبان (Language Modeling) برسید.
این ابزار بر پایه مدل GPT-2 کار میکنه. یعنی، واقعا محاسبات پشت GPT-2 رو به شما مرحله به مرحله نشون میده. کل مراحل رو میتونید ریز به ریز ببینید: توکن امبدینگ، پوزیشنال انکدینگ، مولتی هد اتنشن، mlp و الی آخر. همچنین، خروجی معنیدار تولید میکنه. با کلیک روی بخشهای مختلف، میتونید محاسبات مربوط به هر بخش رو ببینید.
مثلا، توی تصویر بالا ببینید برای ورودی Data visualization empowers users to در خروجی مدل چه پیشنهادهایی داده.
البته، poloclub سالهاست که چنین ابزارهایی میسازه. اگه به این آدرس برید، ابزارهایی که در گذشته ساختن رو میتونید ببینید. به عنوان نمونه، CNN Explainer و GAN Lab هم از کارهای این مجموعه هست. این هم شعارشون:
@pytorch_howsam
این ابزار بر پایه مدل GPT-2 کار میکنه. یعنی، واقعا محاسبات پشت GPT-2 رو به شما مرحله به مرحله نشون میده. کل مراحل رو میتونید ریز به ریز ببینید: توکن امبدینگ، پوزیشنال انکدینگ، مولتی هد اتنشن، mlp و الی آخر. همچنین، خروجی معنیدار تولید میکنه. با کلیک روی بخشهای مختلف، میتونید محاسبات مربوط به هر بخش رو ببینید.
مثلا، توی تصویر بالا ببینید برای ورودی Data visualization empowers users to در خروجی مدل چه پیشنهادهایی داده.
البته، poloclub سالهاست که چنین ابزارهایی میسازه. اگه به این آدرس برید، ابزارهایی که در گذشته ساختن رو میتونید ببینید. به عنوان نمونه، CNN Explainer و GAN Lab هم از کارهای این مجموعه هست. این هم شعارشون:
Scalable. Interactive. Interpretable.
@pytorch_howsam
یکی از دوستان ما که تجربه کاری زیادی داره، پیامی درباره اهمیت کگل در گروه هوسم گذاشتن که در ادامه میتونید بخونید.
چیزی که من دیدم اینه که هر کسی میتونه با انجام یک پروژه کگل و گذاشتن کدش تو گیتاب شخصی خودش به چند تا هدف برسه:
▪️یک پروژه رو از ابتدا تا انتها انجام بده.
هر چند این پروژه با پروژه هایی که در عمل باهاش روبرو میشیم چالشهای عملیاتی کمتری داره اما از ابتدا تا انتها بردن یک پروژه خیلی دید آدم رو گسترش میده.
▪️روی تمیز کد نوشتن کار کنه.
این کد رو داره توی ویترین خودش میگذاره پس ناگزیر لازمه کد تمیزی بنویسه. همین روند توانایی کدنویسی شخص رو بهبود میده.
▪️مهارت تکنیکی و بعضی از مهارتهای نرم خودش رو نشون بده.
در مورد رزومه شدن اینو بگم که خیلی وقت ها موقعی که من با کسی مصاحبه میکنم اگه کدی که شخص خودش نوشته رو ببینم و ببینم که تمیزه حداقل نصف نمره مصاحبه رو بهش میدم.
چرا؟
چون از روی کامیتهای کد میشه فهمید که یک نفر گیت رو میشناسه یا فقط یه چیزی زده بیاد بالا.
چون از روی فولدر بندی پروژه میشه فهمید یک نفر منظم کار میکنه یا نه.
چون از روی انتخاب اسم متغیرها میشه حدسهایی در مورد نحوه تعامل با افراد زد.
چون با دیدن کدی که یک نفر روی یک پروژه کگل زده میشه تا حد خوبی تشخیص داد که شخص مفاهیم پایهای یادگیری ماشین رو میدونه یا نه؟
مثلا از جدا کردن داده های train و test
از انتخاب معیار ارزیابی
از انجام ارزیابی در انتهای پروژه
از مراحلی که برای تحلیل و بررسی داده طی میکنه و ...
در آخر اگه پروژه های خوبی روی گیت گذاشتید، میتونید پروژههای همدیگه رو بخونید و به هم دیگه ستاره بدید.
میخوام یک کورس آنلاین متن-محور برای پردازش تصویر معرفی کنم.
این کورس، مفاهیم اولیه و پایهای پردازش و آنالیز تصویر رو به شکلی بسیار بسیار منسجم ارائه کرده. از جمله ویژگیهای مثبت این کورس:
* مهمترین مفاهیمی که باید در پردازش تصویر بدونید رو پوشش داده.
* کمی تئوری گفته و کدنویسی تمامی مفاهیم و روشها رو هم گذاشته.
* تصاویر زیادی داره که فهم مطالب رو ساده میکنه.
* تمرین و سوال همراه با جواب داره.
کورس با این کیفیت کم پیدا میشه.
https://bioimagebook.github.io/index.html
@pytorch_howsam
این کورس، مفاهیم اولیه و پایهای پردازش و آنالیز تصویر رو به شکلی بسیار بسیار منسجم ارائه کرده. از جمله ویژگیهای مثبت این کورس:
* مهمترین مفاهیمی که باید در پردازش تصویر بدونید رو پوشش داده.
* کمی تئوری گفته و کدنویسی تمامی مفاهیم و روشها رو هم گذاشته.
* تصاویر زیادی داره که فهم مطالب رو ساده میکنه.
* تمرین و سوال همراه با جواب داره.
کورس با این کیفیت کم پیدا میشه.
https://bioimagebook.github.io/index.html
@pytorch_howsam
This media is not supported in your browser
VIEW IN TELEGRAM
Sapiens: Foundation for Human Vision Models
کار کامپیوتر ویژنی جدید متا بنام Sapiens؛ اول ویدئوی بالا رو ببینید و بعد ادامه متن رو بخونید.
بخش Reality شرکت متا یک مجموعه مدل بنام Sapiens معرفی کرده که مخصوص چهار تسک مهم بینایی کامپیوتر با محوریت انسان هست:
* تخمین ژست (Pose Estimation)
* سگمنت اعضای بدن (Body-part Segmentation
* تخمین عمق (Depth Estimation)
* پیشبینی نرمال سطح (Surface Normal Prediction)
ریزنکاتی از این کار ارزشمند:
* مدلها بر پایه ویژن ترنسفورمرها طراحی شدن.
* مدلها ورودی رزولوشن بالا در اندازه 1024×1024 قبول میکنن.
* روی 300 میلیون تصویر انسان آموزش دیدن.
* چهار مدل به سایزهای 0.3 0.6 1.0 2.0 بیلیون پارامتر ارائه شده.
* نسخه Pretrain و Finetune شده مدلها در هاگینگفیس قرار داده شده.
* مقاله Sapiens در ECCV پذیرفته شده.
مقاله | گیتهاب
@pytorch_howsam
Liger (Linkedin GPU Efficient Runtime) Kernel
لینکدین یک لایبرری بنام Liger Kernel معرفی کرده که به طرز قابل توجهی باعث افزایش سرعت و کاهش مصرف RAM در آموزش LLM میشه. آمار و ارقام نشون میده که شما با این لایبرری میتونید 20% افزایش سرعت و 60% کاهش مصرف RAM رو تجربه کنید! 🤯
استفاده از این لایبرری هم اصلا کاری نداره. فقط یک خط کد به کدهاتون اضافه میکنید. مثلا، در کد زیر، این لایبرری روی مدل لاما هاگینگفیس اعمال شده:
import transformers
from liger_kernel.transformers import apply_liger_kernel_to_llama
model = transformers.AutoModelForCausalLM.from_pretrained("<some llama model>")
# Adding this line automatically monkey-patches the model with the optimized Liger kernels
apply_liger_kernel_to_llama()
همونطور که گفتم، این لایبرری رو لینکدین ارائه کرده و هم مورد توجه جامعه هوش مصنوعی قرار گرفته و هم دست مایه طنز کاربرهای توییتر شده! تصویر بالا رو ببینید. 😁
لینک گیتهاب
@pytorch_howsam
تصویر بالا رو توی توییتر دیدم. طبیعتا ارزش یادگیری نداره، اما میتونه یک آزمون کوچیک در یادگیری ماشین باشه! اینکه چقدر به موارد ذکر شده در این لیست مسلط هستی؟ آشنایی نه، تسلط...
به نظرم بلد بودن اینها به این معنی نیست که فرد به یادگیری ماشین مسلط هست. اما بلد نبودن بخش زیادی از این موارد میتونه نشون دهنده این باشه که فرد به یادگیری ماشین مسلط نیست. شخصا بخوام با کسی مصاحبه کنم، در بخش تئوری چنین سوالاتی ازش میپرسم. البته، این نظر من معلم هست، شاید افراد دیگه نظر متفاوتی داشته باشن...
@pytorch_howsam
به نظرم بلد بودن اینها به این معنی نیست که فرد به یادگیری ماشین مسلط هست. اما بلد نبودن بخش زیادی از این موارد میتونه نشون دهنده این باشه که فرد به یادگیری ماشین مسلط نیست. شخصا بخوام با کسی مصاحبه کنم، در بخش تئوری چنین سوالاتی ازش میپرسم. البته، این نظر من معلم هست، شاید افراد دیگه نظر متفاوتی داشته باشن...
@pytorch_howsam
تحلیل دیتاستهای جدولی (Tabular) هم در ریسرچ و هم در کاربردهای واقعی خیلی مورد توجه هست. مقایسههایی که تا الان انجام شده، نشون میده عملکرد مدلهای دیپ اغلب پایینتر یا همسطح مدلهای بوستینگ گرادیان (GBMs) هست.
میخوام درباره مقالهای صحبت کنم که مقایسه عمیقی روی مدلهای آنسامبل مبتنی بر درخت تصمیم (TE)، دیپ (DL) و مدلهای کلاسیک ML انجام داده. عنوان مقاله:
حدود 111 دیتاست جدولی و 20 مدل مختلف برای مقایسه انتخاب شده. مقایسههای متنوعی انجام شده؛ مقایسه عملکرد مدلهای DL و TE رو در تصویر بالا آوردم. نتایج جالبی بدست اومده:
* مدل CatBoost در 19 مورد از 111 دیتاست بهترین بوده.
* رتبه Random Forest قابل توجه هست.
* مدل XGBoost که خیلیها انتخاب اولشون هست، در رتبه 10 دیده میشه!
* رتبه اول تا چهارم رو مدلهای ML اشغال کردن.
* اولین مدل دیپ لرنینگی در رتبه 5 دیده میشه.
* شبکه MLP در رتبه 9 دیده میشه.
* شبکه TabNet آخره!
مقاله بخشهای متنوعی داره و من فقط یک مقایسه رو آوردم. شاید بعدا بیشتر بنویسم.
@pytorch_howsam
میخوام درباره مقالهای صحبت کنم که مقایسه عمیقی روی مدلهای آنسامبل مبتنی بر درخت تصمیم (TE)، دیپ (DL) و مدلهای کلاسیک ML انجام داده. عنوان مقاله:
A Comprehensive Benchmark of Machine and Deep Learning Across Diverse Tabular Datasets link
حدود 111 دیتاست جدولی و 20 مدل مختلف برای مقایسه انتخاب شده. مقایسههای متنوعی انجام شده؛ مقایسه عملکرد مدلهای DL و TE رو در تصویر بالا آوردم. نتایج جالبی بدست اومده:
* مدل CatBoost در 19 مورد از 111 دیتاست بهترین بوده.
* رتبه Random Forest قابل توجه هست.
* مدل XGBoost که خیلیها انتخاب اولشون هست، در رتبه 10 دیده میشه!
* رتبه اول تا چهارم رو مدلهای ML اشغال کردن.
* اولین مدل دیپ لرنینگی در رتبه 5 دیده میشه.
* شبکه MLP در رتبه 9 دیده میشه.
* شبکه TabNet آخره!
مقاله بخشهای متنوعی داره و من فقط یک مقایسه رو آوردم. شاید بعدا بیشتر بنویسم.
@pytorch_howsam
PyTorch Howsam
کتاب درباره LLM با عنوان Build a Large Language Model نویسنده این کتاب آقای سباستین راشکا (Sebastian Raschka) هست که فرد شناختهشدهای هست. همچنین، این کتاب در Manning منتشر شده. البته، هنوز کامل نشده و فصلهای ابتدایی کتاب منتشر شده. بهصورت آنلاین و البته…
آقای Sebastian Raschka یک ورکشاپ سه ساعته برای LLM برگزار کرده و ویدئوی اون رو در یوتوب گذاشته. این آموزش شامل تئوری و کدنویسی LLM-هاست. میخوام مشاهده این ویدئو رو توی برنامه بذارم.
قبلا، گفته بودم که آقای Sebastian Raschka یک کتاب LLM دارن (پیام ریپلای شده). من بخش کوچیکی از کتاب رو خوندم و به نظرم کتاب خوبیه. توی این ورکشاپ هم شکلهای این کتاب دیده میشه. تقریبا چکیدهای از کتاب رو در این ورکشاپ میبینیم.
لینک ویدئو در یوتوب
@pytorch_howsam
قبلا، گفته بودم که آقای Sebastian Raschka یک کتاب LLM دارن (پیام ریپلای شده). من بخش کوچیکی از کتاب رو خوندم و به نظرم کتاب خوبیه. توی این ورکشاپ هم شکلهای این کتاب دیده میشه. تقریبا چکیدهای از کتاب رو در این ورکشاپ میبینیم.
لینک ویدئو در یوتوب
@pytorch_howsam
خبر دارید دیگه؟!
ابزاری بنام Cursor برای کدنویسی به کمک هوش مصنوعی معرفی شده که خیلی خیلی مورد توجه قرار گرفته. در واقع، رقیب Microsoft Copoliot هست. البته، به نظر میرسه کوپایلت رو ضربه فنی کرده!
بعد از نصب این ابزار، یک محیطی مشابه با VSCode براتون باز میشه که کلی امکانات داره. تصویر بالا رو ببینید...
مثلا، شبیه کولب یا کوپایلت بهتون کد پیشنهاد میده و شما با TAB توی کد خودتون اپلای میکنید.
همچنین، میتونید باهاش چت کنید (باکس آبی) و بهش بگید چی میخواید. اون هم کدی میده که میتونید روی کد خودتون اپلای کنید. نکته جالبش این هست که کد شما در فایل پایتونی رو میبینه و براساس چت و درخواست شما کدهاتون رو تغییر میده!
توی X (توییتر سابق) ویدئوهایی دیدم که بچههای کوچیک (8 9 ساله) با همین ابزار یک اپ (مثلا چت بات ساده) ساختن.
سه تا پلن داره که پلن اولش رایگانه. پلن بعدی که احتمالا برای خیلی از ماها کافی باشه، 20 دلار قیمتش هست. توی تصویر میتونید ببینید که فارسی هم ساپورت میکنه. نسخه ویندوز هم داره و به راحتی نصب میشه.
برای نصب به سایت cursor.com برید. حتما باهاش کار کنید...
@pytorch_howsam
ابزاری بنام Cursor برای کدنویسی به کمک هوش مصنوعی معرفی شده که خیلی خیلی مورد توجه قرار گرفته. در واقع، رقیب Microsoft Copoliot هست. البته، به نظر میرسه کوپایلت رو ضربه فنی کرده!
بعد از نصب این ابزار، یک محیطی مشابه با VSCode براتون باز میشه که کلی امکانات داره. تصویر بالا رو ببینید...
مثلا، شبیه کولب یا کوپایلت بهتون کد پیشنهاد میده و شما با TAB توی کد خودتون اپلای میکنید.
همچنین، میتونید باهاش چت کنید (باکس آبی) و بهش بگید چی میخواید. اون هم کدی میده که میتونید روی کد خودتون اپلای کنید. نکته جالبش این هست که کد شما در فایل پایتونی رو میبینه و براساس چت و درخواست شما کدهاتون رو تغییر میده!
توی X (توییتر سابق) ویدئوهایی دیدم که بچههای کوچیک (8 9 ساله) با همین ابزار یک اپ (مثلا چت بات ساده) ساختن.
سه تا پلن داره که پلن اولش رایگانه. پلن بعدی که احتمالا برای خیلی از ماها کافی باشه، 20 دلار قیمتش هست. توی تصویر میتونید ببینید که فارسی هم ساپورت میکنه. نسخه ویندوز هم داره و به راحتی نصب میشه.
برای نصب به سایت cursor.com برید. حتما باهاش کار کنید...
@pytorch_howsam
Forwarded from Deep Mind (SAD)
مدل های o1🍓 و کنکور ریاضی!
دیشب ۱۲ سپتامبر شرکت OpenAI سری جدید مدل های خودش رو با نام o1 معرفی کرد، این مدل ها با یه ویژگی خاص طراحی شده ان، اینکه قبل از پاسخ دادن فکر کنن.
اما چطوری؟ راز این مدل ها استدلال زنجیره ای آن ها یا CoT-Reasoning هست.
اما Chain of Tought یا CoT(استدلال زنجیره ای) دقیقا چیه؟
مدلهای فعلی مثل سری GPT به صورت end-to-end کار میکنن، یعنی ورودی رو به خروجی تبدیل میکنن بدون اینکه خیلی بهش فکر کنن. این به معنی اینه که به سرعت جواب میدن بدون اینکه فرآیند استدلالی پشت جواب رو نشون بدن.
این روش چند مشکل داره:
۱. خیلی از مسائل نیاز به چند مرحله محاسبه یا استدلال دارن که مدلهای عادی ممکنه نتونن همه این مراحل رو در یک گام انجام بدن.
۲. چون مدل مستقیم به خروجی میرسه بدون اینکه استدلال کنه، در مسائل پیچیده احتمال رسیدن به جواب درست کمتر میشه و دقت مدل پایین میاد.
۳. ما نمیدونیم مدل چطور به جواب رسیده و شفافیتی در منطق استفاده شده برای تولید جواب وجود نداره.
اما در استدلال زنجیرهای، مدل به جای اینکه جواب نهایی رو فوری تولید کنه، مراحل مختلفی رو که شامل فرآیند فکر کردن هستن به صورت زنجیرهای تولید میکنه. یعنی مسئله رو به بخشهای کوچکتر تقسیم میکنه و هر بخش رو جداگانه پردازش میکنه و این مراحل رو گام به گام پیش میبره. این شبیه به کاریه که انسان برای حل مسائل پیچیده انجام میده، یعنی تبدیل مسئله به بخشهای کوچکتر و حل مرحله به مرحله.
این روش مشکلات بالا رو حل میکنه چون با پردازش مسئله به صورت گام به گام، هر مرحله به طور مجزا مدیریت میشه و احتمال خطا و از دست دادن اطلاعات مهم کم میشه. همچنین، استدلال استفاده شده توسط مدل به صورت شفاف قابل مشاهده است و ما میفهمیم که چرا مدل به این جواب رسیده.
پس در استدلال زنجیرهای، ورودی اولیه به مدل داده میشه و مدل به جای تولید جواب فوری، ورودی رو به اجزای مختلف تقسیم میکنه. این اجزا به مدل کمک میکنن که استدلالش رو به طور شفافتر و به صورت مرحله به مرحله بیان کنه و به نتایج دقیقتر و بهتری برسه.
تیم OpenAI گفته که هرچی مدل تایم بیشتری رو به فکر کردن اختصاص بده، نتایج بهتری به دست میاد.
این مدل ها که در دو نسخه preview و mini برای حل مسائل سخت و پیچیده علمی و کد نویسی منتشر شدن، عملکرد خوبی نشون دادن.
مدل mini سریعتره و تو کد نویسی عملکرد خوبی داره.
مدل preview مدل بزرگتر و قوی تر هست که پیشرفت چشمگیری نسبت به GPT-4o داشته و توی بنچمارک هایی که خود تیم OpenAI انجام داده، پیشرفت های خیلی بزرگی تو زمینه های علمی به خصوص ریاضیات صورت گرفته، به عنوان مثال:
مدل GPT-4o تونسته به 13 درصد سوالات المپیاد جهانی ریاضیات پاسخ بده اما o1-preview تونسته به 56 درصد سوالات پاسخ بده که خیلی خفنه!
جالبه بدونید مدل اصلی سری یعنی خود o1 به 83 درصد سوالات پاسخ داده!
همچنین این مدل ها تونستن به سطح دانش اموزان PhD در علوم فیزیک، شیمی و زیست شناسی برسن!
در سوالات برنامه نویسی رقابتی جزو 89 درصد برتر واقع شده !
یکی از دوستان زحمت کشیدن سوالات کنکور ریاضی امسال رو به مدل preview دادن و مدل موفق شده بعد از 9 دقیقه به تمام سوالات پاسخ صحیح بده!
دسترسی این مدل ها فعلا فقط برای بخش محدودی از کاربران ChatGPT Plus به صورت خیلی محدود باز شده، تعداد پیام های مجاز نسخه preview 30 پیام در هفته ست و مدل mini ، 50 پیام در هفته که عدد خیلی کمی هست.
همچنین از طریق API هم این مدل ها به صورت محدود(20 ریکوست در ثانیه) فقط برای کاربران سطح 5 (tier 5) قابل دسترسی هست یعنی کاربرانی که حداقل هزار دلار استفاده از API داشته اند.
قیمت استفاده از این مدل ها در API هم زیاد هست و به ازای 1 میلیون توکن ورودی و خروجی مدل preview به ترتیب باید 15 و 60 دلار پرداخت کنین و برای مدل mini به ترتیب 3 و 12 دلار باید پرداخت کنین که 80 درصد نسبت به مدل preview ارزون تر هست.
شرکت OpenAI اعلام کرده که قراره مدل مینی به صورت رایگان در دسترس همه کاربرا قرار بگیره که خبر خوبیه.
دیشب ۱۲ سپتامبر شرکت OpenAI سری جدید مدل های خودش رو با نام o1 معرفی کرد، این مدل ها با یه ویژگی خاص طراحی شده ان، اینکه قبل از پاسخ دادن فکر کنن.
اما چطوری؟ راز این مدل ها استدلال زنجیره ای آن ها یا CoT-Reasoning هست.
اما Chain of Tought یا CoT(استدلال زنجیره ای) دقیقا چیه؟
مدلهای فعلی مثل سری GPT به صورت end-to-end کار میکنن، یعنی ورودی رو به خروجی تبدیل میکنن بدون اینکه خیلی بهش فکر کنن. این به معنی اینه که به سرعت جواب میدن بدون اینکه فرآیند استدلالی پشت جواب رو نشون بدن.
این روش چند مشکل داره:
۱. خیلی از مسائل نیاز به چند مرحله محاسبه یا استدلال دارن که مدلهای عادی ممکنه نتونن همه این مراحل رو در یک گام انجام بدن.
۲. چون مدل مستقیم به خروجی میرسه بدون اینکه استدلال کنه، در مسائل پیچیده احتمال رسیدن به جواب درست کمتر میشه و دقت مدل پایین میاد.
۳. ما نمیدونیم مدل چطور به جواب رسیده و شفافیتی در منطق استفاده شده برای تولید جواب وجود نداره.
اما در استدلال زنجیرهای، مدل به جای اینکه جواب نهایی رو فوری تولید کنه، مراحل مختلفی رو که شامل فرآیند فکر کردن هستن به صورت زنجیرهای تولید میکنه. یعنی مسئله رو به بخشهای کوچکتر تقسیم میکنه و هر بخش رو جداگانه پردازش میکنه و این مراحل رو گام به گام پیش میبره. این شبیه به کاریه که انسان برای حل مسائل پیچیده انجام میده، یعنی تبدیل مسئله به بخشهای کوچکتر و حل مرحله به مرحله.
این روش مشکلات بالا رو حل میکنه چون با پردازش مسئله به صورت گام به گام، هر مرحله به طور مجزا مدیریت میشه و احتمال خطا و از دست دادن اطلاعات مهم کم میشه. همچنین، استدلال استفاده شده توسط مدل به صورت شفاف قابل مشاهده است و ما میفهمیم که چرا مدل به این جواب رسیده.
پس در استدلال زنجیرهای، ورودی اولیه به مدل داده میشه و مدل به جای تولید جواب فوری، ورودی رو به اجزای مختلف تقسیم میکنه. این اجزا به مدل کمک میکنن که استدلالش رو به طور شفافتر و به صورت مرحله به مرحله بیان کنه و به نتایج دقیقتر و بهتری برسه.
تیم OpenAI گفته که هرچی مدل تایم بیشتری رو به فکر کردن اختصاص بده، نتایج بهتری به دست میاد.
این مدل ها که در دو نسخه preview و mini برای حل مسائل سخت و پیچیده علمی و کد نویسی منتشر شدن، عملکرد خوبی نشون دادن.
مدل mini سریعتره و تو کد نویسی عملکرد خوبی داره.
مدل preview مدل بزرگتر و قوی تر هست که پیشرفت چشمگیری نسبت به GPT-4o داشته و توی بنچمارک هایی که خود تیم OpenAI انجام داده، پیشرفت های خیلی بزرگی تو زمینه های علمی به خصوص ریاضیات صورت گرفته، به عنوان مثال:
مدل GPT-4o تونسته به 13 درصد سوالات المپیاد جهانی ریاضیات پاسخ بده اما o1-preview تونسته به 56 درصد سوالات پاسخ بده که خیلی خفنه!
جالبه بدونید مدل اصلی سری یعنی خود o1 به 83 درصد سوالات پاسخ داده!
همچنین این مدل ها تونستن به سطح دانش اموزان PhD در علوم فیزیک، شیمی و زیست شناسی برسن!
در سوالات برنامه نویسی رقابتی جزو 89 درصد برتر واقع شده !
یکی از دوستان زحمت کشیدن سوالات کنکور ریاضی امسال رو به مدل preview دادن و مدل موفق شده بعد از 9 دقیقه به تمام سوالات پاسخ صحیح بده!
دسترسی این مدل ها فعلا فقط برای بخش محدودی از کاربران ChatGPT Plus به صورت خیلی محدود باز شده، تعداد پیام های مجاز نسخه preview 30 پیام در هفته ست و مدل mini ، 50 پیام در هفته که عدد خیلی کمی هست.
همچنین از طریق API هم این مدل ها به صورت محدود(20 ریکوست در ثانیه) فقط برای کاربران سطح 5 (tier 5) قابل دسترسی هست یعنی کاربرانی که حداقل هزار دلار استفاده از API داشته اند.
قیمت استفاده از این مدل ها در API هم زیاد هست و به ازای 1 میلیون توکن ورودی و خروجی مدل preview به ترتیب باید 15 و 60 دلار پرداخت کنین و برای مدل mini به ترتیب 3 و 12 دلار باید پرداخت کنین که 80 درصد نسبت به مدل preview ارزون تر هست.
شرکت OpenAI اعلام کرده که قراره مدل مینی به صورت رایگان در دسترس همه کاربرا قرار بگیره که خبر خوبیه.
امروز، به خاطر یک ماجرایی درگیر Knowledge Distillation یا KD شدم. سرچ کردم و به یک Tutorial خیلی خوب در سایت پایتورچ برخوردم. چند نوع KD رو اجرا کرده، مثلا از نوع دستهبندی، رگرسیون، درگیر کردن لایههای میانی و ...
من در خیلی از کارها مثل مقاله و کار از این KD استفاده کردم و توی دورههای مختلف مثل دیپ لرنینگ و کامپیوتر ویژن هم آموزش دادم. کلا، تکنیک ساده، جذاب و کارآمدی هست. حتی، الان توی آموزش شبکههای بزرگ هم استفاده میشه. تا الان این نوتبوک آموزشی رو توی پایتورچ ندیده بودم. فکر کنم جدید باشه...
لینک
یه ویدئو درمورد KD ضبط کنیم تو یوتوب بذاریم نه؟! 🤔
آپدیت: دمتون گرم که استقبال کردید. چشم، ضبط یک آموزش برای KD در یوتوب رو گذاشتم توی برنامه...
@pytorch_howsam
من در خیلی از کارها مثل مقاله و کار از این KD استفاده کردم و توی دورههای مختلف مثل دیپ لرنینگ و کامپیوتر ویژن هم آموزش دادم. کلا، تکنیک ساده، جذاب و کارآمدی هست. حتی، الان توی آموزش شبکههای بزرگ هم استفاده میشه. تا الان این نوتبوک آموزشی رو توی پایتورچ ندیده بودم. فکر کنم جدید باشه...
لینک
یه ویدئو درمورد KD ضبط کنیم تو یوتوب بذاریم نه؟! 🤔
آپدیت: دمتون گرم که استقبال کردید. چشم، ضبط یک آموزش برای KD در یوتوب رو گذاشتم توی برنامه...
@pytorch_howsam
Super Study Guide: Transformers & Large Language Models
نظرهای مثبتی درباره این کتاب در اینترنت دیدم. رویکرد کتاب این هست که خیلی خلاصه و با شکلهای مختلف مباحث ترنسفورمر و LLM رو آموزش بده. من این کتاب رو نخوندم و فقط فهرست مطالب این کتاب رو دیدم. دوست دارم بیشتر بررسیش کنم.
کلا 200 صفحه هست و پنج بخش اصلی این کتاب اینها هستن:
1- شبکه عصبی
2- امبدینگ
3- ترنسفورمر
4- مدلهای زبانی بزرگ (LLM)
5- کاربردها
نویسندههای این کتاب Afshine Amidi و Shervine Amidi هستن. شاید بشناسید. چیتشیتهای پرطرفداری در حوزه هوش مصنوعی ساختن. مثلا، این چیتشیت Recurrent Neural Networks. چیتشیتهاشون رو از صفحه گوگل اسکالرشون میتونید دانلود کنید.
@pytorch_howsam
کتاب Hands-on LLMs از آقای Jay Alammar
اخیرا این کتاب معرفی شده و مطابق انتظار با استقبال خوبی مواجه شده. آقای Jay Alammar رو هم احتمالا میشناسید دیگه! همون کسی که بلاگ پستهای آموزشی با شکلها و انیمیشنهای متنوع داره. این کتاب هم پر از شکلهای جالب هست که فهم مطالب رو برای مخاطب ساده میکنه. فهرست مطالب و یک نمونه شکل ساده از فصل اول کتاب رو براتون گذاشتم.
امسال چند تا کتاب خوب درباره LLM از افراد معتبر معرفی کردم:
* کتاب Afshine & Shervine Amidi
* کتاب Louis-François Bouchard
* کتاب Sebastian Raschka
@pytorch_howsam
اخیرا این کتاب معرفی شده و مطابق انتظار با استقبال خوبی مواجه شده. آقای Jay Alammar رو هم احتمالا میشناسید دیگه! همون کسی که بلاگ پستهای آموزشی با شکلها و انیمیشنهای متنوع داره. این کتاب هم پر از شکلهای جالب هست که فهم مطالب رو برای مخاطب ساده میکنه. فهرست مطالب و یک نمونه شکل ساده از فصل اول کتاب رو براتون گذاشتم.
امسال چند تا کتاب خوب درباره LLM از افراد معتبر معرفی کردم:
* کتاب Afshine & Shervine Amidi
* کتاب Louis-François Bouchard
* کتاب Sebastian Raschka
@pytorch_howsam