Dev Tweet – Telegram
Dev Tweet
850 subscribers
113 photos
15 videos
3 files
98 links
گعده‌ای در باب برنامه نویسی، پایتون، هوش مصنوعی و داده
Download Telegram
دوران «ماه عسل» مهندسین یادگیری ماشین داره به سر میاد...

این
مقاله در مورد تاثیر پیشرفت هوش مصنوعی در بازار کاره.
این جمله رو از کسایی که خیلی به هوش مصنوعی خوش بین هستند شنیدید که هوش مصنوعی قرار نیست جایگزین انسان بشه بلکه به انسان کمک می‌کنه که بهره‌وری بیشتری داشته باشه...
(بابت صراحت کلامم عذرخواهی می‌کنم 🙏)
این مقاله شواهدی میده که این، حرف مفته!
دوره‌‌های همکاری انسان و هوش مصنوعی رو به سه دوره تقسیم می‌کنه:
الف) دوره‌ی قبل از ادغام decoupling
هوش مصنوعی بروزی از هوشمندی داشت ولی نمی‌تونست به انسان کمک کنه. مثلا دوره پیدایش مدلهای زبانی مبتنی بر ترنسفورمر اولیه مثه BERT تا قبل از ChatGPT3.5 به نظرم میشه این دوره.
ب) دوره ماه عسل honeymoon
دوره‌ای که هوش مصنوعی خیلی هوشمنده و عملکرد خیلی خوبی داره ولی هنوز از انسان در اون مهارت بهتر نیست مثه همین الان ما، شبیه به مترجم انسانی ترجمه می‌کنه ولی هنوز بهتر از مترجم انسانی نیست. کد می‌نویسه و هنوز برنامه کامل نمیتونه تولید کنه. تازه یادگرفته مثلا اگه عکس انسان تولید می‌کنه عکسی که تولید میکنه انسان شش انگشتی نباشه(اینجا رو ببنید)!
ج) دوره جایگزینی با انسان substitution
در این دوره هوشمندی هوش مصنوعی از انسان بیشتر شده و در همون عملکردی که یک روزی کمک‌یار انسان بود حالا جایگزین انسان متخصص شده. شبیه استادکاری که یک شاگرد میاره ور دست خودش کارهای گِل رو بندازه رو دوش‌ش تا خودش راحت‌تر بشه ولی اون شاگرد کم کم فوت و فن استادی رو هم یاد می‌گیره از استاد خودش جلو می‌زنه!

برای این موضوع اومده شغل «مترجمی» رو بررسی کرده(احتمالا از داده‌هایی جایی مثه UpWork)
نشون داده از زمانی که ChatGPT اومده درآمد مترجم‌ها ۳۰ درصد کاهش داشته!
ابزارهای هوش مصنوعی اول کمکت می‌کنن راحت‌تر بشی در کارت ولی کم‌کم که داده‌ بیشتری ازت جمع‌آوری می‌کنند از خودت بهتر می‌شن!
به حجم فیدبکی که سرویس‌های Foundation Model چه تصویر چه متن و چه کد برنامه نویسی... از کاربر خودشون جمع می‌کنن فکر کنید همین فیدبک‌هایی که ما در یک نشست چت به ChatGPT میدیم فکر کنید چه دیتاست‌های خفن‌تری در اختیار صاحب مدل قرار میده!
این مساله رو خود نویسنده‌ها هم به استناد رشته ردیت r/translationStudies بهش اقرار دارن!
این موضوع باعث کاهش ۷ درصدی درآمد «نویسندگی» هم شده....

اما نکته جالب‌تر!
این روند داره در برنامه‌نویسی وب و مهندسی یادگیری ماشین هم اتفاق می‌افته ولی! ریسک جایگزینی هوش مصنوعی برای مشاغل حوزه مهندس یادگیری ماشین از ریسک جایگزینی هوش مصنوعی برای مهندس نرم افزار بیشتره!
دلیلش اینه که در حال حاضر مهندس نرم‌افزار سیستم پیچیده‌تر شامل اجزای بیشتری رو داره تولید میکنه ولی تولیدات مهندس یادگیری ماشین معمولا تک زبانه و تک جزئی(component) است.
و مهمتر از اون مدل‌های open source یادگیری ماشین دارن خیلی در دسترس قرار می‌گیرن و از کد‌های open source در مهندسی نرم افزار در دسترس‌تر هستند.

لذا این تصور که چون هوش مصنوعی داره در همه‌ی مشاغل جای انسان رو می‌گیره پس بریم خودش رو یاد بگیریم تا جایگزین نشیم غلطه!
چون هوش مصنوعی داره اول کار مهندسین یادگیری ماشین رو ازشون می‌گیره!
به تعبیر این مقاله ادعا میکنه مهندسین یادگیری ماشین دارن تو چاهی می‌‌افتن که خودش براش کلنگ زدن!

