Amazon MLA-C01: Оценка и выбор моделей — Руководство по подготовке

Часть AWS Machine Learning Engineer Associate MLA-C01 — Руководство по подготовке. Практикуйтесь с проверенными ответами в центре экзаменов Amazon, или пройдите тесты на время на ExamRoll.io.

Точная оценка модели начинается с выбора метрик, которые соответствуют бизнес-цели и характеристикам классов/меток. Для бинарной классификации каноническим примитивом является матрица ошибок (true positives, false positives, false negatives, true negatives), из которой выводятся точность (TP / (TP+FP)), полнота или чувствительность (TP / (TP+FN)), специфичность (TN / (TN+FP)) и аккуратность ((TP+TN) / общее число). Точность и полнота представляют собой компромисс, который отражается в F1-мере (2 * точность * полнота / (точность + полнота)), являющейся средним гармоническим и подчеркивающей баланс между ложноположительными и ложноотрицательными результатами. При сильном дисбалансе классов аккуратность может вводить в заблуждение; площадь под ROC-кривой (AUC) измеряет разделимость классов при разных порогах и во многих случаях устойчива к дисбалансу, в то время как AUC для кривой точности-полноты (AUPRC) более информативна, когда распространенность положительного класса низка. Для регрессии среднеквадратичная ошибка (RMSE) квадратично штрафует за большие ошибки и чувствительна к выбросам; используйте среднюю абсолютную ошибку (MAE), когда предпочтительна устойчивость к выбросам.

Выбор порога — это операционное решение: многие алгоритмы выдают оценку вероятности и требуют порога для преобразования ее в метки классов. Используйте кривые ROC и кривые точности-полноты, чтобы найти пороги, которые максимизируют выбранную цель, такую как F1-мера или взвешенная по бизнес-показателям функция стоимости. Практическая методология заключается в вычислении точности, полноты и F1-меры для каждого порога на основе матрицы ошибок, а затем в выборе порога, который удовлетворяет целевому ограничению по точности или полноте. Перекрестная проверка (кросс-валидация) дополняет этот процесс, уменьшая дисперсию в оценках метрик: используйте стратифицированную K-блочную перекрестную проверку для несбалансированной классификации, чтобы сохранить соотношение классов в фолдах. В коде StratifiedKFold из scikit-learn с параметрами n_splits и shuffle=True, а также фиксированным random_state обеспечивает воспроизводимые фолды; логируйте метрики для каждого фолда и агрегируйте средние значения и стандартные отклонения для количественной оценки ожидаемой дисперсии. При использовании SageMaker вы можете оркестрировать запуски перекрестной проверки как отдельные задачи обучения и отслеживать их с помощью API SageMaker Experiments: CreateExperiment, CreateTrial, CreateTrialComponent, а затем LogMetric и LogHyperParameter для каждого фолда.

Компромисс между смещением и дисперсией определяет выбор сложности модели и параметров регуляризации. Модели с высоким смещением (high-bias) недообучаются и показывают высокую ошибку на обучающем и валидационном наборах, в то время как модели с высокой дисперсией (high-variance) переобучаются и имеют низкую ошибку на обучающем наборе, но высокую на валидационном. Устраняйте смещение, увеличивая емкость модели, добавляя информативные признаки или уменьшая силу регуляризации; устраняйте дисперсию, добавляя регуляризацию (L1/L2), уменьшая сложность, используя dropout или увеличивая объем обучающих данных. Используйте оценки перекрестной проверки для обнаружения дисперсии: большой разброс метрик по фолдам указывает на высокую дисперсию. Для итеративного обучения в SageMaker используйте раннюю остановку (для XGBoost установите гиперпараметр early_stopping_rounds и eval_metric=‘auc’ или ’error’) и используйте SageMaker Automatic Model Tuning с байесовской стратегией для поиска в hyperparameter_space; настройте HyperparameterTuner с objective_metric_name, objective_type=‘Maximize’ или ‘Minimize’, hyperparameter_ranges, max_jobs и max_parallel_jobs.

Ключевые сервисы и конфигурация

