متا بهینهسازی بنام Schedule-free Optimizer معرفی کرده که مورد توجه قرار گرفته. خیلیها درحال ارزیابیش هستن و فیدبک مثبت دادن. چه ویژگی مثبتی داره که ترند شده؟
عملکرد بهتری نسبت به بهینهسازهای رایج مثل SGD و Adam داره. شکل بالا رو ببینید. این بهینهساز نسبت به بهینهساز AdamW با تابع پلهای یا کسینوسی همگرایی سریعتری داره.
نیازی به تنظیم لرنینگ ریت (LR Scheduler) نداره. یعنی، دیگه نیازی نیست که لرنینگ ریت رو حین آموزش تغییر بدید.
چطوری ازش استفاده کنیم؟ اول که نصب:
بعدش هم میتونید از بهینهساز مبتنی بر SGD یا AdamW استفاده کنید:
نهایتا، توی تابع train و test باید مشخص کنید که الان بهینهساز توی حالت train و eval هست! توی پایتورچ، برای مدل این کار رو میکنیم دیگه. یعنی توی تابع train باید بنویسید:
و توی تابع eval هم:
تامام! لینک زیر، اومدن یک شبکه CNN رو روی دیتاست MNIST با این بهینهساز آموزش دادن:
لینک کد
گیتهاب Schedule-free
@pytorch_howsam
عملکرد بهتری نسبت به بهینهسازهای رایج مثل SGD و Adam داره. شکل بالا رو ببینید. این بهینهساز نسبت به بهینهساز AdamW با تابع پلهای یا کسینوسی همگرایی سریعتری داره.
نیازی به تنظیم لرنینگ ریت (LR Scheduler) نداره. یعنی، دیگه نیازی نیست که لرنینگ ریت رو حین آموزش تغییر بدید.
چطوری ازش استفاده کنیم؟ اول که نصب:
pip install schedulefree
بعدش هم میتونید از بهینهساز مبتنی بر SGD یا AdamW استفاده کنید:
optimizer = schedulefree.AdamWScheduleFree(model.parameters(), lr=args.lr)
نهایتا، توی تابع train و test باید مشخص کنید که الان بهینهساز توی حالت train و eval هست! توی پایتورچ، برای مدل این کار رو میکنیم دیگه. یعنی توی تابع train باید بنویسید:
optimizer.train()
و توی تابع eval هم:
optimizer.eval()
تامام! لینک زیر، اومدن یک شبکه CNN رو روی دیتاست MNIST با این بهینهساز آموزش دادن:
لینک کد
گیتهاب Schedule-free
@pytorch_howsam
میخوام یک ریپوی عالی بنام Transformers-Tutorials رو بهتون معرفی کنم؛ این ریپو شامل یک عالمه دمو هست که برمبنای لایبرریهای هاگینگفیس مثل transformers datasets و غیره آماده شده. تعداد دموها بسیار زیاده، ولی توی عکس بالا بخشی از دموها رو میتونید ببینید. خوبی این دموها این هست که هم با شبکههای جدید در قالب یک مینیپروژه ساده کار میکنید و آشنا میشید و هم با لایبرریهای هاگینگفیس کار میکنید.
Transformers-Tutorials
اما این ریپو رو کی آماده کرده؟ آقای Niels Rogge که ML Engineer در هاگینگفیس هست. توی توییتر که هست و یوتوب هم کمی فعالیت داره. هدر اکانت توییترش هم باحاله! توییت معروف Karpathy درمورد پایتورچ! 😂 عکس دوم بالا رو ببینید...
@pytorch_howsam
Transformers-Tutorials
اما این ریپو رو کی آماده کرده؟ آقای Niels Rogge که ML Engineer در هاگینگفیس هست. توی توییتر که هست و یوتوب هم کمی فعالیت داره. هدر اکانت توییترش هم باحاله! توییت معروف Karpathy درمورد پایتورچ! 😂 عکس دوم بالا رو ببینید...
@pytorch_howsam
PyTorch Howsam
Florence-2: Advancing a Unified Representation for a Variety of Vision Tasks مدل Vision-Language مایکروسافت بنام Florence-2 شاخصههای مهم این کار: * خیلی سَبُکه. خبری از بیلیون پارامتر نیست! * یک شبکه همه کاره هست؛ یعنی، دیتکشن، سگمنتیش و غیره * یک دیتاست…
MobileLLM: Optimizing Sub-billion Parameter Language Models for On-Device Use Cases link
متا یک شبکه جدید بنام MobileLLM معرفی کرده که جز دسته شبکههای مگسوزن محسوب میشه. هدفشون این بوده که مدلهای LLM برای موبایلها بسازن. دو تا مدل 125 و 350 میلیون پارامتری هم معرفی کردن که مناسب کارهای موبایلی هست.
در بخش Introduction مقاله، به یکسری از چالشهای اساسی اجرای مدل LLM روی موبایلها اشاره کرده که جالبه. توی این پست میخوام درباره این چالشها بنویسم. سه چالش مهم که بهش اشاره شده اینها هستن:
* مصرف RAM موبایل (DRAM) در LLM-ها
* مصرف باتری
* سرعت تولید متن در ثانیه
چالش اول، مصرف RAM موبایل (DRAM) در LLM-هاست؛ الان مقدار DRAM برای موبایلهای سطح بالا بین 6 گیگ (آیفون 15) تا 12 گیگ (گوگل پیکسل 8 پرو) هست. حالا نگید نه داش آخرین مدل سامسونگ 24 گیگه! این اعداد رو مقاله گفته! 😁 حالا، نکته مهم اینجاست که ما نمیتونیم مدلی توی موبایل بذاریم که کل این ظرفیت 6 تا 12 گیگ رو پر کنه! به خاطر اینکه این مقدار DRAM سهم سیستم عامل و سایر اپهای توی موبایل هم هست! در مقاله ذکر شده که یک اپ موبایل نباید بیشتر از 10% DRAM رو اشغال کنه. یعنی، برای DRAM با 12 گیگ ظرفیت نهایتا 1.2 گیگ دردسترس هست. حالا، همون مدل لاما با 7 میلیارد پارامتر، حتی با وزنهای 8 بیتی، بازهم حدود 7 گیگ فضای DRAM رو اشغال میکنه. پس این چالش انگیزهای هست که مدلهای LLM کوچکتر (پارامترهای کمتر) ساخته بشه. در مقاله گفته ما مدلهای Sub-bilion parameter LLMs میخواییم خلاصه...
چالش دوم، مصرف انرژی LLM-هاست؛ مدل LLaMA v2 با 7 بیلیون پارامتر، به ازای هر توکن 0.7 ژول انرژی مصرف میکنه. زیاده یا کم؟ زیاده! یک آیفون با شارژ کامل حدودا 50 هزار ژول انرژی داره. مقاله میگه که هر 64 توکن حدود 0.2% از باتری رو مصرف میکنه که خب خیلی زیاده. یعنی، کل باتری در کمتر از دو ساعت مکالمه با مدل تَه میکشه. البته، من حساب و کتاب که کردم، هر 64 توکن حدود 0.08% باتری مصرف میکنه. اما شاید این محاسبه روی کاغذ هست و بخشهای جانبی هم دارن باتری میخورن. مدل 350 میلیون پارامتری این مقاله، حدود 0.035 ژول برای هر توکن مصرف میکنه. مقایسه کنید با 0.7 ژول مدل لاما! 20 برابر مصرف کمتری داره. به عبارتی، باتری فول شارژ برای یک روز مکالمه کافیه.
چالش سوم، سرعت هست؛ سرعت تولید متن مدل لامای 7 بیلیونی روی آیفون، 3~6 توکن بر ثانیه هست. خودمونی بگم، چتبات در هر ثانیه 4 5 کلمه برامون مینویسه. کمه واقعا! اما مدل 125 میلیونی این مقاله حدود 50 توکن بر ثانیه سرعت داره.
از این مقاله خیلی خوشم اومد و درحال مطالعش هستم. دوست داشتم درموردش بنویسم. البته، مطالب جالب توی مقاله زیاده. نوشتنش وقت زیادی میبره، ولی تلاشمو میکنم که بنویسم.
@pytorch_howsam
کورس بینایی کامپیوتر 2024 دانشگاه MIT
یکی از اساتید این دوره، آقای Kaiming He هست. ایشون یکی از محققهای برجسته بینایی کامپیوتر هست. شبکه ResNet، مقداردهی اولیه Kaiming و شبکه Mask R-CNN سه نمونه از کارهایی هست که ایشون انجام داده.
همچنین، یکی از ویژگیهای مثبت این کورس، مطالب پایانی کورس هست. در انتهای کورس درباره Deploy و Research صحبت شده:
+ Deployable CV
+ How To Do Research
+ How To Write Papers
+ How To Give Talks
توی بخش Research نموداری آوردن که توی تصویر بالا میتونید ببینید. این نمودار اثر کیفیت مقاله روی کریر فرد رو نشون میده. بعضی مقالههایی که میدیم، اثر منفی روی کریر ما میذارن. یکسری مقاله بود و نبودشون فرقی نداره. البته، به نظرم شروع مقاله دادن در ایران در حد همون Ok باشه، خوبه. توی مقالههای بعدی میشه کیفیت بهتری ارائه داد.
آپدیت: دوستان اومدن گفتن که کورس رو معرفی کردی، ولی لینک نذاشتی! شعر گفتم ولی نمیتونم بنویسم! 🥸
لینک
@pytorch_howsam
یکی از اساتید این دوره، آقای Kaiming He هست. ایشون یکی از محققهای برجسته بینایی کامپیوتر هست. شبکه ResNet، مقداردهی اولیه Kaiming و شبکه Mask R-CNN سه نمونه از کارهایی هست که ایشون انجام داده.
همچنین، یکی از ویژگیهای مثبت این کورس، مطالب پایانی کورس هست. در انتهای کورس درباره Deploy و Research صحبت شده:
+ Deployable CV
+ How To Do Research
+ How To Write Papers
+ How To Give Talks
توی بخش Research نموداری آوردن که توی تصویر بالا میتونید ببینید. این نمودار اثر کیفیت مقاله روی کریر فرد رو نشون میده. بعضی مقالههایی که میدیم، اثر منفی روی کریر ما میذارن. یکسری مقاله بود و نبودشون فرقی نداره. البته، به نظرم شروع مقاله دادن در ایران در حد همون Ok باشه، خوبه. توی مقالههای بعدی میشه کیفیت بهتری ارائه داد.
آپدیت: دوستان اومدن گفتن که کورس رو معرفی کردی، ولی لینک نذاشتی! شعر گفتم ولی نمیتونم بنویسم! 🥸
لینک
@pytorch_howsam
PyTorch Howsam
کورس بینایی کامپیوتر 2024 دانشگاه MIT یکی از اساتید این دوره، آقای Kaiming He هست. ایشون یکی از محققهای برجسته بینایی کامپیوتر هست. شبکه ResNet، مقداردهی اولیه Kaiming و شبکه Mask R-CNN سه نمونه از کارهایی هست که ایشون انجام داده. همچنین، یکی از ویژگیهای…
وقتی پست بالا رو مینوشتم، نگاهی به سایر اساتید دوره انداختم. یکیشون Sara Beery بود. به صفحه شخصیش رفتم و خب خیلی شاخ بود! :) رسیدم به یک مقاله جالب که در ECCV 2022 منتشر کرده بودن:
در این مقاله یک دیتاست جدید برای شمارش و ردیابی ماهیها در ویدئوهای Sonar معرفی شده. به تصویر بالا نگاه کنید تا با خروجی Sonar و کار آشنا بشید.
لینک دانلود دیتاست رو هم در ریپو گذاشتن و فکر کنم حدود 100 گیگ میشه.
خیلیها از من درباره موضوع پایاننامه ارشد میپرسن. معمولا، من بهصورت کلی توضیح میدم که چطوری موضوع پیدا کنن. به نظرم، کار روی این مساله میتونه برای ارشد مناسب باشه. نکات مثبت و منفی از نظر خودم:
+ موضوع جالب و کاربردی
+ دیتاست جدید و معتبر
- حجم دیتاست زیاد برای ایران
- احتمال نیاز به چند GPU
- موضوع نسبتا مشکل ردیابی چندهدفه
چنانچه خواستید این موضوع رو انتخاب کنید، قبلش حتما تحقیق کنید، دیتاست رو دانلود و بررسی کنید، مقاله مرجع رو بخونید، کد نمونه اجرا کنید و با چند متخصص مشورت کنید.
لینک
@pytorch_howsam
The Caltech Fish Counting Dataset: A Benchmark for Multiple-Object Tracking and Counting
در این مقاله یک دیتاست جدید برای شمارش و ردیابی ماهیها در ویدئوهای Sonar معرفی شده. به تصویر بالا نگاه کنید تا با خروجی Sonar و کار آشنا بشید.
لینک دانلود دیتاست رو هم در ریپو گذاشتن و فکر کنم حدود 100 گیگ میشه.
خیلیها از من درباره موضوع پایاننامه ارشد میپرسن. معمولا، من بهصورت کلی توضیح میدم که چطوری موضوع پیدا کنن. به نظرم، کار روی این مساله میتونه برای ارشد مناسب باشه. نکات مثبت و منفی از نظر خودم:
+ موضوع جالب و کاربردی
+ دیتاست جدید و معتبر
- حجم دیتاست زیاد برای ایران
- احتمال نیاز به چند GPU
- موضوع نسبتا مشکل ردیابی چندهدفه
چنانچه خواستید این موضوع رو انتخاب کنید، قبلش حتما تحقیق کنید، دیتاست رو دانلود و بررسی کنید، مقاله مرجع رو بخونید، کد نمونه اجرا کنید و با چند متخصص مشورت کنید.
لینک
@pytorch_howsam
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