https://news.1rj.ru/str/tweetdev
👍15👎5
4
شبکه‌ی عصبی گرافی و مقاومت آنتی‌بیوتیک...

آخرین کلاس ساختاری آنتی‌بیوتیک‌ها ۳۸ سال پیش کشف شده و در این سال‌ها هیچ خانواده آنتی‌بیوتیکی که از ترکیب مولکولی متفاوت باشه کشف نشده!

باکتری به اسم مرسا MRSA سالی ۱۰ هزار قربانی میگیره در آمریکا که مقاومت آنتی‌بیوتیکی خاصی از خودش نشون میده.

اینا رو گفتم که چی؟!

بعد از LLM و Latent Diffusion که با تولیدات مکتوب و مصور از آزمایشگاه و آکادمی وارد زندگی واقعی ما شدند الان نوبت شبکه‌های عصبی گرافی تفسیرپذیره که قراره با تولیدات داروئی زندگی ما رو بهبود بدن!

اگر با تاریخچه شکل‌گیری شبکه‌های عصبی گرافی آشنایی داشته باشید (رجوع کنید به مقاله MPNN) یکی از جدی‌ترین محورهای توسعه شبکه‌های عصبی گرافی پردازش و یادگیری خواص مولکول‌های شیمیایی از روی ساختار مولکولی آنهاست، این تلاش‌ها تقریبا از ۲۰۱۵ شروع شده و الان که روزهای آخر ۲۰۲۳ هستی با این مقاله نیچر به کاربرد رسیده!

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

برای اینکه ببینند چه زیر ساختار مولکولی خاصیت آنتی‌بیوتیکی به مولکول میده از تکنیک‌هایی استفاده می‌کنند که منطق rationale مدل در شناسایی مولکول آنتی‌بیوتیکی رو استخراج می‌کنه. تکنیک خیلی جالبیه میان یکی یکی پیوند و اتم‌های مولکول رو حذف می‌کنند هر بار میدن به مدل ببینند آیا هنوز خواص آنتی‌بیوتیکی داره یا نه؟ تا اینکه به یک زیر ساختار مشترک میرسن و اون رو به عنوان زیرساختار آنتی‌بیوتیکی شناسایی می‌کنند.

این آزمایش هم بصورت درون‌تنی in vivo روی دو موش آزمایش شده و تونسته باکتری مرسا که مقاومت آنتی‌بیوتیکی داشته را با سمیت(سمی‌بودن) کمی از بین ببره.

شبکه‌های عصبی گرافی بخاطر توانایی در یادگیری ساختارهای خیلی پیچیده برای یادگیری داده‌های طبیعت مثل تعامل پروتئینی و مدل‌سازی برخورد ذرات بنیادین و شبکه گراف مغز و ... خیلی موفق هستند.
به نظرم سه مسیر اصلی یادگیری ماشین در آینده نزدیک به این صورت خواهد بود:
شبکه‌های عصبی گرافی برای AI for science
یادگیری تقویتی برای Self-improving AI
مدلهای زبانی بزرگ(LLM) برای Language Understanding

این حوزه‌ی AI4Science خیلی کم دیده شده underrated است چهار سالی هست Neurips یکی از ورکشاپ‌هاش رو گذاشته روی همین موضوع.

https://news.1rj.ru/str/tweetdev
👏8👍3😱1
شرکت‌های بزرگ در توسعه LLMها هر کدوم مسیر متفاوتی رو طی می‌کنند. OpenAI و گوگل در پی ساخت مدل‌های زبانی خیلی بزرگ هستند. فیس‌بوک در پی ساختن مدل‌های کارآمد متن‌بازه ولی نقطه‌ مقابل گوگل و OpenAI که در پی ارائه سرویس‌های ابری Foundation Model است تمرکز اپل چند سالی است که روی آوردن انواع مختلف مدل‌های یادگیری ماشین روی پلتفرم End-user است، این موضوع رو در یکپارچه‌سازی هوش مصنوعی در عرضه‌های اخیر گوشی‌های iPhone هم می‌بینید.
حالا یک تیم از اپل که از 8 نفر نویسنده 5 تا ایرانیه! اومده کاری کرده که حافظه‌ رم و سرعت استنتاج مدل‌های زبانی را روی سخت افزار موبایل افزایش بده به طوریکه LLMها با دو برابر ظرفیت DRAM رو لود می‌کنه و سرعت استنتاج رو نسبت به سی‌پی‌یو 4 تا 5 و نسبت به جی‌پی‌یو 20 تا 25 برابر افزایش می‌ده. روش به این صورته که ابتدا مدل رو روی حافظه‌ی فلش ذخیره می‌کنه بعد با دو تا تکنیک فقط پارامترهایی که برای استنتاج نیاز هستند رو موقع استنتاج از حافظه فلش به DRAM میاره. برای این کار از دو تا تکنیک اصلی استفاده می‌کنند یکی اینکه تکنیک windowing واسه اینکه کمتر عملیات انتقال بین دو تا حافظه رو داشته باشن و row-column bundling واسه اینکه هر بار مقدار بیشتری از چانک داده رو بصورت پیوسته از حافظه فلش به DRAM بیارن.

