Чому стискати модель, яка вже працює?
Сучасні нейронні мережі часто завдячують своїй точності величезним розмірам: сотням мільйонів або мільярдам параметрів, розподілених по глибоких та широких шарах. Цей масштаб робить їх повільними у виконанні, дорогими в хостингу та непрактичними для мобільних телефонів, веб-браузерів або додатків з чутливістю до затримок. Knowledge distillation (передача знань) вирішує цю проблему шляхом навчання меншої «студентської» мережі відтворювати поведінку великої «вчительської» мережі, прагнучи зберегти більшість точності вчителя при значно менших обчислювальних витратах.
Ключовий момент: навчайтесь на м’яких мітках, а не лише правильних відповідях
Модель, навчена звичайним способом, бачить лише жорсткі мітки — фото є або 'кішка', або 'собака', покінчено. Але якщо добре навчений вчитель видає свій необроблений вихід перед остаточним рішенням, його ймовірність розподілу по всіх класах, то в ньому міститься набагато більше інформації: він може сказати 90% кішка, 9% собака, 1% лисиця, що кошки та собаки схожі одне на одного більше, ніж кошки та лисиці. Це називається м’якими мітками, і Хінтон, Вінялс та Діан показали у 2015 році, що навчання учня для відповідності цьому всьому розподілу передає 'темні знання' про схожість класів, які жорсткі мітки самі по собі ніколи не захоплюють.
Температура та втрата дистиляції
Необроблені вихідні softmax часто надзвичайно впевнені, з правильною класовою близькою до 1 і всім іншим близькими до 0, що приховує корисну інформацію про подібність. Дистиляція представляє параметр температури, який ділить логіти перед softmax, створюючи м'якшу, більш розподілену дистрибуцію, де друге значення ймовірності стає видимим. Учень навчається на поєднанні втрат: одна втрата відповідає пом’ятому виходу учня до пом’ятого виходу вчителя, а інша втрата відповідає прогнозам учня до справжніх жорстких міток, дозволяючи учневі отримати користь як від нюансів вчителя, так і від справжніх міток.
Деякі методи дистиляції та їхні обмеження
Дистиляція лежить в основі багатьох виробничих систем, від стиснення великих мовних моделей у менші, дешевший варіант до зменшення моделей зору для локального або периферійного розгортання, що значно знижує вартість та затримку виведення. Це не чарівність: власна архітектура та кількість параметрів учня обмежують те, скільки він може засвоїти, а посередний вчитель не зможе створити гарного учня. На практиці дистиляція найкраще працює як один із кількох інструментів, часто поєднуючись з обрізанням, квантуванням або додатковою тонко налаштовуванням.
Frequently asked questions
Хто винайшов knowledge distillation?
Цю техніку формалізовано у науковому праці 2015 року "Distilling the Knowledge in a Neural Network" від Джефрі Хінтона, Оріола Він'яльса та Джефа Дена з Google. Це базувалося на попередніх ідеях стиснення моделей, але популяризувало конкретний підхід із використанням м’яких міток (soft labels) та температурного регулювання, який зараз широко використовується.
Чи може студентська модель коли-небудь перевершити вчительську?
Іноді, так. Оскільки м’які мітки діють як форма регуляризації та виявляють зв'язки між класами, які важкі мітки приховують, студент може іноді краще узагальнювати на певних завданнях або наборах даних, хоча зазвичай відстає від вчителя щодо чистої точності.
Чи knowledge distillation – це те саме, що обрізка (pruning) чи квантизація?
Ні, вони є доповняльними техніками стиснення. Обрізка видаляє ваги або нейрони з існуючої мережі, а квантизація зменшує числову точність ваг, тоді як distillation навчає повністю окремої, меншої мережі з нуля, щоб імітувати вихідні дані вчителя. Усі три часто поєднуються у реальних каналах розгортання.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Knowledge Distillation: Training a Small Model to Think Like a Big One і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Knowledge Distillation: Training a Small Model to Think Like a Big One