PyText
آموزشآموزش‌های پایه‌ای هوش مصنوعیآموزش‌های پیشرفته هوش مصنوعیپایتون و ابزارهای یادگیری عمیقپردازش زبان طبیعیکتابخانه‌ های یادگیری عمیق

استفاده از PyText در فیس‌بوک برای آزمایش سریع NLP

    0
    در سال‌های اخیر، پردازش زبان طبیعی Natural language processing(NLP)  (NLP) به مشهورترین اصل در فضای یادگیری عمیق تبدیل شده است.بخشی از محبوبیت آن، باعث پیدایش حجم عظیمی از ابزارها و چارچوب‌هایی از قبیل «Google Cloud»، «Azure LUIS» یا دستیار واتسون  Watson Assistant شده است که اجرای نرم‌افزارهای سادۀ NLP را بدون نیاز به دانش یادگیری عمیق مقدور ساخته است.
    این پلتفرم‌ها تنها در سناریو‌های پایۀ NLP کاربرد دارند. ساخت انبوه نرم‌افزارهای NLP همچنان امری چالش‌برانگیز به شمار می‌رود.
    فیس‌بوک که امروزه یکی از بزرگ‌ترین محیط‌های مکالمه‌ای در بازار است، هم‌اکنون با چالش‌های بزرگی در خصوص ساخت انبوه نرم‌افزارهای NLP دست‌و‌پنجه نرم می‌کند. تیم مهندسی فیس‌بوک به تازگی اولین نسخه از چارچوب مبتنی بر PyTorch تحت عنوان «PyText» را برای ارائه راه‌حل‌های سریع و کارآمد NLP منتشر کرده است.

    هدف اصلی از ساخت «PyText»، ارائه تجربه‌ای ساده‌تر برای کاربران است تا گردش کاری NLP را به صورت پیوسته (end-to-end) اجرا کنند. استفاده از PyText برای حصول این هدف باید به حل برخی از اشکالات در گردش کاری NLP بپردازد. از میان همه این اشکالات، ناهمخوانی میان آزمایش و چرخه حیات کاربرد NLP به عنوان آزاردهنده‌ترین اشکال شناخته می‌شود.

    بررسی مبادلات میان آزمایش پردازش زبان طبیعی (NLP) و تولید

    اجرای راه‌حل پردازش زبان طبیعی (NLP) مراحل آزمایش پیچیده‌ای دارد. دانشمندان در این مراحل سریعاً ایده‌ها و مدل‌های جدید را آزمایش می‌کنند تا سطح مشخصی از عملکرد حاصل آید.

    بسیاری از این ایده‌ها از پیشینه تحقیق مقاله‌های مختلف استخراج می‌شوند. متخصصان داده در طول آزمایش، آن دسته از چارچوب‌هایی را مد نظر قرار می‌دهند که رابط‌های آسانی را ارائه می‌کنند. این رابط‌ها می‌توانند نوشتن مدل‌های پویا و پیشرفته را آسان‌تر کنند.

    چارچوب‌هایی از قبیل PyTorch یا TensorFlow Eager نمونه‌های بارزی از این دسته هستند. وقتی زمانِ به‌کارگیری چارچوب‌ها از راه می‌رسد، محدودیت مدل‌های نمودار پویا به امری چالش‌برانگیز تبدیل می‌شود. متخصصان یادگیری عمیق، به استفاده از چارچوب‌هایی که دارای نمودارهای محاسباتی استاتیک هستند روی می‌آورند.

    TensorFlow، Caffe2 یا MxNet از اعضای مشهور این نوع از چارچوب‌ها به شمار می‌روند. نتیجه پایانی این است که تیم‌های بزرگ علوم داده‌ای غالباً از دسته‌های متفاوتی برای آزمایش استفاده می‌کنند.

    PyTorch یکی از نخستین چارچوب‌های یادگیری عمیق بود که به بررسی شکاف میان آزمایش سریع و serving پرداخت. PyText با تکیه بر PyTorch برخی از اصول فضای پردازش زبان طبیعی را بهینه‌سازی می‌کند.

    درک PyText

    از دید مفهومی، PyText با ۴ هدف طراحی شده که عبارتند از:

    ۱. انجام هرچه سریع و آسان‌ترِ آزمایش با ایده‌های مدل‌سازی جدید

    ۲. آسان‌تر کردنِ استفاده از مدل‌های از پیش‌ساخته با کمترین کار اضافی

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

    ۴. تضمین عملکرد عالی و خروجی زیاد در مدل‌های به‌کار گرفته شده

    قابلیت‌های PyText باعث ایجاد نوعی چارچوب مدل‌سازی می‌شود که به محققان و مهندسان کمک می‌کند خطوط لوله به‌هم‌پیوسته‌ای را برای آموزش یا استنباط بسازند. در اجرای فعلیِ PyText، مراحل اصلی چرخه حیاتِ گردش کاری NLP مورد بررسی قرار می‌گیرند.

    هدف از این کار، ارائه رابط‌هایی برای آزمایش سریع، پردازش داده‌های خام، گزارش متریک، آموزش و serving مدل‌های آموزش‌یافته است. چشم‌انداز سطح‌بالایِ PyText به وضوح نشان می‌دهد که مولفه‌های بومی چارچوب بر این مراحل احاطه دارند.

    معماری PyText شامل اجزای زیر است:

    کار: ادغام مولفه‌های گوناگون با یکدیگر برای آموزش یا استنباط در یک خط لوله

    مدیریت داده  Data Handler : پردازش داده‌های خام و آماده‌سازی دسته‌های tensor برای اینکه در اختیار مدل قرار گیرد.

    مدل: تعریف کردنِ معماری شبکه عصبی

    بهینه‌ساز: بهینه‌سازی پارامتر مدل با استفاده از loss

    گزارشگر متریک: اجرای محاسبات متریک و ارائه گزارش به مدل‌ها

    آموزش‌دهنده: استفاده از مدیریت داده، مدل، loss و بهینه‌ساز برای آموزشِ یک مدل و انتخاب مدل با روش اعتبارسنجی

    پیش‌بینی‌کننده: استفاده از ابزار مدیریت داده و مدل برای استنباط در یک مجموعه‌دادۀ آموزشی

    صادرکننده: صادر کردن مدل PyTorch آموزش‌یافته به نمودار Caffe2 با استفاده از ONNX8

     

    همان‌طور که ملاحظه می‌کنید، PyText از فرمت تبادل شبکه عصبی باز  Open Neural Network Exchange Format(ONNX)  (ONNX) برای انتقال مدل‌ها از PyTorch به Caffe2 استفاده می‌کند. PyText در انجام طیف وسیعی از کارهای پردازش زبان طبیعی ایفای نقش می‌کند.

    از جمله این کارها می‌توان به دسته‌بندی متن، برچسب زدن واژه، تجزیه معنایی و مدل‌سازی زبانی اشاره کرد. به‌طور مشابه، PyText با استفاده از مدل‌های محتوایی  contextual models  از قبیل مدل SeqNN و مدل Contextual Intent Slot در حوزه درک زبان نیز به کار گرفته می‌شود. از دیدگاه گردش کاری NLP، روش پردازش PyText باعث می‌شود فرایند انتقال ایده از مرحله آزمایش به تولید، به آسانی انجام شود.

    گردش کار PyText معمولاً شامل مراحل زیر است:

    ۱. اجرای مدل در PyText و اطمینان از عملکرد مناسبِ متریک‌های آفلاین در مجموعه آزمایشی

    ۲. استفاده از سرویس استنباطِ مبتنی بر PyTorch و ارزیابی در مقیاس کوچک

    ۳. صدور خودکارِ آن به Caffe2. در برخی موارد (مثلاً زمانی که از منطق کنترل گردش پیچیده و ساختارهای داده‌ای شخصی استفاده می‌شود)، شاید PyTorch 1.0 از این کار پشتیبانی نکند.

    ۴. اگر راهکار ذکر شده در شماره ۳ مورد پشتیبانی قرار نگیرد، از Py-Torch C++ API9 برای نوشتن مجدد مدل و قرار دادن آن در عمل‌گر Caffe2 استفاده کنید.

    ۵. مدل را در سرویس پیش‌بینی Caffe2 قرار دهید.

    استفاده از PyText

    فرایند آغاز کار با PyText نسبتاً آسان است. این چارچوب را می‌توان به عنوان بسته معمولی پایتون راه‌اندازی کرد.

    پس از آن، می‌توان مدل NLP را به شرح زیر آموزش داد.

    هر یک از کارها رابطه میان اجزای مختلف را تعریف می‌کند. جزئیات آن در کد زیر نشان داده شده است.

    پس از اینکه مدل آموزش داده شد، می‌توان آن را ارزیابی کرد و به Caffe2 فرستاد.

    باید به این نکته توجه کرد که PyText یک معماری توسعه‌پذیر را فراهم می‌کند و امکان شخصی‌سازیِ هر کدام از اجزای کلیدی آن وجود دارد.

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

    ماژول Coral USB Accelerator گوگل

    مقاله قبلی

    دستاورد هوش مصنوعی در توان بخشی : رابط مغز-ماشین محصول شرکت Neuralink

    مقاله بعدی

    شما همچنین ممکن است دوست داشته باشید

    بیشتر در آموزش

    نظرات

    پاسخ دهید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *