چگونه یک مدل هوش مصنوعی کوچک را هر آنچه یک مدل بزرگ می‌داند، آموزش دهیم

1. مقدمه

در این مقاله، فرآیند تقطیر دانش (Knowledge Distillation) در هوش مصنوعی را بررسی خواهم کرد—نحوه عملکرد کلی آن، اهمیت و دلایل استفاده از آن.

چگونه می‌توانیم دانش را از یک مدل بزرگ‌تر یا مجموعه‌ای از مدل‌ها (که روی مجموعه‌داده‌های بسیار بزرگ آموزش داده شده‌اند تا ساختار را از داده‌ها استخراج کنند) به یک مدل کوچک منفرد بدون افت عملکرد زیاد فشرده و منتقل کنیم؟

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

در زمان آموزش، ما معمولاً مدل‌های بزرگ/مجموعه‌ای از مدل‌ها را آموزش می‌دهیم زیرا هدف اصلی استخراج ساختار از مجموعه‌داده‌های بسیار بزرگ است. ما همچنین می‌توانیم کارهایی مانند dropout، data augmentation را در زمان آموزش اعمال کنیم تا انواع داده‌ها را به این مدل‌های بزرگ تغذیه کنیم.

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

Geoffrey Hinton، Oriol Vinyals و Jeff Dean از گوگل از طریق مقاله خود نوع متفاوتی از آموزش به نام تقطیر را ارائه کردند تا این دانش را به مدل کوچک‌تر منتقل کنند. این همان تکنیکی است که hugging face در پیاده‌سازی Distill BERT خود استفاده کرد.

اگر بتوانیم این مدل کوچک‌تر را آموزش دهیم تا به همان روشی که یک مدل بزرگ تعمیم می‌یابد تعمیم یابد، این مدل کوچک‌تر که به این روش آموزش داده شده است، بسیار بهتر از مدل کوچک‌تری عمل می‌کند که روی همان داده‌ها اما به روش عادی آموزش داده شده است. این یکی از اصول اصلی پشت تقطیر است.

2. دانش پنهان

معمولاً در یادگیری ماشین (Machine Learning)، یک مدلی که یاد می‌گیرد بین تعداد زیادی از کلاس‌ها تمایز قائل شود، هدف اصلی آموزش، به حداکثر رساندن میانگین احتمال لگاریتمی پاسخ صحیح است. به عنوان مثال، مثال مجموعه داده MNIST را در نظر بگیرید که هدف طبقه‌بندی یک تصویر به این است که آیا 1 است یا 2 یا ... 9. بنابراین اگر تصویر واقعی 2 باشد، هدف هر مدلی به حداکثر رساندن P(its 2/image) است (که می‌تواند به عنوان احتمال اینکه یک تصویر خاص 2 با توجه به تصویر باشد، خوانده شود). اما مدل همچنین به تمام پاسخ‌های نادرست احتمالات می‌دهد، حتی اگر این احتمالات بسیار کوچک باشند، برخی از آنها بسیار بزرگ‌تر از بقیه هستند. نکته این است که حتی اگر این احتمالات کوچک باشند، احتمالات نسبی پاسخ‌های نادرست به ما می‌گویند که مدل چگونه می‌تواند تعمیم یابد. برای درک آن، بیایید به مثال زیر نگاهی بیندازیم.

در شکل بالا، به این نسخه از 2 احتمال 10-6 داده شد که 3 باشد و 10-9 که 7 باشد، در حالی که برای نسخه دیگری ممکن است برعکس باشد. این اطلاعات ارزشمندی است که یک ساختار شباهت غنی را بر روی داده‌ها تعریف می‌کند (یعنی می‌گوید کدام 2 ها شبیه 3 ها هستند و کدام شبیه 7 ها هستند) اما تأثیر بسیار کمی بر تابع هزینه آنتروپی متقاطع در طول مرحله انتقال دارد زیرا احتمالات بسیار نزدیک به صفر هستند.

اما قبل از اینکه به فرآیند تقطیر برویم، بیایید زمانی را صرف کنیم که مدل چگونه احتمالات خروجی را تولید می‌کند. اینجاست که فعال‌سازی سافت‌مکس (Softmax) وارد می‌شود. آخرین مرحله پردازش مدل سافت‌مکس است و این مؤلفه است که احتمالات خروجی را می‌دهد. ورودی سافت‌مکس، logits نامیده می‌شود و ما لایه نهایی NN را به گونه‌ای طراحی می‌کنیم که تعداد واحدهای پنهان = تعداد کلاس‌هایی باشد که می‌خواهیم طبقه‌بندی کنیم.

فرمول محاسبه سافت‌مکس به صورت زیر است:

معادله بالا احتمالات را برای هر i می‌دهد و مجموع تمام احتمالات در کل i برابر 1 است. در طول زمان آموزش، زیان برای هر مثال آموزشی منفرد با مقایسه این احتمالات سافت‌مکس با اهداف سخت (برچسب‌ها) و استفاده از ضرایب پس انتشار به روز می‌شود تا زمانی که زیان حداقل شود.

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

3. فرآیند تقطیر

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