اگر قبلا اسم PowerInfer به گوش‌تون خورده باشه اون هم تلاشی بود برای افزایش سرعت استنتاج روی سی‌پی‌یو بدون استفاده از جی‌پی‌یو که می‌تونید نتایج‌ش رو توی این توئیت ببینید.

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

پ.ن: در انتخاب عنوان مقاله هم خلاقیت جالبی نهفته است که معنی دو وجهی داره: اولی in a flash هم به معنی suddenly و یک دفعه‌ای و سریعه یعنی LLM‌ خیلی سریع و وجه دومش هم به flash به معنی حافظه سخت‌افزاری موبایل یعنی LLM در حافظه‌ی flash.
👍5👏1
سلام مجدد
بعد از یک مدت طولانی که نتونستم بنویسم
ممنون که هنوز اینجا هستید
تصمیم گرفتم هر چند کوتاه ولی بیشتر بنویسم
1
برگشت مجدد رو با معرفی یه کتاب شروع کنم
Alice's Adventures in a Differentiable Wonderland -- Volume I, A Tour of the Land
ماجراهای آلیس در سرزمین عجایب مشتق‌پذیر -- جلد اول، گشت و گذار در سرزمین
این کتاب خیلی اسمش نشون نمیده چیه.
یه کتاب در مورد آموزش یادگیری عمیق شبیه کتاب Deep Learning Book - Ian Goodfellow and Yoshua Bengio که سالها تسک بوک دانشگاهی دیپ لرنینگ بود اما دیگه از 2016 مطالبش آپدیت نشد.
من یک کتاب دیگه در دیپ لرنینگ سراغ دارم که مطالبش به روز باشه و ارزشمند باشه که قبلا اینجا (کتاب UDL) معرفی کردم خدممتون.
همین این کتاب آلیس در سرزمین عجایب مشتق پذیر و هم این کتاب UDL رایگان و اپن سورس هستند.
این کتاب آلیس ... رو میتونید از arxiv بردارید.
دو تا نکته در مورد این کتاب خیلی جالبه:
1. اسم کتاب برگرفته از یک ریبرندیگه از عنوان شبکه عصبی که ایده ش رو سال 2018 یان لیکان ارئه کرده همون differentiable programming است.
ایده‌ش در شعارش خلاصه میشه:
Deep Learning est mort. Vive Differentiable Programming!
یادگیری عمیق مرد. زنده باد برنامه نویسی مشتق‌پذیر!
بطور خلاصه این ایده میگه دیپ لرنینگ یک ریبرندیگ(rebranding) برای شبکه‌های عصبی ساده با تعداد لایه زیاد بود. اما مدلهای امروزی واقعا دیگه فقط کلی لایه نیستن که پشت سر هم قرار گرفتنند بلکه کلی بلوکهای فاکشنال مشتق پذیر هستن که بصورت دینامیک ساختار مدل بصورت تابعی از مدل عمل می‌کنه(بر خلاف شبکه‌ی عصبی عمیقی که اول معماری ساخته میشد و ساختارش مستقل از داده‌ای بود که آموزش میداد.) به همین خاطر نام مناسب برای مدلهای مدرن برنامه نویسی مشتق پذیر است. مثال مناسب برای فهم تفاوت اینکه چرا به مدل‌های مدرن(دقت کنید میگم مدل مدرن نمیگم شبکه!) میگه برنامه نویسی مشتق پذیر همین مدل‌های MMLU (مدلهای زبانی چند موداله)(متن+تصویر+ویدئو+صوت) است که یک مدل در ترکیبی از چندین شبکه‌(مدل)ی عصبی عمیق داره کار می‌کنه.

این نویسنده‌ هم با اشاره به این موضوع دیگه اسم کتابش رو نذاشته deep learning. گذشته ماجراجویی مشتق پذیر Differentiable آلیس!
2. برای مباحث جدید(فصل آخر: داخل سوراخ خرگوش Down the rabbit-hole) این کتاب مباحث واقعا جذابی داره (عکس ضمیمه شده) مثه SSS modelها مباحث پیشرفته‌ای در ترنسفورمرها و GNNها هم داره. تازه برای جلد اوله و طبق گفته خودش هنوز به مباحث جدیدتر مثه generative modeling, explainability, prompting, agents نپرداخته.

پ.ن: این کتاب مطالب درسی کورس Neural Networks for Data Science Applications ایشون در دانشگاه ساپینزا ایتالیاست.
پ.ن: توئیت معرفی کتاب (وقت داشتید کوتهای توئیت رو ببینید)
پ.ن: در مورد برنامه نویسی مشتق پذیر میتونید اینجا رو بخونید.
👍5
جایگزین جدید دیگر برای MLP
شبکه‌ی Kolmogorov-Arnold Networks (KAN)

