PyTorch Howsam
3K subscribers
336 photos
48 videos
5 files
471 links
از هوش مصنوعی میگیم...

ارتباط با ادمین
@howsam_support
Download Telegram
سلام
در مسابقه‌های کگل، مدل‌های CatBoost LightGBM XGBoost خیلی محبوب هستند. هر سه مدل از خانواده بوستینگ (Boosting) هستند. این سه عزیز در سایکیت‌لرن وجود ندارند و هرکدام برای خودشان یک لایبرری جداگانه دارند که باید با pip نصب شوند. کار ساده‌ای هست. اتفاقا استفاده از آنها هم خیلی ساده هست. چون شبیه سایکیت‌لرن هستند و همان fit و predict را دارند. حالا حرفمان در این پست چیست؟

این مدل‌ها هایپرپارامترهای بسیار زیادی دارند؛ خیلی‌ها می‌گویند:
در این مدل‌ها باید هایپرپارمترها رو دقیق تنظیم کنی وگرنه قدرت واقعیشون رو نمیبینی.

حالا ما هم می‌خواهیم درمورد همین تنظیم هایپرپارامترها صحبت کنیم...

دو نکته را مدنظر داشته باشید:

اول اینکه، باید تئوری این مدل‌ها را بدانید. تئوری اینها وابسته به دو بحث مدل‌های درخت تصمیم (Decision Trees) و بوستینگ (Boosting) هست. اگه اینها را بدانید، قطعا درک بهتری نسبت به هایپرپارامترها خواهید داشت.

دوم اینکه، در کگل برای تنظیم هایپرپارامترها از لایبرری‌های جانبی مثل Optuna بهره می‌برند. با این لایبرری می‌توانیم یک Grid Search بسازیم تا هایپرپارامترهای مناسب را پیدا کنیم. در ادامه، یک مثال از نحوه ترکیب Optuna با LGBMClassifier را آوردیم...

import lightgbm as lgb
import optuna
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# Load dataset
X, y = load_iris(return_X_y=True)
X_train, X_valid, y_train, y_valid = train_test_split(X, y, test_size=0.2, random_state=42)

# Define objective function
def objective(trial):
params = {
'objective': 'multiclass',
'num_class': 3,
'metric': 'multi_logloss',
'verbosity': -1,
'boosting_type': 'gbdt',
'learning_rate': trial.suggest_float('learning_rate', 0.001, 0.1),
'max_depth': trial.suggest_int('max_depth', 2, 10),
'num_leaves': trial.suggest_int('num_leaves', 2, 100),
}

model = lgb.LGBMClassifier(**params)
model.fit(X_train, y_train)
preds = model.predict_proba(X_valid)
log_loss = lgb.log_loss(y_valid, preds)

return log_loss

# Run optimization
study = optuna.create_study(direction='minimize')
study.optimize(objective, n_trials=100)

# Get best hyperparameters
best_params = study.best_params
print("Best hyperparameters:", best_params)


در کد بالا، سه هایپرپارامتر learning_rate max_depth num_leaves را به Optuna داده‌ایم تا از بازه تعریف شده یک عدد انتخاب کند و میزان خطای مدل را حساب کند. ما به دنبال حالتی هستیم که کم‌ترین خطای ممکن حاصل شود. 100 بار انتخاب هایپرپارامترها به‌صورت رندوم انجام می‌شود و نهایتا بهترین هایپرپارامتر براساس کم‌ترین خطا گزارش می‌شود.

@pytorch_howsam
کتابخونه pandas یکی از مهم‌ترین و اصلی‌ترین کتابخونه‌های پیش‌پردازش داده‌ها و کار با Data Frame هاست. مسلط شدن به pandas برای کسانی که در حوزه دیتا کار می‌کنن، یک نیاز واجب و ضروریه.

نویسنده این کتاب، آقای مت هریسون، در این اثر ارزشمند به تفصیل pandas رو توضیح میده و نکته مبهم و سخن نگفته‌ای رو باقی نمی‌ذاره.

