مقاله former-∞
یکی از گرفتاریهای ترنسفورمرها نحوه برخورد اونها با دنبالههای طولانیه، این قضیه مخصوصا در ترنسفورمرهای کلاسیک که محاسبه، از مرتبه درجه دو نسبت به طول دنباله رشد میکنه، نمود بیشتری داره. نسخههای مختلفی از ترنسفورمرها در مقالات مختلف پیشنهاد شدند تا این درد رو تخفیف بدند ولی چیزی که در همه این ترنسفورمرها مشترکه، ظرفیت محدود توجه است؛ یعنی همیشه به یک طول محدودی از دنبالهها میتونیم توجه کنیم. مقاله مدل former-∞ که در این پست بررسی میکنیم در پی دادن پاسخی به این پرسشه که آیا میتونیم ترنسفورمری داشته باشیم که به دنبالهای با طول بی نهایت توجه کنیم؟ (برای درک قضیه، معماری lstm رو در نظر بگیرید که میتونه دنبالهای با طول بی نهایت رو پردازش کنه)
ایده پیشنهادی این مقاله استفاده از پیوستهسازی ورودیها و همچنین انجام توجه پیوستهست. در ساختار خودش هم، این معماری یک حافظه کوتاه مدت گسسته و یک حافظه بلند مدت پیوسته داره. حافظه کوتاه مدت که شبیه به همان ساختار اصلی ترنسفورمرهاست و حاوی تعدادی توکنه. اما در مورد حافظه بلندمدت، این حافظه قراره که بیانگر کل تاریخچه توکنهای دیدهشده توسط مدل به صورت پیوسته باشه. قطعا سوال الان توی ذهنتون اینه که چگونه پیوستهست؟ به صورت مختصر و مفید، فرض کنید که یک دنباله داریم که متشکل از ۱۰۰۰ تا توکن با سایز امبدینگ ۱۲۸ است. حالا مدل به جای این که سعی کنه برای هر بعد امبدینگ ۱۰۰۰ توکن رو ذخیره کنه، میاد و یک مدل رگرشن (مثلا درجه سه) روی این هزار تا نمونه اموزش میده و پارامترهای اون مدل رو که به مراتب کمتر از ۱۰۰۰ هستند ذخیره میکنه. به اصطلاح و دید فنی، یک سیگنال پیوسته رو از روی نمونههای گسستهای که داره میسازه. وقتی هم که بخواد در هر گام زمانی به این حافظه بلندمدتش توکنهای دیگه ای رو اضافه کنه اول، از مدل پیوسته حافظه بلندمدتش نمونهبرداری میکنه و توکنهای مورد نظر رو به این نمونههای برداشته شده الحاق میکنه و یک مدل رگرشن دیگهای آموزش میده.
حالا نوبت قلب ترنسفومر یا انجام توجه است. هر یک از توکنهای دنباله ورودی که اسمش رو X میگذاریم روی دو حافظه کوتاه مدت گسسته و حافظه بلندمدت پیوسته عملیات توجه رو انجام میدهند و حاصل این دو توجه با هم جمع میشوند. عملیات توجه روی حافظه گسسته که شبیه همون ترنسفورمر عادیه اما داستان برای توجه روی حافظه پیوسته فرق میکنه. داستان به این صورته که مدل از روی پارامترهای مدل رگرشنی که برای پیوستهسازی استفاده کرده بود بردارهای کلید (K) و مقدار (V) رو میسازه. حالا از روی این بردارها و بردارهای کوئری (Q) که برای توکنهای ورودی دنباله X داشتیم دو پارامتر میانگین و واریانس برای یک توزیع گاوسی رو پیدا میکنه. حالا این توزیع گاوسی قراره که به مثابه پنجره روی حافظه پیوسته عمل کنه و حاصل توجه از اعمال یک جور کانولوشن با این پنجره گاوسی رو حافظه پیوسته به دست میاد. در نهایت هم که حاصل دو توجه گسسته و پیوسته با هم جمع میشوند.
برای آزمایش هم این مدل را روی وظایفی که نیاز به هندل کردن دنباله با طول زیاد بوده آموزشش دادن و نتایجش رو با مدل Transformer-XL مقایسه کردهاند و نشون دادهاند که از اون بهتر عمل کرده. مثلا یک نمونه وظیفه این بوده که دنبالهای تصادفی شامل تعدادی عدد تولید کردهاند و از مدل خواسته اند که در خروجی اعداد رو به ترتیب نزولی فرکانسشون در دنباله ورودی، خروجی بدهد.
در صورتی که کنجکاوتر شدید میتونید ویدئو یانیک کیلچر شیرینزبان رو در توضیح این مقاله مشاهده کنید:
https://www.youtube.com/watch?v=0JlB9gufTw8
لینک مقاله:
https://arxiv.org/abs/2109.00301
پ.ن. با معرفی کردن کانال به بقیه، حمایتش کنید.
#paper
#read
@nlp_stuff
یکی از گرفتاریهای ترنسفورمرها نحوه برخورد اونها با دنبالههای طولانیه، این قضیه مخصوصا در ترنسفورمرهای کلاسیک که محاسبه، از مرتبه درجه دو نسبت به طول دنباله رشد میکنه، نمود بیشتری داره. نسخههای مختلفی از ترنسفورمرها در مقالات مختلف پیشنهاد شدند تا این درد رو تخفیف بدند ولی چیزی که در همه این ترنسفورمرها مشترکه، ظرفیت محدود توجه است؛ یعنی همیشه به یک طول محدودی از دنبالهها میتونیم توجه کنیم. مقاله مدل former-∞ که در این پست بررسی میکنیم در پی دادن پاسخی به این پرسشه که آیا میتونیم ترنسفورمری داشته باشیم که به دنبالهای با طول بی نهایت توجه کنیم؟ (برای درک قضیه، معماری lstm رو در نظر بگیرید که میتونه دنبالهای با طول بی نهایت رو پردازش کنه)
ایده پیشنهادی این مقاله استفاده از پیوستهسازی ورودیها و همچنین انجام توجه پیوستهست. در ساختار خودش هم، این معماری یک حافظه کوتاه مدت گسسته و یک حافظه بلند مدت پیوسته داره. حافظه کوتاه مدت که شبیه به همان ساختار اصلی ترنسفورمرهاست و حاوی تعدادی توکنه. اما در مورد حافظه بلندمدت، این حافظه قراره که بیانگر کل تاریخچه توکنهای دیدهشده توسط مدل به صورت پیوسته باشه. قطعا سوال الان توی ذهنتون اینه که چگونه پیوستهست؟ به صورت مختصر و مفید، فرض کنید که یک دنباله داریم که متشکل از ۱۰۰۰ تا توکن با سایز امبدینگ ۱۲۸ است. حالا مدل به جای این که سعی کنه برای هر بعد امبدینگ ۱۰۰۰ توکن رو ذخیره کنه، میاد و یک مدل رگرشن (مثلا درجه سه) روی این هزار تا نمونه اموزش میده و پارامترهای اون مدل رو که به مراتب کمتر از ۱۰۰۰ هستند ذخیره میکنه. به اصطلاح و دید فنی، یک سیگنال پیوسته رو از روی نمونههای گسستهای که داره میسازه. وقتی هم که بخواد در هر گام زمانی به این حافظه بلندمدتش توکنهای دیگه ای رو اضافه کنه اول، از مدل پیوسته حافظه بلندمدتش نمونهبرداری میکنه و توکنهای مورد نظر رو به این نمونههای برداشته شده الحاق میکنه و یک مدل رگرشن دیگهای آموزش میده.
حالا نوبت قلب ترنسفومر یا انجام توجه است. هر یک از توکنهای دنباله ورودی که اسمش رو X میگذاریم روی دو حافظه کوتاه مدت گسسته و حافظه بلندمدت پیوسته عملیات توجه رو انجام میدهند و حاصل این دو توجه با هم جمع میشوند. عملیات توجه روی حافظه گسسته که شبیه همون ترنسفورمر عادیه اما داستان برای توجه روی حافظه پیوسته فرق میکنه. داستان به این صورته که مدل از روی پارامترهای مدل رگرشنی که برای پیوستهسازی استفاده کرده بود بردارهای کلید (K) و مقدار (V) رو میسازه. حالا از روی این بردارها و بردارهای کوئری (Q) که برای توکنهای ورودی دنباله X داشتیم دو پارامتر میانگین و واریانس برای یک توزیع گاوسی رو پیدا میکنه. حالا این توزیع گاوسی قراره که به مثابه پنجره روی حافظه پیوسته عمل کنه و حاصل توجه از اعمال یک جور کانولوشن با این پنجره گاوسی رو حافظه پیوسته به دست میاد. در نهایت هم که حاصل دو توجه گسسته و پیوسته با هم جمع میشوند.
برای آزمایش هم این مدل را روی وظایفی که نیاز به هندل کردن دنباله با طول زیاد بوده آموزشش دادن و نتایجش رو با مدل Transformer-XL مقایسه کردهاند و نشون دادهاند که از اون بهتر عمل کرده. مثلا یک نمونه وظیفه این بوده که دنبالهای تصادفی شامل تعدادی عدد تولید کردهاند و از مدل خواسته اند که در خروجی اعداد رو به ترتیب نزولی فرکانسشون در دنباله ورودی، خروجی بدهد.
در صورتی که کنجکاوتر شدید میتونید ویدئو یانیک کیلچر شیرینزبان رو در توضیح این مقاله مشاهده کنید:
https://www.youtube.com/watch?v=0JlB9gufTw8
لینک مقاله:
https://arxiv.org/abs/2109.00301
پ.ن. با معرفی کردن کانال به بقیه، حمایتش کنید.
#paper
#read
@nlp_stuff
Telegram
stuff
مدلهای دستهبندی صوتی در هاگینگفیس
قبلا در دو پست این [https://www.tg-me.com/nlp_stuff/152] و این [https://www.tg-me.com/nlp_stuff/184] راجع به مدل wave2vec و ابزار speechbrain صحبت کرده بودیم.
حالا کمکم زمان برداشت فرا رسیده و ملت مدلهای کاربردی روی این مدلها و ابزارهای پایه دارند تولید میکنند و روی هاگینگفیس هم میگذارند.
به تسکهایی مثل تشخیص زبان، استخراج کلمات کلیدی، تشخیص احساسات، تشخیص گوینده و … از روی صدای ورودی، دستهبندی صوتی گفته میشه.
لینک کل مدلهای دستهبندی صوتی موجود روی هاگینگ فیس:
https://huggingface.co/models?pipeline_tag=audio-classification
لینک مدل تشخیص زبان (فارسی هم داره) با Speechbrain:
https://huggingface.co/speechbrain/lang-id-commonlanguage_ecapa
#tool
#link
@nlp_stuff
قبلا در دو پست این [https://www.tg-me.com/nlp_stuff/152] و این [https://www.tg-me.com/nlp_stuff/184] راجع به مدل wave2vec و ابزار speechbrain صحبت کرده بودیم.
حالا کمکم زمان برداشت فرا رسیده و ملت مدلهای کاربردی روی این مدلها و ابزارهای پایه دارند تولید میکنند و روی هاگینگفیس هم میگذارند.
به تسکهایی مثل تشخیص زبان، استخراج کلمات کلیدی، تشخیص احساسات، تشخیص گوینده و … از روی صدای ورودی، دستهبندی صوتی گفته میشه.
لینک کل مدلهای دستهبندی صوتی موجود روی هاگینگ فیس:
https://huggingface.co/models?pipeline_tag=audio-classification
لینک مدل تشخیص زبان (فارسی هم داره) با Speechbrain:
https://huggingface.co/speechbrain/lang-id-commonlanguage_ecapa
#tool
#link
@nlp_stuff
خاطرههای قدیمی رو زنده کنید؛ این بار با مدل GFP-GAN
موضوع بازسازی تصاویر قدیمی همیشه یکی از آرزوهای پاک بشریت بوده! خیلی وقتها دوست داریم عکسهای چهره قدیمی از اجدادمون رو بتونیم واضحتر ببینیم که ببینیم چه شکلی بودند. این تسک به نوعی حذف نویز و بهبود و بازسازی تصاویر است. با این پست ویرگول از انتشارات اورفیت همراه باشید تا این مقاله رو بهتر درک کنید و از لینک دموی مدل و مقاله آگاه بشید.
آدرس پست:
https://virgool.io/overfit/gfp-gan-gxudgqbqptsd
پ.ن: با معرفی کانال به دیگران، بقیه رو هم در لذتی که میبرید شریک کنید!
#paper
#read
#blog
#overfit
@nlp_stuff
موضوع بازسازی تصاویر قدیمی همیشه یکی از آرزوهای پاک بشریت بوده! خیلی وقتها دوست داریم عکسهای چهره قدیمی از اجدادمون رو بتونیم واضحتر ببینیم که ببینیم چه شکلی بودند. این تسک به نوعی حذف نویز و بهبود و بازسازی تصاویر است. با این پست ویرگول از انتشارات اورفیت همراه باشید تا این مقاله رو بهتر درک کنید و از لینک دموی مدل و مقاله آگاه بشید.
آدرس پست:
https://virgool.io/overfit/gfp-gan-gxudgqbqptsd
پ.ن: با معرفی کانال به دیگران، بقیه رو هم در لذتی که میبرید شریک کنید!
#paper
#read
#blog
#overfit
@nlp_stuff
ویرگول
بازسازی عکسهای قدیمی با هوشمصنوعی
موضوع بازسازی تصاویر قدیمی همیشه یکی از آرزوهای پاک بشریت بوده! خیلی وقتها دوست داریم عکسهای چهره قدیمی اجدادمون رو بتونیم واضحتر
بلاگی برای یادگیری GNN
شاید شما هم جزء اون دسته افرادی باشید که با افتادن گذر به مباحث مربوط به Graph Neural Network کمیتتون لنگ میزنه و به خاطر عدم مطالعه درست و حسابی پایهای نتونستید با این جور مباحث ارتباط برقرار کنید. امروز دو تا لینک بلاگ درست حسابی براتون آوردیم که با خوندن اونها میتونید به مقدمات گراف در دیپ لرنینگ وارد بشید و از این به بعد خوندن مقالات این حوزه رو هم جزو گزینههاتون قرار بدید. از خوبیها این بلاگ اینه که از ب بسم الله به طرز روان و همهکسفهم و با تصویرسازیهای موثر و فراهم کردن زمینبازیهای تعاملی (playground) سعی کرده این مطالب رو توضیح بده. لینک اول راجع به دادههای با ذات گراف و مسائلشون و ایده و ساختار GNN صحبت میکنه. لینک دوم هم در رابطه با چند گونه مختلف از GNNها (نظیر GCN و GAT و ...) و پیادهسازی ایده کانولوشن روی گراف توضیح میده.
لینک اول:
https://distill.pub/2021/gnn-intro/
لینک دوم:
https://distill.pub/2021/understanding-gnns/
پ.ن: قبلا در زمینه گراف یک کورس خوب هم در این پست [https://www.tg-me.com/nlp_stuff/163] معرفی کرده بودیم.
#coach
#read
#blog
@nlp_stuff
شاید شما هم جزء اون دسته افرادی باشید که با افتادن گذر به مباحث مربوط به Graph Neural Network کمیتتون لنگ میزنه و به خاطر عدم مطالعه درست و حسابی پایهای نتونستید با این جور مباحث ارتباط برقرار کنید. امروز دو تا لینک بلاگ درست حسابی براتون آوردیم که با خوندن اونها میتونید به مقدمات گراف در دیپ لرنینگ وارد بشید و از این به بعد خوندن مقالات این حوزه رو هم جزو گزینههاتون قرار بدید. از خوبیها این بلاگ اینه که از ب بسم الله به طرز روان و همهکسفهم و با تصویرسازیهای موثر و فراهم کردن زمینبازیهای تعاملی (playground) سعی کرده این مطالب رو توضیح بده. لینک اول راجع به دادههای با ذات گراف و مسائلشون و ایده و ساختار GNN صحبت میکنه. لینک دوم هم در رابطه با چند گونه مختلف از GNNها (نظیر GCN و GAT و ...) و پیادهسازی ایده کانولوشن روی گراف توضیح میده.
لینک اول:
https://distill.pub/2021/gnn-intro/
لینک دوم:
https://distill.pub/2021/understanding-gnns/
پ.ن: قبلا در زمینه گراف یک کورس خوب هم در این پست [https://www.tg-me.com/nlp_stuff/163] معرفی کرده بودیم.
#coach
#read
#blog
@nlp_stuff
مدلسازی سهبعدی با استفاده از NeRF
ما انسان ها و به طور کلی حیوانات در ساختن نمای سهبعدی از اشیایی و تصاویر دوبعدیشون ماهر هستیم؛ ولی این ماجرا برای هوش مصنوعی فرق میکنه. فرض کنید یک تعداد عکس از یک شی (مثلا صندلی) با زاویههای مختلف میگیرم و میخواهیم مدل سهبعدی اون شی رو داشته باشیم که تصویر با هر زاویه دلخواه از اون رو بتونیم رندر بگیریم به این کار میگیم View Synthesis. برای این کار یک سری روش اولیه و ساده این بوده که از تصویرهای دو بعدی سعی میکردند حجم (volume) سهبعدی شی رو بسازند که البته ذخیرهسازی این volume حافظهای نزدیک به چند گیگ میخواسته و خب قاعدتا کار به صرفهای نبوده. یک دسته دیگر از روشها اما سعی کردهاند شی سه بعدی رو به شکل یک رویه مدل کنند و پارامترهای معادله اون رویه رو به دست بیارند (در مقایسه با دسته قبلی، این روشهای مثلا فقط نیاز به ۱۰ مگابایت حافظه داشتهاند)
اما یک مقالهای پارسال منتشر شد به اسم Neural Radiance Fields یا به اختصار NeRF، کاری که تو این مقاله میکنند اینه که یک شبکه عصبی آموزش میدن که با گرفتن تصویر در ورودی خودش، در خروجی خودش سه کانال رنگی و میزان آلفا یا opacity رو با گرفتن مختصات x,y,z و زاویه نگاه مورد نظر (تتا و فای) تولید میکنه. به صورت واضحتر یعنی شما به شبکه مثلا یک تصویر صندلی میدید و بهش x,y,z خودتون و زاویه دیدتون رو هم میدید و شبکه براتون اون نما از صندلی نسبت به اون موقعیت و زاویه رو درست میکنه؛ یعنی:
(x,y,z,theta,phi) => MLP => (R,G,B, alpha)
حالا این کار چه طوری انجام میپذیره؟ برای تولید تصویر دوبعدی در زاویه مورد نظر یه ray (پرتو، خط فرضی) از مرکز نگاه ما (دوربین) به هر نقطه در تصویر دوبعدی که میخواهیم بسازیم رد میکنند و ادامه میدهند. (این پرتو صرفا یه معادله خط در فضاست، یک خط بین دونقطه: دوربین و هر پیکسل تصویر دو بعدی) در نقاطی در طول پرتو سمپل برمیدارند و میانگین میگیرند (تقریب یک انتگرال) یعنی همونطوری که توی شکل مشخص شده مقادیر RGB و آلفا رو برای نقاط روی خط در نظر گرفته شده (که بش میگیم پرتو) حساب میکنند و میانگین این مقادیر میشه RGB و آلفا پیکسلی از تصویر دو بعدی که پرتو اون رو قطع میکنه. این کار رو برای چندین تصویر دوبعدی که از شی داریم انجام میدن. با این کار اون شی شکل سهبعدیش در وزنهای شبکه عصبی انکود میشه و میشه هر view ازش رو ساخت.
سوال بعدی اینه که این رو چطوری آموزش میدن؟ همین کار پرتو رو انجام میدن و برای تصاویری که داریم. شبکه یسری پیکسل تولید کرده که با پیکسل های واقعی MSE، به عنوان loss میگیرند. تقریبا نیمروز طول میکشه برای یک جسم یاد بگیره ولی توی 30 ثانیه view تولید میکنه. وزنهای شبکه عصبی هم حدود 5 مگابایت اینا میشه. دقت خیلی خوب وضوح تصویر عالی داره.
این همه حسن گفتیم اما مشکلش و جای کار بیشتر کجاست؟ باید سمپلهای زیادی در هر پرتو برداشت که حداقل موقع inference خیلی اذیت میکنه، تازه هر پرتو میشه یک پیکسل، رزولوشن بالا باشه دیگه دردسر بیشتره.
یسری بحث یادگیری ویژگیهای فرکانس بالا برای جزییات بهتر هم داره که از محدوده این پست خارجه.
مقاله:
https://arxiv.org/pdf/2003.08934
لینک مقالهها و پیادهسازیهاشون برای این زمینه:
https://github.com/yenchenlin/awesome-NeRF
پ.ن. با تشکر از آقای محمدمهدی عبداللهپور بابت درست کردن این پست. شما هم اگر پست خوبی دارید، بفرستید.
#read
#paper
@nlp_stuff
ما انسان ها و به طور کلی حیوانات در ساختن نمای سهبعدی از اشیایی و تصاویر دوبعدیشون ماهر هستیم؛ ولی این ماجرا برای هوش مصنوعی فرق میکنه. فرض کنید یک تعداد عکس از یک شی (مثلا صندلی) با زاویههای مختلف میگیرم و میخواهیم مدل سهبعدی اون شی رو داشته باشیم که تصویر با هر زاویه دلخواه از اون رو بتونیم رندر بگیریم به این کار میگیم View Synthesis. برای این کار یک سری روش اولیه و ساده این بوده که از تصویرهای دو بعدی سعی میکردند حجم (volume) سهبعدی شی رو بسازند که البته ذخیرهسازی این volume حافظهای نزدیک به چند گیگ میخواسته و خب قاعدتا کار به صرفهای نبوده. یک دسته دیگر از روشها اما سعی کردهاند شی سه بعدی رو به شکل یک رویه مدل کنند و پارامترهای معادله اون رویه رو به دست بیارند (در مقایسه با دسته قبلی، این روشهای مثلا فقط نیاز به ۱۰ مگابایت حافظه داشتهاند)
اما یک مقالهای پارسال منتشر شد به اسم Neural Radiance Fields یا به اختصار NeRF، کاری که تو این مقاله میکنند اینه که یک شبکه عصبی آموزش میدن که با گرفتن تصویر در ورودی خودش، در خروجی خودش سه کانال رنگی و میزان آلفا یا opacity رو با گرفتن مختصات x,y,z و زاویه نگاه مورد نظر (تتا و فای) تولید میکنه. به صورت واضحتر یعنی شما به شبکه مثلا یک تصویر صندلی میدید و بهش x,y,z خودتون و زاویه دیدتون رو هم میدید و شبکه براتون اون نما از صندلی نسبت به اون موقعیت و زاویه رو درست میکنه؛ یعنی:
(x,y,z,theta,phi) => MLP => (R,G,B, alpha)
حالا این کار چه طوری انجام میپذیره؟ برای تولید تصویر دوبعدی در زاویه مورد نظر یه ray (پرتو، خط فرضی) از مرکز نگاه ما (دوربین) به هر نقطه در تصویر دوبعدی که میخواهیم بسازیم رد میکنند و ادامه میدهند. (این پرتو صرفا یه معادله خط در فضاست، یک خط بین دونقطه: دوربین و هر پیکسل تصویر دو بعدی) در نقاطی در طول پرتو سمپل برمیدارند و میانگین میگیرند (تقریب یک انتگرال) یعنی همونطوری که توی شکل مشخص شده مقادیر RGB و آلفا رو برای نقاط روی خط در نظر گرفته شده (که بش میگیم پرتو) حساب میکنند و میانگین این مقادیر میشه RGB و آلفا پیکسلی از تصویر دو بعدی که پرتو اون رو قطع میکنه. این کار رو برای چندین تصویر دوبعدی که از شی داریم انجام میدن. با این کار اون شی شکل سهبعدیش در وزنهای شبکه عصبی انکود میشه و میشه هر view ازش رو ساخت.
سوال بعدی اینه که این رو چطوری آموزش میدن؟ همین کار پرتو رو انجام میدن و برای تصاویری که داریم. شبکه یسری پیکسل تولید کرده که با پیکسل های واقعی MSE، به عنوان loss میگیرند. تقریبا نیمروز طول میکشه برای یک جسم یاد بگیره ولی توی 30 ثانیه view تولید میکنه. وزنهای شبکه عصبی هم حدود 5 مگابایت اینا میشه. دقت خیلی خوب وضوح تصویر عالی داره.
این همه حسن گفتیم اما مشکلش و جای کار بیشتر کجاست؟ باید سمپلهای زیادی در هر پرتو برداشت که حداقل موقع inference خیلی اذیت میکنه، تازه هر پرتو میشه یک پیکسل، رزولوشن بالا باشه دیگه دردسر بیشتره.
یسری بحث یادگیری ویژگیهای فرکانس بالا برای جزییات بهتر هم داره که از محدوده این پست خارجه.
مقاله:
https://arxiv.org/pdf/2003.08934
لینک مقالهها و پیادهسازیهاشون برای این زمینه:
https://github.com/yenchenlin/awesome-NeRF
پ.ن. با تشکر از آقای محمدمهدی عبداللهپور بابت درست کردن این پست. شما هم اگر پست خوبی دارید، بفرستید.
#read
#paper
@nlp_stuff
Telegram
stuff
This media is not supported in your browser
VIEW IN TELEGRAM
مدلهای document parsing در هاگینگفیس
دو مدل LayoutLMv2 و LayoutXLM از مایکروسافت برای پارس کردن تصاویر متنی به هاگینگ فیس اضافه شده و دمویی هم در لینک زیر براشون قرار داده شده که میتونید امتحان کنید. به این مدلها مولتیمودال بین متن و لایوت و تصویر گفته میشه. این مدلها کلمههای داخل عکس را یکی از تگهای مثل QUESTION/ANSWER/HEADER/OTHER میزنند و یعنی دارند کل جدول رو براتون پارس میکنند که باعث میشه خیلی راحتتر بتونید با مقادیر جدول کار کنید.
مدل LayoutXLM روی ۵۳ تا زبون (از جمله فارسی) پیشآموزش داده شده.
- دموی مدل LayoutLMv2:
https://huggingface.co/spaces/nielsr/LayoutLMv2-FUNSD
- لینکهای مقاله و هاگینگفیس مدل LayoutXLM:
https://huggingface.co/microsoft/layoutxlm-base
https://arxiv.org/abs/2104.08836
- لینکهای مقاله و هاگینگفیس مدل LayoutLMv2:
https://huggingface.co/microsoft/layoutlmv2-base-uncased
https://arxiv.org/abs/2012.14740
#tool
#link
@nlp_stuff
دو مدل LayoutLMv2 و LayoutXLM از مایکروسافت برای پارس کردن تصاویر متنی به هاگینگ فیس اضافه شده و دمویی هم در لینک زیر براشون قرار داده شده که میتونید امتحان کنید. به این مدلها مولتیمودال بین متن و لایوت و تصویر گفته میشه. این مدلها کلمههای داخل عکس را یکی از تگهای مثل QUESTION/ANSWER/HEADER/OTHER میزنند و یعنی دارند کل جدول رو براتون پارس میکنند که باعث میشه خیلی راحتتر بتونید با مقادیر جدول کار کنید.
مدل LayoutXLM روی ۵۳ تا زبون (از جمله فارسی) پیشآموزش داده شده.
- دموی مدل LayoutLMv2:
https://huggingface.co/spaces/nielsr/LayoutLMv2-FUNSD
- لینکهای مقاله و هاگینگفیس مدل LayoutXLM:
https://huggingface.co/microsoft/layoutxlm-base
https://arxiv.org/abs/2104.08836
- لینکهای مقاله و هاگینگفیس مدل LayoutLMv2:
https://huggingface.co/microsoft/layoutlmv2-base-uncased
https://arxiv.org/abs/2012.14740
#tool
#link
@nlp_stuff
آشنایی با متد gather در pytorch
استفاده از حلقهها نظیر for در کدهای یادگیری عمیق به شدت قبیح و سخیف است، از این نظر که فلسفه یادگیری عمیق را که مبتنی بر موازیسازی است تباه میسازد و باعث کاهش سرعت در اجرای کد میشود. نحوه پاکسازی کد از حلقه در بعضی مواقع با تکنیکهای indexing یا slicing واضح و روشن است اما در بعضی مواقع دیگر نیز حذف حلقه و استفاده از توابع وکتوری، نیازمند آشنایی با توابع خاص منظوره این موارد است. یکی از موارد سناریویی است که در آن تنسوری به ما داده شده و بایستی در راستای یک محور تنسوری مقادیر خاصی را استخراج کنیم. انجام این عملیات با indexing ممکن نبوده و راه حل فرار از حلقه for در این سناریو در چارچوب پایتورچ، استفاده از متد gather است.
در صورتی که علاقهمند به آشنایی با gather و آموختن این تکنیک هستید، میتوانید از پست جدید ما در ویرگول که در این باره است استفاده کامل را ببرید.
لینک ویرگول:
https://virgool.io/overfit/gather-in-pytorch-lhce2bm1wkb3
#read
#blog
#overfit
@nlp_stuff
استفاده از حلقهها نظیر for در کدهای یادگیری عمیق به شدت قبیح و سخیف است، از این نظر که فلسفه یادگیری عمیق را که مبتنی بر موازیسازی است تباه میسازد و باعث کاهش سرعت در اجرای کد میشود. نحوه پاکسازی کد از حلقه در بعضی مواقع با تکنیکهای indexing یا slicing واضح و روشن است اما در بعضی مواقع دیگر نیز حذف حلقه و استفاده از توابع وکتوری، نیازمند آشنایی با توابع خاص منظوره این موارد است. یکی از موارد سناریویی است که در آن تنسوری به ما داده شده و بایستی در راستای یک محور تنسوری مقادیر خاصی را استخراج کنیم. انجام این عملیات با indexing ممکن نبوده و راه حل فرار از حلقه for در این سناریو در چارچوب پایتورچ، استفاده از متد gather است.
در صورتی که علاقهمند به آشنایی با gather و آموختن این تکنیک هستید، میتوانید از پست جدید ما در ویرگول که در این باره است استفاده کامل را ببرید.
لینک ویرگول:
https://virgool.io/overfit/gather-in-pytorch-lhce2bm1wkb3
#read
#blog
#overfit
@nlp_stuff
ویرگول
متد gather در pytorch
با gather آشنا شویم تا کمتر از for قبیح وقت گیر در پایتورچ استفاده کنیم!
نوتبوک داینامیک پدینگ
یکی از تفاوتهای اساسی دادههای متنی با دادههای تصویری، سایز مختلف نمونههای متنی (طول متن) نسبت به یکدیگره. برای حل این معضل راهکار padding استفاده میشه که در آن، طول تمامی نمونههای یک بچ یکسانسازی میشه. سادهترین استراتژی در این راستا میتونه این باشه که همه متنها رو به اندازه طول بزرگترین متن پد کنیم، اما خب واضحه که با این کار وقت و منابع زیادی رو برای بچ هایی که طول طولانیترین متنشون به اندازه طولانیترین متن کل دادهها نیست، هدر میدهیم. استراتژی موثرتر میتونه استفاده از داینامیک پدینگ باشه که تو این روش دادهها رو فقط به اندازه طولانیترین متن حاضر در هر بچ پد کنیم. باز هم اینجا ممکنه یک متن طولانی با یک متن کوتاه با هم در یک بچ حاضر بشوند و منابع زیادی برای پد کردن این بچ به هدر بره. راهکارهای دیگه مثل سورت کردن یا شبه سورت کردن دادهها برای حل این مشکل وجود دارند. آقای ایوبی اومدند و در راستای این دسته روشهای مطرح شده نوتبوکی رو آماده کردهاند و در اختیار بقیه قرار دادند. این نوتبوک شامل کدهای مربوط به انجام هر یک از این روشهاست و البته توضیحشون و مزایا و معایبشون هم قرار داده شده. میتونید مشاهده کنید و در صورت نیاز در کدهاتون استفاده کنید.
لینک نوتبوک:
https://sajjjadayobi.github.io/blog/tips/2021/08/09/sortish-bathes.html
پ.ن. با تشکر از آقای ایوبی بابت فرستادن این پست. شما نیز اگر مطلب یا محتوای جالبی در دست دارید، بفرستید تا با اسم خودتون در کانال قرار داده بشه.
#code
@nlp_stuff
یکی از تفاوتهای اساسی دادههای متنی با دادههای تصویری، سایز مختلف نمونههای متنی (طول متن) نسبت به یکدیگره. برای حل این معضل راهکار padding استفاده میشه که در آن، طول تمامی نمونههای یک بچ یکسانسازی میشه. سادهترین استراتژی در این راستا میتونه این باشه که همه متنها رو به اندازه طول بزرگترین متن پد کنیم، اما خب واضحه که با این کار وقت و منابع زیادی رو برای بچ هایی که طول طولانیترین متنشون به اندازه طولانیترین متن کل دادهها نیست، هدر میدهیم. استراتژی موثرتر میتونه استفاده از داینامیک پدینگ باشه که تو این روش دادهها رو فقط به اندازه طولانیترین متن حاضر در هر بچ پد کنیم. باز هم اینجا ممکنه یک متن طولانی با یک متن کوتاه با هم در یک بچ حاضر بشوند و منابع زیادی برای پد کردن این بچ به هدر بره. راهکارهای دیگه مثل سورت کردن یا شبه سورت کردن دادهها برای حل این مشکل وجود دارند. آقای ایوبی اومدند و در راستای این دسته روشهای مطرح شده نوتبوکی رو آماده کردهاند و در اختیار بقیه قرار دادند. این نوتبوک شامل کدهای مربوط به انجام هر یک از این روشهاست و البته توضیحشون و مزایا و معایبشون هم قرار داده شده. میتونید مشاهده کنید و در صورت نیاز در کدهاتون استفاده کنید.
لینک نوتبوک:
https://sajjjadayobi.github.io/blog/tips/2021/08/09/sortish-bathes.html
پ.ن. با تشکر از آقای ایوبی بابت فرستادن این پست. شما نیز اگر مطلب یا محتوای جالبی در دست دارید، بفرستید تا با اسم خودتون در کانال قرار داده بشه.
#code
@nlp_stuff
Telegram
stuff
جعبهابزار یادگیری ماشین!
هر فردی که در حوزه یادگیری ماشین و مشتقاتش داره فعالیت میکنه حتما لازمه که برای خودش یه جعبهابزار داشته باشه. برادر آمیت این جعبه ابزار رو آماده کرده و کل ابزارها رو به ۵ دسته آمادهسازی داده، اکتشاف داده، مدلسازی، ولیدیشن و پروداکشن از استکها و تسکهای مختلف تقسیم کرده.
این پست رو حتما یه گوشهای ذخیره کنید که هر وقت به دوشواری خوردید، یه سری بهش بزنید.
لینک جعبهابزار:
https://amitness.com/toolbox
#tool
@nlp_stuff
هر فردی که در حوزه یادگیری ماشین و مشتقاتش داره فعالیت میکنه حتما لازمه که برای خودش یه جعبهابزار داشته باشه. برادر آمیت این جعبه ابزار رو آماده کرده و کل ابزارها رو به ۵ دسته آمادهسازی داده، اکتشاف داده، مدلسازی، ولیدیشن و پروداکشن از استکها و تسکهای مختلف تقسیم کرده.
این پست رو حتما یه گوشهای ذخیره کنید که هر وقت به دوشواری خوردید، یه سری بهش بزنید.
لینک جعبهابزار:
https://amitness.com/toolbox
#tool
@nlp_stuff
بعضی seedها برابرترند
همانطور که احتمالا تا حالا دیده اید در خیلی از مقالات یادگیری ماشین به جای گزارش یک عدد به عنوان امتیاز معدل، چندین بار آزمایش روی مدل صورت میگیره و امتیاز مدل در این آزمایشها به صورت یک بازه گزارش میشود. حالا آقای پیکارد اومدند و سعی کردند بررسی کنند که تاثیر seed های مختلف بر روی عملکرد مدل به چه صورته. ایشون سعی کردند پاسخ به سه سوال رو پیدا کنند:
۱- توزیع امتیاز مدلها با توجه به seed انتخابی به چه صورته؟
۲- آیا پدیده قوی سیاه رو بین مدلها با seedهای مختلف میشه مشاهده کرد؟ یعنی seed ای هست که منجر به مدلی با امتیاز خیلی بالا یا پایین بشه؟
۳- آیا پیش آموزش روی دیتاستهای بزرگتر باعث تخفیف تنوع پذیری امتیاز مدل با توجه به seedها میشه؟
پیکارد بر همین اساس اومده و تسکهای دستهبندی تصویر بر روی cifar10 و imagenet رو برای انواع seedها انجام داده و بر اساس نتایج پاسخهایی رو برای سه سوال بالا ارائه داده. نکته جالب در نتایج اینه که واقعا انتخاب seed میتونه بر امتیاز مدل تاثیرگذار باشه و حتی اگر میزان ایپاکهای آموزش رو بیشتر کنیم هم فاصله طبقاتی میان خوششانسترین و بدشانسترین مدلهای برآمده از seed های مختلف کاهش پیدا نمیکنه. نکته اخلاقی این پست اینه که اگر مدلی رو توسعه دادید و خواستید میزان عملکردش رو گزارش بدید حواستون باشه که randomness اولیه رو هم در نظر بگیرید و به جای گزارش یک عدد، باید یک بازه رو ارائه داد (البته که اگر مدل یا دادگان به اندازه ای بزرگ باشند که نشه چندبار فرآیند آموزش دادن رو انجام داد این سناریو با دشواری مواجه میشه و باید فکری دیگهای به حالش کرد که میتونه موضوع پژوهشهای دیگهای باشه)
لینک مقاله:
https://arxiv.org/abs/2109.08203
پ.ن: با نشر مطالب دوستان خود را نیز از لذت فراگیری بهرهمند سازید.
#paper
#read
@nlp_stuff
همانطور که احتمالا تا حالا دیده اید در خیلی از مقالات یادگیری ماشین به جای گزارش یک عدد به عنوان امتیاز معدل، چندین بار آزمایش روی مدل صورت میگیره و امتیاز مدل در این آزمایشها به صورت یک بازه گزارش میشود. حالا آقای پیکارد اومدند و سعی کردند بررسی کنند که تاثیر seed های مختلف بر روی عملکرد مدل به چه صورته. ایشون سعی کردند پاسخ به سه سوال رو پیدا کنند:
۱- توزیع امتیاز مدلها با توجه به seed انتخابی به چه صورته؟
۲- آیا پدیده قوی سیاه رو بین مدلها با seedهای مختلف میشه مشاهده کرد؟ یعنی seed ای هست که منجر به مدلی با امتیاز خیلی بالا یا پایین بشه؟
۳- آیا پیش آموزش روی دیتاستهای بزرگتر باعث تخفیف تنوع پذیری امتیاز مدل با توجه به seedها میشه؟
پیکارد بر همین اساس اومده و تسکهای دستهبندی تصویر بر روی cifar10 و imagenet رو برای انواع seedها انجام داده و بر اساس نتایج پاسخهایی رو برای سه سوال بالا ارائه داده. نکته جالب در نتایج اینه که واقعا انتخاب seed میتونه بر امتیاز مدل تاثیرگذار باشه و حتی اگر میزان ایپاکهای آموزش رو بیشتر کنیم هم فاصله طبقاتی میان خوششانسترین و بدشانسترین مدلهای برآمده از seed های مختلف کاهش پیدا نمیکنه. نکته اخلاقی این پست اینه که اگر مدلی رو توسعه دادید و خواستید میزان عملکردش رو گزارش بدید حواستون باشه که randomness اولیه رو هم در نظر بگیرید و به جای گزارش یک عدد، باید یک بازه رو ارائه داد (البته که اگر مدل یا دادگان به اندازه ای بزرگ باشند که نشه چندبار فرآیند آموزش دادن رو انجام داد این سناریو با دشواری مواجه میشه و باید فکری دیگهای به حالش کرد که میتونه موضوع پژوهشهای دیگهای باشه)
لینک مقاله:
https://arxiv.org/abs/2109.08203
پ.ن: با نشر مطالب دوستان خود را نیز از لذت فراگیری بهرهمند سازید.
#paper
#read
@nlp_stuff
Telegram
stuff
ورکشاپ یادگیری گراف استنفورد
ورکشاپ گراف دانشگاه استنفورد (آزمایشگاه آقای لسکوکاینا) دو هفته پیش برگزار شد و افراد خوف و خفن زیادی در این زمینهها اومدند و راجع به مسائل مختلف گرافی در صنعت و آکادمیک صحبت کردند.
اسلایدها و ویدیوهاشون هم طبق معمول با سخاوت به اشتراک گذاشتند.
بحثهای ترکیبی خیلی جذابی مثل کاربردهای گراف در پردازش زبان طبیعی، ویژن و تشخیص fraud و نفوذ شبکه و … ارائه شده.
کتابخونههایی مثل PyG و GraphGym هم توش معرفی شدند.
خلاصه یه روزتون رو کامل میسازه و کلی چیز یاد میگیرید.
پ.ن. اگر کلا نمیدونید داستان یادگیری گراف چیه، این پست [https://www.tg-me.com/nlp_stuff/163] و این پست [https://www.tg-me.com/nlp_stuff/223] رو ببینید.
لینک صفحهی ورکشاپ:
https://snap.stanford.edu/graphlearning-workshop/
لینک یوتیوب ورکشاپ:
https://youtu.be/NKZdqCi5fVE
#link
#conf
@nlp_stuff
ورکشاپ گراف دانشگاه استنفورد (آزمایشگاه آقای لسکوکاینا) دو هفته پیش برگزار شد و افراد خوف و خفن زیادی در این زمینهها اومدند و راجع به مسائل مختلف گرافی در صنعت و آکادمیک صحبت کردند.
اسلایدها و ویدیوهاشون هم طبق معمول با سخاوت به اشتراک گذاشتند.
بحثهای ترکیبی خیلی جذابی مثل کاربردهای گراف در پردازش زبان طبیعی، ویژن و تشخیص fraud و نفوذ شبکه و … ارائه شده.
کتابخونههایی مثل PyG و GraphGym هم توش معرفی شدند.
خلاصه یه روزتون رو کامل میسازه و کلی چیز یاد میگیرید.
پ.ن. اگر کلا نمیدونید داستان یادگیری گراف چیه، این پست [https://www.tg-me.com/nlp_stuff/163] و این پست [https://www.tg-me.com/nlp_stuff/223] رو ببینید.
لینک صفحهی ورکشاپ:
https://snap.stanford.edu/graphlearning-workshop/
لینک یوتیوب ورکشاپ:
https://youtu.be/NKZdqCi5fVE
#link
#conf
@nlp_stuff
راه جنرالیزیشن از اورفیت میگذرد
معمولا رسم بر این بوده که هر وقت مدل به حالت overfit میرسه آموزشدادنش متوقف بشه و دیگه امیدی به اصلاح مدل نمیره. اما مقالهای اومده و نشون داده که در صورت ادامه به آموزش مدل، خیلی خیلی گام بعدتر از اورفیت هم همچنان میتونه اتفاق جالبی که به عنوان grokking نامگذاری شده، بیافته. توضیح این مقاله رو میشه در دو بخش تسک تعریف شده و پدیدهی رخداده در فرآیند آموزش پی گرفت.
در قسمت تعریف تسک، این مقاله یک تسک تقریبا نمادی (symbolic) رو درست کردهاند. به این صورت که تابعی دلخواه از دو سیمبل ورودی که هر کدوم میتونن مقادیر نمادی a و b و .. را بپذیرند را در نظر گرفته اند. مقدار این تابع برای تمامی مقادیر ممکن ورودی محاسبه میشه (جدول پیوست شده رو میتونید نگاه کنید) و تعدادی از خانههای این جدول خالی میشوند و باقی به عنوان داده آموزشی به مدل داده میشود. حال مدل بایستی با آموزش روی دادههای داده شده، جاهای خالی جدول را پر کند.
اما نکته اصلی مقاله، در فرآیند آموزش آن قرار دارد. پس از تعدادی گام آموزش، مدل بر روی دادگان آموزشی اورفیت میکند در حالی که دقت آن بر روی دادههای validation تقریبا صفر است. اما با ادامه دادن آموزش حتی پس از اورفیت، پس از تعداد خیلی خیلی زیادی گام آموزشی، در نهایت مدل به یکباره و سرعت از اورفیت خارج میشود و دقت آن بر روی دادههای validation به ۹۹ درصد میرسد که این پدیده grokking نامگذاری شده است.
نکته جالب این ماجرا در این جاست که داشتن داده کم ولی ادامه دادن آموزش پس از اورفیت میتواند منجر به مدلی بهتر از مدلی با تعداد داده بیشتر شود. البته که مقیاس تعداد گامهای لازم بسیار زیاد است و مساله از نظر عملی قابل اشکال است.
در صورت علاقهمندی بیشتر میتواند یوتیوب توضیحات کیلچر درباره این مقاله را ببینید:
https://youtu.be/dND-7llwrpw
لینک مقاله:
https://mathai-iclr.github.io/papers/papers/MATHAI_29_paper.pdf
#read
#paper
#watch
@nlp_stuff
معمولا رسم بر این بوده که هر وقت مدل به حالت overfit میرسه آموزشدادنش متوقف بشه و دیگه امیدی به اصلاح مدل نمیره. اما مقالهای اومده و نشون داده که در صورت ادامه به آموزش مدل، خیلی خیلی گام بعدتر از اورفیت هم همچنان میتونه اتفاق جالبی که به عنوان grokking نامگذاری شده، بیافته. توضیح این مقاله رو میشه در دو بخش تسک تعریف شده و پدیدهی رخداده در فرآیند آموزش پی گرفت.
در قسمت تعریف تسک، این مقاله یک تسک تقریبا نمادی (symbolic) رو درست کردهاند. به این صورت که تابعی دلخواه از دو سیمبل ورودی که هر کدوم میتونن مقادیر نمادی a و b و .. را بپذیرند را در نظر گرفته اند. مقدار این تابع برای تمامی مقادیر ممکن ورودی محاسبه میشه (جدول پیوست شده رو میتونید نگاه کنید) و تعدادی از خانههای این جدول خالی میشوند و باقی به عنوان داده آموزشی به مدل داده میشود. حال مدل بایستی با آموزش روی دادههای داده شده، جاهای خالی جدول را پر کند.
اما نکته اصلی مقاله، در فرآیند آموزش آن قرار دارد. پس از تعدادی گام آموزش، مدل بر روی دادگان آموزشی اورفیت میکند در حالی که دقت آن بر روی دادههای validation تقریبا صفر است. اما با ادامه دادن آموزش حتی پس از اورفیت، پس از تعداد خیلی خیلی زیادی گام آموزشی، در نهایت مدل به یکباره و سرعت از اورفیت خارج میشود و دقت آن بر روی دادههای validation به ۹۹ درصد میرسد که این پدیده grokking نامگذاری شده است.
نکته جالب این ماجرا در این جاست که داشتن داده کم ولی ادامه دادن آموزش پس از اورفیت میتواند منجر به مدلی بهتر از مدلی با تعداد داده بیشتر شود. البته که مقیاس تعداد گامهای لازم بسیار زیاد است و مساله از نظر عملی قابل اشکال است.
در صورت علاقهمندی بیشتر میتواند یوتیوب توضیحات کیلچر درباره این مقاله را ببینید:
https://youtu.be/dND-7llwrpw
لینک مقاله:
https://mathai-iclr.github.io/papers/papers/MATHAI_29_paper.pdf
#read
#paper
#watch
@nlp_stuff
Telegram
stuff
Transfer_learning_in_nlp_by_Huggingface_Mahdi_Samiei_WSS_2020.mp4
296.8 MB
ویدئوی ورکشاپ انتقال یادگیری با هاگینگفیس
این فایل ویدئوی ورکشاپ مهدیمون در کنفرانس WSS2020 با موضوع «یادگیری انتقالی در پردازش زبان طبیعی با استفاده از کتابخانهی هاگینگ فیس» است. ابتدا مباحث تئوری رو توضیح میده و بعد هم با استفاده از کتابخونههای پایتورچ و هاگینگفیس کد میزنه.
متاسفانه علی رغم قولهایی که داده بودند، با ۷ ماه فاصله ویدیو رو منتشر کردند و این باکیفیتترین ویدیوئیه که به دستمون رسیده.
پ.ن. این پست رو دست به دست کنید که افراد بیشتری ببینند. انشاءالله به زودی از این ورکشاپها خودمون بیشتر و بهتر برگزار میکنیم.
لینک آپارات ویدئو:
https://aparat.com/v/4Jivq
لینک اسلایدها و نوتبوکها (استار فراموش نشه):
https://github.com/mmsamiei/huggingface-workshop
#coach
#watch
#overfit
@nlp_stuff
این فایل ویدئوی ورکشاپ مهدیمون در کنفرانس WSS2020 با موضوع «یادگیری انتقالی در پردازش زبان طبیعی با استفاده از کتابخانهی هاگینگ فیس» است. ابتدا مباحث تئوری رو توضیح میده و بعد هم با استفاده از کتابخونههای پایتورچ و هاگینگفیس کد میزنه.
متاسفانه علی رغم قولهایی که داده بودند، با ۷ ماه فاصله ویدیو رو منتشر کردند و این باکیفیتترین ویدیوئیه که به دستمون رسیده.
پ.ن. این پست رو دست به دست کنید که افراد بیشتری ببینند. انشاءالله به زودی از این ورکشاپها خودمون بیشتر و بهتر برگزار میکنیم.
لینک آپارات ویدئو:
https://aparat.com/v/4Jivq
لینک اسلایدها و نوتبوکها (استار فراموش نشه):
https://github.com/mmsamiei/huggingface-workshop
#coach
#watch
#overfit
@nlp_stuff
مقاله جامع data augmentation در پردازش زبان طبیعی
این مقالهی survey در سیواندیصفحه، دل و رودهی مبحث data augmentation رو ریخته روی داریه.
اول اومده روشهای data augmentation در پردازش زبان رو به سه دستهی مدلهای برپایهی Paraphrasing و Noising و Sampling تقسیمبندی کرده و روشهای ارائهشده در هر دسته رو خیلی زیبا و نیکو آورده و با شکل و مثال توضیح داده و از جهات مختلف اونا رو مقایسه کرده. بعد هم اومده اینا رو از منظرهای مختلف شکافته؛ مثلا گفته هر روشی چه هایپرپاارامترهای موثری داره یا هر یک از روشها چه کاربردهایی داره.
و یه حرکت تمیز دیگهای زده و تایملاین مقالات این زمینه رو درست کرده تا بدونید به چه ترتیبی باید بخونید.
خلاصه که زبونبستهها هر چه در توان داشتند مایه گذاشتند و یه مقاله خیلی کامل درست کردند؛ پس بخونید و لذت ببرید.
لینک مقاله:
https://arxiv.org/abs/2110.01852
پ.ن.۱. پنج تا تصاویر ضمیمه شده. ورق بزنید. اگر همه رو نمیبینید، اینجا قرار داده شدند.
پ.ن.۲. اگر کلا نمیدونید داستان چیه، این پست [https://www.tg-me.com/nlp_stuff/71] رو بخونید.
#read
#paper
@nlp_stuff
این مقالهی survey در سیواندیصفحه، دل و رودهی مبحث data augmentation رو ریخته روی داریه.
اول اومده روشهای data augmentation در پردازش زبان رو به سه دستهی مدلهای برپایهی Paraphrasing و Noising و Sampling تقسیمبندی کرده و روشهای ارائهشده در هر دسته رو خیلی زیبا و نیکو آورده و با شکل و مثال توضیح داده و از جهات مختلف اونا رو مقایسه کرده. بعد هم اومده اینا رو از منظرهای مختلف شکافته؛ مثلا گفته هر روشی چه هایپرپاارامترهای موثری داره یا هر یک از روشها چه کاربردهایی داره.
و یه حرکت تمیز دیگهای زده و تایملاین مقالات این زمینه رو درست کرده تا بدونید به چه ترتیبی باید بخونید.
خلاصه که زبونبستهها هر چه در توان داشتند مایه گذاشتند و یه مقاله خیلی کامل درست کردند؛ پس بخونید و لذت ببرید.
لینک مقاله:
https://arxiv.org/abs/2110.01852
پ.ن.۱. پنج تا تصاویر ضمیمه شده. ورق بزنید. اگر همه رو نمیبینید، اینجا قرار داده شدند.
پ.ن.۲. اگر کلا نمیدونید داستان چیه، این پست [https://www.tg-me.com/nlp_stuff/71] رو بخونید.
#read
#paper
@nlp_stuff
سرو مدلهای تورچی با TorchServe
پایتورچ هم مثل تنسرفلو بالاخره کتابخونه سروینگش رو ارائه کرده. معادلش tfserve برای تنسرفلو میشه.
کاری که TorchServe انجام میده اینه که مدل شما رو به صورت یه http api تحویل میده. یعنی شما مدلتون رو آماده کنید و این براتون بالا میاره که راحت مثلا backendتون بهش درخواست بده و اینا از هم جدا باشند.
یه ویدیوی آموزشی هم دادند که مراحلش را توضیح میده. برای چند تا تسک مثل image classification کارهای سرو مدل رو خودش انجام میده و برای بقیه مدلها هم کافیه چهار تابع از یه کلاس رو پیاده کنید تا مثلا برای مدلهای هاگینگفیس هم بتونید راحت سرو کنید.
برای استفاده در kubeflow و mlflow یکپارچهاش کردند و مثالهای متنوعی واسه کتابخونه ترنسفورمرز هاگینگفیس و MMF و .. هم درست کردند که بهره ببرید.
لینک ویدیوی توضیح و دمو (حتما لینکهای توضیحات زیرش رو هم ببیینید):
https://www.youtube.com/watch?v=XlO7iQMV3Ik
پ.ن. پیش از این راجع به tfx در این پست [https://www.tg-me.com/nlp_stuff/157] صحبت کرده بودیم.
#tool
#watch
@nlp_stuff
پایتورچ هم مثل تنسرفلو بالاخره کتابخونه سروینگش رو ارائه کرده. معادلش tfserve برای تنسرفلو میشه.
کاری که TorchServe انجام میده اینه که مدل شما رو به صورت یه http api تحویل میده. یعنی شما مدلتون رو آماده کنید و این براتون بالا میاره که راحت مثلا backendتون بهش درخواست بده و اینا از هم جدا باشند.
یه ویدیوی آموزشی هم دادند که مراحلش را توضیح میده. برای چند تا تسک مثل image classification کارهای سرو مدل رو خودش انجام میده و برای بقیه مدلها هم کافیه چهار تابع از یه کلاس رو پیاده کنید تا مثلا برای مدلهای هاگینگفیس هم بتونید راحت سرو کنید.
برای استفاده در kubeflow و mlflow یکپارچهاش کردند و مثالهای متنوعی واسه کتابخونه ترنسفورمرز هاگینگفیس و MMF و .. هم درست کردند که بهره ببرید.
لینک ویدیوی توضیح و دمو (حتما لینکهای توضیحات زیرش رو هم ببیینید):
https://www.youtube.com/watch?v=XlO7iQMV3Ik
پ.ن. پیش از این راجع به tfx در این پست [https://www.tg-me.com/nlp_stuff/157] صحبت کرده بودیم.
#tool
#watch
@nlp_stuff
YouTube
How to Serve PyTorch Models with TorchServe
Hamid Shojanazeri is a Partner Engineer at PyTorch, here to demonstrate the basics of using TorchServe. As the preferred model serving solution for PyTorch, TorchServe allows you to expose a web API for your model that may be accessed directly or via your…