دو سه روزی یه مقاله جدید اومده به اسم KAN از یک تیم از MIT و برکلی به عنوان جایگزینی برای MLP.
نویسنده‌ها بک گراند فیزیک دارن!
حرف در مورد این مقاله زیاد میشه زد اما به قدر وسعم چند ایده‌ اساسی‌ش رو اینجا مطرح می‌کنم.
1. شبکه‌های MLP مبتنی بر قضیه‌ی تقریب سراسری(universal approximation theorem (UAT)) هستند. اما مبنای شبکه‌ی KAN قضیه‌ی بازنمایی کلموگروف-آرنولد (Kolmogorov-Arnold representation theorem (KART)) به خاطر همین اسمش رو گذاشتن کولوموگروف و آرنولد چون از تئوری اونها اومده.
قضیه تقریب سراسری (UAT) ادعا می‌کند که یک شبکه نمی‌تواند با عرض ثابت دقت بی‌نهایت را بدست آورد، به این معنی که اگر تعداد نورون‌ها در لایه (های) پنهان اجازه افزایش نداشته باشد محدودیت وجود دارد که چقدر یک شبکه عصبی می‌تواند توابع پیچیده را مدل کند. به عبارت دیگر، برای افزایش دقت مدل برای توابع پیچیده‌تر، باید تعداد نورون‌ها (یعنی عرض) در شبکه را افزایش داد.

قضیه بازنمایی کلموگروف-آرنولد (KART)میگه که هر تابعی از متغیرهای چندگانه می‌تواند به عنوان ترکیبی جمعی از توابع یک متغیره نوشته شود. این نشان می‌دهد که یک شبکه می‌تواند ( تحت شرایط خاص) با عرض ثابت دقت بی‌نهایت را بدست آورد.
قضیه تقریب سراسری UAT پیشنهاد می‌کند که یک شبکه نمی‌تواند با عرض ثابت دقت بی‌نهایت را بدست آورد، در حالی که KART پیشنهاد می‌کند که این ممکن است. مهم است توجه داشت که این قضایا تضمین‌های نظری در مورد آنچه ممکن است را ارائه می‌دهند، اما لزوماً روش‌های عملی برای دستیابی به این نتایج را ارائه نمی‌دهند. عملا راه حل پیاده‌سازی عملی قضیه‌ی UAT شبکه‌ی MLP و راه حل پیاده‌سازی عملی قضیه‌ی KART شبکه‌ی KAN است.

2. در شبکه‌ی MLP توابع فعالسازی روی نرون‌ها(گره‌ها) اعمال می‌شوند و ثابت هستند.
در شبکه‌ی KAN توابع فعالسازی روی وزن‌ها(یال‌ها) اعمال می‌شوند و قابل یادگیری هستند که با اسپلاین پارامتریزه می‌شوند.

3. شبکه‌ی KAN سرعت یادگیری‌ش کمتره اما در عوض:
تفسیرپذیرتره!
با تعداد پارامتر کمتر به همون دقت MLP می‌رسه!
طبق قانون مقیاس در شبکه‌های عصبی در افزایش مقیاس مشخص سرعت افزایش دقت آن بیشتر است!
مثلا در یک مساله خاص که دیپ مایند با 300 هزار پارامتر به یک دقت و نتیجه رسیده این شبکه با 200 پارامتر به همون نتیجه رسیده!

4. چرا آموزش KAN کند است؟
(جواب از زبان نویسنده)
دلیل 1: فنی. توابع فعال سازی قابل یادگیری (اسپلاین‌ها) برای ارزیابی گران‌تر از توابع فعال سازی ثابت هستند.
دلیل 2: شخصی. فیزیکدان در درون من شخصیت برنامه‌نویس من را مهار می‌کرد، بنابراین من سعی (یا دانش) بهینه‌سازی کارایی را ندارم.
به همین دلیل اصلا کد مدل GPU-freindly نوشته نشده است.


