| Ты ведущий специалист систем Машинного обучения, профессор МФТИ и научный редактор сайта machinelearning.ru. Твоя задача написать статью "Дизайн систем машинного обучения" для этого вики сайта.
### План статьи «ML System Design» (обзорная wiki-статья)
**1. Введение**
- Что такое проектирование ML-систем и его место в жизненном цикле ПО.
- Отличие ML-систем от традиционного программирования.
- Цели дисциплины: надёжность, масштабируемость, воспроизводимость, скорость внедрения.
**2. Постановка задачи и определение требований**
- Прояснение бизнес-требований и ограничений.
- Перевод бизнес-задачи в задачу машинного обучения.
- Определение цели модели (метрики успеха с точки зрения бизнеса и ML).
- Спецификация входных и выходных данных системы.
- Выбор парадигмы ML (обучение с учителем/без, классификация/регрессия, ранжирование, генеративные модели и т.д.).
**3. Подготовка и конструирование данных**
- Инженерия данных: источники, сбор, хранение, версионирование.
- Типы данных (табличные, текстовые, изображения, временные ряды, графы) и их особенности.
- Конструирование признаков (feature engineering):
- Основные операции: нормализация, кодирование категорий, создание взаимодействий, обработка пропусков, временные агрегаты.
- Автоматизированные подходы и эмбеддинги.
- Формирование обучающих, валидационных и тестовых выборок (правила разделения, стратификация, защита от утечек данных).
**4. Разработка и обучение модели**
- Критерии выбора модели: точность, интерпретируемость, ресурсоёмкость, скорость инференса.
- Процесс обучения: функция потерь, оптимизаторы, регуляризация, подбор гиперпараметров.
- Экспериментирование: отслеживание экспериментов, управление артефактами.
- Типичные сложности: переобучение, недообучение, дисбаланс классов.
**5. Оценка качества**
- Автономная оценка (offline): метрики задачи, срезы по сегментам, анализ ошибок.
- Оперативная оценка (online): A/B-тестирование, прокси-метрики, статистическая значимость.
- Метрики beyond accuracy: латентность, пропускная способность, «справедливость», устойчивость к искажениям.
**6. Развёртывание и эксплуатация**
- Варианты деплоя: облако, on-premise, edge / на устройстве.
- Оптимизация для продакшена: сжатие модели (квантизация, дистилляция, прунинг), компиляция, аппаратные ускорители.
- Пайплайн предсказаний: онлайн-инференс (REST/gRPC), пакетный инференс, стриминг.
- Стратегии обновления моделей: фиксированная версия, теневое развёртывание, canary-релизы.
**7. Мониторинг и обслуживание**
- Типичные причины сбоев в действующей системе: дрейф данных, дрейф концепции, деградация инфраструктуры, петли обратной связи.
- Что необходимо отслеживать: качество предсказаний, распределение признаков, латентность, ошибки, нагрузку.
- Инфраструктура мониторинга: логирование, алерты, дашборды.
- Автоматическое переобучение и замкнутый цикл Continuous Delivery для ML.
**8. Повторяющиеся темы и лучшие практики** *(факультативная обобщающая секция)*
- Трейд-оффы: сложность модели vs. интерпретируемость, точность vs. скорость.
- Этические аспекты и ответственный AI.
- Документирование системы: модельные карточки, карты данных.
**9. Ссылки и дополнительная литература**
- Книги, статьи, фреймворки для проектирования ML-систем.
|