Сервисы AWS образуют тесно интегрированный набор инструментов для отслеживания экспериментов, регистрации моделей, обнаружения дрейфа и применения защитных барьеров при развертывании. Используйте Amazon SageMaker Experiments для организации запусков; вызывайте

undefined

,

undefined

и

undefined

для сохранения гиперпараметров и метрик. Для централизованного управления жизненным циклом моделей используйте SageMaker Model Registry (ModelPackageGroup и ModelPackage) и управляйте процессом развертывания через атрибут пакета модели ModelPackageApprovalStatus, который поддерживает значения “PendingManualApproval”, “Approved” и “Rejected”. Интегрируйте ручные утверждения в процесс CI/CD, вызывая UpdateModelPackage для изменения approval_status из AWS Lambda или действия для утверждения человеком в Step Functions.

Для мониторинга после развертывания и обнаружения смещения/дрейфа используйте SageMaker Model Monitor и SageMaker Clarify. Включите сбор данных в реальном времени на эндпоинте, установив DataCaptureConfig при вызове CreateEndpointConfig или UpdateEndpointConfig; укажите CaptureOptions: [{“CaptureMode”:“Input”}, {“CaptureMode”:“Output”}], DestinationS3Uri и SamplingPercentage для сбора репрезентативных полезных данных. Используйте Model Monitor DefaultModelMonitor для генерации эталона (GenerateBaseline: JSON-файлы baseline_statistics и baseline_constraints) из референтного набора данных, а затем создайте расписание мониторинга с помощью create_monitoring_schedule, указав MonitoringScheduleConfig, schedule_expression (cron или rate) и MonitoringInputs, такие как EndpointInput с local_path и S3InputMode. Для анализа справедливости и смещения используйте SageMaker Clarify как ProcessingJob с параметрами clarify_config compute_bias и compute_data_drift, или используйте встроенный алгоритм SageMaker Clarify в задаче обработки (Processing job) и сохраняйте результаты в S3 для дашбордов.

Несколько возможностей AWS часто используются вместе для агрегации данных, подготовки признаков и обнаружения аномалий:

Шаблоны проектирования и компромиссы

Когда необходимо минимизировать операционные издержки, отдавайте предпочтение управляемым сервисам и встроенным функциям алгоритмов, а не созданию собственных конвейеров ETL или мониторинга. Например, при обучении бинарного классификатора для обнаружения мошенничества XGBoost является эффективным встроенным выбором в SageMaker, который предлагает обучение с низкой задержкой и гиперпараметры, специально предназначенные для несбалансированных данных, такие как scale_pos_weight, который следует установить в значение (num_negative / num_positive). Настройте гиперпараметры XGBoost в Estimator или в контейнере для обучения: objective=‘binary:logistic’, eval_metric=‘aucpr’ или ‘auc’, и early_stopping_rounds для прекращения зашумленных запусков. Это позволяет избежать создания собственных конвейеров для избыточной выборки (oversampling), таких как SMOTE, если только не требуется специфичная для предметной области синтетическая выборка.

Для инжиниринга признаков (feature engineering) используйте SageMaker Data Wrangler, чтобы применять преобразования кодирования (one-hot для категориальных признаков с низкой кардинальностью, порядковое/целевое кодирование или кодирование метками для признаков с высокой кардинальностью) и затем материализовать очищенные признаки в SageMaker Feature Store или S3. Data Wrangler снимает большую часть операционной нагрузки и создает скрипты или задания обработки, которые можно использовать повторно. Если вам нужен автоматизированный выбор модели с минимальными усилиями, SageMaker Autopilot может автоматически предварительно обрабатывать смешанные категориальные и числовые признаки и генерировать модели-кандидаты; однако Autopilot абстрагирует преобразования и может быть неоптимальным для пользовательских режимов работы с признаками.