پ.ن: مقاله خیلی خوب نوشته شده واسه فهمیدن و کلی تصویر داره که نشون میده موضوع رو.
پ.ن: دو تصویری که از مقاله KAN و MLP رو مقایسه میکنند رو آوردم. کلا تصاویر و جداول مقاله خیلی خوب و قابل فهمه:)
پ.ن: این رشته توئیت تاثیر بک‌گراندهای فیزیکی ذهن طراح شبکه را خیلی جالب از مقاله بیرون کشیده.
پ.ن: لینک مقاله
👍9
پدیده‌ای عجیب در افزایش عمق شبکه
آقای ماکسیم لابون اومده از llama-3 که دو ورژن 8 و 70 میلیارد پارامتری داره یه مدل 120 میلیارد پارامتری درست کرده؟!
از قضا یک کاربر دیگه یک تستی برای هوشمندی‌ش اجرا کرده که نشون میده حتی از Opus Claudia (رقیب GPT-4 واسه شرکت Anthropic) در اون تست خاص هوشندتره!
اون تست چیه؟ یک کاربر کلی وقت گذاشته به مدل القا کنه یک دستیار شخصی نیست بلکه یک شخصیت دیگه‌ای داره(مثلا فیزیکدانه) اینکه چقدر طول کشیده که بتونه مدل رو گول بزنه رو معیار هوشمند بودن قرار داده و در عمل llama-3 و Claudia Opus رو تونسته زودتر از مدل ۱۲۰ میلیارد پارامتری گول بزنه!
چطور ممکنه یک شخص بتونه چنین مدلی پیاده کنه؟ (چون این مدلها هر بار چند ماه و چند میلیون دلار آموزش‌شون هزینه می‌بره و قطعا یک شخص به چنین زیرساخت برای آموزش دسترسی نداره)
نکته جالب اینکه حتی از داده جدید هم برای آموزش استفاده نکرده!
پس چطوری تونسته چنین مدلی بسازه!؟
هیچ اومده یک سری لایه‌ی همون مدل llama3-70b رو با یک پترن ساده‌ای کپی کرده پست سر هم استک کرد!
اول ۲۰ تا لایه‌ی اول لاما-۳ رو برمیداره بعد لایه ۱۰ تا ۳۰ رو برمیداره(عملا لایه‌ی ۱۰ تا ۲۰ داره دوبار کپی می‌شود) و به ترتیب لایه‌ی ۲۰ تا ۴۰ و ۳۰ تا ۵۰ و ... و اینها را پشت هم قرار می‌دهد و مدل ۱۲۰ میلیارد پارامتری رو می‌سازه.
به لحاظ فنی چطوری این کار رو کرده؟ از ابزاری به اسم mergekit استفاده کرده(اون فایل کانفیگ مربوط به همین ابزاره)
این مدل الان توی hugging face به اسم Meta-Llama-3-120B-Instruct هست اونجا کانفیگ کپی کردن لایه ها رو گذاشته(در عکس ببنید)
شاید بگید اون تست خاص و میزان تلاش یک انسان برای متقاعد کردن یک مدل معیار خوبی واسه هوشمندی نیست، باید عرض کنم این مدل در تست عمومی تر Creative Writing benchmark از Claudia Haiku بهتره و قبل از Claudia-Sonnet قرار می‌گیره.
اتفاقی که داره میافته عجیبه!
صرف افزایش پارامتر از طریق افزایش عمق شبکه داره کارایی شبکه افزایش میده!
بدون هیچ آموزش جدید
بدون داده جدید
بدون هیچ fine-tuning
فقط کپی کردن لایه‌ها
همین!
👍8🔥4
Dev Tweet
مثلا در یک مساله خاص که دیپ مایند با 300 هزار پارامتر به یک دقت و نتیجه رسیده این شبکه با 200 پارامتر به همون نتیجه رسیده!
اگه این پست شبکه‌ی KAN رو خاطرتون باشه گفتیم که ممکنه یک شبکه‌ای MLP که با 300 هزار پارامتر به یک دقت میرسه همون دقت با 200 هزار پارامتر از شبکه‌ی KAN به دست بیاد.
این کاربر یک مدل کوچک سبک GPT-2 را ه جای MLP با استفاده از شبکه‌های Kolmogorov-Arnold (KANs) روی 134 میلیون توکن از مجموعه داده TinyStories با استفاده از JAX آموزش داده. در نتیجه فهمیده KAN می‌توانند با 25٪ پارامتر کمتر عملکرد مشابهی را ارائه دهند!
از یک شبکه‌ی KAN استفاده شده است که چبیشف چندجمله‌ای‌ها را (الهام گرفته از https://github.com/SynodicMonth/ChebyKAN/blob/main/ChebyKANLayer.py) به عنوان تابع پایه استفاده کرده.
مدل MLP دارای 3.3 میلیون پارامتر است و نسخه KAN دارای 2.5 است.
پارامترهای کمتر لزوماً به معنی کمتر بودن محاسبات نیست اما لایه‌های KAN هنوز نیاز دارد که برای GPU بهینه‌سازی شوند.
5👍1
این لینک رو حتما یه نگاه بندازین.
مسئول مدلهای لاما در هاگینگ‌فیس(کسی که یکی از مسئولیت‌هاش ستاپ کردن و نگه‌داری مجموعه مدلهای لاما شرکت متا روی هاگینگ فیس هست) اومده یک واژه‌نامه از کلمات و اصلاحات مدلهای زبانی جمع‌آوری کرده و با بیان ساده تعریف کرده.
به نظرم کاملا ارزشش رو داره یه ساعتی وقت بذارید. حجم زیادی اطلاعات مفید میگیرید.
5👍2
مهندسی نرم‌افزار و هوش مصنوعی
(تجربه من از برنامه نویسی با مدل زبانی)
من تقریبا یک سالی هست که خیلی کم کد می‌نویسم چون دیگه میدونم چطوری تسکهام روی برای copilot توضیح بدم اونجوری که میخوام انجامش بده.
با وجود اینکه خیلی کمتر کد زدم برنامه‌های بیشتری تولید کردم مثلا برای کارام برنامه‌های کوچیک کوچیک خیلی بیشتر نوشتم.
مدل‌های زبانی دارند سطح انتزاعی فکر کردن ما در مورد برنامه‌ها رو بالا می‌برند یعنی مثلا اگر سینتکس جاوا رو بلد نیستید و خیلی کتابخونه‌هاش رو نمیشناسید  ولی اگر زبان اصلی شما پایتون است و پارادایم شی‌گرائی را در پایتون خوب بلدید با کمترین زمان ممکن میتونید سوئیچ کنید روی جاوا. حتی یک برنامه نویس پایتون که شی گرایی رو خیلی خوب بلده با کمک مدل زبانی میتونه کد جاوا خیلی بهتری بنویسه چون مدل‌های زبانی کاری کردند که اصل بر تسلط بر انتزاعه و مهندسی نرم افزار است نه مهارت توسعه فانکشن و کلاس.
تجربه من در استفاده از مدل‌های زبانی رایگان که context length کوتاه‌تری به نسبت مدلهای پولی دارند این بوده که همین context length مانع بزرگی برای استفاده کردن از مدل زبانی در سطح انتزاعی بالاتره چون از وقتی context length نسخه copilot من از ۴۰۰۰ تا به ۸۰۰۰تا کاراکتر افزایش پیدا کرده می‌بینم که میتونم برای تسکهای انتزاعی تری استفاده‌ش کنم اما با افزایش context length مدل معمولا دچار نوعی حواس پرتی میشه و ممکنه لازم باشه یک چیز رو با طرق مختلف ازش بخواهید تا براتون انجام بده.
این رو امروز که تو شرکت مجبور به یک ریفکتور سنگین بودیم و با یک پترن خاصی داشتیم توسعه می‌دادیم فهمیدیم(اصلا نمیدونم برای اون نیاز خاص ما دیزاین پترن وجود داره یا نه چون یک پترنی درآوردیم که ظاهرا تا الان جواب داده اگه جواب نده احتمالا تا نیمه خرداد تیم‌مون تعلیق میشه😂) جایی بود که فقط تجربه به دادمون می‌رسید (نه اینکه بگم خیلی باتجربه بودیم) یعنی اگر باتجربه‌تر بودیم اون کد رو بهتر طراحی می‌کردیم و اگر تجربه رو نداشتیم مدل زبانی به دادمون نمی‌رسید و رسما به فنا میرفتیم.
پ.ن: اینا رو منی می‌نویسم که حتی عکسی رو که مدیر از باگ سیستم  با گوشی‌ش از روی مانتیور گرفته تو تلگرام برام فرستاده با copilot حلش میکنم!
پ.ن۲: اگر فعلا قصد در حال حاضر مهندسی نرم‌افزار بلد نیستید یعنی تجربه یا توانایی یا موقعیت کد زدن در کدبیسهای بزرگ رو ندارید استفاده بی‌رویه و غلط از این مدلهای زبانی با ایجاد توهم مهندس افزار بودن به فنا میده‌تون چون در سیستمی که مثلا بیش از هزارتا تسک داره بیش از اینکه توسعه مهم باشه نظم توسعه(معماری) مهمه چون اگر بیزینس بخواد اسکیل کنه و چه به لحاظ اسکیل کردن فیچرها و چه منابع، اگر معماری درست و درمون نداشته باشید ممکنه کل بیزینس رو با سر بزنید زمین. یک‌ از دوستان که خیلی برنامه نویس قابلی بود تعریف می‌کرد چطوری ریفکتور کردن(با پروژه بزرگ رو ریفکتور کرده باشی تا بدونی چاه ریفکتور چیه😐) بی‌حساب و کتاب و بی‌موقع باعث شده بود بیزینس‌شون به علت محدودیت منابع مالی کل پروژه رو جمع کنه:) (اسم پروژه رو بگم اکثرا میشناسید)
پ.ن۳: حرفهایی که من در مورد مدل زبانی میزنم‌ واسه الانه نه شش ماهه دیگه! به زودی مدل‌های زبانی در سطح انتزاع بالاتر مثل معماری هم پیشرفت خواهند کرد و میتونن از من و شما با best practiceهای بهتری و design patternهای مناسب‌تری کد بزنن!
پ.ن۴: اگر پ.ن قبلی شما رو به ترس انداخته که چقدر احتمالش بالاست که مدل‌های زبانی ممکنه آینده کاری نیروهای فنی حوزه آیتی رو به فنا بدن(شاید نگرانی بجایی باشه ولی من فعلا نگران نیستم) به نظرم دورترین شغل در رده فنی به جایگزین شدن با هوش مصنوعی تسکهای رده devops است.(به نظر حتی مهندسی محصولم با فهمی که من از تسکاش دارم خیلی میتونه مورد تهدید قرار بگیره مگر اینکه اون نیرو تجربه تحلیل بیزینسی خودش رو خیلی بالا ببره که اون موقع میشه طلا)
پ.ن۵: چرا در مورد آینده شغلی‌م و هوش مصنوعی نگران نیستم چون معتقدم چیزی که شغل من رو به خطر می‌اندازه بحران‌های اقتصادی و به‌خصوص بحران منابع مالی در حوزه tech هست که دیگر شرکت‌ها و سرمایه گزاران علاقه به برنامه‌های توسعه‌‌ای نداشته باشند و بخواهند صرفا از سرویس‌های جاری کسب درآمد کنند ولی مادامی که علاقه به توسعه وجود داشته باشد نیازش هم پیدا می‌شود و تقاضا برای نیروی فنی به وجود می‌آید.
پ.ن۶: آنقدر تعلیق زدم هاشیه(پ.ن‌ها) از اصل متن بیشتر شد:)
لطفا نقدم کنید تا بیشتر فکر کنم بیشتر یاد بگیرم❤️
👍7
Forwarded from Python BackendHub (Mani)
این عکس واقعا خیلی قشنگ نشون میده over engineering رو. بیشتر مواقع زمانی اتفاق میفته که میخوایم آینده رو پیشبینی کنیم.

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

