Amazon MLA-C01: Развертывание моделей и вывод — Руководство по подготовке
Часть AWS Machine Learning Engineer Associate MLA-C01 — Руководство по подготовке. Практикуйтесь с проверенными ответами в центре экзаменов Amazon, или пройдите тесты на время на ExamRoll.io.
Конечные точки для реального времени, бессерверные, асинхронные и пакетные — основная концепция
Вывод в реальном времени в Amazon SageMaker — это модель сервиса с низкой задержкой и сохранением состояния, где вы создаете Model, EndpointConfig и Endpoint, который выделяет подготовленные вычислительные ресурсы (инстансы типа ml.*) и остается доступным для обслуживания запросов через API InvokeEndpoint. CreateEndpointConfig принимает ProductionVariants, и каждый ProductionVariant определяет ModelName, InitialInstanceCount, InstanceType и InitialVariantWeight; вы можете изменять трафик и емкость с помощью UpdateEndpointWeightsAndCapacities или UpdateEndpoint. Для задач, требующих предсказуемо низкой задержки, подготовленные конечные точки реального времени являются основным вариантом и поддерживают многоконтейнерные конвейеры вывода для объединения контейнеров предварительной обработки, модели и постобработки.
Бессерверный вывод (Serverless Inference) избавляет от управления инстансами и настраивается на уровне конечной точки с помощью ServerlessConfig, который указывает MemorySizeInMB и MaxConcurrency для каждого ProductionVariant; SageMaker управляет выделением контейнеров и масштабируется до нуля в периоды простоя, что делает его идеальным для неравномерных рабочих нагрузок с низкой пропускной способностью. Асинхронный вывод (Asynchronous Inference) оптимизирован для запросов, выполнение которых занимает много времени или для которых клиенту не требуется синхронный ответ. Асинхронная конечная точка создается с помощью AsyncInferenceConfig в CreateEndpointConfig (OutputConfig с S3OutputPath, опциональным ClientConfig и MaxConcurrentInvocationsPerInstance), а клиенты вызывают InvokeEndpointAsync, предоставляя входной URI S3; результаты записываются в настроенное выходное местоположение S3. Пакетное преобразование (Batch Transform) — это отдельный тип задания (CreateTransformJob) для больших офлайн-задач по выводу; API требует TransformInput (S3DataSource с S3Uri и S3DataType), TransformOutput (S3OutputPath, Accept, AssembleWith) и TransformResources (InstanceType, InstanceCount). Batch Transform лучше всего подходит, когда важна пропускная способность, а не задержка, и он поддерживает высокий уровень параллелизма при работе с наборами данных.
Мультимодельные конечные точки, конвейеры вывода, теневое развертывание и A/B-тестирование — ключевые сервисы и конфигурация
При хостинге множества моделей с низким QPS на модель, мультимодельные конечные точки SageMaker (Multi-Model Endpoints, MME) позволяют одному контейнеру размещать от десятков до тысяч артефактов моделей, хранящихся в S3, и загружать их по требованию. Вы создаете контейнер с сервером моделей, который реализует паттерн мультимодельного сервера SageMaker, или используете поддерживаемый образ фреймворка, загружаете архивы моделей (tarballs) в S3 и создаете ресурс Model, который ссылается на этот контейнер. Во время вызова вы передаете имя целевой модели через параметр TargetModel API InvokeEndpoint (или заголовок X-Amzn-SageMaker-Target-Model), чтобы сервер загрузил эту модель из S3 в память. MME экономят память и операционные расходы при работе с большим парком моделей, но добавляют задержку «холодной» загрузки для моделей, которые еще не находятся в среде выполнения.
Конвейеры вывода реализуются как многоконтейнерные модели, где ресурс Model перечисляет контейнеры (Containers) по порядку; конечная точка направляет полезную нагрузку через первый контейнер (предварительная обработка), затем через контейнер с моделью, а затем через контейнер постобработки. Определите каждый контейнер с его собственным ModelDataUrl и переменными окружения в CreateModel. Для тестирования в стиле canary («канареечное») или blue/green («сине-зеленое») используйте несколько ProductionVariants в EndpointConfig и управляйте распределением трафика с помощью InitialVariantWeight, а позже — через UpdateEndpointWeightsAndCapacities. Теневое развертывание (shadow deployment) можно реализовать либо отправляя копию каждого запроса на уровне приложения на теневую конечную точку (без веса трафика на производственной конечной точке), либо создав ProductionVariant с низким весом, чтобы инфраструктура конечной точки получала часть зеркалированного трафика; дублирование запросов на уровне приложения обеспечивает полную изоляцию эксперимента и независимую наблюдаемость.
Для мониторинга по требованию и непрерывного мониторинга настройте DataCaptureConfig при создании конечной точки, чтобы сохранять полезные данные запросов и ответов в S3. Интересующие поля DataCaptureConfig включают EnableCapture (true), InitialSamplingPercentage, DestinationS3Uri и CaptureOptions (REQUEST, RESPONSE). Захваченные данные становятся основой для проверок после развертывания с помощью SageMaker Model Monitor и SageMaker Clarify; вы можете создавать базовые показатели (baselines) с помощью CreateMonitoringSchedule из Model Monitor и запускать специальные задания обработки (Processing jobs), которые используют встроенный контейнер для мониторинга моделей для вычисления ограничений и метрик смещения.
Шаблоны проектирования и компромиссы
Выбирайте эндпоинты реального времени с подготовленной производительностью (provisioned), когда вам нужна задержка от единиц до низких десятков миллисекунд и вы можете позволить себе постоянно работающие ресурсы. Если основным ограничением является стоимость за минуту простоя, а трафик нерегулярный, бессерверные эндпоинты упрощают операции: настройте ServerlessConfig.MemorySizeInMB и ServerlessConfig.MaxConcurrency для каждого варианта, и SageMaker выполнит автоматическое масштабирование. Для рабочих нагрузок с длительными операциями вывода или схемами с обменом большими полезными нагрузками асинхронные эндпоинты позволяют отделить жизненный цикл клиента от вычислений; они требуют использования S3 для входных/выходных данных и лучше всего подходят, когда клиенты могут опрашивать или получать уведомления S3 о завершении.
Мультимодельные эндпоинты уменьшают дублирование в памяти и сложность управления объектами S3, но добавляют задержку холодного старта для каждой модели и требуют наличия сервера моделей, способного загружать их из S3 по требованию и правильно управлять жизненным циклом (вытеснение/LRU). Если задержка для конкретной модели критична, размещайте «горячие» модели на выделенных ProductionVariants, а модели с низким трафиком переносите на MME. Конвейеры вывода (Inference pipelines) централизуют логику предварительной и последующей обработки ближе к модели, сокращая код на стороне клиента и обеспечивая согласованное преобразование данных между обучением и выводом, но они усложняют запуск эндпоинта и требуют надёжной разработки контракта контейнера (кодеки ввода/вывода и типы контента).
A/B-тестирование с использованием весов ProductionVariant просто в реализации для разделения трафика и сбора офлайн-метрик, но если вы хотите использовать теневой трафик (shadow traffic) без влияния на метрики производственной среды, предпочитайте зеркалирование на уровне приложения. Для постепенного развёртывания и автоматизации отката интегрируйте UpdateEndpointWeightsAndCapacities в рабочий процесс CodePipeline или Step Functions, который включает автоматическую оценку метрик с помощью метрик CloudWatch, оповещений Model Monitor и действия ручного подтверждения, контролирующего окончательное развертывание в production.
Распространенные ошибки и критерии принятия решений
Распространенная операционная ошибка — предполагать, что Model Monitor обнаружит проблемы с доступностью меток. Model Monitor может выявлять смещение распределения признаков и нарушения качества данных из захваченных запросов, но для измерения ухудшения метрик на основе меток (F1, полнота) необходимо доставлять эталонные метки обратно в S3 в формате, который могут использовать задания мониторинга, и планировать задание мониторинга, которое вычисляет соотношение прогноза и истины. Другая ошибка — неправильный выбор размера ServerlessConfig.MemorySizeInMB. Недостаточно выделенная память вызывает троттлинг или сбои контейнера, а избыточное выделение увеличивает стоимость. Для конечных точек с несколькими моделями пренебрежение настройкой соответствующей структуры объектов и жизненного цикла в S3 (префиксы, манифесты моделей) замедляет холодные запуски и усложняет политики вытеснения.
При работе с дисбалансом классов для обнаружения мошенничества отдавайте предпочтение встроенному в алгоритм взвешиванию, а не громоздким конвейерам сэмплирования, чтобы минимизировать операционные издержки. Например, XGBoost (контейнер SageMaker XGBoost) поддерживает гиперпараметр scale_pos_weight, который вы вычисляете как отрицательные_примеры/положительные_примеры и передаете через карту гиперпараметров в вызове CreateTrainingJob. Для ручного утверждения развертывания используйте SageMaker Model Registry: создайте ModelPackageGroup, вызовите CreateModelPackage для регистрации пакета модели и установите его статус в PendingManualApproval. Внешнее действие ручного утверждения в CodePipeline или ручное подтверждение через Step Functions + SNS затем может вызвать UpdateModelPackage, чтобы установить ApprovalStatus = "Approved", прежде чем будут запущены CreateModel или CreateEndpoint.
Практическая задача: сценарий использования
Компания FraudDetectCo создает систему обнаружения мошенничества в реальном времени, которая должна консолидировать журналы транзакций в S3 и локальные таблицы профилей клиентов в MySQL, обучать модель XGBoost, развертывать ее с задержкой, близкой к реальному времени, обеспечивать ручное утверждение для производственных релизов и обнаруживать аномалии в наборе данных и смещение модели по требованию.
Агрегация и предварительная обработка данных: используйте AWS Database Migration Service (DMS) или JDBC-коннектор AWS Glue для непрерывной репликации локальных таблиц MySQL в S3 (в формате parquet) или в озеро данных на базе Amazon RDS с поддержкой Athena. Каталогизируйте данные с помощью AWS Glue и зарегистрируйте признаки в офлайн-хранилище Amazon SageMaker Feature Store, чтобы обеспечить согласованный поиск признаков для обучения и онлайн-обслуживания. Это централизует отслеживание происхождения признаков и обеспечивает применение политик безопасности S3 и управления Lake Formation для изоляции.
Обучение и обработка дисбаланса классов: запускайте задания обучения SageMaker, используя встроенный контейнер SageMaker XGBoost. Вычислите соотношение меток в обучающем наборе и установите гиперпараметр XGBoost
scale_pos_weightв картеHyperParametersвызоваCreateTrainingJob, чтобы устранить дисбаланс классов с минимальной предварительной обработкой. Используйте режимPipeдля канала обучения (вDataSourceсS3DataSourceиS3DataType, установленным вS3Prefix, и включите"RecordWrapperType":"None"при использовании режимаPipe), чтобы сократить время запуска и задержку при загрузке данных между последовательными заданиями.Реестр моделей и ручное утверждение: регистрируйте обученные модели в SageMaker Model Registry, вызывая
CreateModelPackageв рамкахModelPackageGroup. Установите начальныйApprovalStatusвPendingManualApproval, интегрируйте AWS CodePipeline, включающий действие ручного утверждения (AWS Manual Approval action), и после ручного подтверждения вызовитеUpdateModelPackageсApprovalStatus="Approved", прежде чем продвигатьModelPackageв производственную среду с помощьюCreateModelиCreateEndpointConfig.Топология развертывания и вывода: разверните модель на подготовленной конечной точке реального времени для оценки с низкой задержкой. Если в будущем потребуется разместить сотни моделей, рассмотрите возможность использования конечной точки для нескольких моделей (Multi-Model Endpoint) и используйте параметр
TargetModelвInvokeEndpointдля обращения к конкретным моделям, хранящимся в S3. НастройтеDataCaptureConfig(EnableCapture=true,InitialSamplingPercentage=100,DestinationS3Uri=s3://<bucket>/captures,CaptureOptions=['REQUEST','RESPONSE']), чтобы собирать полезные данные запросов/ответов для анализа по требованию.Мониторинг и обнаружение аномалий: запланируйте создание базовых отчетов SageMaker Model Monitor с помощью
CreateMonitoringScheduleдля контроля качества данных и смещения признаков. Для обнаружения аномалий на уровне набора данных и их визуализации передавайте захваченные данные из S3 в Amazon Lookout for Metrics для автоматического обнаружения аномалий и в Amazon QuickSight для создания дашбордов. Для оценки предвзятости и смещения по требованию запускайте задания обработки SageMaker Clarify на захваченных данных или запускайте специальное задание обработки Model Monitor (черезCreateProcessingJob), которое применяет сохраненные базовые ограничения и создает отчет о сравнении.
Обоснование: этот подход централизует признаки для воспроизводимого обучения и обслуживания с низкой задержкой, использует scale_pos_weight в XGBoost для устранения дисбаланса классов с минимальной сложностью конвейера, обеспечивает ручное утверждение в Model Registry, интегрированном с CodePipeline, сокращает задержку при запуске обучения за счет использования режима Pipe для потоковой передачи обучающих данных и предоставляет как автоматизированное обнаружение аномалий (Lookout for Metrics), так и проверки на справедливость/смещение по требованию (Clarify + Model Monitor) с использованием захваченных данных вывода.
← Оценка и выбор моделей · Все домены · MLOps и управление жизненным циклом моделей →
Отработать эти вопросы → · Тесты на время на 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.
Сдайте экзамен →