Модуль 13. ML или LLM: выбор модели под задачу
Цель модуля: выбирать семейство модели под задачу — по природе данных, стоимости, латентности и требованиям к объяснимости: табличное → ML, язык → LLM, смешанное → гибрид с маршрутизатором. После модуля вы прикидываете экономику обоих путей до пилота и видите общую дисциплину оценки, версий и фидбека, которая связывает оба курса трека.
Перед началом: модули 1–12 (особенно 6, 7 и 11); из курса «Дообучение LLM» — модуль 4 (лестница решений) и модуль 8 (метрики). Инструменты: только чтение, диаграмма и расчёты — модуль без кода. Трудоёмкость: ~1 ч (чтение 40 мин · практика 20 мин).
🔥 Пять минут против токенов
Классификатор срочности тикетов на бустинге обучился на ноутбуке за пять минут, отвечает за миллисекунды и предсказывает с точностью, которую легко померить. Вариант «LLM на каждый тикет» выглядит соблазнительнее: не нужно размечать данные, модель «понимает» текст. Но за каждый тикет платятся токены, ответ приходит за секунды, а «почему срочный» — не объяснить.
Это не спор «что лучше»: для сортировки текста в фиксированную категорию бустинг почти всегда дешевле и точнее, а вот написать клиенту вежливое объяснение он не умеет. Развилка проходит не по модности технологии, а по вопросу «что на входе и что должно быть на выходе». Этому выбору посвящён финальный модуль — и он сводит вместе оба курса трека.
📖 13.1. Первый вопрос: что на входе и что на выходе
Прежде чем спорить о моделях, опишите задачу двумя строками: что приходит на вход и что должно получиться на выходе. Дальше решение почти автоматическое:
- Табличные и структурированные данные — метрики, события, транзакции: числа и категории без свободного текста. Выход — число или класс. Это территория классического ML: бустинг (модуль 6) или линейная модель (модуль 3). Дёшево, точно, объяснимо, учится за минуты.
- Свободный текст, диалог, генерация, «прочитай и объясни» — ответом должно быть связное сообщение, объяснение или резюме. Здесь работает LLM: классификатор выдаст метку, но не текст (курс «Дообучение LLM»).
- Смешанная задача — текст на входе, но решение из фиксированного набора («тема обращения», «нужен ли ответ оператора»). Тут часто выигрывает гибрид: лёгкий классификатор решает, что просто, LLM обрабатывает остальное (13.3).
Четыре фактора решают спор в пограничных случаях: стоимость инференса (микросекунды против токенов), латентность (миллисекунды против секунд), объяснимость (важности фич против «модель так решила») и приватность. Если всё это не критично, а задача текстовая — начинайте с промпта у LLM.
📖 13.2. Диаграмма: маршрутизатор решений
Читаем сверху вниз. Вопрос «какая у вас задача?» расходится на три ветки. Зелёная — табличные данные: к ним идёт градиентный бустинг (модуль 6), а от него подпись про деньги: стоимость — рубли за обучение раз в неделю, инференс — микросекунды. Фиолетовая — свободный текст, диалог и генерация: здесь LLM с дообучением или RAG из курса «Дообучение LLM»; стоимость — токены за каждый вызов и GPU-часы за тюнинг. Жёлтая — смешанная задача: гибрид, где лёгкий классификатор маршрутизирует запросы, а LLM обрабатывает только то, что реально требует языка.
Самое важное на диаграмме — два пунктирных ребра от гибрида. Верхнее: «80% запросов закрываются бустингом без LLM» — простые, типовые случаи дешевле и быстрее решить классификатором. Нижнее: «20% сложных уходят в LLM» — там, где нужен язык, платим токенами честно. Пропорция 80/20 — из учебного примера; на ваших логах она другая, и её нужно померить, а не угадать. Но направление верное: в любой потоке текста большинство запросов типовые.
📖 13.3. Гибрид: классификатор-маршрутизатор перед LLM
Как гибрид устроен на практике, на примере поддержки:
- Роутер. Классификатор (модули 3–6) по тексту обращения предсказывает категорию: «оплата», «доступ», «доставка» — или флаг «нестандартный запрос». Обучается на тех же логах, что и любая модель, метрики — из модуля 7.
- Простая ветка. Типовые категории закрываются бустингом и шаблонами: «оплата» — инструкция и ссылка. Ноль токенов, миллисекунды.
- Сложная ветка. Всё, что роутер пометил как нестандартное или где уверенность ниже порога, уходит в LLM — с контекстом, который собрал роутер («категория: оплата, сложность: высокая»).
Экономика гибрида очевидна: если 80% запросов не доходят до LLM, счёт за токены падает в разы, а латентность большинства ответов — миллисекунды. Но есть и новая цена: ошибка роутера — новый класс ошибок. Запрос, неверно отправленный в простую ветку, LLM никогда не увидит; поэтому полноту роутера на классе «сложное» нужно мерить отдельно (для него ложный пропуск дороже ложного срабатывания), а golden set (модуль 8 llm-курса) должен покрывать оба маршрута. Роутер — обычная модель: её тоже версионируют и переобучают.
📖 13.4. Экономика: токены за вызов vs обучение раз в неделю
Формула стоимости LLM: вызовы × токены × цена токена — расход линеен по трафику и растёт с длиной контекста. Формула ML-подхода: стоимость обучения (раз в неделю, минуты-часы CPU) плюс железо инференса, где сам инференс — микросекунды и почти не зависит от объёма входа. Порядок величин: пятьдесят тысяч обращений в сутки по восемьсот токенов — это десятки миллионов токенов ежедневно; бустинг на том же потоке — одна небольшая машина. Точные рубли подставьте по прайсу вашего провайдера — важно, что у ML расход фиксирован и предсказуем, у LLM — пропорционален трафику.
Но «дешевле» — не универсальный аргумент. Если задача редкая (сто вызовов в день) и текст сложный, LLM дешевле, чем строить MLOps ради классификатора. Если данные нельзя выпускать наружу — выбор диктует приватность; если нужен ответ за десять миллисекунд — LLM не подходит по физике. Стоимость решения — это деньги плюс латентность, поддержка и риски.
И тонкость про «свою модель vs API»: своё — контроль, приватность, on-prem, но нужны данные, разметка, обучение и мониторинг. API — быстрый старт и ноль инфраструктуры, но платите за каждый вызов и зависите от провайдера (таймауты, лимиты, смена цен — модуль 12 llm-курса).
📖 13.5. Модель и человек: кто кого
Модель сильна там, где человек слаб: масштаб (миллионы решений), постоянство (не устаёт, не забывает, не зависит от настроения), много слабых сигналов одновременно, круглосуточная работа. Человек сильнее там, где модель слепа: единичные высокоставочные решения, ответственность и подпись, контекст, которого нет в данных, ситуации, которых не было раньше.
Практический вывод — не «заменить» или «оставить», а эскалация: модель ранжирует и закрывает типовое, человек разбирает исключения. Механизмы вам уже знакомы: порог классификатора выбирается по цене ошибки (модуль 7), fallback-цепочка и фидбек «человек → датасет» — из модуля 12 llm-курса. И честная рамка сравнения: новую модель сравнивают с текущим процессом, а не с идеальным человеком, который никогда не ошибается и не устаёт.
📖 13.6. Одна дисциплина на два курса: метрики, версии, фидбек
Выбор между ML и LLM — не религиозный спор, потому что оба пути живут по одним правилам:
- Метрики одни. Precision, recall, ROC-AUC, порог как бизнес-решение (модуль 7) применимы и к классификатору, и к LLM-классификатору; golden set из модуля 8 llm-курса годится обоим — меняется лишь способ получить предсказание.
- Версия одна по смыслу. «Обученная модель — это версия» (модуль 12 llm-курса): у ML в тройку «данные + код + параметры» добавляются схема фич и порог; любое изменение — новая версия, откат — одна строка.
- Петля фидбека одна. Логи → разметка → следующий датасет — что для тюнинга LLM (модуль 5 llm-курса), что для переобучения бустинга.
- Дрейф общий. Меняется распределение — деградируют оба; мониторить нужно и там и там.
Смотрите на трек как на два инструмента одного навыка: выбрать подход, померить честно, выкатить и поддерживать. Модуль 13 закрывает курс, но не тему — следующая задача на работе снова начнётся с вопроса «ML или LLM».
📖 13.7. Компромиссы
- ML vs LLM. Табличное — точно, дёшево, объяснимо, но требует данных и разметки; языковое — гибко и быстро стартует с промпта, но платите токенами и латентностью.
- Гибрид vs только LLM. Гибрид дешевле и быстрее на типовом трафике, но это два контура и роутер — новый класс ошибок, который надо мерить.
- Своя модель vs API. Контроль, приватность и on-prem против скорости старта: API не требует ни данных, ни инфраструктуры, но зависите от провайдера и платите за каждый вызов.
- Латентность vs качество. Миллисекунды бустинга против секунд LLM: для интерактивных сценариев это первый фильтр, а не деталь.
- Простота эксплуатации vs точность. Одна модель в Pipeline проще в поддержке, чем цепочка «роутер → LLM → fallback»; усложняйте, только если выигрыш виден в цифрах.
💻 Практика
- (15 мин) Три свои задачи. Возьмите три задачи со своей работы. Для каждой выпишите: что на входе, что на выходе, и какую ветку диаграммы из 13.2 вы выбираете. Для пограничных — назовите решающий фактор (стоимость, латентность, приватность, объяснимость).
- (15 мин) Прикидка стоимости. Для одной задачи посчитайте по логам (или оценке) число вызовов в месяц и средние токены. Умножьте на цену провайдера — получите order of magnitude расхода LLM. Сравните с «одна машина + переобучение раз в неделю». Запишите вывод одной строкой.
- (10 мин) Дизайн гибрида. Для задачи «срочность тикета» опишите роутер: какие категории закрывает классификатор, что уходит в LLM, что делать с низкой уверенностью (порог). Назовите, как померите полноту роутера на «сложных».
- (10 мин) Общие метрики. Соберите список из пяти артефактов и метрик, которые вы зафиксируете для сравнения ML- и LLM-пути одной задачи (подсказка: golden set, precision/recall, латентность, стоимость, версия модели).
🧩 Quiz "Проверь себя"
✅ Итоги модуля
- По входу и выходу задачи выбирать путь: ML, LLM или гибрид.
- Читать диаграмму и объяснять рёбра «80% без LLM / 20% в LLM».
- Спроектировать маршрутизатор и назвать его цену: новый класс ошибок.
- Считать экономику: токены за вызов против обучения раз в неделю.
- Назвать ситуации, где модель лучше человека и наоборот.
- Перечислить общую дисциплину: метрики, версии, фидбек, дрейф.
🧭 Куда дальше
Курс закончился, а трек — нет. Два соседних курса продолжают этот:
- «Дообучение LLM» — вторая половина трека: токены и attention, LoRA/QLoRA, датасеты и golden set, дообучение YandexGPT и эксплуатация LLM-фичи (версии, A/B, fallback). Модуль 13 был мостиком к нему — читайте курс как продолжение: те же метрики и та же дисциплина, другое семейство моделей.
- «Архитектурный полигон» — наблюдаемость на живом стенде: алерты, SLO, инциденты. Ваш навык из модуля 10 («что считать аномалией», z-score vs IQR) и из модуля 12 (мониторинг модели) там пригодится буквально — модуль 6 полигона целиком про алерты и метрики.
Инструменты, которые стоит держать под рукой:
- https://scikit-learn.org/stable/ — документация sklearn: Pipeline, кросс-валидация, метрики, HistGradientBoosting;
- https://pandas.pydata.org/docs/ — pandas: таблицы, пропуски, разведка;
- https://xgboost.readthedocs.io/ и https://lightgbm.readthedocs.io/ — промышленные бустинги, когда sklearn перестанет хватать.
И привычка, которую стоит забрать из курса: перед любой моделью — задача, метрика и baseline; любое изменение — версия и честный замер; любая ошибка — кандидат в данные. Это работает и для бустинга на табличных, и для LLM, и для гибрида, с которого начнётся ваша следующая задача.