@PyBackendHub
Python BackendHub
این عکس واقعا خیلی قشنگ نشون میده over engineering رو. بیشتر مواقع زمانی اتفاق میفته که میخوایم آینده رو پیشبینی کنیم. تا وقتی به حد کافی نقطه مشخص دارین سعی نکنید سولوشنی بدید که همه کیس هارو کاور کنه. معمولا سولوشن پرفکت اول مسیر خودشو نشون نمیده. @PyBackendHub
کانال تو حوزه برنامه نویسی مثه علف هرز زیاده اکثرا دنبال کردنشون نفعی خاصی به شما نمی‌رسونه این کانال واقعا جز معدود کانالهاییه که اگه به مهندسی نرم‌افزار علاقه دارید به دردتون میخوره.
مطالب واقعا مفیدی مینویسه که معمولا دید خوبی میده مخصوصا اگه تجربه کار پروداکشن داشته باشید.
نویسنده‌ش رو نمیشناسم ولی دمش گرم❤️

@PyBackendHub
👍5
اکستنش خفن مایکروسافت برای Vscode برای کارهای Data Science
اگر تجربه کار کردن با csv رو داشته باشید و بخواهید یه کار تحلیلی دم دستی بکنید احتمالا مستقیم میرید سراغ notebook. حالا یا jupyter رو مستقیم توی بروزر اجرا کنید یا توی vscode.
وقتی واقعا جذاب نیست هنوز!
چون هی باید کد روی dataframe های پاندا بزنی مخصوصا جایی باشه کد زدنه واقعا اهمیت نداشته باشه و خروجی تحلیل موردی شما اهمیت بیشتری داشته. مثلا وقتی که بخواهید unique_count مقادیر هر ستون رو بگیرید. یا مثلا سریعتر بتونم چندتا چیز رو با هم فیلتر کنم و درگیر نوشتن کوئری روی Dataframe نشم خیلی بهتره.
دیروز این اکستنش خفن مایکروسافت رو دیدم
Data Wrangler
باهاش کار کردم واقعا لذت بخش بود و واقعا سرعت کار رو زیاد میکرد و مجبور نبودی روی چیزی که دوست نداری تمرکز کنی و فقط روی نتیجه تمرکز میکنیی.
حتما به گیت هابش سر بزنید.
جالبش اینکه هم روی سلولهای Jupyter کار میکنه یعنی میتونید با کد pandas تغییرات مد نظر رو بدید و دیتافریم حاصل رو میگیره و روی تحلیل اولیه میزنه. و هم روی فایل CSV رو با ابزارهای تحلیلی باز میکنه و از عملیاتهایی که انجام میده کد تولید میکنه.
تا زمانی که این گیف رو نبینید متوجه نمیشید چه لعبتیه:)).
7👍1
آینده‌ی هوش مصنوعی
در این رشته توئیت مقایسه جالبی بین روند توسعه سرعت هواپیما و نرخ کلاک cpu با روند توسعه ai انجام داده که نکات خیلی جالبی‌داره. من چند تا نکته‌ش رو در ادامه میارم:
۱. مقایسه پیشرفت‌های سریع در سرعت هواپیماها در دهه ۱۹۶۰ با پیشرفت فعلی در هوش مصنوعی نشان می‌ده که همانطوری که روند افزایش سرعت هواپیماها در هوانوردی به یک سطح ثابت رسید، توسعه هوش مصنوعی نیز ممکنه با کندی مواجه شود. انتظار رشد مداوم در سرعت هواپیما آنقدر بالا رفته بود که مردم پیشاپیش رزرو پیشین پروازهای به ماه رو رزرو. میکردند چون مطمئن بودند این روند افزایش سرعت اینقدر ادامه داره که روزی با راحتی میشه با هواپیما به ماه سفر کرد. اما این اتفاق نیفتاد و این روند با محدودیت‌های غیرمنتظره‌ای روبرو شد.