مطالعه این کتاب فوق‌العاده از این نویسنده بسیار توانمند رو به کسانی که قصد تسلط و درک عمیق pandas رو دارن، بسیار پیشنهاد می‌کنیم.
کمبود GPU RAM؟!
بیایید یک راه‌کار ساده و فوق‌العاد کارآمد به شما یاد بدهیم...

کم بودن GPU RAM می‌تواند شما را در انتخاب سایز شبکه عصبی و همچنین بچ‌ساز محدود کند. اما راه‌کارهای مختلفی وجود دارد که شما از همان RAM کم نهایت استفاده را ببرید. یکی از راه‌کارها آموزش مدل با Float16 هست!

به‌صورت پیش‌فرض، در پایتورچ داده‌ها و مدل‌ها بر پایه Float32 هستند. اما با تغییراتی کوچک در کد، می‌توان داده‌ها و مدل‌ها را بر پایه Float16 تعریف کرد و تا 50 درصد از مصرف RAM صرفه‌جویی کرد! شاید باورتان نشود! این راه‌کار هم مصرف RAM را کاهش می‌دهد و هم در بسیاری از مسائل افت قابل توجهی در عملکرد (مثلا دقت) ایجاد نمی‌کند. حالا که مصرف RAM کمتر شده، می‌توانید هم مدل بزرگتری داشته باشید و هم بچ‌سایز را بزرگتر کنید.

در پایتورچ چگونه می‌توان از این ترفند استفاده کرد؟
در لینک زیر، خیلی ساده این ترفند توضیح داده شده است:
https://pytorch.org/tutorials/recipes/recipes/amp_recipe.html

@pytorch_howsam
چند روز قبل، یکی از دانشجویان دوره یادگیری ماشین هوسم سوالی را مطرح کرد که جالب بود. معمولا، کمتر در دوره‌ها و کتاب‌ها درمورد آن صحبت می‌شود. موضوع سوال به‌صورت کلی این بود:

من یک تسک دسته‌بندی چندکلاسه دارم که در کلاس‌ها ترتیب وجود دارد. معیار ارزیابی چگونه باید باشد؟


معمولا، در یادگیری ماشین با تسک‌های دسته‌بندی غیرترتیبی/اسمی یا Nominal Classification مواجه هستیم. یعنی ترتیب در کلاس‌ها اهمیتی ندارد. مثل دسته‌بندی تصاویر CIFAR یا دسته‌بندی گل‌های زنبق یا همان Iris معروف یا موارد دیگر...

اما در دسته‌بندی، تسک دیگری به‌نام دسته‌بندی ترتیبی یا Ordinal Classification هم داریم. یکی از جالب‌ترین نمونه‌هایش، می‌تواند تخمین سن افراد باشد. تخمین سن را می‌توان هم به شکل رگرسیون و هم دسته‌بندی حل کرد. وقتی مبتنی بر دسته‌بندی بخواهیم این مساله را حل کنیم، تعدادی کلاس مشخص داریم: مثلا 100 کلاس معادل با 1 تا 100 سالگی.

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

یکی از معیارهای ارزیابی رایج در دسته‌بندی ترتیبی، MAE یا Mean Absolute Error هست. یعنی ما یک مساله دسته‌بندی داریم، اما معیار ارزیابی‌مان شبیه رگرسیون هست. به مقاله‌های تخمین سن از روی چهره نگاه کنید؛ یکی از مهم‌ترین معیارهای ارزیابی آنها همین MAE هست. مثلا می‌گویند خطای MAE مدل پیشنهادی 4.7 هست. یعنی این مدل با خطای 4.7 سال، سن افراد را پیش‌بینی می‌کند.

@pytorch_howsam
🔥دوره OpenCV: از پردازش تا بینایی 🧿


🎁 60 درصد تخفیف برای ثبت‌نام زودهنگام، فقط تا 18 اسفند

⌛️شروع دوره: 18 فروردین 1403

👤 مدرس دوره: سیدسجاد اشرفی

