Содержание
Коротко
Разработчик приложения 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, второй — разбор рецепта, третий — диалоговый ответ с учётом найденного контекста.
Это делает ожидаемый формат частью обучающих данных, а не хрупким требованием в длинной инструкции. Но подход не универсален: для широкого диалога или знаний вне рецептов готовая базовая модель по-прежнему будет разумнее.
На практике
Эксперимент полезен как ориентир для команды, которая хочет проверить узкую модель, а не как рецепт для немедленного переноса в продукт.
- Начните с чёткой границы задачи: один тип документов, ограниченные ответы и измеримый критерий качества.
- Отделите генерацию от поиска. В
Rasavedaподбор рецептов делает векторный поиск, а модель получает уже релевантный контекст. - Обучайте структуру явно. Для JSON недостаточно показать несколько примеров «примерно правильного» результата — нужны точные образцы входа и выхода.
- Следите за переобучением. Первые запуски автора плохо обобщали формат из-за малого набора; помогли повторения данных и перемешивание.
- Сравните стоимость владения: вычисления, подготовку набора данных, проверку ответов и поддержку модели — не только цену внешнего API.
Особенно важен последний пункт. Отсутствие внешнего счёта не означает отсутствия затрат: их просто берёт на себя команда, которая отвечает за качество модели.
Итог
RasavedaGPT — наглядный учебный пример: маленький трансформер можно собрать, обучить и применить в реальном сервисе без готовых весов. Его ценность не в масштабе, а в прозрачности — автор понимает словарь, архитектуру, данные и путь ответа.
Для ограниченной предметной области такой путь может быть оправдан. Для общего помощника он, вероятно, создаст больше работы, чем пользы; но как способ глубже понять обучение моделей и проверить специализированный сценарий он выглядит практичным.