در فناوری این رو میشه به عنوان یک قاعده ی طلایی در نظر گرفت رشد که «رشد نمایی در نهایت به سیگموید تبدیل میشود» یعنی رشد در فناوری اغلب از یک روند نمایی پیروی می‌کند ولی در نهایت به سطحی ثابت می‌رسد و یک منحنی سیگموئیدی (Sigmoid) را تشکیل می‌دهد. این الگو در حوزه‌های مختلف فناوری مانند ثابت شدن سرعت کلاک CPU‌ها هم دیده شد.

برای هوش مصنوعی، به‌ویژه مدل‌های زبان بزرگ (LLMs) مانند GPT-3 و GPT-4، دو چالش اصلی می‌تواند مانع از توسعه بیشتر میشه:

۱. کیفیت داده‌ها: دسترسی به داده‌های باکیفیت برای آموزش مدل‌ کارآمد حیاتیه. امکان دارد که منبع داده‌های ارزشمند در حال تمام شدن باشه یعنی شرکتهای بزرگ ai tech هر چی داده با کیفیت بود رو جمع کردند داده با کیفیت زیادی باقی نمونده این نکته توضیح میده که چرا مدل‌های اخیر این شرکتها سطوح عملکرد مشابهی دارند و مدتیه جهش قابل توجهی در مدلهاشون ندارند.

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

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

