The Debugging Diaries
88 subscribers
63 photos
47 videos
33 files
73 links
گوشه‌ای برای یادداشت و ثبت مطالب مربوط به پایتون، یادگیری عمیق و هوش و هر چی که مربوط به تکنولوژی باشه.
加入频道
یه عملگر جالب تو sql هست به نام Cross apply قبلش به مقدمه
توی Sql کلا for , loop اینا نه بهینه است نه استفاده میشه باید نگاه و دید مجموعه داشت اما عملگر Cross apply مثل حلقه تو در تو روی دو تا جدول می مونه
اگه دو تا جدول داشته باشی و روش for بزنی کل مقادیر موجود در دو جدول رو کنار هم میتونی چاپ کنی در بعضی موارد هم میتونی یه شرطی بذاری و همه مقادیر چاپ نکنی و برخی از موارد دلخواه چاپ کنی
حالا با این مقدمه بریم سراغ cross apply
فرض کنیم یه جدول داریم که مشتری مشخصاتشون داخلش ثبت میشه
و یه جدول داریم سفارشات مشتری درش نگه می داریم
حالا میخوایم 3 تا سفارش آخر هر مشتری جلوی مشخصات مشتری داشته باشیم
فرض کنیم با زبون برنامه نویسی این کار میخوایم کنیم
یه حلقه میزنیم روی جدول مشتریا تک به تک مشتریا رو میریم داخل جدول سفارشا پیدا کرده و سه تای آخر بر میگردونیم
با cross apply هم به شکل زیر میشه
SELECT 
c.CustomerID,
o.OrderID,
o.OrderDate,
o.TotalAmount
FROM
Customer c
CROSS APPLY
(
SELECT TOP 3
OrderID,
OrderDate,
TotalAmount
FROM
Orders o
WHERE
o.CustomerID = c.CustomerID
ORDER BY
o.OrderDate DESC
) o
ORDER BY
c.CustomerID, o.OrderDate DESC;

در اینجا هم مواردی که از جدول مشتری انتخاب میکنی مثل یه حلقه دونه به دونه به Select دوم میره و توی شرط سفارش هایی نشون بده که آیدی مشتری i است و سپس سه تای برتر شو رو با استفاده از top و order by برمیگردونه
#sql
#part_1
دسته‌بندی کامل از یادگیری ماشین و الگوریتم‌ها
#ML
👏1
Forwarded from PyTorch Howsam
بهترین راه‌حل‌های مسابقات Kaggle

ریپوی Kaggle Solutions لیست مسابقات مختلف Kaggle همراه با راه حل نفرات برتر هر مسابقه رو در اختیار شما قرار میده.

تصویر بالا راه‌حل‌های یکسری از افراد برای مسابقه اخیر ISIC (سرطان پوست) رو لیست کرده. مخزن ارزشمندی هست، خصوصا برای کسانی که میخوان توی مسابقات کگل به رتبه‌های بالاتر برسن.

البته، این رو هم بگم که بعضی راه‌حل‌ها واقعا بار آموزشی ندارن. مثلا، نفر 37 مسابقه سرطان پوست ISIC رو ببینید چیکار کرده:
I used catboost, xgboost and lgbm for tabular data and tabular + cnn features. (total 6 models). As stacking method I applied StackingCVClassifier from mlxtend with LogisiticRegression as a metaclassifier. CNNs densenet201 (224 x 224) and efficient_net_b0 (384, 384).

خب، حالا شاید توی پیام بالا یک لایبرری، مدل/شبکه یا اصطلاح هم باشه که نشنیده باشید. اما، صرفا یکسری مدل قوی رو ترکیب کرده! اما، ایده‌های جالب هم پیدا میشه. مثلا، نفر اول از Diffusion Models استفاده کرده!

گویا این Kaggle Solutions کار یک ایرانی بنام فرید رشیدی هست:
لینک Kaggle Solutions

@pytorch_howsam
یک خبر کوتاه
یکی از ابزارهای خوب، رایگان و بدون تحریم و فیلتر البته نه به خوبی GPT وجود داره

