Золотая лихорадка закончилась. Остались трупы.
Два года назад любой энтерпрайз-проект начинался с одинакового сценария: берем самый большой LLM (тогда это был GPT-4), кидаем в него кучу корпоративных документов и ждем, что он выдаст идеальный ответ. Результат? Сотни страниц hallucinations, выдуманные compliance-отчеты, аналитика, которая "в среднем по больнице" греет душу, но не годится для решений уровня C-level.
Я уже писал об этом: чистые LLM — не серебряная пуля. А недавняя статья "Ваш ChatGPT врёт вам в лицо" наглядно показала: стратегические советы больших моделей — это лотерея, где проигрыш стоит реальных денег.
Но не спешите хоронить AI в Enterprise. В 2026 году победил третий путь — гибрид. Он не пытается заставить LLM думать как математическая формула. Он делает то, что у людей получается хуже всего: разделяет ответственность. LLM отвечает за "что делать?" и "как понять запрос?", а детерминированный execution engine — за "как сделать это гарантированно правильно?". Звучит банально? Да. Работает? Как часы.
Почему LLM без тормозов — это камикадзе для Enterprise
Давайте честно: LLM — это удивительные генераторы правдоподобного текста. Но когда речь идет о точных цифрах, юридических датах, compliance-регламентах или анализе цепочек поставок, их "креативность" становится проклятием.
Возьмем реальный кейс: финансовый отчет, где нужно рассчитать среднеквартальный churn rate по 24 сегментам клиентов. LLM, скорее всего, напишет красивый абзац про "стабильный рост оттока", но когда спросишь цифры — он их просто сгенерирует, опираясь на статистический паттерн, а не на данные. Контекстуализация через RAG помогает, но не панацея — модель все равно может "перепутать" формулы.
Детерминированные движки рассуждений (я подробно описал их вот здесь) — это антипод LLM. Они не умеют фантазировать. Они берут четкие правила или алгоритмы и выполняют их без вопросов. Но они глухи к естественному языку. Им нужен строгий формат: SQL, JSON, Python-выражение.
Архитектура на примере: Planning + Execution + Verification
Разберем на практическом примере. Представьте: дата-сайентист в ритейле хочет получить ответ: "Почему в феврале 2026 вырос возврат товаров по категории "Электроника" на 15% относительно января?".
Если скормить этот запрос голому LLM — он начнет "рассуждать": может, скачки курса, может, брак поставщика, может, холодные склады. Он назовет 5 причин, но ни одну не подтвердит данными. Если скормить детерминированному движку — он вообще не поймет запрос.
Гибрид работает иначе.
1 Planning: LLM превращает вопрос в план действий
LLM получает запрос и, используя системный промпт с описанием доступных таблиц, метрик и операций, выдает структурированный JSON-план.
{
"analysis_steps": [
{
"operation": "filter",
"table": "returns",
"conditions": [
{"field": "category", "operator": "==", "value": "Electronics"},
{"field": "month", "operator": "in", "value": ["2026-01", "2026-02"]}
]
},
{
"operation": "aggregate",
"group_by": "month",
"metric": "return_rate",
"formula": "count(return_id)/count(sale_id)*100"
},
{
"operation": "calculate_delta",
"from_month": "2026-02",
"to_month": "2026-01"
},
{
"operation": "breakdown",
"by": "subcategory",
"metric": "return_rate"
}
]
}Обратите внимание: LLM не вычисляет, не подбирает причины. Он только декомпозирует задачу. Это критично — если он ошибется в плане, execution engine выдаст либо ошибку, либо честные 0 строк. Галлюцинация отсекается на этапе верификации.
2 Execution: детерминированный движок выполняет шаги
Execution engine — это ваш старый добрый код на Python, Spark SQL или даже pandas. Он парсит JSON-план и выполняет операции одну за другой.
Пример на Python (упрощенный execution engine):
import pandas as pd
def execute_plan(df, plan):
result = df.copy()
for step in plan['analysis_steps']:
if step['operation'] == 'filter':
for cond in step['conditions']:
if cond['operator'] == '==':
result = result[result[cond['field']] == cond['value']]
elif cond['operator'] == 'in':
result = result[result[cond['field']].isin(cond['value'])]
elif step['operation'] == 'aggregate':
result = result.groupby(step['group_by']).apply(
lambda g: eval(step['formula'].replace(...)) # безопасный eval c белым списком
)
# далее calculate_delta, breakdown и т.д.
return resultЗдесь нет места "магии". Если в данных нет нужного колонки — будет KeyError. Если формула синтаксически неверна — exec вернет исключение. Пользователь получает либо точный результат, либо понятную ошибку.
3 Verification: проверка на вменяемость
После execution можно (но не обязательно) прогнать результаты через малый LLM для генерации текстового вывода. Но обязательно добавить автоматические проверки: соответствие типов данных, диапазоны значений, контрольные суммы. Метрики тестирования AI-приложений здесь критически важны.
Пошаговый план внедрения гибридного AI в Enterprise
1 Step: Аудит existing pipelines
Выпишите, какие задачи сейчас решаются "на коленке": аналитические отчеты, генерация инсайтов, автоматизация compliance. Разделите их на те, где точность критична (финансы, юриспруденция) и где допустима "творческая" интерпретация (маркетинг, блоги). Для первых — гибрид обязателен.
2 Step: Спроектируйте execution engine
Не пишите его с нуля. Возьмите pandas, Spark SQL (для больших объемов) или специализированные фреймворки вроде KEF, который уже включает детерминированные модули reasoning. Создайте DSL (domain-specific language) операций: filter, join, aggregate, compute, validate. Execution engine должен принимать только этот DSL.
3 Step: Настройте LLM-планировщик
Используйте самую свежую на май 2026 модель — например, GPT-4.5 Turbo, Claude 4 Sonnet или Gemini 2 Ultra Flash. Промпт должен быть жестким: "Ты генератор планов. Верни только JSON. Никаких комментариев. Если не уверен — верни JSON с ключом "error" и описанием причины.". Маленькие энкодеры вроде GLiNER 2 могут быстрее и дешевле извлекать сущности из запроса перед передачей LLM.
4 Step: Добавьте верификацию
Автоматические тесты на репрезентативной выборке из 100 запросов. Сравните результаты гибрида с ответами эксперта. Используйте методологию ground truth, чтобы избежать data leakage. Если точность на тестовой выборке ниже 95% — пересмотрите DSL или добавьте больше примеров в few-shot.
Типичные ошибки и грабли (проверено на себе)
Ошибка 1: Слишком сложный DSL. Если execution engine поддерживает 50 видов операций, LLM будет путаться. Держите не более 10-15 операций. Остальное — комбинации базовых.
Ошибка 2: Отсутствие fallback при отказе LLM. Если LLM не может сгенерировать план (например, запрос неоднозначен), execution engine не должен исполнять partial план. Обязательно проверяйте наличие ключа "error" или схемы.
Помните историю про AI-ботов, которые самоорганизовались в картель? Когда LLM получает слишком много свободы, он начинает галлюцинировать не только данные, но и цели. В гибридной архитектуре LLM изолирован — он не влияет на транзакционные данные, только на мета-план.
| Компонент | Роль | Точность |
|---|---|---|
| Чистый LLM | Ответ на вопрос | 40-60% (галлюцинации) |
| RAG + LLM | Ответ с контекстом | 60-80% |
| Гибрид (Planning+Execution) | План вычислений → точный результат | 95-99.9% |
Неочевидный совет: не ограничивайтесь аналитикой
Гибридная архитектура идеально подходит не только для финтеха и ритейла. Например, в анализе сбоев в цепочке поставок LLM может сформулировать гипотезу ("проверь вторичных поставщиков из Китая"), а execution engine пробежится по транзакционным данным и подтвердит или опровергнет гипотезу. Тот же подход работает для compliance: LLM интерпретирует регуляторный текст, извлекает требования с помощью NER (GLiNER 2), а execution engine сверяет с actuals.
И еще один лайфхак: используйте execution engine для синхронного вызова, а LLM — асинхронно. Если пользователь ждет ответ 2 секунды — пусть execution engine молниеносно выдаст результат, а LLM сгенерирует текстовое описание post factum. Так пользователь не замечает задержек.
Гибридный AI — это не компромисс. Это архитектура, где каждый делает то, что умеет лучше всего. LLM понимает людей. Детерминированный движок считает. Вместе они дают ответ, которому можно верить. И никаких галлюцинаций.