🟢 اطلاعات بیشتر و ثبت‌نام: کلیک کنید!


راه‌های برقراری ارتباط با ما:
👤 @howsam_support
📞 09025469248
✉️ [email protected]
🌐 www.howsam.org
توی کگل یکسری مسابقه سطح پایین بنام Playground داریم...

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

حدودا 5 روزی هست که اپیزود سوم شروع شده. لینک مسابقه/اپیزود سوم:
https://www.kaggle.com/code/ankurgarg04/fault-detection-easy-xgb-with-optuna

از نوتبوک‌های دیگران غافل نشو. یک نوتبوک ساده برای شروع:
https://www.kaggle.com/code/ankurgarg04/fault-detection-easy-xgb-with-optuna

این هم یک نوتبوک جامع و سطح بالا از یک گرندمستر که شاید بررسی کردنش چند روز طول بکشه:
https://www.kaggle.com/code/lucamassaron/steel-plate-eda-xgboost-is-all-you-need

این اپیزود تقریبا همزمان شده با تعطیلات آخر سال و نوروز ما؛ شاید فرصت خوبی برای شرکت در مسابقه باشه. فقط با یک مسابقه میشه کلی تجربه کسب کرد.

@pytorch_howsam
سلام
مهدی از بچه‌های هوسم این پیام رو در گروه فرستاده بود. اینجا هم فوروارد کردیم...

مسئله جدید مسابقات کگل یک مسئله multivariate هستش که ۷ تا تارگت با نام های:

Pastry, Z_Scratch, K_Scatch, Stains Dirtiness, Bumps, Other_Faults

داره که انواع خرابی های فولاد هستن. چالشِ تارگت‌های Pastry و Bumps و Other_faults از بقیه بیشتره (روی بقیه میشه به دقت های خوب و بالایی رسید).

من از ساده‌ترین حالت، یعنی ترین مدل روی هر کدوم از تارگت‌ها به صورت جداگونه شروع کردم و اونطور که خودم تست کردم و نوت بوک‌های بقیه رو دیدم، بنظر میرسه xgboost روش بهتری باشه روی این دیتاست ( رنگ قرمز دقت مدل LGBM هستش).

همچنین یک دیتاست اورجینال هم هست که می تونید اضافه کنید به دیتاست ترین.

بالاترین دقت بدست اومده تا الان 0.89706 هست.

امیدوارم شما هم شرکت کنید و ایده‌ها و نظراتتون رو مطرح کنید. 🌟

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

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

1️⃣ پایتون برای هوش‌مصنوعی
🕔 44 ساعت
🌐 لینک دوره

2️⃣ یادگیری ماشین
🕔 127 ساعت
🌐 لینک دوره

3️⃣ یادگیری عمیق
🕔 83 ساعت
🌐 لینک دوره

4️⃣ دیپ کاتالیست (دوره پروژه-محور یادگیری عمیق)
🕔 54 ساعت
🌐 لینک دوره

5️⃣ آموزش OpenCV: از پردازش تا بینایی
🕔 96 ساعت
🌐 لینک دوره

6️⃣ آموزش پایتورچ رایگان
🕔 13 ساعت
🌐 لینک دوره

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

با احترام،
اشرفی
This media is not supported in your browser
VIEW IN TELEGRAM
این چی میـــــگـــــــه؟!

We're announcing TacticAI: an AI assistant capable of offering insights to football experts on corner kicks. ⚽️

Developed with LFC*, it can help teams sample alternative player setups to evaluate possible outcomes, and achieves state-of-the-art results. 🧵


*منظور از LFC، باشگاه Liverpool هست.

وبلاگ | مقاله | دیتا

کد نداره. گفتن نمی‌تونیم کدها رو منتشر کنیم.

@pytorch_howsam
یک تم خوب برای ژوپیترلب (برحسب تجربه):
pip install theme-darcula


بعد از نصب، از مسیر زیر تغییر تم انجام میشه:
Settings > JupyterLab Theme > Darcula


@pytorch_howsam
Today, we are excited to introduce DBRX, an open, general-purpose LLM created by Databricks.

https://www.databricks.com/blog/introducing-dbrx-new-state-art-open-llm
PyTorch Howsam
سلام مهدی از بچه‌های هوسم این پیام رو در گروه فرستاده بود. اینجا هم فوروارد کردیم... مسئله جدید مسابقات کگل یک مسئله multivariate هستش که ۷ تا تارگت با نام های: Pastry, Z_Scratch, K_Scatch, Stains Dirtiness, Bumps, Other_Faults داره که انواع خرابی های…
اولا، ممنون که ری‌اکشن نشون میدید. 🙏
دوم هم اینکه، نوتبوک مهدی آماده شده و می‌تونید بهش نگاه بندازید.

این هم توضیحات مهدی برای این نوتبوک:

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

از روش های مختلف مثل LGBM و XGBoost , Random Forest و Catboost و همچنین میانگین خروجی احتمالاتی پیش بینی های این روش ها استفاده شده.

توی بخش داده هم میسینگ ولیو ها و اوتلایرها و EDA تک متغیره و دو متغیره و نرمالیزیشن بررسی شده.

بهترین دقت نهایی بدست اومده مربوط به حالتی بود که از خروجی های مدل های مختلف میانگین گرفته شد ( 0.89389 )


https://www.kaggle.com/code/mahdiasghari5731/lgbm-catboost-xgb-eda-accuracy-0-8940

می‌تونید با upvote کردن نوتبوک بالا، مهدی رو تشویق کنید. 😊
کتاب درباره LLM با عنوان Build a Large Language Model

نویسنده این کتاب آقای سباستین راشکا (Sebastian Raschka) هست که فرد شناخته‌شده‌ای هست. همچنین، این کتاب در Manning منتشر شده. البته، هنوز کامل نشده و فصل‌های ابتدایی کتاب منتشر شده.

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

لینک کتاب | لینک گیتهاب

@pytorch_howsam
Neural-ABC is a neural implicit parametric model with latent spaces of human identity, clothing, shape and pose. It can generate various human identities and different clothes. The clothed human body can deform into different body shapes and poses.

Git : Neural-ABC: Neural Parametric Models for Articulated Body with Clothes
Amazon's Just Walk Out technology relies on hundreds of workers in India watching you shop.
فروشگاه تمام اوتوماتیک آمازون ؟!
- هوش مصنوعی ؟
- پردازش تصویر ؟
- یا باز هم نظارت انسانی !

EU-USA-Today

Washington Times
از طریق لینک زیر (توی سایت هاگینگ‌فیس) می‌تونید مقاله‌های ترند هوش مصنوعی رو ببینید. کسی که مقاله‌ها رو معرفی میکنه، فرد شناخته‌شده‌ای در توییتر هست و چند سالی هست که توی توییتر همین کار رو انجام میده.

https://huggingface.co/papers
سرویس پولی کولب GPUهای جدید داده :)
توی لیست بالا، L4 رو می‌بینیم که تازه اضافه شده.
@pytorch_howsam
پایتورچ یک کتابخونه جدید به نام torchtune معرفی کرده که مخصوص فاین‌تیون کردن LLM-هاست.

torchtune is a Native-PyTorch library for LLM fine-tuning.


با این کتابخونه می‌تونید LLM-ها رو Finetune کنید و روشون آزمایش انجام بدید. آدرس کتابخونه:
https://pytorch.org/torchtune/0.1/

اینجا معرفی مختصری از تورچ‌تیون گفته شده:
https://pytorch.org/torchtune/0.1/overview.html

توی لینک زیر، درمورد Llama3 گفته که شامل بخش‌های معرفی مدل، دسترسی به مدل، فایل‌تیون کردن با تورچ‌تیون، ارزیابی کردن مدل فایل‌تیون‌شدن، جنریت متن، جنریت سریع‌تر با کوانتیزیشن هست:
https://pytorch.org/torchtune/0.1/tutorials/llama3.html

@pytorch_howsam
کتاب خوبیه
@pytorch_howsam