مدل NLLB-200 از متا؛ ترجمه ماشینی ۲۰۰ زبانه
فرض کنید دیگه زبان یه محدودیت برای استفاده از سایتهای مختلف و مکالمه با افرادی در زبانهای دیگه نباشه. هدف ترجمه ماشینی همینه.
حالا گروه هوش فیسبوک یا همون Meta AI اومده یه گام بلند برداشته و اسم این گام رو No Language Left Behind (NLLB) گذاشته که این گام شامل دو تا پروژهست:
اول. ترجمه ماشینی بین ۲۰۰ زبان! اما نه فقط برای زبانهای معروف بلک حتی برای زبانهای با منابع کم مثل اردو و اتریشی).
دوم. ترجمه صدا (speech) برای زبانهای مختلف که برای همه زبانها من جمله زبانهایی که ساختار نوشتاری استانداردی ندارند قابل استفادهست.
این مدل نسبت به Google Translate یک مقدار محصوصا در زبانهای کممنبع بهتر شده اما نکته مهمتر اینه که این مدل اوپن سورسه که ملت راه رو ادامه بدن. همین کافیه تا ببینید چقدر این کارشون ارزشمنده و بازیعوضکنه. این به کجا ختم میشه؟ به اونجا که شما مثلا میتونید توی متاورس با ملت از هر جای جهان تعامل داشته باشید و مثلا با هم بشینید جلسه کتابخوانی راه بندازید و هر کس به زبون خودش حرف بزنه. اونجا که کتابها به همه زبانها ترجمه بشن مخصوصا از زبانهای گمنامتر به زبانهای پرطرفدارتر که در لینک اول پایین میتونید نمونههاشو ببینید. جالب نیست؟
شروع این حرکت از معماری LASER در سال ۲۰۱۸ اتفاق افتاد که اون موقع از ۵۰ زبان پشتیبانی میکرد و واقعا مدل کارایی بود؛ قبلا هم از این مدل در کانال اسم آوردیم. چند مدل و دیتای دیگه داده شد تا رسید به LASER2 با پشتیبانی از ۱۰۰ زبان. بعد هم NLLB-200 که امسال دادند برای ترجمهای ۲۰۰ زبانه و بعد دیتای NLLB-Data-200 و در نهایت LASER3 که وظیفهاش اینه که امبدینگهایی بسازه که جملاتی که در ۲۰۰ زبان مختلف یک معنی میدن راحت پیدا بشن.
تا اینجا رو داشته باشید و یه سر به لینکها بزنید تا در موعدی اگر عمر و وقت بیشتر بود مفصل مدلش رو هم شرح بدیم.
لینک دمو:
https://nllb.metademolab.com
لینک بلاگ کلی:
https://ai.facebook.com/research/no-language-left-behind/
لینک بلاگ جزئیتر:
https://ai.facebook.com/blog/nllb-200-high-quality-machine-translation/
لینک مقاله:
https://research.facebook.com/publications/no-language-left-behind/
لینگ ریپو (مدل، دیتا و…)
https://github.com/facebookresearch/fairseq/tree/nllb/
#read
#paper
#blog
@nlp_stuff
فرض کنید دیگه زبان یه محدودیت برای استفاده از سایتهای مختلف و مکالمه با افرادی در زبانهای دیگه نباشه. هدف ترجمه ماشینی همینه.
حالا گروه هوش فیسبوک یا همون Meta AI اومده یه گام بلند برداشته و اسم این گام رو No Language Left Behind (NLLB) گذاشته که این گام شامل دو تا پروژهست:
اول. ترجمه ماشینی بین ۲۰۰ زبان! اما نه فقط برای زبانهای معروف بلک حتی برای زبانهای با منابع کم مثل اردو و اتریشی).
دوم. ترجمه صدا (speech) برای زبانهای مختلف که برای همه زبانها من جمله زبانهایی که ساختار نوشتاری استانداردی ندارند قابل استفادهست.
این مدل نسبت به Google Translate یک مقدار محصوصا در زبانهای کممنبع بهتر شده اما نکته مهمتر اینه که این مدل اوپن سورسه که ملت راه رو ادامه بدن. همین کافیه تا ببینید چقدر این کارشون ارزشمنده و بازیعوضکنه. این به کجا ختم میشه؟ به اونجا که شما مثلا میتونید توی متاورس با ملت از هر جای جهان تعامل داشته باشید و مثلا با هم بشینید جلسه کتابخوانی راه بندازید و هر کس به زبون خودش حرف بزنه. اونجا که کتابها به همه زبانها ترجمه بشن مخصوصا از زبانهای گمنامتر به زبانهای پرطرفدارتر که در لینک اول پایین میتونید نمونههاشو ببینید. جالب نیست؟
شروع این حرکت از معماری LASER در سال ۲۰۱۸ اتفاق افتاد که اون موقع از ۵۰ زبان پشتیبانی میکرد و واقعا مدل کارایی بود؛ قبلا هم از این مدل در کانال اسم آوردیم. چند مدل و دیتای دیگه داده شد تا رسید به LASER2 با پشتیبانی از ۱۰۰ زبان. بعد هم NLLB-200 که امسال دادند برای ترجمهای ۲۰۰ زبانه و بعد دیتای NLLB-Data-200 و در نهایت LASER3 که وظیفهاش اینه که امبدینگهایی بسازه که جملاتی که در ۲۰۰ زبان مختلف یک معنی میدن راحت پیدا بشن.
تا اینجا رو داشته باشید و یه سر به لینکها بزنید تا در موعدی اگر عمر و وقت بیشتر بود مفصل مدلش رو هم شرح بدیم.
لینک دمو:
https://nllb.metademolab.com
لینک بلاگ کلی:
https://ai.facebook.com/research/no-language-left-behind/
لینک بلاگ جزئیتر:
https://ai.facebook.com/blog/nllb-200-high-quality-machine-translation/
لینک مقاله:
https://research.facebook.com/publications/no-language-left-behind/
لینگ ریپو (مدل، دیتا و…)
https://github.com/facebookresearch/fairseq/tree/nllb/
#read
#paper
#blog
@nlp_stuff
Telegram
stuff
ارمغانی دیگر از قلمرو مولتیمودال! تولید تصاویر انسانی با استایلهای مختلف.
جذابیت مدلهای generative مخصوصا در حوزه تصویر داره میل به بینهایت میکنه. مدلهایی مثل deep fake قبلا خیلی گرد و خاک کردند. اخیرا مدلی بهنام Text2Human معرفی شده که با استفاده از جملات متنی یک استایل از انسان واقعی رو تولید میکنه. روش کارش به این صورته که شما در ورودی وضعیت بدنی (human pose) رو به صورت تصویر میدید (که هر تصویری میتونه باشه و خود دمو هم چندین مثال داره) و فرم لباس و بافت لباس مورد نظرتون رو به صورت جملات متنی میدید و مدل براتون تصاویر آدمهایی با همان ویژگی توصیفشده توسط شما رو تولید میکنه. شیوه کار کلی این مدل در دو گام اصلی خلاصه میشه. در گام اول یک تصویرخام از فرم بدن انسان (human pose)، تبدیل به یک قالب کلی انسان با یک لباس بدون بافت و شکل مشخص میشه (human parsing). سپس در گام دوم خروجی گام اول گرفته میشه و بافت و فرم لباس رو به تصویر گام قبل اضافه میکنه. نمای کلی مدل در تصویر زیر اومده. برای گام اول و تولید بردار بازنمایی قالب بدن انسان از جملات ورودی، از یک شبکه با چندین لایه fully connected استفاده میشه و این بردار بازنمایی به همراه تصویر خام به یک شبکه Auto Encoder داده میشه تا در خروجی یک قالب کلی از بدن انسان که فرم لباس در اون مشخصه ولی رنگ و بافت خاصی نداره رو خروجی بده. سپس برای گام دوم، خروجی تصویر گام اول به دو شبکه Auto Encoder همکار داده میشه که یکی مسوول بررسی ویژگیهای سطح بالای تصویر استایل انسان هست و دیگری به صورت ریزدانهتری فیچرها رو در نظر میگیره (فرض کنید در شبکه اول هر چند ده پیکسل مجاور هم تجمیع میشوند و به شبکه داده میشوند در حالیکه در شبکه دوم هر پیکسل یک درایه از بردار ورودی را تشکیل میدهد). از طرفی بازنمایی جملات نیز به این شبکهها داده میشود. سپس برای اینکه این دو شبکه همکاری داشته باشند خروجی دیکودر شبکه اول به ورودی دیکودر شبکه دوم داده میشه. یعنی شبکه دوم علاوه بر دریافت خروجی encoder خودش، خروجی دیکودر شبکه اول رو هم دریافت میکنه و بعد اقدام به بازسازی تصویر نهایی میکنه. معماری این قسمت رو هم در تصاویر میتونید ببینید. این مدل بر روی هاگینگفیس هم serve شده و میتونید دموش رو به صورت رایگان مشاهده کنید.
لینک مقاله:
https://arxiv.org/abs/2205.15996
لینک دمو:
https://huggingface.co/spaces/CVPR/Text2Human
لینک گیتهاب:
https://github.com/yumingj/Text2Human
#read
#paper
@nlp_stuff
جذابیت مدلهای generative مخصوصا در حوزه تصویر داره میل به بینهایت میکنه. مدلهایی مثل deep fake قبلا خیلی گرد و خاک کردند. اخیرا مدلی بهنام Text2Human معرفی شده که با استفاده از جملات متنی یک استایل از انسان واقعی رو تولید میکنه. روش کارش به این صورته که شما در ورودی وضعیت بدنی (human pose) رو به صورت تصویر میدید (که هر تصویری میتونه باشه و خود دمو هم چندین مثال داره) و فرم لباس و بافت لباس مورد نظرتون رو به صورت جملات متنی میدید و مدل براتون تصاویر آدمهایی با همان ویژگی توصیفشده توسط شما رو تولید میکنه. شیوه کار کلی این مدل در دو گام اصلی خلاصه میشه. در گام اول یک تصویرخام از فرم بدن انسان (human pose)، تبدیل به یک قالب کلی انسان با یک لباس بدون بافت و شکل مشخص میشه (human parsing). سپس در گام دوم خروجی گام اول گرفته میشه و بافت و فرم لباس رو به تصویر گام قبل اضافه میکنه. نمای کلی مدل در تصویر زیر اومده. برای گام اول و تولید بردار بازنمایی قالب بدن انسان از جملات ورودی، از یک شبکه با چندین لایه fully connected استفاده میشه و این بردار بازنمایی به همراه تصویر خام به یک شبکه Auto Encoder داده میشه تا در خروجی یک قالب کلی از بدن انسان که فرم لباس در اون مشخصه ولی رنگ و بافت خاصی نداره رو خروجی بده. سپس برای گام دوم، خروجی تصویر گام اول به دو شبکه Auto Encoder همکار داده میشه که یکی مسوول بررسی ویژگیهای سطح بالای تصویر استایل انسان هست و دیگری به صورت ریزدانهتری فیچرها رو در نظر میگیره (فرض کنید در شبکه اول هر چند ده پیکسل مجاور هم تجمیع میشوند و به شبکه داده میشوند در حالیکه در شبکه دوم هر پیکسل یک درایه از بردار ورودی را تشکیل میدهد). از طرفی بازنمایی جملات نیز به این شبکهها داده میشود. سپس برای اینکه این دو شبکه همکاری داشته باشند خروجی دیکودر شبکه اول به ورودی دیکودر شبکه دوم داده میشه. یعنی شبکه دوم علاوه بر دریافت خروجی encoder خودش، خروجی دیکودر شبکه اول رو هم دریافت میکنه و بعد اقدام به بازسازی تصویر نهایی میکنه. معماری این قسمت رو هم در تصاویر میتونید ببینید. این مدل بر روی هاگینگفیس هم serve شده و میتونید دموش رو به صورت رایگان مشاهده کنید.
لینک مقاله:
https://arxiv.org/abs/2205.15996
لینک دمو:
https://huggingface.co/spaces/CVPR/Text2Human
لینک گیتهاب:
https://github.com/yumingj/Text2Human
#read
#paper
@nlp_stuff
Telegram
stuff
رهایی از دوراهی سخت؛ هم تنسورفلو، هم پایتورچ با IVY
تا به حال احتمالا با چالش سخت انتخاب بین تنسورفلو و پایتورچ مواجه شده باشید. اخیرا با اضافه شدن Jax هم این انتخاب سختتر شده. اما تیم unifyai یه فریمورک جدید به نام IVY معرفی کرده که یک syntax یکپارچه برای توسعه مدلهای دیپ داره و صرفا با تنظیم backend این پکیج روی هر یک از فریمورکهای تنسورفلو، پایتورچ و یا jax میتونید از عایدات همون ابزار بهرهمند بشید. البته این فریمورک در مسیر توسعه است و با توجه به عمر کوتاهش اما تعداد استار بسیار زیادی گرفته که نشون میده به نظر راه درستی رو داره میره.
لینک گیتهاب:
https://github.com/unifyai/ivy
#tool
@nlp_stuff
تا به حال احتمالا با چالش سخت انتخاب بین تنسورفلو و پایتورچ مواجه شده باشید. اخیرا با اضافه شدن Jax هم این انتخاب سختتر شده. اما تیم unifyai یه فریمورک جدید به نام IVY معرفی کرده که یک syntax یکپارچه برای توسعه مدلهای دیپ داره و صرفا با تنظیم backend این پکیج روی هر یک از فریمورکهای تنسورفلو، پایتورچ و یا jax میتونید از عایدات همون ابزار بهرهمند بشید. البته این فریمورک در مسیر توسعه است و با توجه به عمر کوتاهش اما تعداد استار بسیار زیادی گرفته که نشون میده به نظر راه درستی رو داره میره.
لینک گیتهاب:
https://github.com/unifyai/ivy
#tool
@nlp_stuff
Telegram
stuff
گلچین مقالههای گرافی ICML2022
کنفرانس ICML (که یکی از معروفترین کنفرانسهای مربوط به ماشین لرنینگه) در هفتهای که گذشت برگزار شد و خب حالا نوبت دروی محصولاته. در همین راستا آقای Galkin اومدند و گلچینی از مهمترین مقالات گرافی ICML2022 در حوزههای مختلف مثل مدلهای Diffusion تولید گراف، ترنسفورمرهای گرافی، استدلال الگوریتمی به کمک گراف و استدلال بر روی گرافهای دانش و ... رو مرور کردند. در صورتی که سر و کارتون با فیلد ماشین لرنینگ گرافی هست میتونه مفید باشه براتون.
لینک بلاگ:
https://towardsdatascience.com/graph-machine-learning-icml-2022-252f39865c70
#read
#blog
@nlp_stuff
کنفرانس ICML (که یکی از معروفترین کنفرانسهای مربوط به ماشین لرنینگه) در هفتهای که گذشت برگزار شد و خب حالا نوبت دروی محصولاته. در همین راستا آقای Galkin اومدند و گلچینی از مهمترین مقالات گرافی ICML2022 در حوزههای مختلف مثل مدلهای Diffusion تولید گراف، ترنسفورمرهای گرافی، استدلال الگوریتمی به کمک گراف و استدلال بر روی گرافهای دانش و ... رو مرور کردند. در صورتی که سر و کارتون با فیلد ماشین لرنینگ گرافی هست میتونه مفید باشه براتون.
لینک بلاگ:
https://towardsdatascience.com/graph-machine-learning-icml-2022-252f39865c70
#read
#blog
@nlp_stuff
Medium
Graph Machine Learning @ ICML 2022
Recent advancements and hot trends, July 2022 edition
اوپنسورس شدن جهان پروتئینها توسط دیپمایند
پروتئینها واحدهای پایه اعمال بایولوژیکی بدن انسان هستند. حمل اکسیژنها توسط گلبولها، تشخیص نور توسط چشم، حرکت ماهیچهها و تشخیص سلولهای سرطانی و خلاصه هر چه مکانیزم بایولوژیکی در هر چه موجود زنده هست رو پروتئینها پیریزی میکنند. هر پروتئین خودش از رشتهای از آمینواسیدها تشکیل شده (کلا ۲۰ نوع آمینواسید داریم) که طول این رشته میتونه تا چند هزار آمینواسید هم برسه. حالا نحوه تعامل و فعل و انفعالات بین این آمینواسیدها شکل سهبعدی یک پروتئین رو تعیین میکنه که بسیار پیچیده و دارای پیچخوردگیها و تاهای زیادیه. از طرفی همین شکل سهبعدی پروتئین تعیین میکنه که پروتئین چه کاری و به چه صورتی انجام میده. ما اگر بدونیم میتونیم مثلا سریعتر علت بیماریها رو بفهمیم و سریعتر براشون دارو و درمان پیدا کنیم یا حتی انزیمهایی رو کشف کنیم که بتونن پلاستیک رو بازیافت کنند.
برای چند دهه دانشمندان این حوزه تلاششون بر فهمیدن ساختار یک پروتئین از آمینواسیدهاش بود که این تلاشها به روشهای آماری و بعد هم با ظهور ماشین لرنینگ به دیپلرنینگ سپرده شدند. شرکت دیپمایند در چند سال گذشته ابتدا مدل alphafold رو خلق کرد که میتونست همین تسک رو یعنی پیشبینی شکل سهبعدی هر پروتئین رو انجام بده. مدل alphafold یک مدل انقلابی در حوزه بیوانفورماتیک حساب میشه که یک مساله واقعی رو حل کرده. حالا دیپمایند اومده و طی یک حرکت خفن پیشبینی مدل alphafold از شکل سهبعدی ۲۰۰ میلیون پروتئين (کل تعداد پروتئینهایی که در جهان تا حالا میشناسیم) رو اوپنسورس کرده! به امید این که سرعت در حوزه تحقیقات بایولوژی بالا بره.
لینک توضیح دیپمایند:
https://www.deepmind.com/blog/alphafold-reveals-the-structure-of-the-protein-universe
لینک دیتابیس اوپنسورس شده:
https://alphafold.ebi.ac.uk/
پ.ن.: از این که پستهای کانال رو به اشتراک میگذارید صمیمانه ازتون ممنونیم.
#read
#news
@nlp_stuff
پروتئینها واحدهای پایه اعمال بایولوژیکی بدن انسان هستند. حمل اکسیژنها توسط گلبولها، تشخیص نور توسط چشم، حرکت ماهیچهها و تشخیص سلولهای سرطانی و خلاصه هر چه مکانیزم بایولوژیکی در هر چه موجود زنده هست رو پروتئینها پیریزی میکنند. هر پروتئین خودش از رشتهای از آمینواسیدها تشکیل شده (کلا ۲۰ نوع آمینواسید داریم) که طول این رشته میتونه تا چند هزار آمینواسید هم برسه. حالا نحوه تعامل و فعل و انفعالات بین این آمینواسیدها شکل سهبعدی یک پروتئین رو تعیین میکنه که بسیار پیچیده و دارای پیچخوردگیها و تاهای زیادیه. از طرفی همین شکل سهبعدی پروتئین تعیین میکنه که پروتئین چه کاری و به چه صورتی انجام میده. ما اگر بدونیم میتونیم مثلا سریعتر علت بیماریها رو بفهمیم و سریعتر براشون دارو و درمان پیدا کنیم یا حتی انزیمهایی رو کشف کنیم که بتونن پلاستیک رو بازیافت کنند.
برای چند دهه دانشمندان این حوزه تلاششون بر فهمیدن ساختار یک پروتئین از آمینواسیدهاش بود که این تلاشها به روشهای آماری و بعد هم با ظهور ماشین لرنینگ به دیپلرنینگ سپرده شدند. شرکت دیپمایند در چند سال گذشته ابتدا مدل alphafold رو خلق کرد که میتونست همین تسک رو یعنی پیشبینی شکل سهبعدی هر پروتئین رو انجام بده. مدل alphafold یک مدل انقلابی در حوزه بیوانفورماتیک حساب میشه که یک مساله واقعی رو حل کرده. حالا دیپمایند اومده و طی یک حرکت خفن پیشبینی مدل alphafold از شکل سهبعدی ۲۰۰ میلیون پروتئين (کل تعداد پروتئینهایی که در جهان تا حالا میشناسیم) رو اوپنسورس کرده! به امید این که سرعت در حوزه تحقیقات بایولوژی بالا بره.
لینک توضیح دیپمایند:
https://www.deepmind.com/blog/alphafold-reveals-the-structure-of-the-protein-universe
لینک دیتابیس اوپنسورس شده:
https://alphafold.ebi.ac.uk/
پ.ن.: از این که پستهای کانال رو به اشتراک میگذارید صمیمانه ازتون ممنونیم.
#read
#news
@nlp_stuff
Telegram
stuff
معیار silhouette؛ بایدها و نبایدها
یکی از معیارهایی که برای سنجش کیفیت خوشهبندی ازش میشه استفاده کرد معیار silhouette است. در مسایلی که برچسب ground truth وجود نداره، برای ارزیابی کیفیت خوشهبندی باید از معیارهای ریاضیاتی استفاده کنیم تا کیفیت خوشهبندی مشخص بشه. این معیار به ازای هر سمپل در دیتا محاسبه میشه و برای محاسبه روی کل دیتا معمولا یه تجمیع مثلا از جنس میانگین بر روی اون انجام میشه. این معیار در واقع تشویق میکنه که سمپلهای هر خوشه بهم نزدیک باشند و همزمان سمپلهای یک خوشه بیشترین فاصله رو از نزدیکترین خوشه به خودشون داشته باشند. به همین دلیل هر چقدر خوشهها چگالتر باشند و بهتر از هم جدا شده باشند، مقدار بزرگتری به خودش میگیره. خروجی این معیار بین -۱ تا +۱ است که هر چقدر به +۱ نزدیکتر باشه نشون میده خوشهبندی بهتر انجام شده و هر چقدر به -۱ نزدیکتر باشه نشون میده سمپلها به خوشههای اشتباهی تخصیص داده شدند. مقادیر نزدیک به صفر هم نشوندهنده اینه که خوشهها به مقدار زیادی با هم همپوشانی دارند. اما یه نکته مهم که معمولا در استفاده از این معیار بهش توجه نمیشه، اون پیشفرضی هست که برای محاسبه این معیار درنظر گرفته شده. در واقع این معیار همواره برای خوشههایی که شکل دایرهای تر دارند بیشتر از خوشههای غیر دایرهای شکل (همانند خوشههایی که روشی مانند DBSCAN براتون درمیاره) خواهد بود. در صورتی که فهمیدید شکل خوشهها از حالت دایرهای خارج شده باید از معیارهای دیگهای برای سنجش کیفیت خوشهبندی استفاده کنید. یکی از این معیارها Bayes Information Criterion است که فرمولش رو در تصویر میتونید ببینید.
پ.ن: در تصویر زیر به ترتیب ۳ نوع دیتاست میبینید که در بالای تصویر امتیاز silhouette برای هر سه دیتاست به ترتیب و برای روش های مختلف کلاسترینگ نشون داده شده. همون طور که میبینید برای دیتاست اول و دوم در حالی که روش mini-batch kmeans به طور اشتباه خوشهبندی رو انجام داده اما امتیاز بالاتری گرفته.
منابع:
[1] https://scikit-learn.org/stable/modules/clustering.html#silhouette-coefficient
[2] Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow: Chapter 9
#handsOn
@nlp_stuff
یکی از معیارهایی که برای سنجش کیفیت خوشهبندی ازش میشه استفاده کرد معیار silhouette است. در مسایلی که برچسب ground truth وجود نداره، برای ارزیابی کیفیت خوشهبندی باید از معیارهای ریاضیاتی استفاده کنیم تا کیفیت خوشهبندی مشخص بشه. این معیار به ازای هر سمپل در دیتا محاسبه میشه و برای محاسبه روی کل دیتا معمولا یه تجمیع مثلا از جنس میانگین بر روی اون انجام میشه. این معیار در واقع تشویق میکنه که سمپلهای هر خوشه بهم نزدیک باشند و همزمان سمپلهای یک خوشه بیشترین فاصله رو از نزدیکترین خوشه به خودشون داشته باشند. به همین دلیل هر چقدر خوشهها چگالتر باشند و بهتر از هم جدا شده باشند، مقدار بزرگتری به خودش میگیره. خروجی این معیار بین -۱ تا +۱ است که هر چقدر به +۱ نزدیکتر باشه نشون میده خوشهبندی بهتر انجام شده و هر چقدر به -۱ نزدیکتر باشه نشون میده سمپلها به خوشههای اشتباهی تخصیص داده شدند. مقادیر نزدیک به صفر هم نشوندهنده اینه که خوشهها به مقدار زیادی با هم همپوشانی دارند. اما یه نکته مهم که معمولا در استفاده از این معیار بهش توجه نمیشه، اون پیشفرضی هست که برای محاسبه این معیار درنظر گرفته شده. در واقع این معیار همواره برای خوشههایی که شکل دایرهای تر دارند بیشتر از خوشههای غیر دایرهای شکل (همانند خوشههایی که روشی مانند DBSCAN براتون درمیاره) خواهد بود. در صورتی که فهمیدید شکل خوشهها از حالت دایرهای خارج شده باید از معیارهای دیگهای برای سنجش کیفیت خوشهبندی استفاده کنید. یکی از این معیارها Bayes Information Criterion است که فرمولش رو در تصویر میتونید ببینید.
پ.ن: در تصویر زیر به ترتیب ۳ نوع دیتاست میبینید که در بالای تصویر امتیاز silhouette برای هر سه دیتاست به ترتیب و برای روش های مختلف کلاسترینگ نشون داده شده. همون طور که میبینید برای دیتاست اول و دوم در حالی که روش mini-batch kmeans به طور اشتباه خوشهبندی رو انجام داده اما امتیاز بالاتری گرفته.
منابع:
[1] https://scikit-learn.org/stable/modules/clustering.html#silhouette-coefficient
[2] Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow: Chapter 9
#handsOn
@nlp_stuff
Telegram
stuff
تیر آخر برای فهمیدن ترنسفورمرها!
اگر هنوزم ترنسفورمرها رو مشکل دارید و با خوندن پستهای ما روی ویرگول هنوزم دوشواری دارید، توصیه اکید میکنیم دو تا لینک زیر رو بجوئید. لینک اول یه بلاگ پسته که از بیخ و بن ترنسفورمرها رو توضیح میده. از اول ضرب نقطهای و وانهات انکودینگ شروع کرده تا حتی BPE رو توضیح میده.
لینک دوم هم پیادهسازی پایتورچی ترنسفورمرها رو خط به خط توضیح میده. قبلا ورژن قدیمیش رو پست کرده بودیم. کدش رو میتونید از گیتشون پول کنید و ران کنید و با دیباگ کردن خروجی و متغیرهای قضیه رو ببینید. برای یه مسئله ساده (خروجی دادن یک دنباله ورودی تصادفی) پیاده کردند که راحت خروجی و متغیرها رو ببینید.
ما هر دو این لینکها رو از ریپو سوم (از آقای Elvis) یافتیم که ریپو داره آپدیت هم میشه.
لینک بلاگ:
https://e2eml.school/transformers.html
لینک پیادهسازی:
https://nlp.seas.harvard.edu/annotated-transformer
لینک ریپو:
https://github.com/dair-ai/Transformers-Recipe
#read
#blog
@nlp_stuff
اگر هنوزم ترنسفورمرها رو مشکل دارید و با خوندن پستهای ما روی ویرگول هنوزم دوشواری دارید، توصیه اکید میکنیم دو تا لینک زیر رو بجوئید. لینک اول یه بلاگ پسته که از بیخ و بن ترنسفورمرها رو توضیح میده. از اول ضرب نقطهای و وانهات انکودینگ شروع کرده تا حتی BPE رو توضیح میده.
لینک دوم هم پیادهسازی پایتورچی ترنسفورمرها رو خط به خط توضیح میده. قبلا ورژن قدیمیش رو پست کرده بودیم. کدش رو میتونید از گیتشون پول کنید و ران کنید و با دیباگ کردن خروجی و متغیرهای قضیه رو ببینید. برای یه مسئله ساده (خروجی دادن یک دنباله ورودی تصادفی) پیاده کردند که راحت خروجی و متغیرها رو ببینید.
ما هر دو این لینکها رو از ریپو سوم (از آقای Elvis) یافتیم که ریپو داره آپدیت هم میشه.
لینک بلاگ:
https://e2eml.school/transformers.html
لینک پیادهسازی:
https://nlp.seas.harvard.edu/annotated-transformer
لینک ریپو:
https://github.com/dair-ai/Transformers-Recipe
#read
#blog
@nlp_stuff
Telegram
stuff
مقاومسازی شبکه عصبی در برابر انواع حملات خصمانه!
حتما در سالهای اخیر در مورد Adversarial Attacks و ضعف شبکههای عصبی در تشخیص تصاویری که با افزوده شدن نویزهای کوچک تغییر داده شدهاند شنیدهاید. به طور مشخص، میتوان با افزودن نویز به تصاویر طوری که این نویزها برای چشم انسان پنهان باشند، قدرت تشخیص شبکهی عصبی که روی تصاویر سالم خوب کار میکند را به صفر رساند! از این رو در دههی گذشته محققین بسیاری سعی در یافتن روشهای دفاعی (Defense Mechanism) برای مقابله با این حملات برآمدهاند. اما مشکل اصلی این بوده که هر کدام از این روشهای دفاعی حداکثر برای یک نوع حمله به شبکههای عصبی طراحی شده بودند و با آمدن روش جدیدی از حمله بلااستفاده یا بسیار ضعیف میشدند. از این رو سوال مهمی که مطرح شد این بود که میتوان شبکههای عصبی طراحی کرد که به ازای ورودی های مشخص، توان تشخیص درست را به ازای تمام حملات ممکن در یک همسایگی آن ورودیها داشته باشد؟ از این رو فیلد جدیدی با عنوان Verification of Neural Networks مورد توجه قرار گرفت که سعی در اثبات ریاضیوار توانایی یک NN در تشخیص پیچیده ترین حملات (Adaptive and brute force attacks) دارد.
در کنفرانس اخیر ICML وورکشاپی تحت عنوان Workshop on Formal Verification of Neural Networks برگزار شد که مهمترین پیشرفتها در این حوزه را در چند سال اخیر نشان میدهد. به طور ویژه یکی از این مقالهها (با عنوان Improving adversarial robustness via joint classification and multiple explicit detection classes)، ایدهی Verification شبکههای عصبی که به طور توأمان Classification و Detection انجام میدهند را بررسی میکند.
یکی از راههای افزایش کارآیی شبکههای عصبی برای تشخیص Adversarial attackها افزودن Detector به شبکهی عصبی است. منظور از Detector یک Binary Classifier است که تعیین میکند آیا ورودی داده شده تصویری سالم است یا مورد تغییر قرار گرفته است و به نوعی Adversarial حساب میشود؟ به طور مثال اگر میخواهیم از مجموعه دادهی MNIST برای train کردن شبکهی عصبی استفاده کنیم که شامل ده کلاس است، میتوان کلاس یازدهمی اضافه کرد که وظیفهاش شناسایی عکسهایی است که دستکاری شدند. این مقاله به طور ویژه نشان میدهد که با افزودن تعداد بیشتری از این detectorها به Network، چگونه میتوان توانایی تشخیص آن شبکهی عصبی را بهبود داد. به طور مشخص این مقاله، نحوهی Verify کردن و Train کردن چنین شبکههای پیچیدهتری را شرح میدهد و با آزمایشهای گوناگون روی دادههای مختلف موثر بودن چنین روشی را نشان میدهد.
پ.ن. با تشکر از آقای سینا بهارلویی که این پست را برامون ارسال کردند. شما هم اگر پست خوبی داشتید بفرستید تا به اسم خودتون منتشر کنیم. تعارف نکنید خلاصه.
لینک ورکشاپ:
https://www.ml-verification.com
لینک مقاله:
https://download.huan-zhang.com/events/wfvml2022/papers/24_CameraReady_Camera%20Ready.pdf
#read
#paper
@nlp_stuff
حتما در سالهای اخیر در مورد Adversarial Attacks و ضعف شبکههای عصبی در تشخیص تصاویری که با افزوده شدن نویزهای کوچک تغییر داده شدهاند شنیدهاید. به طور مشخص، میتوان با افزودن نویز به تصاویر طوری که این نویزها برای چشم انسان پنهان باشند، قدرت تشخیص شبکهی عصبی که روی تصاویر سالم خوب کار میکند را به صفر رساند! از این رو در دههی گذشته محققین بسیاری سعی در یافتن روشهای دفاعی (Defense Mechanism) برای مقابله با این حملات برآمدهاند. اما مشکل اصلی این بوده که هر کدام از این روشهای دفاعی حداکثر برای یک نوع حمله به شبکههای عصبی طراحی شده بودند و با آمدن روش جدیدی از حمله بلااستفاده یا بسیار ضعیف میشدند. از این رو سوال مهمی که مطرح شد این بود که میتوان شبکههای عصبی طراحی کرد که به ازای ورودی های مشخص، توان تشخیص درست را به ازای تمام حملات ممکن در یک همسایگی آن ورودیها داشته باشد؟ از این رو فیلد جدیدی با عنوان Verification of Neural Networks مورد توجه قرار گرفت که سعی در اثبات ریاضیوار توانایی یک NN در تشخیص پیچیده ترین حملات (Adaptive and brute force attacks) دارد.
در کنفرانس اخیر ICML وورکشاپی تحت عنوان Workshop on Formal Verification of Neural Networks برگزار شد که مهمترین پیشرفتها در این حوزه را در چند سال اخیر نشان میدهد. به طور ویژه یکی از این مقالهها (با عنوان Improving adversarial robustness via joint classification and multiple explicit detection classes)، ایدهی Verification شبکههای عصبی که به طور توأمان Classification و Detection انجام میدهند را بررسی میکند.
یکی از راههای افزایش کارآیی شبکههای عصبی برای تشخیص Adversarial attackها افزودن Detector به شبکهی عصبی است. منظور از Detector یک Binary Classifier است که تعیین میکند آیا ورودی داده شده تصویری سالم است یا مورد تغییر قرار گرفته است و به نوعی Adversarial حساب میشود؟ به طور مثال اگر میخواهیم از مجموعه دادهی MNIST برای train کردن شبکهی عصبی استفاده کنیم که شامل ده کلاس است، میتوان کلاس یازدهمی اضافه کرد که وظیفهاش شناسایی عکسهایی است که دستکاری شدند. این مقاله به طور ویژه نشان میدهد که با افزودن تعداد بیشتری از این detectorها به Network، چگونه میتوان توانایی تشخیص آن شبکهی عصبی را بهبود داد. به طور مشخص این مقاله، نحوهی Verify کردن و Train کردن چنین شبکههای پیچیدهتری را شرح میدهد و با آزمایشهای گوناگون روی دادههای مختلف موثر بودن چنین روشی را نشان میدهد.
پ.ن. با تشکر از آقای سینا بهارلویی که این پست را برامون ارسال کردند. شما هم اگر پست خوبی داشتید بفرستید تا به اسم خودتون منتشر کنیم. تعارف نکنید خلاصه.
لینک ورکشاپ:
https://www.ml-verification.com
لینک مقاله:
https://download.huan-zhang.com/events/wfvml2022/papers/24_CameraReady_Camera%20Ready.pdf
#read
#paper
@nlp_stuff
Telegram
stuff
مرور روشهای SSL (Self-Supervised Learning) در پیشیادگیری NLP
آقا آمیت در این بلاگ پست (مال سال ۲۰۲۰عه) به صورت خیلی جمع و جور اومده یه مروری کرده که چه تسکهایی با SSL طراحی شدند که نقش pretext یا همون pretraining رو میتونند به عهده بگیرند. یکیش رو همین الان نقدا باید بدونید: Masked Language Modeling. این تسک شامل ماسک کردن کلمه و حدس زدنش توسط مدله که در برت استفاده شد. یازده تا روش این مدلی رو ایشون توضیح داده که مدل با اینا میتونه بدون اینکه لازم باشه دادهای لیبل بزنیم، از روی متن representationها رو یاد بگیره و بعد بتونه جلوی تسکهای مختلف قدعلم کنه. اگر ده دقیقه وقت دارید، این بلاگ پست رو بخونید و لذت ببرید.
این یازده تا روش به صورت یکجا به اضافهی مقالاتی که از این روشها استفاده کردند:
• Center Word Prediction (Continuous Bag of Words in Word2Vec)
• Neighbor Word Prediction (skip-gram in Word2Vec)
• Neighbor Sentence Prediction (Skip-Thought Vectors)
• Auto-regressive Language Modeling (Neural Probabilistic Language Model, GPT)
• Masked Language Modeling (BERT, RoBERTa and ALBERT)
• Next Sentence Prediction (BERT)
• Sentence Order Prediction (ALBERT)
• Sentence Permutation (BART)
• Document Rotation (BART)
• Emoji Prediction (DeepMoji)
• Gap Sentence Generation (PEGASUS)
لینک پست:
https://amitness.com/2020/05/self-supervised-learning-nlp/
#read
#blog
@nlp_stuff
آقا آمیت در این بلاگ پست (مال سال ۲۰۲۰عه) به صورت خیلی جمع و جور اومده یه مروری کرده که چه تسکهایی با SSL طراحی شدند که نقش pretext یا همون pretraining رو میتونند به عهده بگیرند. یکیش رو همین الان نقدا باید بدونید: Masked Language Modeling. این تسک شامل ماسک کردن کلمه و حدس زدنش توسط مدله که در برت استفاده شد. یازده تا روش این مدلی رو ایشون توضیح داده که مدل با اینا میتونه بدون اینکه لازم باشه دادهای لیبل بزنیم، از روی متن representationها رو یاد بگیره و بعد بتونه جلوی تسکهای مختلف قدعلم کنه. اگر ده دقیقه وقت دارید، این بلاگ پست رو بخونید و لذت ببرید.
این یازده تا روش به صورت یکجا به اضافهی مقالاتی که از این روشها استفاده کردند:
• Center Word Prediction (Continuous Bag of Words in Word2Vec)
• Neighbor Word Prediction (skip-gram in Word2Vec)
• Neighbor Sentence Prediction (Skip-Thought Vectors)
• Auto-regressive Language Modeling (Neural Probabilistic Language Model, GPT)
• Masked Language Modeling (BERT, RoBERTa and ALBERT)
• Next Sentence Prediction (BERT)
• Sentence Order Prediction (ALBERT)
• Sentence Permutation (BART)
• Document Rotation (BART)
• Emoji Prediction (DeepMoji)
• Gap Sentence Generation (PEGASUS)
لینک پست:
https://amitness.com/2020/05/self-supervised-learning-nlp/
#read
#blog
@nlp_stuff
Amit Chaudhary
Self Supervised Representation Learning in NLP
An overview of self-supervised pretext tasks in Natural Language Processing
چتبات blender bot 3 هدیه facebook research به مشتاقان حوزه چتبات!
چند روزی میگذره که تیم تحقیقاتی فیسبوک چتبات open domain خودش رو به صورت عمومی ریلیز کرده و کد و وزن مدلها و یک دمو از این مدل رو در راه خدا نذر کرده! تیم فیسبوک ادعا کرده که این نذر رو در راه اعتلای جامعه تحقیقاتی انجام داده چرا که اینطوری راه تحقیقات در حوزه conversational AI باز میشه. این مدل در واقع یه سیستم عظیم ماژولار هست که از ماژولهای مختلفی مانند Internet search decision، long term memory access decision، generate internet search query و چندین ماژول دیگه تشکیل شده که فلوی اجرایی کل این مدل رو در تصویر زیر میبینید. علاوه بر اینکه در ماژولهایی مثل generate dialogue response از ترنسفورمرها و مدلهای زبانی مبتنی بر اونها استفاده شده، برای انتخاب اجرای هر یک از این ماژولها هم یه ترنسفورمر ترین شده که در لحظه به ازای یه سری ورودی کنترلی تصمیم میگیره کدوم فلو رو در پیش بگیره. البته دموی این مدل فعلا فقط برای مردم ینگه دنیا (آمریکا) در دسترس هست و فیسبوک گفته همزمان از دیتای دمو هم برای بهبود مدل داره استفاده میکنه. از طرفی فیسبوک، مکانیزمهای امنیتی خاصی رو به کار برده برای اینکه خطرات احتمالی ناشی از سرچهای نابهجا مثل محتوای خشونت و غیره به حداقل برسه (در مورد بحثهایی مثل responsible AI هم قبلا صحبت کرده بودیم و باید کم کم خیلی بیشتر بهش توجه بشه). اگه در حوزه conversational AI کار میکنید داکیومنتها و کدهایی که این تیم منتشر کرده رو حتما شخم بزنید، باشد که رستگار شوید.
پ.ن: خداوکیلی ببینید چقدر کار کردند ولی دارند رایگان همه چیز رو در معرض عموم میذارند. با این کار باور کنید همه کامیونیتی از جمله خود تولیدکنندگان حظ و بهره میبرند.
لینک گیتهاب:
https://github.com/facebookresearch/ParlAI/tree/main/projects/bb3
لینک بلاگ:
https://ai.facebook.com/blog/blenderbot-3-a-175b-parameter-publicly-available-chatbot-that-improves-its-skills-and-safety-over-time/?utm_source=twitter&utm_medium=organic_social&utm_campaign=blenderbot
#paper
#read
@nlp_stuff
چند روزی میگذره که تیم تحقیقاتی فیسبوک چتبات open domain خودش رو به صورت عمومی ریلیز کرده و کد و وزن مدلها و یک دمو از این مدل رو در راه خدا نذر کرده! تیم فیسبوک ادعا کرده که این نذر رو در راه اعتلای جامعه تحقیقاتی انجام داده چرا که اینطوری راه تحقیقات در حوزه conversational AI باز میشه. این مدل در واقع یه سیستم عظیم ماژولار هست که از ماژولهای مختلفی مانند Internet search decision، long term memory access decision، generate internet search query و چندین ماژول دیگه تشکیل شده که فلوی اجرایی کل این مدل رو در تصویر زیر میبینید. علاوه بر اینکه در ماژولهایی مثل generate dialogue response از ترنسفورمرها و مدلهای زبانی مبتنی بر اونها استفاده شده، برای انتخاب اجرای هر یک از این ماژولها هم یه ترنسفورمر ترین شده که در لحظه به ازای یه سری ورودی کنترلی تصمیم میگیره کدوم فلو رو در پیش بگیره. البته دموی این مدل فعلا فقط برای مردم ینگه دنیا (آمریکا) در دسترس هست و فیسبوک گفته همزمان از دیتای دمو هم برای بهبود مدل داره استفاده میکنه. از طرفی فیسبوک، مکانیزمهای امنیتی خاصی رو به کار برده برای اینکه خطرات احتمالی ناشی از سرچهای نابهجا مثل محتوای خشونت و غیره به حداقل برسه (در مورد بحثهایی مثل responsible AI هم قبلا صحبت کرده بودیم و باید کم کم خیلی بیشتر بهش توجه بشه). اگه در حوزه conversational AI کار میکنید داکیومنتها و کدهایی که این تیم منتشر کرده رو حتما شخم بزنید، باشد که رستگار شوید.
پ.ن: خداوکیلی ببینید چقدر کار کردند ولی دارند رایگان همه چیز رو در معرض عموم میذارند. با این کار باور کنید همه کامیونیتی از جمله خود تولیدکنندگان حظ و بهره میبرند.
لینک گیتهاب:
https://github.com/facebookresearch/ParlAI/tree/main/projects/bb3
لینک بلاگ:
https://ai.facebook.com/blog/blenderbot-3-a-175b-parameter-publicly-available-chatbot-that-improves-its-skills-and-safety-over-time/?utm_source=twitter&utm_medium=organic_social&utm_campaign=blenderbot
#paper
#read
@nlp_stuff
Telegram
stuff
بالاخره لذت دسترسی به Stable Diffusion:
در طی یک سال مدلهای تبدیل متن به تصویر زیادی منتشر شدند که البته اکثرا اوپن سورس نبودند و حسرت امتحان کردنشون بر دل ما ماند. حالا ساعاتی پیش مدل Stable Diffusion (که یک مدل تبدیل متن به تصویر هست) اوپن سورس شد.
اگر میخواید توسط بستر اسپیس هاگینگ فیس امتحان کنید (که البته اینقدر بهش هجوم آوردن سخت جواب میده)
https://huggingface.co/spaces/stabilityai/stable-diffusion
اگر هم میخواید خودتون کد رو ران کنید (اگر خودتون GPU دارید یا حتی با کولب هم میشه ران گرفت):
https://huggingface.co/CompVis/stable-diffusion-v1-4
پ.ن: تصویر چند تا نمونهای که خودمون تونستیم خروجی بگیریم رو هم قرار دادیم. بعضی از کپشنهای مربوطه این تصاویر اینگونه بودند:
'Jesus, Painting, Cubism'
'Carl Fredricksen from Up was dead all along according to this depressing fan theory. octane render. cinematic. hyper realism. high detail. 8k. pixar.'
'An old man who eats the books. octane render. cinematic. hyper realism. high detail. 8k. pixar'
'Tom Holland in his old age. octane render. cinematic. hyper realism. high detail. 8k.'
'Tom Holland eating a apple. octane render. cinematic. hyper realism. high detail. 8k.'
'A desperate young Iranian. octane render. cinematic. hyper realism. high detail. 8k.'
'Angela Merkel with hijab'
'birds playing football'
برید لذتش رو ببرید
@nlp_stuff
در طی یک سال مدلهای تبدیل متن به تصویر زیادی منتشر شدند که البته اکثرا اوپن سورس نبودند و حسرت امتحان کردنشون بر دل ما ماند. حالا ساعاتی پیش مدل Stable Diffusion (که یک مدل تبدیل متن به تصویر هست) اوپن سورس شد.
اگر میخواید توسط بستر اسپیس هاگینگ فیس امتحان کنید (که البته اینقدر بهش هجوم آوردن سخت جواب میده)
https://huggingface.co/spaces/stabilityai/stable-diffusion
اگر هم میخواید خودتون کد رو ران کنید (اگر خودتون GPU دارید یا حتی با کولب هم میشه ران گرفت):
https://huggingface.co/CompVis/stable-diffusion-v1-4
پ.ن: تصویر چند تا نمونهای که خودمون تونستیم خروجی بگیریم رو هم قرار دادیم. بعضی از کپشنهای مربوطه این تصاویر اینگونه بودند:
'Jesus, Painting, Cubism'
'Carl Fredricksen from Up was dead all along according to this depressing fan theory. octane render. cinematic. hyper realism. high detail. 8k. pixar.'
'An old man who eats the books. octane render. cinematic. hyper realism. high detail. 8k. pixar'
'Tom Holland in his old age. octane render. cinematic. hyper realism. high detail. 8k.'
'Tom Holland eating a apple. octane render. cinematic. hyper realism. high detail. 8k.'
'A desperate young Iranian. octane render. cinematic. hyper realism. high detail. 8k.'
'Angela Merkel with hijab'
'birds playing football'
برید لذتش رو ببرید
@nlp_stuff
Telegram
stuff
چالهای به نام model drift!
اگه تجربه دیپلوی مدلهای یادگیری ماشین در پروداکشن رو داشته باشید حتما به این موضوع برخوردید که مدلتون بعد از مدتی ممکنه جوابهای خوبی تولید نکنه. یکی از علل رایج همچین اتفاقی، رخداد model drift هست که به انواع مختلف میتونه رخ بده. model drift میتونه ناشی از data drift یا concept drift باشه. خود data drift هم میتونه براساس دریفت در فیچرها و یا دریفت در لیبل رخ بده. تصور کنید میخواید مدل پیشبینی قیمت خانه رو آموزش بدید و بعد از کرونا تقاضای خانههای بزرگ در بازار بیشتر شده و به همین دلیل تعداد خانههای کوچک در بازار بیشتر میشه و خانههای بزرگ کمتر. در این حالت توزیع فیچر سایز خانه عوضشده و منجر به data drift شده. یا در سناریوی دیگهای بهدلیل وقوع موج گرانی قیمت کل خانهها دچار تغییر شده باشه که در اینجا هم data drift از نوع تغییر متغیر هدف رو داریم.
در حالت concept drift هم نه توزیع فیچرها تغییر میکنه و نه توزیع متغیر هدف بلکه تابع نگاشتکننده فیچرها به لیبل تغییر میکنه. تصور کنید که در مساله پیشبینی قیمت خانه نه فیچرها تغییر کرده باشند و نه توزیع لیبلها بلکه افراد به دلیل تغییرات شرایط جامعه خانههای ویلایی رو بیشتر از خانههای آپارتمانی ترجیح بدند. در این حالت قیمت خانههای ویلایی به طور مضاعفی بالا میره و مدلی که قبلا آموزش دیده باشه در این شرایط نمیتونه پیشبینی خوبی حداقل درباره خانههای ویلایی داشته باشه.
اما چاره چیه؟! در وهله اول مانیتور، مانیتور، مانیتور! یکی از اصلیترین قسمتهای دیپلوی مدل در پروداکشن، مانیتور کردن عملکرد اون به صورت دورهای هست. با این روش اولین سوالی که بهوجود میاد اینه که چهطور میتونیم یه آلارم model drift رو به موقع ارسال کنیم؟ طبیعتا نیاز داریم علاوه بر اینکه با چشم نمودارها رو کنترل میکنیم به صورت سیستمی هم آلارم داشته باشیم. روشهای مختلفی برای این کار وجود داره مانند استفاده از تستهای آماری برای مقایسه توزیع فیچرهای دیتای ترین و دیتای پروداکشن. یکی از راهحلهای هوشمندانه هم آموزش یک مدل دستهبند (مانند مدل random forest) بر روی دیتای ترین و تست به صورت همزمان هست به این صورت که به کل دیتای ترین لیبل ۱ و به کل دیتای تست لیبل صفر بزنیم. اگه مدل ما بتونه با دقت خوبی این دو تا دیتا رو از هم تفکیک کنه ینی به احتمال زیاد data drift رخ داده و چنانچه از مدلهای درختی استفاده کرده باشید با مفهوم feature importance میتونید حتی متغیر دریفت کرده رو هم شناسایی کنید. (برای استفاده از این مفهوم یه بار دیگه این پست رو نگاه بندازید)
و در آخر، علل مختلفی برای وقوع model drift وجود داره که از مهمترینهاشون تاثیرات فصلی و مقطعی روی داده، معرفی مفاهیم یا محصولات و یا سرویسهای جدید به بازار هدف و یا تغییر کیفیت داده است. مهمترین راهکار هم برای رفع model drift اینه که فرآیند retrain برای مدلتون داشته باشید و هیچ وقت به اینکه یه مدل با کیفیت رو روی دیتای ترین آموزش دادید و روی دیتای تست نتیجه خوب گرفتید هم بسنده نکنید.
منابع:
A survey on concept drift adaptation
Design Machine Learning Systems
#handsOn
@nlp_stuff
اگه تجربه دیپلوی مدلهای یادگیری ماشین در پروداکشن رو داشته باشید حتما به این موضوع برخوردید که مدلتون بعد از مدتی ممکنه جوابهای خوبی تولید نکنه. یکی از علل رایج همچین اتفاقی، رخداد model drift هست که به انواع مختلف میتونه رخ بده. model drift میتونه ناشی از data drift یا concept drift باشه. خود data drift هم میتونه براساس دریفت در فیچرها و یا دریفت در لیبل رخ بده. تصور کنید میخواید مدل پیشبینی قیمت خانه رو آموزش بدید و بعد از کرونا تقاضای خانههای بزرگ در بازار بیشتر شده و به همین دلیل تعداد خانههای کوچک در بازار بیشتر میشه و خانههای بزرگ کمتر. در این حالت توزیع فیچر سایز خانه عوضشده و منجر به data drift شده. یا در سناریوی دیگهای بهدلیل وقوع موج گرانی قیمت کل خانهها دچار تغییر شده باشه که در اینجا هم data drift از نوع تغییر متغیر هدف رو داریم.
در حالت concept drift هم نه توزیع فیچرها تغییر میکنه و نه توزیع متغیر هدف بلکه تابع نگاشتکننده فیچرها به لیبل تغییر میکنه. تصور کنید که در مساله پیشبینی قیمت خانه نه فیچرها تغییر کرده باشند و نه توزیع لیبلها بلکه افراد به دلیل تغییرات شرایط جامعه خانههای ویلایی رو بیشتر از خانههای آپارتمانی ترجیح بدند. در این حالت قیمت خانههای ویلایی به طور مضاعفی بالا میره و مدلی که قبلا آموزش دیده باشه در این شرایط نمیتونه پیشبینی خوبی حداقل درباره خانههای ویلایی داشته باشه.
اما چاره چیه؟! در وهله اول مانیتور، مانیتور، مانیتور! یکی از اصلیترین قسمتهای دیپلوی مدل در پروداکشن، مانیتور کردن عملکرد اون به صورت دورهای هست. با این روش اولین سوالی که بهوجود میاد اینه که چهطور میتونیم یه آلارم model drift رو به موقع ارسال کنیم؟ طبیعتا نیاز داریم علاوه بر اینکه با چشم نمودارها رو کنترل میکنیم به صورت سیستمی هم آلارم داشته باشیم. روشهای مختلفی برای این کار وجود داره مانند استفاده از تستهای آماری برای مقایسه توزیع فیچرهای دیتای ترین و دیتای پروداکشن. یکی از راهحلهای هوشمندانه هم آموزش یک مدل دستهبند (مانند مدل random forest) بر روی دیتای ترین و تست به صورت همزمان هست به این صورت که به کل دیتای ترین لیبل ۱ و به کل دیتای تست لیبل صفر بزنیم. اگه مدل ما بتونه با دقت خوبی این دو تا دیتا رو از هم تفکیک کنه ینی به احتمال زیاد data drift رخ داده و چنانچه از مدلهای درختی استفاده کرده باشید با مفهوم feature importance میتونید حتی متغیر دریفت کرده رو هم شناسایی کنید. (برای استفاده از این مفهوم یه بار دیگه این پست رو نگاه بندازید)
و در آخر، علل مختلفی برای وقوع model drift وجود داره که از مهمترینهاشون تاثیرات فصلی و مقطعی روی داده، معرفی مفاهیم یا محصولات و یا سرویسهای جدید به بازار هدف و یا تغییر کیفیت داده است. مهمترین راهکار هم برای رفع model drift اینه که فرآیند retrain برای مدلتون داشته باشید و هیچ وقت به اینکه یه مدل با کیفیت رو روی دیتای ترین آموزش دادید و روی دیتای تست نتیجه خوب گرفتید هم بسنده نکنید.
منابع:
A survey on concept drift adaptation
Design Machine Learning Systems
#handsOn
@nlp_stuff
Telegram
stuff
پیکره متنی ناب
پیکره متنی «ناب» دیتای plain فارسیه که حدود ۱۳۰ گیگه و شامل ۲۵۰ میلیون پاراگراف و ۱۵ میلیارد کلمهست که به تازگی منتشر شده. دوستداران زبان فارسی میتونند برای آموزش مدل زبانی ازش استفاده کنند و مدلهایی رو آماده کنند که ملت هم ازش استفاده کنند.
پ.ن. با تشکر از آزمایشگاه دکتر صامتی در دانشگاه شریف که پیکره رو به صورت عمومی منتشر کردند. دعای خیر ما بدرقه راهشان!
لینک مقاله:
https://arxiv.org/abs/2208.13486
لینک هاگینگفیس:
https://huggingface.co/datasets/SLPL/naab
https://huggingface.co/datasets/SLPL/naab-raw
#dataset
@nlp_stuff
پیکره متنی «ناب» دیتای plain فارسیه که حدود ۱۳۰ گیگه و شامل ۲۵۰ میلیون پاراگراف و ۱۵ میلیارد کلمهست که به تازگی منتشر شده. دوستداران زبان فارسی میتونند برای آموزش مدل زبانی ازش استفاده کنند و مدلهایی رو آماده کنند که ملت هم ازش استفاده کنند.
پ.ن. با تشکر از آزمایشگاه دکتر صامتی در دانشگاه شریف که پیکره رو به صورت عمومی منتشر کردند. دعای خیر ما بدرقه راهشان!
لینک مقاله:
https://arxiv.org/abs/2208.13486
لینک هاگینگفیس:
https://huggingface.co/datasets/SLPL/naab
https://huggingface.co/datasets/SLPL/naab-raw
#dataset
@nlp_stuff
مدل ACT-1، ترنسفورمر در نقش اتوپایلوت
از سال 2017 که ترنسفورمر معرفی شد تا به امروز این معماری در دامینها و مسائل مختلفی به کار گرفته شد، از متن و تصویر و صوت گرفته تا حتی یادگیری تقویتی. و البته هر چه قدر هم که جلوتر میریم از این مدل در جنبههای کاربردی و صنعتی بیشتر استفاده میشه. حالا اومدند و مدلی به نام Action Transformer یا ACT-1 توسعه دادند که قادره که با ورودی گرفتن یک کامند در قالب زبان طبیعی با استفاده از ابزارهای نرمافزاری کار خواسته شده رو انجام بده. مثلا شما بهش میگی یک یخچال با بودجه هزار دلار برای من پیدا کن و ACT-1 با سرچ در فروشگاههای اینترنتی پیدا میکنه و بعد شما میخوای ازش که خب حالا با طرف مقابل یک قرار برای فردا تنظیم کن و ACT-1 صفحه چت رو باز میکنه و یک متن برای قرار میفرسته. جزییات بیشتر در مورد این مدل رو میتونید در توییتی که گذاشته و همچنین لینک خود سایتش بخونید. این محصول هنوز به صورت عمومی منتشر نشده، اگر خواهانش هستید میتونید در لیست انتظارش ثبت نام کنید.
لینک توییت:
twitter.com/AdeptAILabs/status/1570144499187453952
لینک سایت:
www.adept.ai/act
لینک لیست انتظار:
adept.ai/alpha
#tweet
@nlp_stuff
از سال 2017 که ترنسفورمر معرفی شد تا به امروز این معماری در دامینها و مسائل مختلفی به کار گرفته شد، از متن و تصویر و صوت گرفته تا حتی یادگیری تقویتی. و البته هر چه قدر هم که جلوتر میریم از این مدل در جنبههای کاربردی و صنعتی بیشتر استفاده میشه. حالا اومدند و مدلی به نام Action Transformer یا ACT-1 توسعه دادند که قادره که با ورودی گرفتن یک کامند در قالب زبان طبیعی با استفاده از ابزارهای نرمافزاری کار خواسته شده رو انجام بده. مثلا شما بهش میگی یک یخچال با بودجه هزار دلار برای من پیدا کن و ACT-1 با سرچ در فروشگاههای اینترنتی پیدا میکنه و بعد شما میخوای ازش که خب حالا با طرف مقابل یک قرار برای فردا تنظیم کن و ACT-1 صفحه چت رو باز میکنه و یک متن برای قرار میفرسته. جزییات بیشتر در مورد این مدل رو میتونید در توییتی که گذاشته و همچنین لینک خود سایتش بخونید. این محصول هنوز به صورت عمومی منتشر نشده، اگر خواهانش هستید میتونید در لیست انتظارش ثبت نام کنید.
لینک توییت:
twitter.com/AdeptAILabs/status/1570144499187453952
لینک سایت:
www.adept.ai/act
لینک لیست انتظار:
adept.ai/alpha
#tweet
@nlp_stuff
Telegram
stuff
رستگاری تنسورها با einops
آیا در کد زدن در یادگیری عمیق تنبلید؟ آیا در استفاده از متدهایی مثل reshape و transpose و repeat و reduce گرگیجه میگیرید؟ آیا کدهای یادگیری عمیقیتان بعد از نوشتن غیرقابل فهم میشوند؟ ما به شما کتابخانه einops را پیشنهاد میکنیم!
ماجرای این کتابخونه از نمادگذاری انیشتین آغاز میشه. انیشتین در سال ۱۹۱۶ این نمادگذاری رو برای راحتتر نشون دادن محاسبات تنسوری معرفی کرد و از اونجا که واقعا نسبت به فرمولنویسیهای قدیم سهولت و فهم بیشتری داشت، این نمادگذاری رایج شد. حالا با الهامگیری از همین نمادگذاری، کتابخونه einops برای سهولت در نوشتن عملیاتهای تنسوری ارائه شده. حالا با یک مثال کوتاه خودتون ببنید که چطوری با einops میشه کد خط اول ذیل رو خیلی راحت تر و قابل خوندن تر به صورت کد خط دوم نوشت.
y = x.transpose(0, 2, 3, 1)
y = einops.rearrange(x, 'b c h w -> b h w c')
این کد اومده تنسوری که ابعادش b c h w بوده (مثل بچ b از تصویرها که c کانال دارند و ابعاد هر تصویر هم h و w هستند) رو به b h w c تغییر داده، این کد رو اگه با پایتورچ خالص بخواهید بنویسید، اون کد خیلی زشت و ناخوانا میشه چون توش ابعاد رو با صفر و یک و ... باید مشخص کنید که اولا هم ریسک باگ زدن رو بالا میبره و بعدا که میخواید کدتون رو بخونید به توبه میفتید)
به طور خیلی اجمالی، کتابخونه einops سه متد پایه rearrange و repeat و reduce داره که باهاش میشه عملیاتهای تنسوری مختلف رو در جنبههای تغییر و تکرار و خردکردن ابعاد انجام داد. این کتابخونه رو از دست ندید اگر اهل خوندن کد هم باشید میبینید که بسیاری از دولوپرهای مطرح دیپ لرنینگی از این کتابخونه برای کدهاشون استفاده میکنند. نکته آخر هم این که این کتابخونه برای فریمورکهای مختلف نظیر پایتورچ و تنسورفلو و نامپای و جکس قابل استفاده است.
برای آشنایی بیشتر با einops میتونید لینکهای زیر رو بببنید:
لینک رپوی einops:
https://github.com/arogozhnikov/einops
لینکهای مفید برای آشنایی با einops:
https://cgarciae.github.io/einops/
https://openreview.net/pdf?id=oapKSVM2bcj
پ.ن.: هر چه قدر شما بیشتر شیر کردید انرژی بیشتری برای ادامه و درستکردن پستهای بهتر میگیریم. مرسی که تا همینجا هم خیلی بهمون لطف داشتید.
#tool
@nlp_stuff
آیا در کد زدن در یادگیری عمیق تنبلید؟ آیا در استفاده از متدهایی مثل reshape و transpose و repeat و reduce گرگیجه میگیرید؟ آیا کدهای یادگیری عمیقیتان بعد از نوشتن غیرقابل فهم میشوند؟ ما به شما کتابخانه einops را پیشنهاد میکنیم!
ماجرای این کتابخونه از نمادگذاری انیشتین آغاز میشه. انیشتین در سال ۱۹۱۶ این نمادگذاری رو برای راحتتر نشون دادن محاسبات تنسوری معرفی کرد و از اونجا که واقعا نسبت به فرمولنویسیهای قدیم سهولت و فهم بیشتری داشت، این نمادگذاری رایج شد. حالا با الهامگیری از همین نمادگذاری، کتابخونه einops برای سهولت در نوشتن عملیاتهای تنسوری ارائه شده. حالا با یک مثال کوتاه خودتون ببنید که چطوری با einops میشه کد خط اول ذیل رو خیلی راحت تر و قابل خوندن تر به صورت کد خط دوم نوشت.
y = x.transpose(0, 2, 3, 1)
y = einops.rearrange(x, 'b c h w -> b h w c')
این کد اومده تنسوری که ابعادش b c h w بوده (مثل بچ b از تصویرها که c کانال دارند و ابعاد هر تصویر هم h و w هستند) رو به b h w c تغییر داده، این کد رو اگه با پایتورچ خالص بخواهید بنویسید، اون کد خیلی زشت و ناخوانا میشه چون توش ابعاد رو با صفر و یک و ... باید مشخص کنید که اولا هم ریسک باگ زدن رو بالا میبره و بعدا که میخواید کدتون رو بخونید به توبه میفتید)
به طور خیلی اجمالی، کتابخونه einops سه متد پایه rearrange و repeat و reduce داره که باهاش میشه عملیاتهای تنسوری مختلف رو در جنبههای تغییر و تکرار و خردکردن ابعاد انجام داد. این کتابخونه رو از دست ندید اگر اهل خوندن کد هم باشید میبینید که بسیاری از دولوپرهای مطرح دیپ لرنینگی از این کتابخونه برای کدهاشون استفاده میکنند. نکته آخر هم این که این کتابخونه برای فریمورکهای مختلف نظیر پایتورچ و تنسورفلو و نامپای و جکس قابل استفاده است.
برای آشنایی بیشتر با einops میتونید لینکهای زیر رو بببنید:
لینک رپوی einops:
https://github.com/arogozhnikov/einops
لینکهای مفید برای آشنایی با einops:
https://cgarciae.github.io/einops/
https://openreview.net/pdf?id=oapKSVM2bcj
پ.ن.: هر چه قدر شما بیشتر شیر کردید انرژی بیشتری برای ادامه و درستکردن پستهای بهتر میگیریم. مرسی که تا همینجا هم خیلی بهمون لطف داشتید.
#tool
@nlp_stuff
GitHub
GitHub - arogozhnikov/einops: Flexible and powerful tensor operations for readable and reliable code (for pytorch, jax, TF and…
Flexible and powerful tensor operations for readable and reliable code (for pytorch, jax, TF and others) - arogozhnikov/einops
وضعیت هوش مصنوعی در ۲۰۲۲
گزارش StateofAI چند روز پیش برای ۲۰۲۲ منتشر شد. قبلا در این پست t.iss.one/nlp_stuff/259 گزارش ۲۰۲۱ اش رو بررسی کرده بودیم. امسال هم این گزارش در چهار بخش آکادمیک، صنعت، سیاست و ایمن هوش مصنوعی رو بررسی کردند و در نهایت هم پیشبینی از رخدادهای سال آینده دادند. چند نکته به نظرمون جالب اومدند که گفتیم با شما هم به اشتراک بگذاریم:
- اول از همه این که هوش مصنوعی در ۲۰۲۲ تونست در کاربردهای علمی مختلف از طراحی انزیم بازیافت پلاستک گرفته تا اثبات قضایای علوم پایه با موفقیت به کار گرفته بشه. این نشون دهنده اینه که پتانسیل زیادی در انواع رشتههای دیگه برای استفاده از هوش مصنوعی وجود داره.
- با گذشت ۵ سال از انتشار مقاله ترنسفورمر، این مدل همچنان آخرین آپدیت معماری هوش مصنوعی محسوب میشه. افزونههای بسیاری بر ترنسفورمر در این پنج سال مطرح شده اند و مخصوصا سعی کردهاند پیچیدگی مرتبه دو اش نسبت به ورودی رو کاهش بدن اما در نهایت برد همچنان با ترنسفورمر خالیه.
- استفاده از مدلهای زبانی در زمینه های دیگه مثل حل مسائل ریاضی یا دسترسی دادن مدلهای زبانی به استفاده از اینترنت (t.iss.one/nlp_stuff/260) یا حتی کمک به رباتها، همچنان مورد توجه جامعه هوش مصنوعی هست.
- قطعا امسال سال مدلهای diffusion بود. سال گذشته این موقع این مدلها تونسته بودند GANها رو تنها در چند بنچمارک شکست بدن. اما در کمتر از یک سال اکنون هایپترین مساله حوزه هوش مصنوعی هستند و تو کاربردهای مختلف نظیر تولید تصویر و فیلم و صوت و حتی مولکول ازشون استفاده میشه. مخصوصا در زمینه تولید تصویر، امسال مدلهای زیادی در این باره مثل Dall-E2 و Imagen و Glide منتشر شدند و امسال سال باز شدن قفل مساله تولید تصویر بود. این رشد منجر به تولد آزمایشگاههای جدید تخصصی برای این مساله نظیر Midjouney و StableDiffusion شد(t.iss.one/nlp_stuff/300). رقابت بر سر مدلهای تولیدکننده فیلم هم ظاهرا تازه شروع شده.
- ترنسفورمرها هم در یادگیری تقویتی و هم در حوزههای مدلهای مولتی مودال (مثل مدل گاتو) به کار گرفته شدند. به نظر این روند به این سمت میره که در نهایت یک مدل ترنسفورمری بزرگ برای انجام هر کاری رو در آینده خواهیم دید.
- تسک NeRF از نوزده مقاله در سال ۲۰۱۹ به بالای هزار مقاله در سال ۲۰۲۲ رسیده (t.iss.one/nlp_stuff/225) که در نوع خودش جالب محسوب میشه.
- اکثر مقالههای چینی بر روی حوزههای نظارتی و مراقبتی مثل تشخیص شی و چهره و مسیریابی اشیا متمرکز شده اند. در حالی که تمرکز جامعه هوش مصنوعی آمریکا بر روی مسائل متنی و صوتی هست. همچنین به صورت کلی تعداد مقالات آمریکاییها بیشتره ولی سرعت رشد تعداد مقالات چینیها بالاست. البته اگر مقالات چینی زبان رو هم به این مقایسه اضافه کنیم چینی ها حدود ۵ برابر آمریکاییها مقاله دارند :)
- همچنان مونوپلی عرصه GPU دست Nvidia است. به طوری که میزان سود سالانه nvidia بیشتر از میزان ارزشگذاری سه استارتاپ بزرگ در این زمینه است.
- امسال بسیاری از افراد هستههای فنی شرکتهای بزرگ نظیر گوگل و متا و اوپنایآی این شرکتها رو ترک کردن و به سراغ استارتاپهای خودشون در زمینه هوش رفتند. برای مثال آقای Vaswani نویسنده مقاله ترنسفورمر که به adept پیوسته (اینجا یک محصول این شرکت رو معرفی کرده بودیم t.iss.one/nlp_stuff/303)
- هوش مصنوعی هم از مشکلات اقتصادی امسال دنیا بی آسیب نموند و میزان سرمایهگذاری در استارتاپهای هوش مصنوعی نسبت به سال پیش ۳۶ درصد کاهش رو تجربه کرد. میزان این رقم کاهش برای همه استارتاپها ۲۴ درصد بوده.
- آمریکا همچنان بیشترین استارتاپهای هوش مصنوعی یونیکورن رو داره (استارتاپهایی با بیش از یک میلیارد دلار ارزش) این رقم برای امریکا و چین و انگلیس به ترتیب ۲۹۲ و ۶۹ و ۲۴ هست. نکته جالب توجه قرار گیری اسرائیلیها در رده چهارم لیست با ۱۴ یونیکورن و ۵۳ میلیارد دلار ارزشه در حالی که جمعیتش به ده میلیون هم نمیرسه. wordtune یکی از نمونه استارتاپهای مشهور اسراییلی هست.
- در حوزه آموزش مدلهای بزرگ، آکادمی در رقابت با صنعت رقابت رو وا داده و نرخ مشارکت آکادمی از شصت درصد در سال ۲۰۱۰ به حدود صفر درصد در اکنون رسیده! و به صورت کلی پژوهش از انحصار آکادمی دراومده و یک جوری حالت غیرمتمرکز پیدا کرده.
- شرکتهای حوزه دفاعی در حال به کار بستن هوش مصنوعی در محصولات و تجهیزات خودشون هستند. این علاقه یکطرفه نیست و شرکت های بزرگی نظیر آمازون و مایکروسافت و گوگل هم در تلاش برای عادی سازی استفاده از هوش مصنوعی در صنایع دفاعی هستند.
در نهایت هم چند تا پیشبینی برای سال آینده داشتند که جالبترینهاشون یک مدل ۱۰ میلیارد پارامتر مولتیمودال-یادگیری تقویتی از دیپمایند و ظهور ابزارهای مولد صوتی است.
این گزارش خوب رو از دست ندید.
لینک گزارش:
Stateof.ai
#read
@nlp_stuff
گزارش StateofAI چند روز پیش برای ۲۰۲۲ منتشر شد. قبلا در این پست t.iss.one/nlp_stuff/259 گزارش ۲۰۲۱ اش رو بررسی کرده بودیم. امسال هم این گزارش در چهار بخش آکادمیک، صنعت، سیاست و ایمن هوش مصنوعی رو بررسی کردند و در نهایت هم پیشبینی از رخدادهای سال آینده دادند. چند نکته به نظرمون جالب اومدند که گفتیم با شما هم به اشتراک بگذاریم:
- اول از همه این که هوش مصنوعی در ۲۰۲۲ تونست در کاربردهای علمی مختلف از طراحی انزیم بازیافت پلاستک گرفته تا اثبات قضایای علوم پایه با موفقیت به کار گرفته بشه. این نشون دهنده اینه که پتانسیل زیادی در انواع رشتههای دیگه برای استفاده از هوش مصنوعی وجود داره.
- با گذشت ۵ سال از انتشار مقاله ترنسفورمر، این مدل همچنان آخرین آپدیت معماری هوش مصنوعی محسوب میشه. افزونههای بسیاری بر ترنسفورمر در این پنج سال مطرح شده اند و مخصوصا سعی کردهاند پیچیدگی مرتبه دو اش نسبت به ورودی رو کاهش بدن اما در نهایت برد همچنان با ترنسفورمر خالیه.
- استفاده از مدلهای زبانی در زمینه های دیگه مثل حل مسائل ریاضی یا دسترسی دادن مدلهای زبانی به استفاده از اینترنت (t.iss.one/nlp_stuff/260) یا حتی کمک به رباتها، همچنان مورد توجه جامعه هوش مصنوعی هست.
- قطعا امسال سال مدلهای diffusion بود. سال گذشته این موقع این مدلها تونسته بودند GANها رو تنها در چند بنچمارک شکست بدن. اما در کمتر از یک سال اکنون هایپترین مساله حوزه هوش مصنوعی هستند و تو کاربردهای مختلف نظیر تولید تصویر و فیلم و صوت و حتی مولکول ازشون استفاده میشه. مخصوصا در زمینه تولید تصویر، امسال مدلهای زیادی در این باره مثل Dall-E2 و Imagen و Glide منتشر شدند و امسال سال باز شدن قفل مساله تولید تصویر بود. این رشد منجر به تولد آزمایشگاههای جدید تخصصی برای این مساله نظیر Midjouney و StableDiffusion شد(t.iss.one/nlp_stuff/300). رقابت بر سر مدلهای تولیدکننده فیلم هم ظاهرا تازه شروع شده.
- ترنسفورمرها هم در یادگیری تقویتی و هم در حوزههای مدلهای مولتی مودال (مثل مدل گاتو) به کار گرفته شدند. به نظر این روند به این سمت میره که در نهایت یک مدل ترنسفورمری بزرگ برای انجام هر کاری رو در آینده خواهیم دید.
- تسک NeRF از نوزده مقاله در سال ۲۰۱۹ به بالای هزار مقاله در سال ۲۰۲۲ رسیده (t.iss.one/nlp_stuff/225) که در نوع خودش جالب محسوب میشه.
- اکثر مقالههای چینی بر روی حوزههای نظارتی و مراقبتی مثل تشخیص شی و چهره و مسیریابی اشیا متمرکز شده اند. در حالی که تمرکز جامعه هوش مصنوعی آمریکا بر روی مسائل متنی و صوتی هست. همچنین به صورت کلی تعداد مقالات آمریکاییها بیشتره ولی سرعت رشد تعداد مقالات چینیها بالاست. البته اگر مقالات چینی زبان رو هم به این مقایسه اضافه کنیم چینی ها حدود ۵ برابر آمریکاییها مقاله دارند :)
- همچنان مونوپلی عرصه GPU دست Nvidia است. به طوری که میزان سود سالانه nvidia بیشتر از میزان ارزشگذاری سه استارتاپ بزرگ در این زمینه است.
- امسال بسیاری از افراد هستههای فنی شرکتهای بزرگ نظیر گوگل و متا و اوپنایآی این شرکتها رو ترک کردن و به سراغ استارتاپهای خودشون در زمینه هوش رفتند. برای مثال آقای Vaswani نویسنده مقاله ترنسفورمر که به adept پیوسته (اینجا یک محصول این شرکت رو معرفی کرده بودیم t.iss.one/nlp_stuff/303)
- هوش مصنوعی هم از مشکلات اقتصادی امسال دنیا بی آسیب نموند و میزان سرمایهگذاری در استارتاپهای هوش مصنوعی نسبت به سال پیش ۳۶ درصد کاهش رو تجربه کرد. میزان این رقم کاهش برای همه استارتاپها ۲۴ درصد بوده.
- آمریکا همچنان بیشترین استارتاپهای هوش مصنوعی یونیکورن رو داره (استارتاپهایی با بیش از یک میلیارد دلار ارزش) این رقم برای امریکا و چین و انگلیس به ترتیب ۲۹۲ و ۶۹ و ۲۴ هست. نکته جالب توجه قرار گیری اسرائیلیها در رده چهارم لیست با ۱۴ یونیکورن و ۵۳ میلیارد دلار ارزشه در حالی که جمعیتش به ده میلیون هم نمیرسه. wordtune یکی از نمونه استارتاپهای مشهور اسراییلی هست.
- در حوزه آموزش مدلهای بزرگ، آکادمی در رقابت با صنعت رقابت رو وا داده و نرخ مشارکت آکادمی از شصت درصد در سال ۲۰۱۰ به حدود صفر درصد در اکنون رسیده! و به صورت کلی پژوهش از انحصار آکادمی دراومده و یک جوری حالت غیرمتمرکز پیدا کرده.
- شرکتهای حوزه دفاعی در حال به کار بستن هوش مصنوعی در محصولات و تجهیزات خودشون هستند. این علاقه یکطرفه نیست و شرکت های بزرگی نظیر آمازون و مایکروسافت و گوگل هم در تلاش برای عادی سازی استفاده از هوش مصنوعی در صنایع دفاعی هستند.
در نهایت هم چند تا پیشبینی برای سال آینده داشتند که جالبترینهاشون یک مدل ۱۰ میلیارد پارامتر مولتیمودال-یادگیری تقویتی از دیپمایند و ظهور ابزارهای مولد صوتی است.
این گزارش خوب رو از دست ندید.
لینک گزارش:
Stateof.ai
#read
@nlp_stuff
www.stateof.ai
State of AI Report 2024
The State of AI Report analyses the most interesting developments in AI. Read and download here.
ورکشاپی برای تفسیرپذیری مدلها
قبلا چندین بار در مدح تفسیرپذیری مدلها و لزوم استفاده از این مفهوم، بهخصوص در بیزنس و جایی که علت تصمیمگیری مهمه صحبت کرده بودیم (https://t.iss.one/nlp_stuff/177). تفسیرپذیری مدلها، هم میتونه به اعتماد بیشتر به مدلها کمک کنه و هم از طرفی در برخی سناریوها به دیباگکردن مدل کمک میکنه. حالا یک ورکشاپی رو دانشگاه استنفورد داره برگزار میکنه که قراره به صورت متمرکز بر روی مبحث تفسیرپذیری مدلها کار بکنه. این ورکشاپ ۵ قسمت داره که در قسمت اول به معرفی کلی میپردازه و انگیزههای پرداختن به تفسیرپذیری رو توضیح میده. در بخش دوم توضیح میده که یک مدل تفسیرپذیری چیه. در بخش سوم روشهای تفسیرپذیری رو توضیح میده و در بخش چهارم هم روشهای ارزیابی تفسیرپذیری مدل رو توضیح میده. در نهایت هم به آینده این بحث میپردازه. اگه خاطرتون باشه در گزارش کلی مرور بر هوشمصنوعی سال ۲۰۲۱ (https://t.iss.one/nlp_stuff/259) گفته بودیم که یکی از مباحث داغ در اون زمان تفسیرپذیری بوده. حالا به نظر این مبحث به خصوص برای مسایلی که مدلها در دنیای آکادمیک به دقت و کیفیت خیلی بالایی رسیدند، هنوز هم جای کار داره و حالا وقتشه که یه کم پا رو ترمز بذاریم و ببینیم اصلا چرا دارند خوب کار میکنند.
پ.ن: تصویر برگرفته از اسلایدهای همین ورکشاپه
لینک ورکشاپ:
https://www.youtube.com/watch?v=_DYQdP_F-LA&list=PLoROMvodv4rPh6wa6PGcHH6vMG9sEIPxL&index=1
لینک اسلایدها:
https://docs.google.com/presentation/d/1khY_li29A5aUo_cEVRsvO8pcRn7Xp9Bi/edit#slide=id.p4
#course
#coach
@nlp_stuff
قبلا چندین بار در مدح تفسیرپذیری مدلها و لزوم استفاده از این مفهوم، بهخصوص در بیزنس و جایی که علت تصمیمگیری مهمه صحبت کرده بودیم (https://t.iss.one/nlp_stuff/177). تفسیرپذیری مدلها، هم میتونه به اعتماد بیشتر به مدلها کمک کنه و هم از طرفی در برخی سناریوها به دیباگکردن مدل کمک میکنه. حالا یک ورکشاپی رو دانشگاه استنفورد داره برگزار میکنه که قراره به صورت متمرکز بر روی مبحث تفسیرپذیری مدلها کار بکنه. این ورکشاپ ۵ قسمت داره که در قسمت اول به معرفی کلی میپردازه و انگیزههای پرداختن به تفسیرپذیری رو توضیح میده. در بخش دوم توضیح میده که یک مدل تفسیرپذیری چیه. در بخش سوم روشهای تفسیرپذیری رو توضیح میده و در بخش چهارم هم روشهای ارزیابی تفسیرپذیری مدل رو توضیح میده. در نهایت هم به آینده این بحث میپردازه. اگه خاطرتون باشه در گزارش کلی مرور بر هوشمصنوعی سال ۲۰۲۱ (https://t.iss.one/nlp_stuff/259) گفته بودیم که یکی از مباحث داغ در اون زمان تفسیرپذیری بوده. حالا به نظر این مبحث به خصوص برای مسایلی که مدلها در دنیای آکادمیک به دقت و کیفیت خیلی بالایی رسیدند، هنوز هم جای کار داره و حالا وقتشه که یه کم پا رو ترمز بذاریم و ببینیم اصلا چرا دارند خوب کار میکنند.
پ.ن: تصویر برگرفته از اسلایدهای همین ورکشاپه
لینک ورکشاپ:
https://www.youtube.com/watch?v=_DYQdP_F-LA&list=PLoROMvodv4rPh6wa6PGcHH6vMG9sEIPxL&index=1
لینک اسلایدها:
https://docs.google.com/presentation/d/1khY_li29A5aUo_cEVRsvO8pcRn7Xp9Bi/edit#slide=id.p4
#course
#coach
@nlp_stuff
Telegram
stuff
سلطان PaLI به دنیای تصویر-متن سلام میکند!
بارها گفتیم که دوره یکهتازی مدلهای multimodal شروع شده. این اواخر نیز ظهور مدلهایی مانند Stable Diffusion توجه همه رو به این حوزه دوباره جلب کرد. حالا گوگل با فهم درست شرایط حساس کنونی، یک مدل general purpose برای این حوزه ارایه داده که باهاش تقریبا هر تسک تصویر-متنی رو میتونید انجام بدید و حتی به این بسنده نکرده و مدل رو به صورت multilingual آموزش داده (که فارسی هم ساپورت میکنه). معماری مدل خیلی ساده است و در شکل هم میتونید ببینید که یک vision transformer داره که طبیعتا کار فهم تصویر رو انجام میده و برای فهم متن هم از مدل T5 استفاده میکنه که همونطور که میدونید مدل زبانی هست که تمامی مسایل حوزه پردازش زبان رو به صورت text-to-text مدل میکنه و عملا قابلیت general purpose بودن PaLI رو فراهم میکنه. این مدل هم مانند مدلهای خفن اخیر یه کامیون پارامتر داره که حدود ۱۷ میلیارده که از این مقدار حدود ۴ میلیارد سهم مدل فهم تصویر و ۱۳ میلیارد سهم مدل فهم زبانی هستش! همچنین برای خلق این همه جلال، دست به جمعآوری یک دیتاست بسیار عظیم زدند که اسمش رو WebLI گذاشتند و حدود ۱۰ میلیارد زوج تصویر-متن به زبانهای مختلف داره (حقیقتا با این همه تلاش و توسعه کلا مفهوم میلیارد رو به سخره گرفتند). نکته قابل توجه اینه که این مدل در برخی از بنچمارکهای حوزه تصویر-متن مانند COCO-captions، TextCaps و VQAv2 تونسته رکورد بزنه و مدلهای دیگه رو شکست بده. البته اگه نمیتونید مدل ۱۷ میلیارد پارامتریش رو لود کنید نگران نباشید چون نسخههای کوچکتر هم بیرون دادند که حدود ۳ میلیارد پارامتر داره و با توجه به شرایط فعلی باز هم نمیتونید اون مدل رو لود کنید :)) پس فقط نگاه کنید و لذت ببرید.
لینک بلاگ:
https://ai.googleblog.com/2022/09/pali-scaling-language-image-learning-in.html
#read
#blog
@nlp_stuff
بارها گفتیم که دوره یکهتازی مدلهای multimodal شروع شده. این اواخر نیز ظهور مدلهایی مانند Stable Diffusion توجه همه رو به این حوزه دوباره جلب کرد. حالا گوگل با فهم درست شرایط حساس کنونی، یک مدل general purpose برای این حوزه ارایه داده که باهاش تقریبا هر تسک تصویر-متنی رو میتونید انجام بدید و حتی به این بسنده نکرده و مدل رو به صورت multilingual آموزش داده (که فارسی هم ساپورت میکنه). معماری مدل خیلی ساده است و در شکل هم میتونید ببینید که یک vision transformer داره که طبیعتا کار فهم تصویر رو انجام میده و برای فهم متن هم از مدل T5 استفاده میکنه که همونطور که میدونید مدل زبانی هست که تمامی مسایل حوزه پردازش زبان رو به صورت text-to-text مدل میکنه و عملا قابلیت general purpose بودن PaLI رو فراهم میکنه. این مدل هم مانند مدلهای خفن اخیر یه کامیون پارامتر داره که حدود ۱۷ میلیارده که از این مقدار حدود ۴ میلیارد سهم مدل فهم تصویر و ۱۳ میلیارد سهم مدل فهم زبانی هستش! همچنین برای خلق این همه جلال، دست به جمعآوری یک دیتاست بسیار عظیم زدند که اسمش رو WebLI گذاشتند و حدود ۱۰ میلیارد زوج تصویر-متن به زبانهای مختلف داره (حقیقتا با این همه تلاش و توسعه کلا مفهوم میلیارد رو به سخره گرفتند). نکته قابل توجه اینه که این مدل در برخی از بنچمارکهای حوزه تصویر-متن مانند COCO-captions، TextCaps و VQAv2 تونسته رکورد بزنه و مدلهای دیگه رو شکست بده. البته اگه نمیتونید مدل ۱۷ میلیارد پارامتریش رو لود کنید نگران نباشید چون نسخههای کوچکتر هم بیرون دادند که حدود ۳ میلیارد پارامتر داره و با توجه به شرایط فعلی باز هم نمیتونید اون مدل رو لود کنید :)) پس فقط نگاه کنید و لذت ببرید.
لینک بلاگ:
https://ai.googleblog.com/2022/09/pali-scaling-language-image-learning-in.html
#read
#blog
@nlp_stuff
Telegram
stuff
اورفیتکردن در حکمرانی
موضوع علم یادگیری ماشین، تعمیم (Generalization) است. به خاطر همین هدف قرار گرفتن تعمیم، مفاهیم یادگیری ماشین میتوانند شهودی برای همه قضایای دیگر از جمله اقتصاد و سیاست و حکمرانی قرار گیرند. یکی از پایهای ترین این مفاهیم، بیشبرازش یا overfiting است. همانطور که میدانید ما وقتی می خواهیم یک مدل را به منظور رسیدن به یک هدف آموزش دهیم، از آنجایی که ممکن است این هدف به صورت مستقیم قابل دسترسی نباشد، مدل را بر روی یک proxy به امید رسیدن به آن هدف آموزش میدهیم. مثلا ما میخواهیم یک مدل دستهبندی تصاویر سگها و گربهها را با هدف بیشتر کردن دقت آن آموزش دهیم، اما از آن جا که معیار دقت قابل بهینهسازی نیست و همچنین نمیتوانیم تمام سگ و گربههای دنیا را تصویربرداری کنیم، ما مدل را بر روی تابع هزینه کراس انتروپی و البته بر روی مجموعه محدودی از دادگان آموزش میدهیم. حال در فرآیند آموزش ممکن است پس از مدتی میزان عملکرد ما بر روی این پراکسی بهبود یابد اما فاصله ما از هدف اصلی بیشتر و بیشتر شود.
به موازات بیشبرازش، در علم اقتصاد قانونی به نام گودهارت وجود دارد که بیان میکند "وقتی یک شاخص اندازهگیری به یک هدف تبدیل شود، دیگر شاخص خوبی نخواهد بود". برای مثال فرض کنید شما رییس یک دانشگاه هستید و سعی دارید تا کیفیت علمی دانشگاه را افزایش دهید و به همین جهت بر روی تعداد مقالات منتشرشده و تعداد ارجاعات آنها، سیاستهای تشویقی اعمال میکنید. در ابتدا کیفیت علمی دانشگاه اندکی رشد میکند اما پس از مدتی مشاهده میکنید که تعداد مقالات و ارجاعات چند برابر شده اما با انبوهی از مقالات بی کیفیت و همچینن خودارجاعیهای بین نویسندگان مختلف آنها مواجه هستید. به همین دلیل شاخص تعداد مقالات دیگر نمیتواند یک شاخص خوبی برای افزایش کیفیت علمی دانشگاه شما باشد.
حال آقای Dickstein پژوهشگر Google Brain، در بلاگی با تناظر اورفیت و قانون گودهارت پا را فراتر گذاشته و صورت قویتری از قانون گودهارت را ارائه کرده است: "وقتی یک شاخص اندازهگیری به یک هدف تبدیل میشود، وقتی بیش از حد در آن کارآمد می شویم، هدف اصلی که به دنبال آن بودیم بدتر می شود" برای مثال ممکن است هدف، پیداکردن حکمرانانی با بیشترین میزان مقبولیت و انتفاع در میان مردم باشد و شاخص این کار را آرای مردمی قرار دهیم. حال اگر فقط بر این شاخص تکیه کنیم، ممکن است تنها افراد صاحب سرمایه و رسانه به قدرت برسند که قابلیت دستکاری افکار عمومی را دارند و در نهایت منجر به ظهور الیگارشی شوند. و یا این که هدف ما داشتن جامعه آگاه و متفکر باشد و برای رسیدن به این هدف شاخص آزادی تبادل اطلاعات را قرار دهیم، در صورت تکیه بر تنها این شاخص در نهایت ممکن است با پدیدههای حباب فیلتر و رواج تئوریهای توطئه و شبه علم مواجه شویم. Dickstein در این بلاگ این قبیل مثالها را به خوبی توضیح داده و سپس سعی میکند تا با بررسی راهکارهای حل اورفیت تناظری از آنها را برای حل مشکلات دیگر مطرح شده ارائه کند. از جمله این راهکارها میتوان به اضافه کردن هزینه منظمسازی (regularization)، تزریق نویز به سیستم، توقف زودهنگام و محدودکردن ظرفیت مدل یا بیشترکردن ظرفیت آن (پینوشت را ببینید!) را ارائه داد. برای مثال برای حل مشکل حباب فیلتر که در آن فرد دچار انزوای فکری میشود و الگوریتمهای توصیهگر فقط محدوده علاقه او را به او نشان میدهند، میتوانیم هر از گاهی با نویز عمل کنیم و او را از حبابهایی که به لحاظ فرهنگی و ایدئولوژیک با سلیقه و ذائقهٔ او همخوانی دارند خارج کنیم. خواندن این بلاگ (که مورد تایید آقامون کارپثی هم هست) را به همه شما توصیه میکنیم.
پینوشت: یکی از جالبترین مثالهای بررسی شده در اینجا، میزان تریدآف بین شفافیت و privacy است. در صورتی که این تریدآف در میانه باشد ممکن است اقلیتی از آن و رانت اطلاعاتی به منظور تسلط بر سایرین استفاده کنند که نهایتا منجر به بدترشدن وضع میشود. دو راهکار پیشنهادی برای این حالت میتواند این باشد که یا مدل را کوچکتر کنیم و دسترسی همه به شفافیت و هر نوع اطلاعاتی از سایرین را ببندیم تا کسی قدرت سواستفاده از اطلاعات را نداشته باشد و یا این که راهکار بسیار بزرگترکردن مدل را در پیش بگیریم. این راهکار بسیار شبیه به موضوع overparameterization در یادگیری ماشین است که اخیرا بسیار مورد توجه قرار گرفته است. در این حالت بایستی روی همه چیز شفافیت داشته باشیم، در حدی که همه افراد از همه اطلاعات هم خبر داشته باشند، در این صورت دیگر امکان سواستفاده از اطلاعات پیش نخواهد آمد!
لینک بلاگ:
https://sohl-dickstein.github.io/2022/11/06/strong-Goodhart.html
#read
#blog
@nlp_stuff
موضوع علم یادگیری ماشین، تعمیم (Generalization) است. به خاطر همین هدف قرار گرفتن تعمیم، مفاهیم یادگیری ماشین میتوانند شهودی برای همه قضایای دیگر از جمله اقتصاد و سیاست و حکمرانی قرار گیرند. یکی از پایهای ترین این مفاهیم، بیشبرازش یا overfiting است. همانطور که میدانید ما وقتی می خواهیم یک مدل را به منظور رسیدن به یک هدف آموزش دهیم، از آنجایی که ممکن است این هدف به صورت مستقیم قابل دسترسی نباشد، مدل را بر روی یک proxy به امید رسیدن به آن هدف آموزش میدهیم. مثلا ما میخواهیم یک مدل دستهبندی تصاویر سگها و گربهها را با هدف بیشتر کردن دقت آن آموزش دهیم، اما از آن جا که معیار دقت قابل بهینهسازی نیست و همچنین نمیتوانیم تمام سگ و گربههای دنیا را تصویربرداری کنیم، ما مدل را بر روی تابع هزینه کراس انتروپی و البته بر روی مجموعه محدودی از دادگان آموزش میدهیم. حال در فرآیند آموزش ممکن است پس از مدتی میزان عملکرد ما بر روی این پراکسی بهبود یابد اما فاصله ما از هدف اصلی بیشتر و بیشتر شود.
به موازات بیشبرازش، در علم اقتصاد قانونی به نام گودهارت وجود دارد که بیان میکند "وقتی یک شاخص اندازهگیری به یک هدف تبدیل شود، دیگر شاخص خوبی نخواهد بود". برای مثال فرض کنید شما رییس یک دانشگاه هستید و سعی دارید تا کیفیت علمی دانشگاه را افزایش دهید و به همین جهت بر روی تعداد مقالات منتشرشده و تعداد ارجاعات آنها، سیاستهای تشویقی اعمال میکنید. در ابتدا کیفیت علمی دانشگاه اندکی رشد میکند اما پس از مدتی مشاهده میکنید که تعداد مقالات و ارجاعات چند برابر شده اما با انبوهی از مقالات بی کیفیت و همچینن خودارجاعیهای بین نویسندگان مختلف آنها مواجه هستید. به همین دلیل شاخص تعداد مقالات دیگر نمیتواند یک شاخص خوبی برای افزایش کیفیت علمی دانشگاه شما باشد.
حال آقای Dickstein پژوهشگر Google Brain، در بلاگی با تناظر اورفیت و قانون گودهارت پا را فراتر گذاشته و صورت قویتری از قانون گودهارت را ارائه کرده است: "وقتی یک شاخص اندازهگیری به یک هدف تبدیل میشود، وقتی بیش از حد در آن کارآمد می شویم، هدف اصلی که به دنبال آن بودیم بدتر می شود" برای مثال ممکن است هدف، پیداکردن حکمرانانی با بیشترین میزان مقبولیت و انتفاع در میان مردم باشد و شاخص این کار را آرای مردمی قرار دهیم. حال اگر فقط بر این شاخص تکیه کنیم، ممکن است تنها افراد صاحب سرمایه و رسانه به قدرت برسند که قابلیت دستکاری افکار عمومی را دارند و در نهایت منجر به ظهور الیگارشی شوند. و یا این که هدف ما داشتن جامعه آگاه و متفکر باشد و برای رسیدن به این هدف شاخص آزادی تبادل اطلاعات را قرار دهیم، در صورت تکیه بر تنها این شاخص در نهایت ممکن است با پدیدههای حباب فیلتر و رواج تئوریهای توطئه و شبه علم مواجه شویم. Dickstein در این بلاگ این قبیل مثالها را به خوبی توضیح داده و سپس سعی میکند تا با بررسی راهکارهای حل اورفیت تناظری از آنها را برای حل مشکلات دیگر مطرح شده ارائه کند. از جمله این راهکارها میتوان به اضافه کردن هزینه منظمسازی (regularization)، تزریق نویز به سیستم، توقف زودهنگام و محدودکردن ظرفیت مدل یا بیشترکردن ظرفیت آن (پینوشت را ببینید!) را ارائه داد. برای مثال برای حل مشکل حباب فیلتر که در آن فرد دچار انزوای فکری میشود و الگوریتمهای توصیهگر فقط محدوده علاقه او را به او نشان میدهند، میتوانیم هر از گاهی با نویز عمل کنیم و او را از حبابهایی که به لحاظ فرهنگی و ایدئولوژیک با سلیقه و ذائقهٔ او همخوانی دارند خارج کنیم. خواندن این بلاگ (که مورد تایید آقامون کارپثی هم هست) را به همه شما توصیه میکنیم.
پینوشت: یکی از جالبترین مثالهای بررسی شده در اینجا، میزان تریدآف بین شفافیت و privacy است. در صورتی که این تریدآف در میانه باشد ممکن است اقلیتی از آن و رانت اطلاعاتی به منظور تسلط بر سایرین استفاده کنند که نهایتا منجر به بدترشدن وضع میشود. دو راهکار پیشنهادی برای این حالت میتواند این باشد که یا مدل را کوچکتر کنیم و دسترسی همه به شفافیت و هر نوع اطلاعاتی از سایرین را ببندیم تا کسی قدرت سواستفاده از اطلاعات را نداشته باشد و یا این که راهکار بسیار بزرگترکردن مدل را در پیش بگیریم. این راهکار بسیار شبیه به موضوع overparameterization در یادگیری ماشین است که اخیرا بسیار مورد توجه قرار گرفته است. در این حالت بایستی روی همه چیز شفافیت داشته باشیم، در حدی که همه افراد از همه اطلاعات هم خبر داشته باشند، در این صورت دیگر امکان سواستفاده از اطلاعات پیش نخواهد آمد!
لینک بلاگ:
https://sohl-dickstein.github.io/2022/11/06/strong-Goodhart.html
#read
#blog
@nlp_stuff
Telegram
stuff
ما به تو مدیونیم آقای SE!
اگر در حوزه تحلیل داده و یادگیری ماشین فعالیت میکنید، احتمالا مواقعی پیش اومده که به سمت جمعآوری داده و ایجاد دیتاست رفتید. روشهای مختلفی برای جمعآوری داده وجود داره اما در این پست میخوایم یک مقاله از گوگل رو برای شما معرفی کنیم که سعی کرده یک چارچوب مدون برای جمعآوری داده ارایه کنه و در این راه از مفاهیم موجود در توسعه نرمافزار الهام گرفته.
در این مقاله توضیح داده شده که فرآیند ایجاد دیتاست، یک فرآیند ۵ مرحلهای و چرخهای است که تصویر اون رو میتونید در پایین ببینید. این ۵ مرحله عبارتند از: بررسی نیازمندیها، طراحی، اجرا، تست و نگهداری که این ۵ مرحله نیز تداعی کننده متدولوژیهای مشهور در دنیای مهندسی نرم افزار هستند. نکته قابل توجه، تاکید گوگل بر تولید artifact در هر مرحله است. به این معنا که در هر مرحله باید داکیومنتی آماده بشه که به عنوان خروجی اون مرحله محسوب میشه و برای اون نیز تمپلیتهایی در انتهای مقاله آورده شده که کار رو روی زمین بیارند. توضیحات هر یک از این ۵ مرحله در یک جدول و در انتهای این پست در تصاویر آورده شده (ورق بزنید). یکی از مهمترین مراحل، مرحله تسته که به دو صورت تست پذیرش (برای اطمینان از تطابق با نیازمندیها) و تستهای خصمانه مطرح میشه و برای پیادهسازی هم همان متدهای معروف unit testing در مهندسی نرمافزار میتونه مورد استفاده قرار بگیره. مثلا فرض کنید چنانچه دیتاست از داخل یک سازمان جمعآوری میشه تستهایی طراحی بشه که از عدم افشای اطلاعات محرمانه شرکا اطمینان حاصل بشه. در ادامه هم برخی درسهایی که از حوزه مهندسی نرمافزار گرفتیم رو برای جمعآوری دیتاست هم اعمال میکنه. مثلا:
- به دیتاست به چشم یه گناهکار نگاه کنید مگر اینکه خلافش ثابت بشه (در واقع همیشه شکاک باشید که یه جای کار میلنگه و بابتش تست کیسهای مناسب طراحی کنید)
- پیشفرضهایی که باهاش به سراغ جمعآوری دیتاست رفتید رو گردآوری کنید و کنترل ورژن انجام بدید (در داکیومنت خروجی مرحله آنالیز نیازمندیها و یا طراحی میتونه دیده بشه)
- حتما در مسیر توسعه دیتاست، peer review داشته باشید که از نون شب واجبتره
- برای بررسی توزیع پارامترهای دیتاست از ابزارهای مصورسازی استفاده کنید. (یکی از سکشنهای تمپلیت مربوط به خروجی فاز آنالیز نیازمندیها که در انتهای مقاله اومده، distributional requirements هست که در اون توزیع لازم برای برخی پارامترها توضیح داده میشه. مثلا ممکنه دیتاست باید طوری جمعآوری بشه که فلان پارامتر توزیع نرمال داشته باشه و این واقعیت باید در داکیومنت فاز آنالیز نیازمندیها دیده بشه)
- حتما نواقص و محدودیتهای دیتاستتون رو بدونید و یادداشت کنید به جای اینکه روی سرش قسم بخورید
و در آخر باید بگیم که بارها موارد استفاده از پارادایمهای نرمافزاری در توسعه مدلهای یادگیری ماشین رو دیدیم و این بار شاهد استفاده از این پاردایمها در ایجاد دیتاست بودیم که اهمیت توانمندی در حوزه مهندسی نرمافزار رو برای دیتاساینتیست ها بیش از پیش نشون میده و در پایان فقط میتونیم بگیم ما دیتاساینتیستها به تو مدیونیم ای مهندسی نرمافزار!
پ.ن: به عنوان مثال، دیتاست معروف peyma که در حوزه NER فارسی مطرحه یه ایراد بزرگ داره و اون هم اینکه تمام named entityها که در دیتاست تست هستند، در دیتاست ترین نیز موجودند و هیچ named entityای وجود نداره که مدل، اون رو در فاز ترینینگ ندیده باشه! در حالیکه مثلا با ایجاد یک سناریوی یونیت تست میشد جلوی این رو گرفت. البته ما این مشکل رو در دیتاست خودمون (https://t.iss.one/nlp_stuff/250) حلش کردیم ولی دیتاست ما هم قطعا مشکلاتی داره که شما میتونید حلش کنید.
لینک مقاله:
https://arxiv.org/abs/2010.13561
#read
#paper
@nlp_stuff
اگر در حوزه تحلیل داده و یادگیری ماشین فعالیت میکنید، احتمالا مواقعی پیش اومده که به سمت جمعآوری داده و ایجاد دیتاست رفتید. روشهای مختلفی برای جمعآوری داده وجود داره اما در این پست میخوایم یک مقاله از گوگل رو برای شما معرفی کنیم که سعی کرده یک چارچوب مدون برای جمعآوری داده ارایه کنه و در این راه از مفاهیم موجود در توسعه نرمافزار الهام گرفته.
در این مقاله توضیح داده شده که فرآیند ایجاد دیتاست، یک فرآیند ۵ مرحلهای و چرخهای است که تصویر اون رو میتونید در پایین ببینید. این ۵ مرحله عبارتند از: بررسی نیازمندیها، طراحی، اجرا، تست و نگهداری که این ۵ مرحله نیز تداعی کننده متدولوژیهای مشهور در دنیای مهندسی نرم افزار هستند. نکته قابل توجه، تاکید گوگل بر تولید artifact در هر مرحله است. به این معنا که در هر مرحله باید داکیومنتی آماده بشه که به عنوان خروجی اون مرحله محسوب میشه و برای اون نیز تمپلیتهایی در انتهای مقاله آورده شده که کار رو روی زمین بیارند. توضیحات هر یک از این ۵ مرحله در یک جدول و در انتهای این پست در تصاویر آورده شده (ورق بزنید). یکی از مهمترین مراحل، مرحله تسته که به دو صورت تست پذیرش (برای اطمینان از تطابق با نیازمندیها) و تستهای خصمانه مطرح میشه و برای پیادهسازی هم همان متدهای معروف unit testing در مهندسی نرمافزار میتونه مورد استفاده قرار بگیره. مثلا فرض کنید چنانچه دیتاست از داخل یک سازمان جمعآوری میشه تستهایی طراحی بشه که از عدم افشای اطلاعات محرمانه شرکا اطمینان حاصل بشه. در ادامه هم برخی درسهایی که از حوزه مهندسی نرمافزار گرفتیم رو برای جمعآوری دیتاست هم اعمال میکنه. مثلا:
- به دیتاست به چشم یه گناهکار نگاه کنید مگر اینکه خلافش ثابت بشه (در واقع همیشه شکاک باشید که یه جای کار میلنگه و بابتش تست کیسهای مناسب طراحی کنید)
- پیشفرضهایی که باهاش به سراغ جمعآوری دیتاست رفتید رو گردآوری کنید و کنترل ورژن انجام بدید (در داکیومنت خروجی مرحله آنالیز نیازمندیها و یا طراحی میتونه دیده بشه)
- حتما در مسیر توسعه دیتاست، peer review داشته باشید که از نون شب واجبتره
- برای بررسی توزیع پارامترهای دیتاست از ابزارهای مصورسازی استفاده کنید. (یکی از سکشنهای تمپلیت مربوط به خروجی فاز آنالیز نیازمندیها که در انتهای مقاله اومده، distributional requirements هست که در اون توزیع لازم برای برخی پارامترها توضیح داده میشه. مثلا ممکنه دیتاست باید طوری جمعآوری بشه که فلان پارامتر توزیع نرمال داشته باشه و این واقعیت باید در داکیومنت فاز آنالیز نیازمندیها دیده بشه)
- حتما نواقص و محدودیتهای دیتاستتون رو بدونید و یادداشت کنید به جای اینکه روی سرش قسم بخورید
و در آخر باید بگیم که بارها موارد استفاده از پارادایمهای نرمافزاری در توسعه مدلهای یادگیری ماشین رو دیدیم و این بار شاهد استفاده از این پاردایمها در ایجاد دیتاست بودیم که اهمیت توانمندی در حوزه مهندسی نرمافزار رو برای دیتاساینتیست ها بیش از پیش نشون میده و در پایان فقط میتونیم بگیم ما دیتاساینتیستها به تو مدیونیم ای مهندسی نرمافزار!
پ.ن: به عنوان مثال، دیتاست معروف peyma که در حوزه NER فارسی مطرحه یه ایراد بزرگ داره و اون هم اینکه تمام named entityها که در دیتاست تست هستند، در دیتاست ترین نیز موجودند و هیچ named entityای وجود نداره که مدل، اون رو در فاز ترینینگ ندیده باشه! در حالیکه مثلا با ایجاد یک سناریوی یونیت تست میشد جلوی این رو گرفت. البته ما این مشکل رو در دیتاست خودمون (https://t.iss.one/nlp_stuff/250) حلش کردیم ولی دیتاست ما هم قطعا مشکلاتی داره که شما میتونید حلش کنید.
لینک مقاله:
https://arxiv.org/abs/2010.13561
#read
#paper
@nlp_stuff
Telegram
stuff
بحر در کوزه این بار با HF!
احتمالا تا حالا شده که در مسیر تسکهای NLP به دیوار سخت و خشن یک دیتاست بزرگ برخورده باشید (مثلا یک دیتاست در اندازه چند ده گیگابایت که شاید حتی جایی برای ذخیرهسازیش در دیسک نداشته باشید چه برسه به رم). در این حالته که دستها رو به نشانه تسلیم بالا میبرید. اما هاگینگفیس در کتابخانه Datasets🤗 این مشکل رو حل کرده. در واقع با دو قابلیت memory mapping و streaming که این کتابخانه فراهم کرده بر محدودیت رم و دیسک غلبه میکنید. قابلیت memory mapping (که به صورت پیشفرض فعاله) به این اشاره داره که با لودکردن هر دیتاستی توسط Datasets🤗 این کتابخانه یه سری cache file از دیتاست میسازه که بر روی دیسک ذخیره شدند و عینا همون محتویات دیتاست لودشده در RAM هستند. پس یه جور آیینه تمامنمای RAM محسوب میشه و از این جا به بعد دیگه این کتابخانه یه اشارهگر به اول این فایل باز میکنه و دیتا به صورت batch داخل رم لود میشه. طبیعتا آموزش مدل از اینجا به بعد I/O bounded خواهد بود اما نگران اون قسمتش هم نباشید چون فرمتی که برای کار با این فایلها استفاده میکنه Apache Arrow هست که یه فرمت بهینهشده است. از طرفی برای اینکه نعمت رو بر ما تکمیل کرده باشه و حتی نگران کمبود دیسک هم نباشیم قابلیت streaming رو تعریف کرده که ینی میتونید از هاب دیتاست هاگینگفیس، دیتاست رو به صورت batch و on the fly دانلود کنید و پردازش انجام بدید (که به صورت پیشفرض فعال نیست و باید streaming=True باشه). البته با استفاده از این قابلیت امکان random access به دیتاها رو از دست میدید (مثلا نمیتونید دستور dataset[2335] رو ران کنید چون آبجکتی که میسازه حالت iterable داره و شبیه generatorهای پایتونیه) ولی با دستور next و iterate کردن بر روی دیتاست، دقیقا سمپلهای یک دیتاست استریمنشده رو میگیرید. پس دیگه بهونه بسه و پاشید کار با دیتاستهای بزرگ رو شروع کنید.
پ.ن: در تصاویر یه سری نمونه کدهایی آوردیم که از فصل ۱۰ کتاب گرانسنگ NLP with Transformers گرفته شده که اثری جاوید از هاگینگفیسه.
#handsOn
@nlp_stuff
احتمالا تا حالا شده که در مسیر تسکهای NLP به دیوار سخت و خشن یک دیتاست بزرگ برخورده باشید (مثلا یک دیتاست در اندازه چند ده گیگابایت که شاید حتی جایی برای ذخیرهسازیش در دیسک نداشته باشید چه برسه به رم). در این حالته که دستها رو به نشانه تسلیم بالا میبرید. اما هاگینگفیس در کتابخانه Datasets🤗 این مشکل رو حل کرده. در واقع با دو قابلیت memory mapping و streaming که این کتابخانه فراهم کرده بر محدودیت رم و دیسک غلبه میکنید. قابلیت memory mapping (که به صورت پیشفرض فعاله) به این اشاره داره که با لودکردن هر دیتاستی توسط Datasets🤗 این کتابخانه یه سری cache file از دیتاست میسازه که بر روی دیسک ذخیره شدند و عینا همون محتویات دیتاست لودشده در RAM هستند. پس یه جور آیینه تمامنمای RAM محسوب میشه و از این جا به بعد دیگه این کتابخانه یه اشارهگر به اول این فایل باز میکنه و دیتا به صورت batch داخل رم لود میشه. طبیعتا آموزش مدل از اینجا به بعد I/O bounded خواهد بود اما نگران اون قسمتش هم نباشید چون فرمتی که برای کار با این فایلها استفاده میکنه Apache Arrow هست که یه فرمت بهینهشده است. از طرفی برای اینکه نعمت رو بر ما تکمیل کرده باشه و حتی نگران کمبود دیسک هم نباشیم قابلیت streaming رو تعریف کرده که ینی میتونید از هاب دیتاست هاگینگفیس، دیتاست رو به صورت batch و on the fly دانلود کنید و پردازش انجام بدید (که به صورت پیشفرض فعال نیست و باید streaming=True باشه). البته با استفاده از این قابلیت امکان random access به دیتاها رو از دست میدید (مثلا نمیتونید دستور dataset[2335] رو ران کنید چون آبجکتی که میسازه حالت iterable داره و شبیه generatorهای پایتونیه) ولی با دستور next و iterate کردن بر روی دیتاست، دقیقا سمپلهای یک دیتاست استریمنشده رو میگیرید. پس دیگه بهونه بسه و پاشید کار با دیتاستهای بزرگ رو شروع کنید.
پ.ن: در تصاویر یه سری نمونه کدهایی آوردیم که از فصل ۱۰ کتاب گرانسنگ NLP with Transformers گرفته شده که اثری جاوید از هاگینگفیسه.
#handsOn
@nlp_stuff
Telegram
stuff