۲. مدتها از زمان انتظار برای ارائه‌ی GPT-5 می‌گذرد، تغییرات در تمرکز شرکت‌ها، و تغییرات در انتظارات جامعه هوش مصنوعی ممکن است نشان دهنده این باشد که محدودیت‌های مقیاس‌بندی مدل‌های هوش مصنوعی در حال حاضر توسط کسانی که در خط مقدم تحقیقات هوش مصنوعی هستند، پذیرفته شده است.

انتشار سریع GPT-3.5 به دنبال GPT-4 منجر به توهمی شده که از سرعت پیشرفت‌های مدل‌های زبانی بزرگ را ایجاد کرده باشد. این رشته توئیت درکی واقع‌بینانه‌تر از هوش مصنوعی به عنوان بخشی از چرخه فناوری را ارائه می‌دهد.

در مجموع، در حالی که هوش مصنوعی پیشرفت‌های قابل توجهی داشته است، با چالش‌هایی مواجه است که می‌تواند پیشرفت آن را کند کند، همانطور که سایر فناوری‌ها در گذشته تجربه کرده‌اند. آینده مقیاس‌بندی هوش مصنوعی نامشخص است و صنعت در حال سازگاری با این مرحله از توقف است.
Dev Tweet
آینده‌ی هوش مصنوعی در این رشته توئیت مقایسه جالبی بین روند توسعه سرعت هواپیما و نرخ کلاک cpu با روند توسعه ai انجام داده که نکات خیلی جالبی‌داره. من چند تا نکته‌ش رو در ادامه میارم: ۱. مقایسه پیشرفت‌های سریع در سرعت هواپیماها در دهه ۱۹۶۰ با پیشرفت فعلی در…
این رشته توئیت از جهت نقد توهمات عوامانه در مورد قابلیت‌ها و آینده‌های هوش مصنوعی آوردم که گاهی آدم‌های خیلی مهم رو هم درگیر خودش می‌کنه ولی خب اونها معمولا از دامن زدن به این توهمات یه چیزی گیرشون میاد...
البته من لزوما با هر چیزی که میذارم هم نظر نیستم ولی از جهت دیدن کلان ایده‌های متفاوت به این‌ها میپردازم.
👍4
ورژن قدیمیِ 《هوش مصنوعی باعث بی‌سوادی آدما میشه》
👍2
Dev Tweet
ورژن قدیمیِ 《هوش مصنوعی باعث بی‌سوادی آدما میشه》
این باور معمولا از اونجا ناشی میشه که آدما هر چی بیشتر دانش low level(منظور سطح کیفی نیست منظور سطح انتزاعه) داشته باشن و از مکانیزم هر چیزی سر دربیارن خفن‌ترن!
ما تو شرکت داشتیم داده هامون رو روی Yolov8 ترین میکردیم که یه دفعه دیدیم خبر اومد ورژن 10 اومده!
این Yolo آپدیتهاش شبیه تلگرامه:)
( اپدیتهای مکرر با تغییرات اساسی)