Amazon MLA-C01: Инженерия данных и инженерия признаков — Руководство по подготовке
Часть AWS Machine Learning Engineer Associate MLA-C01 — Руководство по подготовке. Практикуйтесь с проверенными ответами в центре экзаменов Amazon, или пройдите тесты на время на ExamRoll.io.
Основная концепция
Инжиниринг данных для ML — это создание воспроизводимых и проверяемых входных данных для обучения и инференса моделей при минимизации утечек и операционной нагрузки. В основе лежат согласованная семантика приема данных (время события, идентификатор записи, схема), канонический каталог метаданных и четко определенные преобразования, которые могут выполняться как в офлайн-режиме для обучения моделей, так и в онлайн-режиме для инференса в реальном времени. Проектируйте конвейеры таким образом, чтобы один и тот же код преобразования (или одни и те же определения записей в Feature Store) использовался как для обучающих наборов данных, так и для онлайн-признаков, возвращаемых во время инференса; это позволяет избежать расхождения между обучением и развертыванием (train/serve skew). Для задач, связанных со временем, сохраняйте время события для каждой записи и применяйте объединения и разделения с учетом времени, чтобы предотвратить утечку меток; при использовании SageMaker Feature Store установите RecordIdentifierFeatureName и EventTimeFeatureName в CreateFeatureGroup, чтобы последующие этапы обучения и инференса использовали идентичные ключи.
Инжиниринг признаков делится на детерминированные, повторяемые преобразования и исследовательские преобразования. Детерминированные преобразования включают импутацию, масштабирование, кодирование категориальных признаков и производные агрегации (скользящие подсчеты, признаки на основе временных окон). Реализуйте их в виде кода, который может выполняться в Glue ETL, SageMaker Processing или SageMaker Data Wrangler и сохраняться в офлайн-хранилище. Для категориальных признаков с высокой кардинальностью предпочитайте целевое кодирование (target encoding) с фолдами кросс-валидации или представления на основе частоты/эмбеддингов, а не наивное one-hot кодирование, чтобы избежать комбинаторного взрыва. Для числовых признаков предпочитайте стандартизацию, подходящую для конвейеров (среднее/дисперсия), или квантильные преобразования, сохраняемые как параметры в артефакте модели, чтобы нормализация в производственной среде соответствовала нормализации при обучении.
Ключевые сервисы и конфигурация
AWS Glue предоставляет канонический слой ETL и метаданных для многих конвейеров ML. Используйте Glue Crawlers для заполнения каталога данных Glue Data Catalog для источников S3 и JDBC, а затем создавайте задания Glue ETL на основе Spark или визуальные задания Glue Studio для очистки и преобразования данных. Настраивайте задания Glue с помощью параметров GlueVersion (например, 3.0), WorkerType (G.1X, G.2X), NumberOfWorkers, JobBookmarks для инкрементальной обработки и DefaultArguments, таких как «–additional-python-modules», для включения библиотек вроде awswrangler или pydeequ. Для приема данных из локального MySQL создайте соединение Glue с JDBC URL и используйте либо задания Glue, либо AWS DMS для захвата CDC в зону посадки (landing zone) на S3; при использовании DMS выберите полную загрузку, а затем CDC, и укажите целевой формат S3 parquet для эффективной работы с офлайн-признаками.
SageMaker Feature Store — это централизованное решение для управления признаками, обеспечивающее низкие операционные издержки при масштабировании. CreateFeatureGroup требует указания FeatureDefinitions, RecordIdentifierFeatureName, EventTimeFeatureName, OnlineStoreConfig (с EnableOnlineStore=True для включения хранилища с низкой задержкой на базе DynamoDB) и OfflineStoreConfig с S3Uri и DataCatalogConfig для предоставления доступа к офлайн-признакам через Athena/Glue. Для загрузки данных используйте BatchPutRecord или PutRecord в зависимости от пропускной способности; укажите FeatureGroupArn и RoleArn, предоставляющий сервису разрешения на PutRecord. Офлайн-хранилище сохраняет файлы Parquet в S3 и автоматически интегрируется с Glue Data Catalog, обеспечивая возможность воспроизводимых запросов для обучения. Для получения признаков в реальном времени используйте GetRecord для онлайн-хранилища; для массовых объединений при обучении предпочитайте путь к офлайн-данным в S3 Parquet.
Для процессов управления моделями и их развертывания используйте SageMaker Model Registry и SageMaker Pipelines. Регистрируйте обученные модели с помощью CreateModelPackage или шага RegisterModel в Pipelines и устанавливайте ModelApprovalStatus в «PendingManualApproval», чтобы обеспечить этап ручного утверждения. Интегрируйте Pipelines с AWS CodePipeline или добавьте кастомную Lambda-функцию, которая изменяет статус версий model_package на «Approved» через UpdateModelPackage после авторизации. Для мониторинга дрейфа и смещения комбинируйте SageMaker Clarify для анализа смещения/базовых показателей и SageMaker Model Monitor для непрерывного обнаружения дрейфа данных/меток. Используйте ClarifyProcessor (sagemaker.processing.ProcessingJob) для оценки смещения по требованию, указав ему на артефакты Parquet в офлайн-хранилище или на потоковые выборки, собранные Model Monitor.
Шаблоны проектирования и компромиссы
Выбирайте архитектуры ‘offline-first’, когда важны пропускная способность обучения и сложные объединения (joins): агрегируйте и сохраняйте большие признаки, рассчитанные по скользящему окну, в S3 Parquet (с помощью заданий Glue/EMR/Glue Spark), каталогизируйте их в Glue Data Catalog и версионируйте наборы данных с помощью префиксов S3 и версионирования объектов. Этот подход способствует воспроизводимости и экономичному хранению, но увеличивает задержку при предоставлении свежих признаков. Когда требуются признаки с низкой задержкой, дублируйте их подмножество в Feature Store Online (DynamoDB) или на уровень кэширования; компромиссом являются операционные издержки на поддержание согласованности между онлайн- и офлайн-хранилищами. Используйте встроенные конвейеры BatchPutRecord в Feature Store или потоковую загрузку через Kinesis Data Streams + Lambda, которые записывают данные в Feature Store, чтобы достичь обновлений почти в реальном времени, сохраняя при этом каноническое офлайн-представление.
В дилемме между итеративными экспериментами и пропускной способностью в производственной среде SageMaker Pipelines с кэшированием дают заметное преимущество: включите CacheConfig в шагах конвейера, чтобы ресурсоемкие преобразования и даже шаги обучения пропускались, если их входные данные (параметры, контрольные суммы данных) не изменились. Это снижает задержку запуска для последовательных выполнений по сравнению с повторным выделением идентичных вычислительных ресурсов. Для инференса с чрезвычайно низкой задержкой вам придется идти на компромисс между стоимостью и сложностью: конечные точки для нескольких моделей (multi-model endpoints) или provisioned concurrency снижают вариативность холодного старта, но увеличивают стоимость; использование Feature Store online в сочетании с легковесным контейнером модели минимизирует оркестрацию для каждого запроса.
Выбор алгоритмов и методов предварительной обработки также сопряжен с компромиссами: встроенный XGBoost отлично подходит для задач с табличными данными, например, для обнаружения мошенничества, и предоставляет параметр scale_pos_weight для устранения дисбаланса классов без повторной выборки (resampling), что упрощает эксплуатацию. Однако глубокие модели с эмбеддингами (embeddings) более изящно обрабатывают категориальные переменные с высокой кардинальностью, но требуют более сложной инфраструктуры и конвейеров признаков. По возможности используйте автоматизированные преобразования: SageMaker Data Wrangler и Glue DataBrew предоставляют визуальные, воспроизводимые преобразования (заполнение пропусков, нормализация, повторная выборка) и могут экспортировать потоки в скрипты или в Feature Store, сокращая время на разработку.
Распространенные ошибки и критерии принятия решений
Частая ошибка — несогласованность преобразований для обучения и для инференса. Храните параметры преобразований (масштабаторы, кодировщики) вместе с моделью или в Feature Store, чтобы онлайн-предобработка была идентична той, что использовалась при обучении. Другая ловушка — прямое кодирование (one-hot encoding) категорий с высокой кардинальностью, что приводит к избыточной размерности признаков; предпочитайте вложения (embeddings), хеширование или кодирование на основе частоты целевой переменной и проверяйте их с помощью процедур перекрестной проверки, защищенных от утечки данных. Также распространены ошибки в области безопасности: при обучении на конфиденциальных данных в S3 принудительно используйте SSE-KMS (KmsKeyId), ограничивайте доступ с помощью политик бакетов S3 и IAM-ролей (принципал sagemaker.amazonaws.com) и размещайте задания обучения в VPC с эндпоинтами шлюза S3 (S3 VPC Gateway endpoints), чтобы данные не передавались через публичный интернет.
Выбирайте между ETL на основе заданий Glue и SageMaker Processing/Data Wrangler, оценивая частоту и сложность: Glue оптимизирован для масштабируемого ETL на Spark, выполняемого по расписанию и работающего с множеством источников, и интегрируется с Glue Data Catalog; Data Wrangler и SageMaker Processing подходят для быстрого экспериментирования и прямого экспорта в Feature Store или в задания обучения. Для обнаружения аномалий используйте Amazon Lookout for Metrics для автоматического статистического обнаружения аномалий во временных рядах без значительных затрат на ML-операции (ML ops), но выберите Deequ, запущенный в Glue, для настраиваемых проверок качества данных с отслеживанием происхождения (lineage), которые могут передавать метрики на дашборды.
Практическая задача: Сценарий использования
Название компании: FinEdge
FinEdge создает сервис обнаружения мошенничества, который должен обучать модели на основе ежедневных пакетных логов транзакций из Amazon S3 и профилей клиентов, хранящихся в локальной (on-prem) базе данных MySQL. Данные должны оставаться зашифрованными и изолированными; версии моделей требуют ручного утверждения перед развертыванием в производственной среде; для моделей должна быть доступна оценка смещения (bias) и сдвига (drift) по требованию; инференс требует поиска признаков с низкой задержкой.
Прием и централизация данных: Используйте AWS DMS для выполнения начальной полной загрузки и репликации измененных данных (CDC) из локальной MySQL в зону начальной загрузки (landing zone) в S3 в виде файлов Parquet. Настройте DMS с параметрами для S3 как для целевой системы и обеспечьте использование SSL для источника JDBC. Используйте Glue Crawler для регистрации как логов транзакций из S3, так и профилей клиентов в формате Parquet от DMS в Glue Data Catalog. Установите параметры задания Glue: GlueVersion 3.0, WorkerType G.2X, NumberOfWorkers, соответствующее ежедневному объему, и включите JobBookmarks для инкрементальных запусков.
Инжиниринг и хранение признаков: Создавайте преобразования Spark в Glue или используйте SageMaker Data Wrangler для интерактивной итеративной работы с признаками и их экспорта. Сохраняйте детерминированные агрегированные признаки в S3 в формате Parquet и создайте FeatureGroup в SageMaker Feature Store с помощью
undefined
, указав FeatureDefinitions, RecordIdentifierFeatureName=“transaction_id”, EventTimeFeatureName=“event_time”, OnlineStoreConfig с EnableOnlineStore=True и OfflineStoreConfig с S3Uri, указывающим на каноническое озеро данных, а также DataCatalogConfig для связи с таблицей Glue. Загружайте данные с помощью BatchPutRecord для массовых загрузок и PutRecord для транзакционных обновлений.
Обучение и реестр моделей: Используйте SageMaker Pipelines для предварительной обработки, обучения и регистрации. Включите шаг RegisterModel, который регистрирует модель в ModelPackageGroupName и устанавливает ModelApprovalStatus=“PendingManualApproval”. Подключите действие ручного утверждения из AWS CodePipeline или используйте API SageMaker UpdateModelPackage, чтобы переводить утвержденные пакеты в статус “Approved”. Для борьбы с дисбалансом классов установите гиперпараметр XGBoost “scale_pos_weight” на основе соотношения классов, вычисленного в базовой статистике, чтобы избежать сложностей, связанных с повторной выборкой (resampling).
Управление, мониторинг и проверки по требованию: Создайте базовые показатели (baselines) с помощью SageMaker Clarify, используя ClarifyProcessor для вычисления метрик смещения (bias) и сохранения базовых показателей в S3/FeatureStore в офлайн-режиме. Разверните Model Monitor с помощью CreateMonitoringSchedule для отслеживания сдвига данных/признаков; для оценки смещения или сдвига по требованию запустите ClarifyProcessor или StartMonitoringSchedule программно, чтобы проанализировать недавно собранный трафик или снимок онлайн-хранилища. Храните результаты мониторинга в S3 и визуализируйте аномалии на дашбордах QuickSight. Защитите S3 с помощью SSE-KMS, ограничьте доступ с помощью IAM-ролей с минимальными привилегиями и размещайте обучение и инференс в VPC с эндпоинтом S3.
Обоснование выбора сервисов AWS: Этот подход использует Glue и DMS для масштабируемого, аудируемого приема данных и управления метаданными через Glue Data Catalog; SageMaker Feature Store для обеспечения согласованности признаков в онлайн- и офлайн-режимах и поиска с низкой задержкой; SageMaker Pipelines и Model Registry для контроля жизненного цикла модели с минимальными операционными издержками и встроенной поддержкой ручного утверждения; Clarify и Model Monitor для обеспечения непрерывного анализа смещения/сдвига и анализа по требованию. Эта комбинация сохраняет зашифрованную изоляцию (SSE-KMS, эндпоинты VPC), сокращает инженерные трудозатраты за счет использования управляемых сервисов для приема данных и управления признаками, а также обеспечивает создание воспроизводимых и аудируемых артефактов машинного обучения.
Все домены · Обучение моделей и оптимизация гиперпараметров →
Отработать эти вопросы → · Тесты на время на 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.
Сдайте экзамен →