NLP stuff
4.05K subscribers
147 photos
1 video
2 files
277 links
مطالب خوب و به‌دردبخور در حوزه‌ی هوش مصنوعی و پردازش زبان طبیعی!

شکرشکن شوند همه طوطیان هند
زین قند پارسی که به بنگاله می‌رود

اگر انتقاد، پیشنهاد و یا مطلب مفیدی (لینک، پست و ...) داشتید:
@AliAkbarBadri
@mmsamiei
@MmahdiAghajani
加入频道
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
جعبه‌ابزار یادگیری ماشین!

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

لینک جعبه‌ابزار:
https://amitness.com/toolbox

#tool

@nlp_stuff
سرو مدل‌های تورچی با TorchServe

پایتورچ هم مثل تنسرفلو بالاخره کتابخونه سروینگش رو ارائه کرده. معادلش tfserve برای تنسرفلو میشه.
کاری که TorchServe انجام میده اینه که مدل شما رو به صورت یه http api تحویل میده. یعنی شما مدلتون رو آماده کنید و این براتون بالا میاره که راحت مثلا backendتون بهش درخواست بده و اینا از هم جدا باشند.
یه ویدیوی آموزشی هم دادند که مراحلش را توضیح میده. برای چند تا تسک مثل image classification کارهای سرو مدل رو خودش انجام میده و برای بقیه مدل‌ها هم کافیه چهار تابع از یه کلاس رو پیاده کنید تا مثلا برای مدل‌های هاگینگ‌فیس هم بتونید راحت سرو کنید.
برای استفاده در kubeflow و mlflow یکپارچه‌اش کردند و مثال‌های متنوعی واسه کتابخونه ترنسفورمرز هاگینگ‌فیس و MMF و .. هم درست کردند که بهره ببرید.

لینک ویدیوی توضیح و دمو (حتما لینک‌های توضیحات زیرش رو هم ببیینید):
https://www.youtube.com/watch?v=XlO7iQMV3Ik

