← Усі статті

Як навчити ШІ-трансформер на 6,4 млн параметрів для рецептів

Розробник зібрав невеликий ШІ-трансформер на PyTorch, навчив його на рецептах і запускає на CPU без зовнішніх API.

Як навчити ШІ-трансформер на 6,4 млн параметрів для рецептів
Зміст

Коротко

Розробник застосунку Rasaveda навчив з нуля невеликий ШІ-трансформер для завдань, пов’язаних із рецептами. Модель RasavedaGPT має 6,4 млн параметрів, не використовує готових ваг і працює на центральному процесорі безпосередньо в серверній частині застосунку.

Це не спроба замінити універсальні LLM. Приклад показує, що для вузької предметної області можна отримати корисний результат без хмарного виклику моделі, якщо контролювати дані, формат відповідей і межі завдання.

Що сталося

Автор відмовився від зовнішніх API та написав декодерний трансформер на PyTorch. Модель має власний словник із 6 000 підслів, контекст на 512 токенів, шість шарів, вісім голів механізму уваги та приховане представлення розміром 256. Такий масштаб вибрано свідомо: застосунку потрібно міркувати про рецепти, а не відповідати на всі можливі питання.

Навчання складалося з двох етапів. Спочатку модель три епохи опрацьовувала WikiText-2, щоб набути базової мовної зв’язності. Потім її донавчили на 2 139 прикладах рецептів; кожен набір повторювали вісім разів за епоху з випадковим перемішуванням. Увесь процес зайняв приблизно 40 хвилин на одному прискорювачі T4 у Google Colab.

У Rasaveda пошук відповідних рецептів виконує окремий векторний пошук, а RasavedaGPT формує рекомендації, пояснює кроки приготування та відповідає на запитання. Модель запускається всередині FastAPI, тож відповідь не потребує звернення до зовнішнього постачальника.

Чому це важливо

Невелика спеціалізована модель пропонує інший набір компромісів. Немає ключа доступу, оплати за токени та ризику недоступності стороннього сервісу; натомість команда бере на себе підготовку даних, навчання, перевірку якості та підтримку.

Автор також демонструє різницю між інструкцією для універсальної LLM і навчанням під конкретне завдання. До словника додано три службові токени: RECOMMEND, IMPROVE і CHAT. Перший запускає формування рекомендацій у JSON, другий — розбір рецепта, третій — діалогову відповідь із урахуванням знайденого контексту.

Отже, очікувана форма відповіді стає частиною навчальних даних, а не крихкою вимогою в довгій інструкції. Водночас цей підхід не є універсальним: для широкого діалогу або знань поза рецептами готова базова модель буде доречнішою.

На практиці

Експеримент корисний як орієнтир для команди, що хоче оцінити вузьку модель, але не як готова схема для негайного використання в продукті.

  1. Почніть із чіткої межі завдання: один тип документів, обмежені відповіді та вимірюваний критерій якості.
  2. Відокремте генерацію від пошуку. У Rasaveda векторний пошук знаходить рецепти, а модель отримує вже доречний контекст.
  3. Навчайте структуру явно. Для надійного JSON малим моделям потрібні точні зразки входу та виходу.
  4. Стежте за перенавчанням. Перші запуски автора погано узагальнювали потрібний формат; допомогли повторення даних і перемішування.
  5. Порівнюйте повну вартість володіння: підготовку набору даних, перевірку відповідей, обчислення та супровід моделі, а не лише ціну зовнішнього API.

Останній пункт особливо важливий. Відмова від рахунку зовнішнього сервісу не прибирає витрат — вона переносить відповідальність за якість і надійність на команду.

Підсумок

RasavedaGPT — наочний навчальний приклад: невеликий трансформер можна зібрати, навчити та застосувати в реальному сервісі без готових ваг. Його цінність не в масштабі, а в прозорості: автор розуміє словник, архітектуру, дані та шлях формування відповіді.

Для обмеженої предметної області цей підхід може бути виправданим. Для універсального помічника він, імовірно, створить більше роботи, ніж користі, проте для глибшого розуміння навчання моделей і перевірки спеціалізованого сценарію це практичний шлях.