К содержимому
MoranaLabs
Research3 мин чтения2 просмотра

Как мы слили 2 месяца и GPU-бюджет на fine-tune модели, которую заменили 20 строками правил: когда не нужно дообучать модель 

Реальный кейс: как мы сожгли 3 миллиона рублей на кластере A100 ради 0.5% точности, которую дал бы обычный регексп. Жесткий разбор того, когда не нужно дообучать модель и почему команды пилят ML-оверинжиниринг ради строчки в резюме.

0xReality
config = LoraConfig(r=16, lora_alpha=32, target_modules=["q_proj", "v_proj"], lora_dropout=0.05, bias="none", task_type="CAUSAL_LM"); trainer = SFTTrainer(model=model, train_dataset=dataset, peft_config=config); trainer.train()

Внешне — абсолютно стандартный сетап для файнтюна 7-миллиардной LLM через LoRA. Этот конфиг мы накатили на кластер A100, чтобы парсить неструктурированные спецификации от поставщиков железа в эталонную номенклатуру. Что здесь не так? С гиперпараметрами все отлично. Проблема в том, что этого кода вообще не должно было существовать.

Именно так начинается типичная история про то, как мы слили 2 месяца и GPU-бюджет на fine-tune модели, которую заменили 20 строками правил: когда не нужно дообучать модель, ее все равно тащат в продакшен. Задача казалась сложной: тысячи кривых наименований, сокращения, опечатки. Внутренняя ML-команда завелась мгновенно: развернем LLaMA, дообучим на исторических логах, получим state-of-the-art инференс без облаков. Звучит солидно. Инвесторам продается на ура.

Смета факапа оказалась предельно конкретной. Аренда железа 8xA100 на сером рынке РФ 2026 года под эксперименты и финальный ран — 1.8 млн рублей. Зарплата двух сеньоров за два месяца — еще около 1.6 млн. Итог: 3.4 миллиона рублей ради того, чтобы выкатить тяжелый пайплайн, который намертво резервирует память и дает 87% Exact Match на тестовой выборке.

Прозрение случилось за день до деплоя. Бекендер, уставший ждать медленный эндпоинт, от скуки накидал fallback-механизм: словарь синонимов, дистанция Левенштейна и жесткий regexp на извлечение артикулов. 20 строк на Python.

Скрипт отработал за 40 миллисекунд на одном ядре CPU. Exact Match составил 86.5%.

Дельта в 0.5% — это статистический шум. Мы сожгли время и железо ради прироста, который лежит в пределах доверительного интервала.

Когда не нужно дообучать модель: ловушка стимулов и экономика TCO

Почему мы вообще полезли в LLM? Из-за системной ловушки стимулов. Никто в индустрии не награждает за регекспы. Внутренние разработчики хотят «крутой стек», чтобы повысить капитализацию резюме. Подрядчики — чтобы раздуть чек. Выбрать fine-tune или правила для многих интеграторов больше не вопрос: нейронка — это 1000 часов по рейту сеньора, а эвристика — день работы. Индустрия построена на том, чтобы продавать оверинжиниринг ML под видом цифровой трансформации.

Суровая реальность такова, что стоимость дообучения модели — это только аванс. Дальше бьет TCO (Total Cost of Ownership). Добавьте сюда постоянный жор GPU на инференсе: в реалтайме LLM не бывает бесплатной, на ребре нагрузки (p99) генерация токенов упирается в пропускную способность памяти, и вам приходится масштабировать кластер. Плюс версионирование датасетов и неизбежный дрейф данных. Если у вас изменился формат артикулов, в правиле вы меняете один паттерн. С нейронкой вы собираете новый датасет и перезапускаете пайплайн.

Модель оправдана только тогда, когда цена ошибки критически высока, частота обновления логики минимальна, а данных столько, что правила начинают ломаться под собственным весом. Во всех остальных случаях сначала пишется тупой детерминированный код.

5 маркеров: нужен ли ИИ для задачи

Как понять, что команда пилит хайп за ваши деньги? Вот 5 признаков того, что вам впаривают оверинжиниринг там, где он противопоказан:

  • Нет дешевого baseline. Если вам предлагают нейросеть, но до этого никто не пробовал решить задачу словарями, бустингом на табличке (LightGBM/CatBoost) или классической эвристикой — вас разводят.
  • Игнорируется статзначимость. Прирост метрики подается как абсолют: «Модель дает 92%, а правило 89%». При объеме тестовой выборки в 200 строк разницы между ними нет вообще.
  • TCO инференса съедает выгоду. Если содержание локального GPU-сервера для разбора чеков стоит дороже, чем зарплата десяти операторов в регионах, ИИ здесь не нужен.
  • Логика бизнеса меняется быстрее, чем переобучается модель. Если правила игры обновляются раз в неделю, ML-команда будет вечно догонять реальность.
  • Требуется 100% интерпретируемость. Модель — это вероятностная машина. Если вам нужно железно объяснить аудитору, почему заявка отклонена на конкретном этапе бизнес-процесса, LLM вам только навредит.

У нас в MoranaLabs процесс устроен иначе. Пресейл-аудит часто начинается с того, что мы сами отговариваем клиента от нейронок и режем смету. Если задачу можно закрыть табличным ML или регуляркой за неделю — мы сделаем это и пойдем дальше. Индустриальный ИИ катится в бой только там, где детерминированные алгоритмы гарантированно захлебываются, а дельта точности бьет бейзлайн настолько, что кратно перекрывает косты на железо. Все остальное — это карго-культ, за который платит бизнес.

  • #Fine-tuning
  • #GPU
  • #LLM
  • #Оверинжиниринг
  • #Оптимизация затрат
ПоделитьсяTelegramX
рассылка

Новые статьи — на почту

Лонгриды про ML в проде, edge и компьютерное зрение — сразу после выхода.

Канал в Telegram: morana.log

Без спама. Нажимая «Подписаться», соглашаетесь с обработкой персональных данных

бесплатный pdf-гайд

Edge AI или облако: когда тащить нейросеть на железо

Признаки, фреймворк выбора и прикидка экономии — короткий PDF-гайд на почту.

PDF · 5 страниц · без спама. Нажимая «Получить», соглашаетесь с обработкой персональных данных

Читать дальше
— заявка

Опишите задачу  ответим как инженеры. 

Оставьте имя и Telegram — остальное обсудим. Без брифов на 40 слайдов и звонков по три раза.

Отвечаем за пару часовотвечает инженер, а не отдел продажNDA до передачи данных

Любой один канал — куда удобнее, туда и ответим

Или сразу написать в Telegram

Без спама и звонков-роботов. Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности и обработкой персональных данных.