پ.ن. پیش از این راجع به tfx در این پست [https://yangx.top/nlp_stuff/157] صحبت کرده بودیم.
#tool
#watch

@nlp_stuff
مدل big bird برای زبان فارسی

معماری برت با تمامی خوبی‌هایی که دارد اما یک نقطه ضعف بزرگ دارد که حداکثر رشته‌هایی با طول ۵۱۲ توکن را می‌تواند پردازش کند. این محدودیت در واقع ناشی از مرتبه محاسباتی درجه دو مکانیزم توجه بین توکن‌های دنباله است (اگر دنباله به طول d باشه، d^2 عمل اتنشن بایستی در داخل آن رخ دهد که خب سنگین است). برای همین بار محاسباتی، چه آموزش و چه تست کردن مدل بر روی دنباله‌های بلند عملا ناممکن می‌شود. این در حالی است که بسیاری از تسک‌های پردازش زبان نظیر خلاصه‌سازی، نیازمند پردازش دنباله‌های بسیار طولانی‌تر از ۵۱۲ توکن هستند. در طی این چند سال اخیر چندین معماری و راهکار جهت حل نیازمندی پردازش دنباله‌های بلند خلق و پیشنهاد شده‌اند. یکی از این معماری‌های پیشنهادی، معماری bigbird است که در آن هر توکن به جای توجه بر تمام توکن‌ها، صرفا به سه مجموعه توکن توجه می‌کند: توکن‌های در همسایگی خود، تعداد اندکی توکن گلوبال و تعدادی توکن رندوم. معماری bigbird با همین ابتکار می‌تواند دنباله‌هایی با طول حداکثر ۴۰۹۶ توکن را به خوبی پردازش کند و جزو طلایه‌داران بعضی وظایف نظیر خلاصه سازی و حتی بعضی مسائل bioای باشد.

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

لینک ریپو:
https://github.com/sajjjadayobi/ParsBigBird


پ.ن. ۱: می‌توانید با استار دادن هم خستگی را از تن توسعه‌دهنده مدل خارج کنید و هم از تمرکز بر روی پردازش زبان فارسی حمایت کنید. دریغ نفرمایید.

پ.ن. ۲: ریپو یا کد یا مدل یا دیتاست به‌دردبخوری داشتید، ندا بدید که بعد از بررسی در کانال قرار بدیم.

#irani
#tool

@nlp_stuff
This media is not supported in your browser
VIEW IN TELEGRAM
کوهستان RL؛ هدف بعدی هاگینگ فیس

هاگینگ فیس اعلام کرد که اولین محیط (environment) یادگیری تقویتی عمیق خودشون به نامSnowball Fight را منتشر کردند و هم‌آورد طلبیدند که کی می‌تونه ایجنتشون رو شکست بده (لینک آخر پست). الان هم دارند محیط‌های بعدی رو تولید می‌کنند. این محیط‌ها با Unity ML-Agents تولید شدند. این زبون‌بسته یه ابزار اوپن‌سورسه که باهاش شما می‌تونید محیطی برای آموزش ایجنت‌تون بسازید.

هاگینگ‌فیس طبق معمول برای این زمینه هم سه تا هدف برای اکوسیستمی که داره میسازه گذاشته:
- ملت بتونند محیط خودشون رو بسازند و با بقیه شیر کنند
- ملت مدل‌ها و محیط‌هاشونو روی هاگینگ فیس host کنند مثل همین بازی که لینکشو پایین گذاشتیم.
- دمویی از مدلشون بتونند راحت بالا بیارند که نتایج رو بتونند به بقیه نشون بدهند.

لینک پست توضیح:
https://huggingface.co/blog/snowball-fight

لینک بازی:
https://huggingface.co/spaces/ThomasSimonini/SnowballFight

#tool
#link

@nlp_stuff
لیبل استودیو؛ ابزاری که باید پر شال هر دیتاساینتیست باشد!

طبیعتا گام اول و تقریبا مهم‌ترین گام در هر پروژه مدل‌سازی، جمع‌آوری دیتا و به‌خصوص دیتای لیبل‌خورده است. حتما می‌دونید که این کار چقدر مشقت‌باره و زمان زیادی رو از تیم اشغال می‌کنه. حالا در این پست می‌خوایم یه ابزاری رو معرفی کنیم که خیلی راحت می‌تونید راه‌اندازی‌ش کنید و خیلی راحت استفاده کنید. بله؛ label studio. این ابزار به راحتی با یه دستور pip نصب میشه و روی پورت موردنظر بالا میاد. سپس می‌تونید به‌مقصود پروژه‌های مختلف در حوزه تکست، ویژن، ویدیو، صوت، دیتای ساختاریافته و خیلی چیزای دیگه پروژه بسازید و از تمپلیت‌های آماده اون استفاده کنید. بعد به راحتی دیتاتون رو لیبل بزنید و به فرمت‌های خروجی معتبر خروجی بگیرید. مثلا برای تسک named entity recognition می‌تونید به فرمت معتبر CoNLL خروجی بگیرید. البته این ابزار برای زبان فارسی چون پشتیبانی RTL نداره یه مقدار اذیت‌کننده است که در اون صورت می‌تونید از ریپوی معرفی شده ابزار رو clone کنید و به صورت local نصب کنید.

لینک ابزار:
https://labelstud.io

لینک ریپوی ساپورت RTL:
https://github.com/mmaghajani/label-studio

لینک ریپوی اصلی:
https://github.com/heartexlabs/label-studio

#tool
@nlp_stuff
دادن اطلاعات از شما، نوشتن متن با You

Hello,

If you're an artificial intelligence enthusiast, then you should definitely reshare posts from the nlp_stuff channel. nlp_stuff is a Telegram channel that's dedicated to AI news and advances. The subscribers of this channel can stay up to date with the latest in AI technology. However, some other channels do not comply with copyright law and copy posts from nlp_stuff into their own channels. This is unfair to the creators of nlp_stuff, and it also diminishes the quality of information that's available to AI enthusiasts. By resharing posts from the nLP_Stuff channel, you can help keep this information accessible and high-quality. Thanks for your support!

متنی که بالا دیدید رو هوش مصنوعی YOU نوشته (ما صرفا بهش توضیح بولتوار اندکی دادیم و این رو جنریت کرده). در سال‌های اخیر محصولاتی نظیر grammarly و wordtune با استفاده از هوش مصنوعی و پردازش زبان تونسته اند محصولاتی رو جهت کمک به کاربران در زمینه اصلاح و ویرایش متون انگلیسی ارائه کنند. حالا در آخرین مورد، شرکت YOU (که در اصل یک موتور جستجوگر هست که برخی میگویند در سال های آینده امکان داره شانه به شانه گوگل بزنه) اومده و یک سرویس برای رایتینگ در زبان انگلیسی ارایه داده. شما می‌تونید یک توضیح مختصر راجع به چیزی که میخواید بنویسید و بعد انتخاب کنید که چه نوع خروجی میخواید. آیا می‌خواهید یک متن میل مناسب خروجی بگیرید یا یک متن بلاگ طور یا یک انشا. سپس You یک متن برای این مشخصات تعیین‌شده توسط شما جنریت می‌کنه.
ما اندکی با این دمو ور رفتیم و مثال‌هایی رو پیوست کردیم. فهمیدیم که این سرویس می‌تونه حتی با ورودی گرفتن یک عبارت کوتاه، متنی مستند و منطقی تولید کنید (به مثالی که راجع به تولید دانش بنیان در ایران تولید کرده دقت کنید).
محصولاتی مثل Grammarly و Wordtune و You Write نشون میدن که میشه با پردازش زبان هم محصول واقعی تولید کرد.

لینک برای امتحان کردن:
You.com/write

#link
#tool

@nlp_stuff
دمو کردن ایده مثل آب خوردن

اگر کدی زدید که دوست دارید خیلی خیلی سریع و راحت ازش یه دمو بالا بیارید، از streamlit و Hugging Face Spaces می‌تونید استفاده کنید که هم یک ui خوشگلی داره، هم رایگانه و هم درگیر کانفیگ سرور و فلان هم نیستید. این پست بلاگ در عرض کمتر از ده دقیقه با دو تا مثال واقعی یادتون میده.

لینک بلاگ:
https://itnext.io/convert-your-ai-ideas-into-working-demos-on-hugging-face-spaces-2ba080482a16

لینک Hugging Face Spaces:
https://huggingface.co/spaces

#read
#blog
#tool

@nlp_stuff
رهایی از دوراهی سخت؛ هم تنسورفلو، هم پایتورچ با IVY

تا به حال احتمالا با چالش سخت انتخاب بین تنسورفلو و پای‌تورچ مواجه شده باشید. اخیرا با اضافه شدن Jax هم این انتخاب سخت‌تر شده. اما تیم unifyai یه فریم‌ورک جدید به نام IVY معرفی کرده که یک syntax یکپارچه برای توسعه مدل‌های دیپ داره و صرفا با تنظیم backend این پکیج روی هر یک از فریم‌ورک‌های تنسورفلو، پای‌تورچ و یا jax می‌تونید از عایدات همون ابزار بهره‌مند بشید. البته این فریم‌ورک در مسیر توسعه است و با توجه به عمر کوتاهش اما تعداد استار بسیار زیادی گرفته که نشون میده به نظر راه درستی رو داره میره.

لینک گیت‌هاب:
https://github.com/unifyai/ivy

#tool

@nlp_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
ابزار markitdown؛ همه چیز را به فرمت markdown تبدیل کن!

ما با معرفی یه ابزار به‌دردبخور برگشتیم!
مایکروسافت یک کتابخونه به نام MarkItDown را به صورت متن‌باز بیرون داده که باهاش می‌تونید فایل‌هایی با فرمت‌های زیر (فرمت‌های آفیسش مهمه) را به فرمت markdown (مثل فایل‌های readme گیت) تبدیل کنید. همچین ابزاری موقع ساختن دیتاست (برای آموزش مدل زبانی مثلا) خیلی میتونه کمک کنه. تا حالا هم بیشتر از ۳۰ هزارتا استار گرفته. فایل ورد فارسی رو هم خوب پشتیبانی می‌کنه اما پی‌دی‌اف فارسیش تعریفی نداره. برای OCR و تبدیل صوت هم به llmها مثل جی‌پی‌تی وصل میشه. خدا بده برکت. فرمت‌های پشتیبانی شده:
• PDF
• PowerPoint
• Word
• Excel
• Images (EXIF metadata and OCR)
• Audio (EXIF metadata and speech transcription)
• HTML
• Text-based formats (CSV, JSON, XML)
• ZIP files (iterates over contents)


لینک ریپو گیتهاب:
https://github.com/microsoft/markitdown/tree/main

#tool

@nlp_stuff
👍4