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

ارتباط با ادمین
@howsam_support
Download Telegram
کتاب خوبیه
@pytorch_howsam
تصویر اول، بلوک دیاگرام ساده‌ای از فاین‌تیون کردن مدل‌های دیپ رو نشون میده. خب احتمالا این تصویر کاملا برای شما مفهومه. همین قاعده برای حوزه LLM-ها هم صدق میکنه.

بریم سراغ تصویر دوم؛ در یادگیری عمیق، دو مولفه مهم داریم:
* داده
* مدل

بسته به حجم داده و مدل چهار حالت خواهیم داشت که در تصویر این چهار حالت برای فاین‌تیون کردن LLM-ها نشون داده شده.

چیزی که در تصویر بالا دلبری میکنه، داده کم/زیاد و مدل کوچک هست. مدل TinyLlama حدود 1.1 میلیارد پارامتر داره، اما میتونیم این مدل رو تنها با یک GPU فاین‌تیون کنیم. به عنوان نمونه، با داده کم (حداکثر 500 هزار توکن)، تنها با 100 دلار میشه این مدل رو فاین‌تیون کرد.

تصویر سوم هم بسیار جالب هست. بجای استفاده از Full Finetune، با روش‌هایی مثل LoRA و QLoRA میشه فاین‌تیون رو با GPU-ی کمتر، زمان کمتر و VRAM کمتر انجام داد. نمودارها مربوط به مدل دو میلیاردی Gemma هست.

این تصاویر، از سایت lightning.ai اومده و یک tutorial برای همین فاین‌تیون کردن آماده کردن:
https://lightning.ai/docs/overview/finetune-models
This media is not supported in your browser
VIEW IN TELEGRAM
در مقاله زیر، شبکه Kolmogorov-Arnold Networks (KAN) پیشنهاد شده که مولفانش اون رو آلترناتیوی برای MLP میدونن که البته دقیق‌تر و تفسیرپذیرتر هست.

حالا چیکار کردن؟ ما توی شبکه MLP، اکتیویشن فانکشن رو روی نورون میذاریم (یعنی آخر کار میذاریم). اما، توی این مقاله، اکتیویشن فانکشن روی وزن‌های نورون گذاشته میشه و قابلیت یادگیری داره. این مقاله مورد توجه قرار گرفته.

Paper: https://arxiv.org/abs/2404.19756
Github: https://github.com/KindXiaoming/pykan
Documentation: https://kindxiaoming.github.io/pykan/

@pytorch_howsam
یک Talk نیم ساعته درباره ویژن ترنسفورمرها

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

https://www.youtube.com/watch?v=BnM-S50P_so
خانـــم‌ها و آقایــــان،
شبکه xLSTM تنه به تنه LLM-های ترنسفوری می‌زند!

شبکه جدیدی به نام xLSTM یا Extended LSTM معرفی شده که توجه زیادی رو به خودش جلب کرده. این مقاله رو آقای Sepp Hochreiter همراه با تیمش ارائه کرده. حالا آقای Sepp Hochreiter کی هستن؟ همون کسی که 30 سال پیش LSTM رو همراه با آقای Jürgen Schmidhuber پیشنهاد کردن. حالا بعد از 30 سال، نسخه امروزی (شاید مدرن!) شبکه LSTM رو همراه با تیمش پیشنهاد کردن.

اونها LSTM رو طوری توسعه دادن که قابلیت Scale شدن پیدا کنه. یعنی شبکه‌های LSTM بیلیون پارامتری داشته باشیم! مثل LLM-های امروزی...

به‌صورت کلی، ساختار شبکه xLSTM در تصویر بالا نشون داده شده. سمت چپ که LSTM رو می‌بینید. با توسعه همون LSTM اصلی، دو تا Memory Cell با نام‌های sLSTM و mLSTM ساخته شده. وقتی sLSTM و mLSTM رو در ساختار Residual Block (همون شورتکات‌ها) قرار بدیم، xLSTM Block ساخته میشه. نهایتا با Stack کردن بلوک‌های xLSTM به معماری یا شبکه xLSTM می‌رسیم! حالا نسبت این دو بلوک میتونه متفاوت باشه. به عنوان مثال، در تصویر بالا (سمت راست) نسبت 1:1 از sLSTM و mLSTM رو می‌بینید.

مقاله
.
This media is not supported in your browser
VIEW IN TELEGRAM
یک خبر جالب اینکه، Jetbrains (سازنده پایچارم)، IDE-هاش رو به مدل لوکال 100 میلیون پارامتری با Context سایز 1500 توکن مجهز کرده. و این یعنی، کد نوشتن با پایچارم لذت‌بخش‌تر از قبل میشه. مدل هم از سخت‌‎افزار شما برای اجرا استفاده میکنه و نیازی به اینترنت نیست.