Сравнение и продвижение моделей наиболее надежны, когда записываются метрики, артефакты и происхождение данных (lineage). Используйте SageMaker Experiments для сравнения запусков, затем создайте ModelPackage в ModelPackageGroup. Продвигайте модель, устанавливая для ModelPackageApprovalStatus значение “Approved”, и создайте EndpointConfig, ссылающийся на ARN пакета модели. Там, где требуется ручной контроль, оставьте модель в статусе “PendingManualApproval” и организуйте рабочий процесс утверждения человеком с помощью Step Functions или AWS CodePipeline с действием утверждения, которое вызывает UpdateModelPackage для перевода модели в статус “Approved”.

Распространенные ошибки и критерии принятия решений

Распространенная ошибка — путать падение метрики F1 в рабочей среде с неисправностью модели, когда на самом деле проблема заключается в дрифте данных. Наиболее вероятной причиной устойчивого падения F1 через несколько месяцев после развертывания является дрифт распределения входных данных или дрифт меток (дрифт концепции), а не внезапная ошибка в коде. Для диагностики включите DataCaptureConfig на эндпоинте, чтобы собирать полезные данные запросов и ответов в S3, запускайте расписания мониторинга Model Monitor для проверки соответствия базовым ограничениям и вычисляйте статистику распределения признаков и PSI (индекс стабильности популяции). Также запускайте проверки дрифта данных и смещений с помощью Clarify, чтобы выявлять сдвиги, влияющие на метрики справедливости.

Другая частая ошибка — неправильная обработка дисбаланса классов путем наивного ресэмплинга без учета временных утечек или бизнес-издержек. Сначала отдавайте предпочтение элементам управления на уровне алгоритма — для XGBoost установите scale_pos_weight и настройте eval_metric на aucpr или пользовательскую целевую функцию — прежде чем переходить к стратегиям сэмплинга, которые могут создавать дублирующиеся примеры. Для воспроизводимости и отслеживания экспериментов всегда используйте API SageMaker Experiments для логирования гиперпараметров и метрик, а также регистрируйте пакеты моделей с URI артефактов и метаданными о происхождении, чтобы продвижение моделей по стадиям было проверяемым.

Практическая задача: сценарий использования

Компания: FinSight Inc. — обнаружение мошенничества в онлайн-транзакциях. Данные хранятся в Amazon S3 и локальной MySQL. Требования: безопасная изоляция данных, автоматическое обнаружение аномалий и визуализация, ручное утверждение перед развертыванием в рабочей среде, низкая задержка запуска для итеративного обучения и централизованное версионирование моделей с минимальными операционными накладными расходами.

  1. Агрегация и безопасность данных: Используйте AWS Glue для сканирования логов транзакций в S3 и создания таблиц в Glue Catalog. Настройте шифрование бакета с помощью SSE-KMS и ограничьте доступ через политики IAM и эндпоинты VPC. Для локальной MySQL используйте JDBC-соединение AWS Glue внутри VPC с защищенным VPN или AWS Direct Connect, либо используйте AWS DMS для репликации необходимых таблиц в целевую зону (landing zone) в S3. Зарегистрируйте наборы данных в Glue Data Catalog и предоставьте исполняющим ролям SageMaker доступ с минимальными привилегиями.

  2. Подготовка признаков и обнаружение аномалий: Используйте Amazon SageMaker Data Wrangler для подключения к Glue Catalog и целевой зоне в S3, применяйте преобразования (заполнение пропущенных значений, кодирование меток для категориальных переменных, масштабирование для числовых) и запускайте встроенное профилирование Data Wrangler для визуализации распределений и выявления аномалий. Экспортируйте обработанные признаки в офлайн-хранилище SageMaker Feature Store для обучения и в онлайн-хранилище для поиска с низкой задержкой во время инференса.

  3. Обучение модели и минимизация задержки запуска: Используйте SageMaker Estimator для XGBoost с objective='binary:logistic', eval_metric='aucpr' и установите scale_pos_weight=(neg_count/pos_count). Чтобы сократить задержку запуска при итеративных задачах обучения, кэшируйте выходные данные Data Wrangler в S3 и повторно используйте один и тот же образ контейнера для обучения и тип инстанса, вместо того чтобы каждый раз заново настраивать прием данных; используйте SageMaker Pipelines с включенным cache_config, чтобы повторяющиеся шаги с неизмененными входными данными/гиперпараметрами пропускали запуск инфраструктуры.

  4. Отслеживание экспериментов и выбор модели: Инструментируйте каждый запуск обучения с помощью SageMaker Experiments (CreateExperiment, CreateTrial, LogMetric). Используйте HyperparameterTuner, настроенный с objective_metric_name='validation:aucpr', objective_type='Maximize', strategy='Bayesian', max_jobs и max_parallel_jobs, чтобы найти лучшие гиперпараметры. Сравните модели в Experiments и зарегистрируйте выбранных кандидатов в SageMaker Model Registry, создав ModelPackage в ModelPackageGroup.

  5. Ручное утверждение и контроль развертывания: Оставляйте вновь созданные пакеты моделей в статусе ModelPackageApprovalStatus='PendingManualApproval'. Используйте рабочий процесс AWS Step Functions с задачей для ручного утверждения или действие утверждения в AWS CodePipeline; после утверждения запустите UpdateModelPackage, чтобы установить статус ‘Approved’ и запустить автоматическое создание EndpointConfig и UpdateEndpoint для выполнения развертывания.

  6. Мониторинг, смещение и дрифт: Включите DataCaptureConfig на эндпоинте реального времени с CaptureOptions для Input и Output, DestinationS3Uri и SamplingPercentage. Сгенерируйте базовую статистику с помощью GenerateBaseline из Model Monitor на основе обучающего набора данных и запланируйте непрерывный мониторинг с помощью create_monitoring_schedule. Регулярно запускайте SageMaker Clarify как задачу обработки (processing job) для вычисления метрик смещения и дрифта данных. Если F1 падает ниже базовых ограничений, используйте оповещения Model Monitor для запуска автоматизированного конвейера переобучения (SageMaker Pipeline), который логирует новые запуски в Experiments и создает новые пакеты моделей для ручной проверки.

