В эпоху повсеместного увлечения LLM, эмбеддингами и RAG-инфраструктурами легко попасть в когнитивную ловушку: если задача связана с текстом, значит нужен AI. Если есть данные – значит нужна модель. Если можно применить нейросеть – значит это "современно".
Но зрелая инженерия начинается не с вопроса "как применить AI?", а с вопроса:
Можно ли решить это проще?
Эта глава – про границы. Про то, где машинное обучение оправдано, а где это избыточный, дорогой и хрупкий инструмент.
Инженерная бритва Оккама
В инженерии действует простое правило:
Не усложняй систему без необходимости.
Формально это можно выразить через минимизацию сложности:
Risk=f(Complexity,Uncertainty) Чем выше сложность системы, тем выше:
зависимость от внешних сервисов
неопределённость поведения
AI почти всегда увеличивает сложность:
требуется обучение или интеграция модели,
появляется стохастичность,
появляются инфраструктурные требования (GPU, векторные БД и т.д.)
Если задача решается детерминированным кодом – это почти всегда лучшее решение.
Когда достаточно правил вместо модели
Рассмотрим пример.
Определить, содержит ли текст email-адрес.
Подход 1 – регулярное выражение
Сложность: O(n)
Детерминированность: 100%
Стоимость: ≈ 0
Подход 2 – классификатор на основе LLM
Сложность: высокая
Стоимость: постоянная
Стохастичность: есть
В этом случае AI – инженерная ошибка.
Линейная зависимость ≠ машинное обучение
Иногда ML используется там, где хватает формулы.
Пример: прогнозирование цены доставки
Если цена зависит от веса:
price=base+k⋅weight Это обычная линейная функция.
PHP-реализация:
Иногда вместо этого строят линейную регрессию. Но если зависимость известна и стабильна, модель не добавляет ценности.
Модель нужна, когда:
правила невозможно явно сформулировать
Данные малы – модель бессмысленна
В ML работает фундаментальный принцип:
Generalization Error≈nd где
d – сложность модели (число параметров)
Если данных мало, модель:
Если у вас 200 записей в таблице – вам почти никогда не нужна нейросеть.
AI нужен там, где невозможно выписать правила.
Если правило можно сформулировать логически – его стоит написать.
Пример: фильтрация заказов
Условие:
AI здесь – избыточен.
Стохастичность против требований бизнеса
AI – вероятностная система.
Бизнес часто требует:
Если система должна давать одинаковый результат на один и тот же вход – LLM может быть неподходящим инструментом.
Формально:
Детерминированная функция:
LLM:
y∼P(Y∣X) Это принципиально разные классы систем.
Время отклика и latency
Если операция должна выполняться за 5 мс – облачная модель почти всегда не подходит.
Пример: фильтрация 10 000 строк.
SQL справится за миллисекунды:
LLM – нет.
Проблема на самом деле – плохая архитектура
Иногда AI используют, чтобы “залатать” архитектурные дыры:
плохая нормализация данных
Если поиск по базе плохой – сначала нужно исправить схему БД, а не добавлять эмбеддинги.
31.1 Область применимости AI Интерпретация:
AI оправдан только в правом нижнем углу.
31.2 Рост сложности системы Финансовая функция сложности
Можно рассматривать AI как добавление фиксированных и переменных затрат:
CostAI=Cintegration+Cinference+Cmonitoring Если:
ValueAI<CostAI это плохое инженерное решение.
Чек-лист: действительно ли нужен AI?
Перед тем как внедрять модель, задайте 7 вопросов:
Можно ли описать задачу набором правил?
Требуется ли стохастичность?
Можно ли улучшить схему БД вместо внедрения ML?
Требуется ли 100% воспроизводимость?
Окупит ли выигрыш сложность?
Если на первые два вопроса ответ "да" – AI почти всегда не нужен.
Где AI действительно оправдан
AI нужен, когда:
высокая размерность данных
невозможно сформулировать правила
большой объём исторических данных
задача вероятностная по природе (рекомендации, распознавание, прогнозирование)
Например:
ранжирование документов по семантике
AI – это инструмент для работы с неопределённостью.
Если неопределённости нет – не нужен и AI.
Сильный инженер не тот, кто внедрил модель, а тот, кто понял, что модель не нужна.
Инженерная зрелость
В мире, где AI стал модным словом, настоящая экспертиза проявляется в способности сказать:
Здесь достаточно 20 строк PHP.
Иногда самая умная архитектура – это отсутствие нейросети.
И это не анти-AI позиция.
Это позиция зрелой инженерии.