حالا چطوری کار میکنه؟ اگه با پایچارم کار کرده باشید، میدونید که auto complete قوی داره و همین که یکی دو تا حرف از دستور رو بنویسیم، سریع دستورات مرتبط رو پیشنهاد میده. حالا اینطوریه که دیگه کلا دستور رو همراه با ورودی و خروجی به شما پیشنهاد میده. به خاطر همین بهش میگن full line code complete!

وبلاگ Jetbrains برای اطلاعات بیشتر:
https://blog.jetbrains.com/blog/2024/04/04/full-line-code-completion-in-jetbrains-ides-all-you-need-to-know/

@pytorch_howsam
PyTorch Howsam
در مقاله زیر، شبکه Kolmogorov-Arnold Networks (KAN) پیشنهاد شده که مولفانش اون رو آلترناتیوی برای MLP میدونن که البته دقیق‌تر و تفسیرپذیرتر هست. حالا چیکار کردن؟ ما توی شبکه MLP، اکتیویشن فانکشن رو روی نورون میذاریم (یعنی آخر کار میذاریم). اما، توی این مقاله،…
.
بعد از معرفی شبکه KAN، حالا کارهای مختلفی مبتنی بر این شبکه داره انجام میشه. یکی از کارهای جالب، ترکیب GPT و KAN هست. در ریپوی گیتهاب زیر، دو کد minGPT با pyKAN ترکیب شده. نمونه کدش:

from kan_gpt.model import GPT
from transformers import GPT2Tokenizer

model_config = GPT.get_default_config()
model_config.model_type = "gpt2"
model_config.vocab_size = 50257
model_config.block_size = 1024
model = GPT(model_config)

tokenizer = GPT2Tokenizer.from_pretrained('gpt2')

prompt = "Bangalore is often described as the "

prompt_encoded = tokenizer.encode(
text=prompt, add_special_tokens=False
)

x = torch.tensor(prompt_encoded).unsqueeze(0)

model.eval()
y = model.generate(x, 50) # sample 50 tokens

result = tokenizer.decode(y)

print(result)

# Bangalore is often described as the Silicon Valley of India.
# The city has witnessed rapid growth in the past two decades.....


لینک ریپوی گیتهاب KAN-GPT

@pytorch_howsam
یکی از حوزه‌های پرطرف‌دار در تعریف موضوع پایان نامه ارشد/دکترا، حوزه پزشکی هست. سایت فیزیونت، یکی از بهترین منابع آموزشی و تحقیقاتی برای حوزه پزشکی هست. دیتاست‌ها و نرم‌افزارهای اوپن‌سورس زیادی رو ارائه میدن. برای تعریف موضوع پایان‌نامه این سایت رو مدنظر داشته باشید.
https://physionet.org/

@pytorch_howsam
🟠 رایگان شد! 🟠

🔰 آموزش Faster RCNN از امروز، به صورت رایگان، در اختیار مخاطبان و همراهان هوسم قرار گرفته است.😍

📋 این دوره شامل 4 ساعت آموزش ویدیویی (تئوری و کدنویسی) است. برای کسب اطلاعات بیشتر و ثبت‌نام، روی لینک زیر کلیک کنید:

🔗لینک آموزش


@howsam_org
گاد آو یوتوب، چَنِلز، آقای Grant Sanderson، خالق 3Blue1Brown توی توییتر گفته:
I often prefer to read math than to watch videos on it.


بعد، گفته که اگه شما هم مثل من هستید، می‌تونید درس‌نامه‌های متنی محتواهای کانال یوتوب 3Blue1Brown رو مطالعه کنید.

درس‌نامه‌های متنی هم مثل ویدئوها عالی هست. این هم آدرس درس‌نامه‌ها:
https://www.3blue1brown.com/#lessons

چقدر خفنی تو آخه...

@pytorch_howsam
A decoder-only foundation model for time-series forecasting

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

این مدل با الهام‌گیری از LLM-ها در NLP توسعه داده شده. ما در Language Modeling یک مدل زبانی (LM) روی داده‌های متنی آموزش میدیم. هدفمون این هست که زبان رو مدل کنیم. در LLM هم اون L اول (Large) نشون دهنده این هست که یک مدل زبانی بسیار بزرگ داریم که روی حجم بسیار زیادی داده آموزش داده شده.

توی این مقاله، محققان گوگل مدلی توسعه دادن که داده سری زمانی رو مدل میکنه. مشابه با LLM به دنبال ساختن Foundation Model هستن.

این مدل به بزرگی مدل‌های LLM نیست و فقط ۲۰۰ میلیون پارامتر داره. مقایسه کنید با مدل‌های بیلیون پارامتری LLM.

دو نوع دیتاست برای آموزش مدل استفاده شده: (۱) داده‌های ساختگی، (۲) داده‌های واقعی که شامل ۱۰۰ بیلیون دیتا‌پوینت هست! 🫡

نتایج بدست اومده، بسیار امیدوارکننده هست. ازجمله اینکه مدل TimesFM خاصیت Zero-shot داره و روی دیتاست‌هایی که آموزش ندیده، عملکرد خوبی از خودش نشون داده.

