تیم هوگینگ فیس در ماه‌های اخیر تلاش گسترده‌ای برای بهبود مدل‌های TensorFlow در کتابخانه ترنسفورمرز انجام داده است. این بهبودها عمدتاً روی دو جنبه اصلی متمرکز شده‌اند: عملکرد محاسباتی و سرویس‌دهی مدل (TensorFlow Serving). نتایج به‌دست‌آمده نشان می‌دهد که مدل BERT در نسخه ۴.۲.۰ ترنسفورمرز تا حدود ۱۰ درصد سریع‌تر از پیاده‌سازی رسمی گوگل عمل می‌کند.

بهبود عملکرد محاسباتی در نسخه ۴.۲.۰

برای اثبات این بهبود، هوگینگ فیس یک بنچمارک جامع انجام داده است که عملکرد BERT را با TensorFlow Serving در نسخه ۴.۲.۰ با پیاده‌سازی رسمی گوگل مقایسه می‌کند. این آزمایش روی یک GPU از نوع V100 و با طول توالی ۱۲۸ انجام شده است. نتایج به وضوح نشان می‌دهند که:

  • پیاده‌سازی فعلی BERT در نسخه ۴.۲.۰ تا حدود ۱۰ درصد سریع‌تر از پیاده‌سازی گوگل است.
  • این نسخه در مقایسه با انتشار ۴.۱.۱، دو برابر سریع‌تر عمل می‌کند.
  • بهبودهای عملکردی بدون کاهش دقت مدل به دست آمده‌اند.

TensorFlow Serving و SavedModel چیست؟

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

مراحل نصب و استقرار

برای بهره‌مندی از TensorFlow Serving، ابتدا باید این ابزار را نصب کنید. نصب می‌تواند از طریق بسته‌های از پیش آماده یا Docker انجام شود. سپس مدل آموزش‌دیده خود را به فرمت SavedModel تبدیل کنید. در نهایت، با اجرای سرویس‌دهنده، می‌توانید مدل را روی یک آدرس مشخص بارگذاری کرده و از طریق API به آن درخواست بفرستید.

پرسش‌های پرتکرار

تفاوت پیاده‌سازی جدید هوگینگ فیس با نسخه‌های قبلی چیست؟

در نسخه ۴.۲.۰ ترنسفورمرز، مدل BERT تا حدود ۱۰ درصد سریع‌تر از پیاده‌سازی رسمی گوگل و دو برابر سریع‌تر از نسخه ۴.۱.۱ عمل می‌کند. این بهبود بدون کاهش دقت و با بهینه‌سازی عملکرد محاسباتی حاصل شده است.

چگونه می‌توانم مدل TensorFlow خود را با TensorFlow Serving استقرار دهم؟

ابتدا TensorFlow Serving را نصب کنید، سپس مدل خود را در قالب SavedModel ذخیره کنید. در نهایت با اجرای سرویس‌دهنده و ارسال درخواست به API، می‌توانید مدل را به صورت کارآمد در محیط تولید به کار بگیرید.