Обоснование выбора AWS: Этот подход использует управляемые возможности SageMaker — Data Wrangler и Feature Store для минимизации накладных расходов на предварительную обработку, XGBoost с scale_pos_weight для обработки дисбаланса без сложного ресэмплинга, SageMaker Experiments и Model Registry для проверяемого управления жизненным циклом экспериментов и моделей, DataCaptureConfig вместе с Model Monitor и Clarify для автоматического обнаружения дрифта и проверки справедливости, а также Step Functions/CodePipeline, интегрированные с Model Registry, для обеспечения необходимого шлюза ручного утверждения. В совокупности эти сервисы минимизируют операционную нагрузку, сохраняя при этом безопасность, отслеживаемость и способность реагировать на деградацию модели.


Обучение моделей и оптимизация гиперпараметров · Все домены · Развертывание моделей и вывод

Отработать эти вопросы → · Тесты на время на ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Сдайте экзамен →

Просмотреть Amazon →

Related guides

Все включено

Одна подписка. Каждый экзамен.

Каждый план открывает неограниченный поиск ответов, практические тесты, объяснения AI и полную библиотеку ресурсов — на более чем 20 языках.

Ежемесячно
24.87
Just €0.83/day
Все включено:
  • Неограниченный поиск ответов
  • Неограниченные практические тесты
  • Объяснения на основе AI
  • Полная библиотека ресурсов
  • 20+ языков
  • Еженедельные обновления контента
  • Награды и рефералы
  • Приоритетная поддержка
Начать бесплатную пробную версию

Кредитная карта не требуется*

Лучшая цена
12 месяцев
179.87
Just €0.49/daySave 40%
Все включено:
  • Неограниченный поиск ответов
  • Неограниченные практические тесты
  • Объяснения на основе AI
  • Полная библиотека ресурсов
  • 20+ языков
  • Еженедельные обновления контента
  • Награды и рефералы
  • Приоритетная поддержка
Начать бесплатную пробную версию

Кредитная карта не требуется*

✓ Включен бесплатный план · ✓ Отмена в любое время · ✓ Все планы открывают полный продукт