مقاله | وبلاگ | گیتهاب | هاگینگ‌فیس

@pytorch_howsam
گوگل پکیجی بنام model_explorer داره که به شما امکان ویژوالایز کردن مدل‌ها رو میده. تصویر بالا رو ببینید.

ما هم در قالب یک نوتبوک، دستورات لازم برای نصب و استفاده از کتابخونه برای یک مدل نمونه رو گفتیم.

گیتهاب | نوتبوک هوسم

@pytorch_howsam
خبر بسیار مهم درباره ChatGPT 😍

شرکت OpenAI در توییتی اعلام کرد که از این به بعد کاربران پلن رایگان میتونن از یکسری امکانات پلاس مثل GPT-های فروشگاه، آنالیز داده، آپلود فایل و پاسخ اینترنتی استفاده کنن. 🤩🥳

البته، کردیت استفاده از این امکانات بسیار محدود هست.

ما آنالیز داده رو تست کردیم و واقعا جالب هست.

@pytorch_howsam
This media is not supported in your browser
VIEW IN TELEGRAM
PyGWalker: A Python Library for Exploratory Data Analysis with Visualization

لایبرری PyGWalker، یک ابزار خوب برای تحلیل اکتشافی داده (EDA) هست.

توی EDA دنبال استخراج اطلاعات و پیدا کردن الگوهای مهم از دل دیتاست هستیم. اگه یادگیری ماشین هوسم رو گذرونده باشید، EDA رو با گوشت و استخون حس کردید.

برای EDA، معمولا از پانداس، متپلات و یکسری کتابخونه‌های دیگه استفاده میشه. اما، شما با ابزارهایی مثل PyGWalker می‌تونید در ژوپیتر نوتبوک، از طریق یک رابط گرافیکی EDA انجام بدید.

توی معرفی لایبرری، خودشون گفتن که تلفظ این لایبرری چطوری هست: 😁
PyGWalker (pronounced like "Pig Walker", just for fun) is named as an abbreviation of "Python binding of Graphic Walker".


گیتهاب PyGWalker
نوتبوک نمونه در کولب
نوتبوک نمونه در کگل

ویدئوی بالا رو هم ببینید.

#یادگیری_ماشین #دیتاساینس #هوش_مصنوعی

@pytorch_howsam
کتاب Building LLMs for Production

این کتاب توسط مجموعه Towards AI با همکاری جمعی از متخصصین طی حدود 1.5 سال کار آماده شده.

نویسنده اول این کتاب، آقای Louis-François Bouchard هست که شخص شناخته‌شده‌ای هست.

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


فهرست مطالب:
Chapter I Introduction to Large Language Models
Chapter II LLM Architectures & Landscape
Chapter III LLMs in Practice
Chapter IV Introduction to Prompting
Chapter V Introduction to LangChain & LlamaIndex
Chapter VI Prompting with LangChain
Chapter VII Retrieval-Augmented Generation
Chapter VIII Advanced RAG
Chapter IX Agents
Chapter X Fine-Tuning
Chapter XI Deployment

دسترسی به محتوای کتاب که نداریم. ولی، به نظر میرسه کتاب جالبی باشه.
گوگل دیپ مایند، مدل تولید تصویر از متن Imagen 3 رو معرفی کرده. نمونه تصاویر تولیدشده از این مدل رو می‌تونید ببینید.

ادعای خودشون این هست که نسبت به تصاویر نزدیک‌تر به واقعیت تولید میکنه. مثلا، این مدل‌های مولد در دست و انگشت‌ها همواره چالش داشتن. اما، حداقل در این تصاویری که خودشون منتشر کردن، نتیجه قابل قبول هست.

توییت گوگل دیپ مایند
PyTorch Howsam
خانـــم‌ها و آقایــــان، شبکه xLSTM تنه به تنه LLM-های ترنسفوری می‌زند! شبکه جدیدی به نام xLSTM یا Extended LSTM معرفی شده که توجه زیادی رو به خودش جلب کرده. این مقاله رو آقای Sepp Hochreiter همراه با تیمش ارائه کرده. حالا آقای Sepp Hochreiter کی هستن؟ همون…
داغ داغ داغ!

بعد از معرفی xLSTM، حالا xLSTM برای حوزه ویژن بنام ViL هم معرفی شده. 🫡
از لحاظ کارایی هم عملکرد مطلوبی از خودش نشون داده و قابل قیاس با شبکه‌هایی مثل ViT یا DeiT هست.
بخونیم ببینیم چه خبره!

رویکردش درمورد داده تصویری جالبه!
We introduce Vision-LSTM (ViL), an adaption of xLSTM to computer vision. In order to adjust xLSTM (an autoregressive model) to better handle non-autoregressive inputs such as images, we employ alternating bi-directional mLSTM blocks. Odd blocks process the image row-wise from top left to bottom right, while even blocks process the image from bottom right to top left.


مقاله | صفحه پروژه