بنابراین روند به شرح زیر است:

  • مجموعه آموزشی اصلی را که برای آموزش مدل بزرگ‌تر استفاده شده بود، بردارید، سپس آن داده‌های آموزشی را از طریق مدل بزرگ‌تر عبور دهید و احتمالات سافت‌مکس را در کلاس‌های مختلف بدست آورید. همانطور که در بالا مشاهده شد، برچسب درست احتمال بالایی دریافت می‌کند و برچسب‌های نادرست احتمالات پایینی دریافت می‌کنند. اما دیدیم که این احتمالات پایین اطلاعات زیادی را در خود پنهان می‌کنند. بنابراین برای بزرگنمایی اهمیت این احتمالات، نویسندگان مقالات از متغیری به نام دما (T) برای تقسیم تمام logits قبل از عبور از سافت‌مکس استفاده کردند. این یک توزیع احتمال نرم‌تری را بر روی کلاس‌ها تولید می‌کند. ما می‌توانیم در زیر ببینیم:

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

  • بسیاری از اطلاعات در مورد تابع آموخته شده از مدل بزرگ در نسبت احتمالات بسیار کوچک در اهداف نرم قرار دارد.
  • برخی اصطلاحات:
  1. اهداف نرم - خروجی از مدل بزرگ پس از اعمال دمای T در طول سافت‌مکس
  2. پیش‌بینی‌های نرم - خروجی از مدل کوچک‌تر پس از اعمال دمای T در طول سافت‌مکس
  3. پیش‌بینی‌های سخت - خروجی از مدل کوچک‌تر زمانی که دمای T = 1 (سافت‌مکس معمولی)
  4. اهداف واقعی - اهداف واقعی از مجموعه آموزشی

در زیر یک نمودار گردش کار از کل فرآیند آموزش آمده است:

بنابراین فرآیند آموزش برای یک مدل کوچک دارای 2 تابع زیان است. اولین تابع زیان هم پیش‌بینی‌های نرم و هم اهداف نرم را می‌گیرد و تابع زیان آنتروپی متقاطع است. این روشی است که توانایی تعمیم از مدل بزرگ به مدل کوچک با تلاش برای مطابقت با اهداف نرم منتقل می‌شود. برای این تابع زیان، هر دو سافت‌مکس از دمای 'T' استفاده می‌کنند.

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

4. آزمایش روی MNIST

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

  1. مدل کوچک‌تر که می‌توان آن را به صورت 784 -> 800 -> 800 -> 10 مشاهده کرد (که 784 ابعاد باز شده یک تصویر است، 800 تعداد واحدهای پنهان با فعال‌سازی RELU است و 10 تعداد کلاس‌هایی است که ما پیش‌بینی می‌کنیم). این مدل 146 خطای آزمایشی را بدون هیچ گونه منظم‌سازی ارائه داد.
  2. مدل بزرگ‌تر که می‌توان آن را به صورت 784 -> 1200 -> 1200 -> 10 مشاهده کرد (که 784 ابعاد باز شده یک تصویر است، 1200 تعداد واحدهای پنهان با فعال‌سازی RELU است و 10 تعداد کلاس‌هایی است که ما پیش‌بینی می‌کنیم). این مدل روی MNIST با استفاده از dropout، محدودیت‌های وزن و لرزش تصاویر ورودی آموزش داده می‌شود و این شبکه 67 خطای آزمایشی را به دست آورد.

آیا می‌توانیم این بهبود را در مدل بزرگ‌تر به یک مدل کوچک منتقل کنیم؟

نویسندگان اکنون از هر دو هدف نرم حاصل از شبکه بزرگ و اهداف واقعی بدون dropout و بدون لرزش تصاویر استفاده کردند، یعنی شبکه کوچک‌تر صرفاً با افزودن وظیفه اضافی مطابقت با اهداف نرم تولید شده توسط شبکه بزرگ در دمای 20 منظم شد و نتیجه این است:

74 خطای آزمایشی با استفاده از 784 -> 800 -> 800 -> 10

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

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

شبکه بزرگ با استفاده از اهداف نرم، معیار شباهتی را آموخت که "چه چیزی شبیه چیست" را آموخت و با این انتقال دانش، ما به شبکه کوچک می‌گوییم "چه چیزی شبیه چیست"

تمام آزمایش‌های بالا روی MNIST در زیر خلاصه شده است:

5. آزمایش اضافی روی MNIST

علاوه بر این، نویسندگان همچنین سعی کردند نمونه‌هایی از رقم 3 را هنگام آموزش یک مدل کوچک‌تر با استفاده از تقطیر حذف کنند. بنابراین از دیدگاه مدل کوچک، 3 یک رقم افسانه‌ای است که هرگز ندیده است. از آنجایی که مدل کوچک‌تر هرگز 3 را در طول آموزش ندیده است، انتظار داریم که هنگام مواجهه با 3 در مجموعه آزمایشی، خطاهای زیادی داشته باشد. با وجود این، مدل تقطیر شده تنها 206 خطای آزمایشی انجام داد که 133 مورد از آنها روی 1010 سه‌تایی در مجموعه آزمایشی است. این به وضوح نشان می‌دهد که قابلیت‌های تعمیم مدل بزرگ در طول تقطیر به مدل کوچک منتقل شده است و این باعث می‌شود مدل کوچک در بیشتر موارد 3 را به درستی پیش‌بینی کند.

بنابراین اخلاق داستان این است:

تبدیل تصاویر ورودی به شدت تعمیم را بهبود می‌بخشد. تبدیل اهداف نیز تأثیر بسیار زیادی دارد و اگر بتوانیم اهداف نرم را از جایی بدست آوریم، بسیار ارزان‌تر است زیرا می‌توانیم با مدل کوچک‌تر به همان عملکرد برسیم.

منابع:

  1. Hinton, Geoffrey, Oriol Vinyals, and Jeff Dean. “Distilling the knowledge in a neural network.”
  2. Knowledge distillation by intellabs.