کوپایلت در ویندوز (حتی کرک شده) به صورت رایگان و بدون تحریم و فیلتر در دسترس هستش.
برای استفاده کافی است در سرچ ویندوز copilot رو سرچ و با یه اکانت outlook از آن استفاده کنید.
Forwarded from Recommender system (MehriMah Amiri)
LLM Agents MOOC

This course covers the following topics

- Foundation of LLMs
- Reasoning
- Planning, tool use
- LLM agent infrastructure
- Retrieval-augmented generation
- Code generation, data science
- Multimodal agents, robotics
- Evaluation and benchmarking on agent applications
- Privacy, safety and ethics
- Human-agent interaction, personalization, alignment
- Multi-agent collaboration




🔗 link : https://www.youtube.com/playlist?list=PLS01nW3RtgopsNLeM936V4TNSsvvVglLc

#llms #agents #mooc #onlinecourse #nlproc #deeplearning
سال 2020 درمورد نحوه استفاده از Rapids توی شرکتی که اون زمان کار میکردم گفتم.
بعدتر درمورد cuGraph هم صحبت کردم.


دیروز دیدم یک تیم ایرانی شدیدا درگیر پردازش یک حجم بزرگ از گراف هستند که خب networkX سالها طول میکشه

قبل خرید و تصمیمات … گرفتن یک مشاوره از من گرفتند؛ کد رو بردم روی cuGraph و پردازش تا 300x سریعتر شد؛ قطعا بیشتر هم میشد ولی نیاز به اپتیمایز کردن نبود.


خواستم یادآوری کنم که؛ حواستون به پستهای قدیمی کانال هم باشه؛ بعضیاش طلاس
زمان لازم داره تا ارزشش مشخص بشه.
🔥1
بعد معرفی قابلیت سرچ در chatGpt حالا یه اکستنشن هم براش درست کرده که روی گوگل کروم نصب میشه و از این به بعد به جای سرچ توی گوگل، توی Gpt سرچ انجام میشه.

پارسال، گوگل بیشترین درآمدشو از سرچ به دست آورد و الان به نظر میاد گوگل تهدید وجودی داره :)

البته یخورده مشکل داره هنوز مثل تحریم
یا مثلا اینکه به صورت پیش فرض جای سرچ گوگل رو میگیره که g! در گوگل سرچ میکنه که خوب یخورده سخته
دانلود در این لینک
👍1
Forwarded from Deep Time
خداحافظ Adam
با معرفی ADOPT بهتره Optimizer مدل‌های Deep Learning و LLM رو تغییر بدیم. مشکل اساسی Adam در واقع عدم تضمین convergence در فرآیند آپدیت وزن‌ها بود که در ADOPT حل شده. اما این برتری فقط در تئوری نیست و در عمل هم در اکثریت مسائل از جمله pretraining در GPT-2 بهتر بوده.

ایده اصلی و راه حل برای تضمین هم‌گرایی هم دو مورد هست:

۱_ حذف گرادیان کنونی از تخمین momentum دوم
۲_ نرمالایز کردن گرادیان، قبل از آپدیت momentum

Paper
Github
کد:

from adopt import ADOPT
#optimizer = Adam(model.parameters(), lr=1e-3)
optimizer = ADOPT(model.parameters(), lr=1e-3)
همین طور که مدل های مختلف توسعه پیدا میکنن صفحه های چت هم براشون ساخته میشه، یکی از بعدهای اوپن سورسی که قبلا زیاد بود مدل های شرکت Mistral هستند که به تازگی صفحه چت شون هم در این لینک در دسترسه

اما قابلیت هاش
سرچ وب و canvas و تولید عکس با مدل Flux هست.
اگه با شماره هم ریجستر کنی کلی امکانت از api و rag و fine tune و.... بهت میده
اما متاسفانه تحریم هستیم
یه ایمیل outlook ساخته بودم برای کوپایلت(تازه فهمیدم میتونه عکس هم تولید کنه البته)
رفتم Microsoft 365 لاگین کردم و دیدم
امکانات خوب دیگری هم هست
از ورد و اکسل و پاور آنلاین تحت وب با قابلیت به اشتراک گذاری
دانلود و آپلود و ذخیره سازی ورژن‌های مختلف(محل نگه‌داریش هم onedrive هست)
به نظرم که از گوگل داک خیلی بهتر و روان تر هست و نکته مهم اینکه میتونه با کوپلیت(البته پولی) هم سینک بشه
👏1
عکس تولید شده با کوپلیت با ساده‌ترین پرامپت

