Amazon MLA-C01: MLOps и управление жизненным циклом моделей — Руководство по подготовке
Часть AWS Machine Learning Engineer Associate MLA-C01 — Руководство по подготовке. Практикуйтесь с проверенными ответами в центре экзаменов Amazon, или пройдите тесты на время на ExamRoll.io.
Основная концепция
Управление жизненным циклом моделей в AWS основано на подходе, при котором модели рассматриваются как версионируемые артефакты с проверяемой историей происхождения (lineage), автоматизированными шлюзами для продвижения и воспроизводимыми конвейерами. Amazon SageMaker предоставляет для этого базовые компоненты: SageMaker Pipelines для оркестрации, SageMaker Model Registry (ModelPackage/ModelPackageGroup) для версионирования и управления статусом утверждения, SageMaker Projects и CodePipeline для CI/CD, а также Model Monitor/Clarify для постоянного контроля качества и проверок на предвзятость. Надежный жизненный цикл начинается с воспроизводимых входных данных — неизменяемых обучающих данных в S3 с серверным шифрованием KMS и строгими политиками бакетов или контролем через Lake Formation, кода с версионированием в репозитории исходного кода и среды обучения, определенной через URI образов контейнеров и типы инстансов, передаваемые в
undefined
или
undefined
.
Операционные элементы управления включают сетевую изоляцию с помощью VpcConfig в CreateTrainingJob (Subnets и SecurityGroupIds) и EnableNetworkIsolation для предотвращения исходящего трафика, а также IAM-роли с минимальными необходимыми правами (например, SageMakerExecutionRole с правами s3:GetObject, kms:Decrypt для конкретного бакета). После завершения задания обучения зарегистрируйте артефакт в Model Registry с помощью CreateModelPackage или вызова SDK register_model, указав ModelPackageGroupName и установив ModelApprovalStatus в "PendingManualApproval", чтобы инициировать этапы ручного утверждения. Метаданные происхождения (lineage) — гиперпараметры обучения, образ Docker, URI входных данных в S3, коммит Git — должны быть прикреплены как метаданные пакета модели, чтобы последующие процессы CI/CD и аудита могли отследить путь от производственной конечной точки до исходного кода и набора данных.
CI/CD для ML отличается от традиционного CI/CD тем, что артефакты (модели, базовые показатели, мониторы) имеют большой размер и недетерминированные результаты. Реализуйте CI/CD с помощью шаблонов SageMaker Projects в сочетании с AWS CodePipeline и CodeBuild. Используйте CodeBuild для запуска юнит-тестов, дымовых тестов обучения модели (например, на коротких эпохах или подмножестве данных) и интеграционных тестов. Используйте CodePipeline для оркестрации шагов «исходный код → сборка → регистрация модели» и включите действие ManualApproval или пользовательское действие на основе Lambda для изменения ModelApprovalStatus пакета модели через UpdateModelPackage. Для автоматического продвижения CodePipeline может вызывать API SageMaker CreateEndpointConfig и CreateEndpoint или использовать стеки CloudFormation, сгенерированные SageMaker Projects, для развертывания с предсказуемой инфраструктурой как кодом (infrastructure-as-code).
Ключевые сервисы и конфигурация
SageMaker Pipelines — это уровень оркестрации: в нем на Python объявляются объекты шагов, такие как ProcessingStep, TrainingStep, ModelStep, TransformStep и RegisterModel. Используйте CacheConfig для шагов (CacheConfig(enable_caching=True, expire_after=timedelta(days=1))), чтобы шаги повторно использовали свои выходные данные, если входные данные и параметры не изменились; это позволяет избежать ненужного выделения инстансов. Для регистрации модели используйте sagemaker.workflow.steps.RegisterModel, указав model_package_group_name и установив model_approval_status в "PendingManualApproval", чтобы интегрировать шлюзы утверждения в граф конвейера. Используйте API pipeline.start() для запуска выполнений и pipeline.get_steps() или консоль для проверки статуса выполнения и истории происхождения.
SageMaker Model Registry хранит пакеты моделей в рамках ModelPackageGroupName и присваивает им идентификаторы ModelPackageVersion. Соответствующие API: CreateModelPackageGroup, CreateModelPackage, DescribeModelPackage и UpdateModelPackage для изменения ModelApprovalStatus на "Approved" или "Rejected". Объекты ModelPackage должны включать поля метаданных, такие как InferenceSpecification (Containers, SupportedContentTypes, SupportedResponseMIMETypes) и ModelApprovalStatus. При развертывании вызовите CreateModel с ModelName и PrimaryContainer, используя ARN пакета модели, а затем CreateEndpointConfig с DataCaptureConfig (EnableCapture=true, SamplingPercentage, DestinationS3Uri), чтобы включить сбор данных инференса.
Для мониторинга и обнаружения предвзятости используйте SageMaker Model Monitor и SageMaker Clarify. Для Model Monitor требуется базовый набор показателей (baseline), создаваемый с помощью DefaultModelMonitor.suggest_baseline, который вызывает CreateProcessingJob для сбора базовой статистики и ограничений; эти базовые показатели хранятся в S3 и на них ссылается CreateMonitoringSchedule. Расписания мониторинга создаются с помощью CreateMonitoringSchedule и могут быть запущены/остановлены через StartMonitoringSchedule/StopMonitoringSchedule. Для специальных проверок на предвзятость (ad hoc) для конечной точки реального времени запустите задание SageMaker Processing с контейнером Clarify (через sagemaker.processing.ScriptProcessor или ClarifyProcessor), используя захваченные логи инференса в качестве входных данных; Clarify поддерживает проверки на предвзятость модели (Model Bias) и возвращает отчеты в S3.
Для безопасной агрегации данных из разнородных источников используйте AWS Glue и Lake Formation для обнаружения, каталогизации и ETL данных из S3, источников JDBC (например, локальной MySQL через коннектор AWS Glue JDBC и, опционально, DataSync для массового перемещения) и потоковых источников. Задания AWS Glue (PySpark) могут записывать обработанные наборы данных в зашифрованное озеро данных S3 с гранулярным контролем доступа через Lake Formation. Для автоматического обнаружения аномалий с визуализацией выбирайте между управляемыми сервисами: Amazon Lookout for Metrics выполняет автоматическое обнаружение аномалий во временных рядах, а SageMaker Data Wrangler обеспечивает быстрое визуальное исследование и преобразование данных и может экспортировать конвейеры предварительной обработки обратно в SageMaker Processing или Pipelines. Для непрерывного обнаружения аномалий с дашбордами для визуализации комбинируйте Lookout for Metrics для обнаружения с Amazon QuickSight для визуализации и детализации.
Шаблоны проектирования и компромиссы
Распространенным шаблоном является подход с приоритетом конвейера (pipeline-first): создайте конвейер SageMaker Pipeline, который включает предварительную обработку данных (ProcessingStep), обучение (TrainingStep), оценку модели (ProcessingStep или ClarifyProcessor), регистрацию модели (RegisterModel) и развертывание (ModelStep или ручное продвижение). Используйте кэширование шагов, чтобы минимизировать избыточные вычисления и ускорить итеративную разработку. Для безопасного продвижения установите model_approval_status в значение «PendingManualApproval» и интегрируйте действие CodePipeline ManualApproval или Lambda-функцию для утверждения, которая обновляет пакет модели. Такая архитектура обеспечивает отслеживаемый путь от данных и кода до производственной среды, позволяя при этом реализовать управление с участием человека.
Для CI/CD выберите один из двух компромиссов: полностью автоматизированное продвижение на основе пороговых значений метрик (быстро, меньше ручных шагов) или рабочие процессы с ручным утверждением (соответствие требованиям). Реализуйте контроль на основе метрик с помощью CodeBuild, который выполняет небольшой скрипт
undefined
, вызывающий SageMaker Runtime или загружающий пакет модели, вычисляет метрики и создает артефакт, используемый CodePipeline для принятия решения о прохождении или сбое. Если для соответствия требованиям требуется одобрение человеком, вставьте действие AWS CodePipeline ManualApprovalAction, которое инициирует отправку электронного письма через SNS и требует, чтобы указанный утверждающий продолжил процесс. Либо используйте состояние Model Registry в качестве канонического источника истины и разрешайте развертывания только тогда, когда ModelApprovalStatus равен «Approved».
Снижение задержки при запуске задания на обучение часто сводится к тому, чтобы избежать повторного полного выделения ресурсов. Если многие запуски конвейера повторно обучают модель на идентичных входных данных, включите Pipeline CacheConfig, чтобы шаг TrainingStep пропускался, когда входные данные не изменяются. Для итераций, которые должны проходить обучение при каждом запуске, но требуют низкой задержки, используйте инстансы меньшего размера для быстрого прототипирования в SageMaker Studio или запускайте несколько экспериментов на постоянно работающем инстансе Amazon EC2 или на пользовательском оркестраторе обучения на базе EKS, чтобы избежать холодных стартов контейнеров — жертвуя операционными издержками ради меньшей задержки. Для масштабируемости промышленного уровня примите некоторую задержку при запуске и вместо этого автоматизируйте воспроизводимость.
Распространенные ошибки и критерии принятия решений
Частая ошибка — полагаться исключительно на журналы конечной точки для обнаружения смещения, не включив DataCaptureConfig во время развертывания. Без сбора данных Model Monitor и Clarify не могут анализировать реальные входные данные для инференса. Всегда настраивайте CreateEndpointConfig с DataCaptureConfig (EnableCapture=true, DestinationS3Uri, CaptureOptions и InitialSamplingPercentage) и устанавливайте расписание мониторинга через CreateMonitoringSchedule, связывая его с базовой статистикой.
Еще один подводный камень — недостаточная безопасность S3 и сети. Задания обучения, которые должны оставаться изолированными, должны использовать VpcConfig в CreateTrainingJob и включать шифрование KMS для объектов S3. Не полагайтесь на средства контроля публичного доступа; вместо этого используйте политики бакетов S3, VPC-эндпоинты (com.amazonaws.region.s3) и ограничение области действия IAM-ролей. Наконец, избегайте хрупких CI/CD-процессов, встраивая метрики оценки и метаданные карточки модели в пакет модели и используя неизменяемое версионирование (ModelPackageVersion) вместо перезаписи артефактов.
Практическая задача: сценарий использования
AcmePay — обнаружение мошенничества в потоках транзакций. Задача состоит в том, чтобы построить безопасный, аудируемый жизненный цикл, который агрегирует журналы транзакций из S3, профили клиентов и данные из локальных таблиц MySQL, обучает классификатор мошенничества на базе XGBoost, поддерживает центральный реестр моделей с ручным утверждением перед выводом в продакшен, обнаруживает смещение данных и предвзятость по требованию, а также минимизирует операционные издержки на версионирование и итеративные запуски.
Централизация данных: используйте AWS Glue для сканирования журналов транзакций в S3 и локальной базы данных MySQL через JDBC-коннектор AWS Glue (с безопасной передачей данных через DataSync или пирингом VPC для сетевого доступа). Каталогизируйте наборы данных в Glue Data Catalog и управляйте доступом через AWS Lake Formation. Храните подготовленные наборы для обучения в зашифрованном префиксе S3 (с использованием ключа KMS CMK) и применяйте политики бакетов вместе с
VpcEndpointдля предотвращения публичного доступа.Создание воспроизводимых конвейеров: разработайте SageMaker Pipeline с шагом
ProcessingStepдля разработки признаков (с помощью Data Wrangler или экспорта из Glue ETL), шагомTrainingStep, запускающим встроенный контейнер XGBoost с гиперпараметрами, и шагомRegisterModel, который вызываетRegisterModelс параметрамиmodel_package_group_name="acmepay-fraud-group"иmodel_approval_status="PendingManualApproval". ВключитеCacheConfigна шагах предварительной обработки и обучения, чтобы повторно использовать результаты, если входные данные/код не изменились, сокращая тем самым повторное выделение инстансов.CI/CD и утверждение: создайте SageMaker Project, который формирует шаблон для AWS CodePipeline. Конвейер запускает модульные тесты в CodeBuild, инициирует запуск SageMaker Pipeline и после шага
RegisterModelвключает действиеManualApprovalиз CodePipeline. После одобрения это действие вызывает Lambda-функцию, которая выполняетUpdateModelPackage, чтобы установитьModelApprovalStatus="Approved", а затем запускаетCreateEndpointConfigиCreateEndpointдля развертывания. Используйте ресурсы CloudFormation, сгенерированные SageMaker Projects, чтобы обеспечить воспроизводимость инфраструктуры.Безопасное обучение и развертывание: отправляйте задания обучения с
CreateTrainingJob, указавVpcConfig(SubnetIds,SecurityGroupIds) иEnableNetworkIsolation=true. Убедитесь, что роль выполнения SageMaker имеет разрешениеkms:Decryptдля ключа KMS иs3:GetObjectтолько для префикса с подготовленными данными. Для конечных точек создайтеCreateEndpointConfigсDataCaptureConfig(EnableCapture=true,SamplingPercentage=100,DestinationS3Uri=s3://acmepay-prod/capture), чтобы данные инференса сохранялись для мониторинга.Проверки смещения и предвзятости по требованию: используйте SageMaker Clarify в рамках
ProcessingJobдля анализа собранных данных инференса и эталонных меток (если они доступны), чтобы выполнять анализыModelBiasиModelExplainabilityпо требованию. Вызывайте его через APIClarifyProcessor.run()из Lambda-функции или Step Functions, когда команде дата-сайентистов требуется оценка. Для непрерывных оповещений о смещении создайте базовый отчет (baseline) Model Monitor с помощьюDefaultModelMonitor.suggest_baselineиMonitoringSchedule. ИспользуйтеCreateMonitoringScheduleдля запуска периодических проверок и настройте уведомления SNS о нарушениях.
Обоснование выбора сервисов AWS: связка Glue + Lake Formation централизует и защищает разнородные источники с минимальным объемом кастомного ETL-кода. SageMaker Pipelines + CacheConfig минимизируют частоту пересоздания инфраструктуры при итеративных запусках. Model Registry обеспечивает неизменяемое версионирование и хранение метаданных (ModelPackageGroupName и ModelPackageVersion) и нативно интегрируется с рабочими процессами утверждения через ModelApprovalStatus. А SageMaker Clarify вместе с Model Monitor предоставляют как оценку предвзятости по требованию, так и обнаружение смещения по расписанию. Использование SageMaker Projects и CodePipeline стандартизирует CI/CD и обеспечивает аудируемое, повторяемое продвижение модели от статуса «PendingManualApproval» до «Approved» перед развертыванием в продакшен.
← Развертывание моделей и вывод · Все домены · Мониторинг и наблюдаемость моделей →
Отработать эти вопросы → · Тесты на время на 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.
Сдайте экзамен →