چند وقت بود خیلی درگیر مدل های تولید عکس بودم
مدل خوب اوپن سورس
Flux , stable diffusion xl
بسته هم
Copilot , Image Fx google
Channel name was changed to «The Debugging Diaries»
Channel photo updated
Forwarded from توییتر فارسی
من ۸ ساله که توی پروداکت‌های مختلف کد پایتون میزنم.
دیروز درحالی که از یه مشکلی داشتم به خود میپیچیدم، دختری که همکارمه و ۷ سال ازم کوچیکتره، گفت پکیج رو با e- نصب کن درسته میشه. و شد!
من توی این همه سال تا حالا نمیدونستم
pip install -e چیکار میکنه.
درود بر سوادت توی اون سن زن.

• Arashsyh •

@OfficialPersianTwitter
توییتر فارسی
من ۸ ساله که توی پروداکت‌های مختلف کد پایتون میزنم. دیروز درحالی که از یه مشکلی داشتم به خود میپیچیدم، دختری که همکارمه و ۷ سال ازم کوچیکتره، گفت پکیج رو با e- نصب کن درسته میشه. و شد! من توی این همه سال تا حالا نمیدونستم pip install -e چیکار میکنه. درود…
به مناسبت این حرف بریم ببنیم واقعا این دستور چیکار میکنه چون من هم نمیدونستم :)

به دستور
 pip install -e

حالت editable installs میگن

اما این دستور چیکار میکنه؟

تیکه اول که pip install هست که واضحه اما سوییچ e چیکار میکنه(به این - تو دنیای لینوکسی یا یونیکسی میگن سوییچ غالبا). اینکار اجازه میده شما پکیج پایتونی که خودتون نوشتین (الزاما پکیج چیزی مثل نامپای نیست قطعا این کدهای کوتاهی و پر استفاده خودتون میتوانه پکیج باشه) در سیستم خودتون مثل سایر پکیج ها نصب کنین و ازش استفاده کنین. در واقع میاد یه soft link به اصطلاح لینوکسی ها و shortcut به اصطلاح ویندوزی ها میسازه از کد شما و خوبیش اینکه با تغییر تو فایل پکیج این تغییر به طور خودکار اعمال میشه بذارین چند تا مثال بزنم
اول یه مثال که خیلی حرفه نیست فرض کنین من این کد نوشتم که یسری دیتا رو از الستیک میخونه و روی sql میریزه (از ایندکس های مختلف به جدول مختلف) و یه پکیج کامل هست و حالا همکار ما هم میخواد بیاد داده ریختن روی الستیک و Sql رو تو کدش استفاده که در نهایت به یه هدفی برسه
چه جوری من کدم رو بهش بدم
خب چندین راه وجود داره api بهش بدم یا تیکه کدم بهش بدم و ...
یه راهش هم اینکه من . pip install -e کنم پکیج خودم رو و وقتی اون از توی سرور از پایتون استفاده میکنه عملا میتونه پکیج من رو تو برنامه اش import کنه و اگه تو کد من باگی باشه صرفا با اصلاح تو برنامه اون بدون انجام هیچ کاری اعمال میشه
این یه استفاده کثیف که حالا بگذریم
استفاده اصلیش برای تست پکیج نوشته شده است برای همین بهش میگن editable mode
بریم سراغ مثال اصلی

فرض کنید در حال کار در یه تیم هستید و که یک کتابخانه پایتون را توسعه می‌دید، به اسم data-utils، که توسط چندین پروژه دیگه استفاده می‌شود. در حالی که روی اون پکیج کار می کنید و دارین اون رو تست میگیرین و باید آن را در چندین پروژه بدون نصب مجدد پس از هر تغییر آزمایش کنید.
data-utils/
├── data_utils/
│ ├── __init__.py
│ ├── utils.py
├── setup.py
├── requirements.txt
└── README.md

ساختار پروژه شما
باید یه فایل setup.py بسازین که ویژگی های پکیج شما رو مشخص میکنه مثل این
from setuptools import setup, find_packages

setup(
name='data-utils',
version='0.1',
packages=find_packages(),
install_requires=[
# project Dependencies here
],
)


بعدش
cd /path/to/data-utils
pip install -e .

پکیج تون رو نصب می کنین
حالا بقیه می تونین پروژه تون رو تو کدهای دیگه تست کنین که آیا پکیج درست کار میکنه یا نه
و به محض اعمال تغییر بدون نصب دوباره این تغییرات تو کدهای برای آزمایش یا واقعیت بودن اعمال میشه
👍1
یه چیز خیلی ساده تو پایتون که قبلاً نمیدونستم و تازه فهمیدم دستور exec هست

اما این دستور چیکار میکنه، یه رشته کد پایتون رو میگیره و خروجی اون کد رو پرینت میکنه
مثال
code= """
import random
print(random.randint(0,10))
"""
exec(code)

خب این کد در خروجی یه عدد رندونم بین صفر تا ده تولید میکنه.
اما به چه دردی میخوره
به درد function calling در مدل‌های زبانی
فرض کنین با ollama یه مدل لوکال لود کردین میتونین با این دستور کدش رو تو همون چت اجرا کنین فقط باید یخورده هوشمندانه تر از این تابع استفاده کنین
به زودی یه مثال واقعی‌تر میذارم از استفاده این تابع

داخل پرانتز
( به شکل خیلی بامزه‌ای همین دستور تو sql هم هست که وظیفه‌اش اجرا sp و یا کوئری string شده است و عملکرد دومش شبیه پایتونه)
👍1
یه فرمتی که غالب برنامه‌های که مدل زبانی لوکال ران میکنن gguf هست.
فرمت GGUF (Grokking GPU-Friendly Unified Format) یک فرمت بهینه برای ذخیره و اجرای مدل‌های زبان بزرگ (LLMs) است که برای عملکرد بهتر روی سخت‌افزارهایی مثل GPU و CPU طراحی شده است. این فرمت با هدف کاهش حجم مدل‌ها و افزایش سرعت پردازش ایجاد شده است.


GGUF
فرمت پیشرفته‌ای برای فشرده‌سازی و بهینه‌سازی مدل‌هاست که وزن‌ها و پارامترهای مدل را به صورت با دقت کمتر (Quantized) (جای ۱.۶۸۶۴۴ ذخیره میکنه ۱ بر طور مثال)ذخیره می‌کند. این فرمت قابلیت اجرا روی انواع سخت‌افزارها را دارد.

مزایای GGUF

1️⃣ فشرده‌سازی بالا: کاهش حجم مدل‌ها با استفاده از کوانتایزیشن (مثلاً 4 یا 8 بیت به‌جای 32 بیت).

2️⃣ سازگاری گسترده: پشتیبانی از سخت‌افزارهای متنوع (GPU، CPU و غیره).

3️⃣ سرعت بالا: افزایش سرعت inference با کاهش محاسبات سنگین.

4⃣ یک فایل پورتابل یکپارچه که شامل تمام قسمت‌های مدل

معایب GGUF

🔸 کاهش دقت مدل در صورت استفاده از کوانتایزیشن شدید (مثلاً 3 یا 4 بیت) که این مورد برای تسک‌هایی که دقت بالا نیاز دارن مناسب نیست

🔸 نیاز به ابزارهای خاص برای تبدیل مدل‌ها به فرمت GGUF.

انواع کوانتایزیشن در GGUF شامل FP16 دقت ۱۶ بیتی(عدد‌هایی که ۱۶ بیت فضا میگرن)، Q8 دقت ۸ بیتی، Q4 و ...

در نهایت میشه گفت فرمت GGUF یک گزینه ایده‌آل برای کاهش حجم و بهینه‌سازی مدل‌های هوش مصنوعی در فرآیند infrence و استفاده در لوکال هست.
👏1