Сжатый справочник архитектурных шаблонов, проверяемых на экзамене MLA-C01. Читайте сверху вниз или переходите к нужному разделу.
Подготовка данных для машинного обучения
Выберите инструмент для визуальной подготовки данных.
Ориентированный на ML, интегрируется с SageMaker Studio + поток → задание Processing → Pipeline → экспорт Notebook → SageMaker Data Wrangler. Общая очистка данных с переиспользуемыми рецептами, профилированием, без зависимости от SageMaker → AWS Glue DataBrew. 50 ТБ+ Spark с пользовательским кодом → Amazon EMR.
Почему: Data Wrangler - это встроенный в SageMaker вариант (300+ преобразований, извлечение даты/времени, экспорт в Pipeline/Processing). DataBrew основан на рецептах и не зависит от источника. EMR обрабатывает масштабирование и произвольный Spark.
50 ТБ генерации признаков с существующим кодом PySpark, должно быть завершено за 4 часа.
Amazon EMR со Spark. Настраиваемый размер кластера, поддержка Spot-инстансов, запускает существующий код без изменений.
Почему: Glue ETL также запускает Spark, но EMR дает больше контроля над конфигурацией кластера; SageMaker Processing предназначен для менее масштабных заданий с одним контейнером.
Amazon SageMaker Ground Truth с включенной автоматизированной разметкой данных. После первоначальной подгруппы, размеченной людьми, Ground Truth обучает модель и автоматически размечает образцы с высокой степенью уверенности.
Почему: Активное обучение обычно снижает стоимость разметки до 70%. A2I предназначен для проверки человеком предсказаний модели, а не для массовой разметки.
Несколько аннотаторов не согласны; требуется, чтобы старший рецензент проверил выборку меток.
Рабочий процесс проверки (аудита) меток Ground Truth. Подмножество меток направляется рабочей силе для проверки, которая одобряет, отклоняет или корректирует. Совместите с консолидацией аннотаций для голосования большинства между несколькими работниками.
Одни и те же спроектированные признаки необходимы при обучении (пакетная обработка) и выводе (менее 10 мс).
Amazon SageMaker Feature Store с включенными онлайн- и офлайн-хранилищами для группы признаков. Онлайн-хранилище поддерживает GetRecord в реальном времени; офлайн-хранилище (Parquet в S3) поддерживает обучение.
Почему: Устраняет перекос между обучением и обслуживанием без пользовательской синхронизации DynamoDB ↔ S3.
Объединить две группы признаков для обучения без утечки будущих значений признаков.
Соединение point-in-time с офлайн-хранилищем с использованием столбца event-time. Каждая строка обучения видит только значения признаков, которые существовали на момент ее временной метки события.
Почему: Простое JOIN по последним значениям вызывает утечку данных, раскрывая модели дрейф признаков после события.
Выберите режим ввода данных для обучения SageMaker для набора данных размером 500 ГБ.
Режим File → сначала загружается весь набор данных (медленный старт, стоимость EBS). Режим Pipe → потоковая передача из S3, низкий старт, низкое хранение. Режим FastFile → потоковая передача на уровне файлов с отложенной загрузкой. Используйте Pipe (или FastFile) для больших наборов данных, чтобы избежать загрузки.
Миллионы маленьких файлов (каждый ~50 КБ) - пропускная способность режима Pipe низкая.
Объедините в Amazon RecordIO (protobuf) и потоково передавайте через режим Pipe. Последовательные записи устраняют накладные расходы на S3 GET для каждого файла.
Выберите формат хранения и макет для озера данных ML на S3 с частым чтением подмножеств столбцов + фильтрами разделов.
Parquet (колоночный, сжатый), разделенный по наиболее часто фильтруемому столбцу (например, дата или регион). Обеспечивает обрезку столбцов + обрезку разделов в Athena и SageMaker.
Кодирование категориальных признаков. Некоторые упорядочены (Basic/Standard/Premium), некоторые нет (штаты США).
Упорядоченные → порядковое кодирование (сохраняет ранг). Неупорядоченные → one-hot кодирование (избегает ложной порядковости). Избегайте label encoding для неупорядоченных признаков. Target encoding требует тщательной CV, чтобы избежать утечки.
Численный столбец имеет пропущенные значения, которые коррелируют с другим признаком (например, пропуск дохода зависит от типа занятости).
Групповая медианная импутация (медиана для каждого типа занятости). Сохраняет взаимосвязь; среднее чувствительно к выбросам; отбрасывание теряет данные; ноль добавляет смещение.
Бинарная классификация с 0,3% положительного класса.
SMOTE передискретизация только на тренировочной выборке (после разделения). Сочетайте с оценкой PR-кривой / F1, а не точности.
Почему: Применяйте передискретизацию ПОСЛЕ разделения, чтобы избежать утечки. Точность вводит в заблуждение на несбалансированных данных.
Правосторонняя асимметрия числового признака (например, дохода) ухудшает производительность линейной модели.
Логарифмическое преобразование. Сжимает правый хвост и создает более симметричное распределение. Стандартизация/min-max изменяют масштаб, а не форму.
50 сильно коррелированных признаков; нужна меньшая размерность с сохранением дисперсии.
PCA. Преобразует коррелированные признаки в некоррелированные главные компоненты, ранжированные по дисперсии.
Выберите стратегию разделения на train/val/test.
Несбалансированная классификация → стратифицированное разделение (сохраняет соотношение классов). Временные ряды → хронологическое разделение (обучение на раннем периоде, тестирование на последнем); никогда не случайное перемешивание. Табличные IID → случайное.
Разработка моделей машинного обучения
Выберите встроенный алгоритм SageMaker.
Табличная классификация/регрессия → XGBoost или Linear Learner. Масштабируемая многоклассовая классификация текста → BlazingText (обучаемый). Временные ряды со связанными рядами и сезонностью → DeepAR. Обнаружение аномалий без учителя для числовых данных → Random Cut Forest. Тематическое моделирование → Neural Topic Model. Перевод / Seq2Seq → Sequence-to-Sequence. Классы на уровне пикселей → Semantic Segmentation. Встраивание пар сущностей (пользователь/элемент) → Object2Vec.
Пользовательская платформа обучения / проприетарный токенизатор, отсутствующий во встроенных.
BYOC (Bring Your Own Container): образ Docker с кодом и зависимостями, загрузите в Amazon ECR, укажите в обучении SageMaker. Сохраняет управляемую инфраструктуру (Spot, распределенное, жизненный цикл) без отказа от кастомизации.
Малый набор изображений (~2000) для медицинской классификации.
Трансферное обучение на основе модели, предварительно обученной на ImageNet (например, ResNet). Точная настройка последних слоев. SageMaker Image Classification поддерживает это напрямую.
Почему: Обучение с нуля на небольших данных приводит к переобучению. Предварительно обученные признаки (границы, текстуры) хорошо переносятся на медицинские изображения.
Быстрая тонкая настройка предварительно обученной базовой модели без написания пользовательского кода обучения.
API тонкой настройки SageMaker JumpStart: выберите ID модели, предоставьте набор данных в ожидаемом формате (обычно JSONL), запустите задание тонкой настройки, разверните на конечной точке из JumpStart.
Адаптировать LLM к определенной области. Много статических знаний → выбрать RAG против тонкой настройки против только подсказок.
Часто меняющиеся доменные знания → RAG через Bedrock Knowledge Bases. Фирменный стиль / последовательный стиль с размеченными примерами → кастомизация модели Bedrock (тонкая настройка, часто адаптеры с эффективными параметрами). Небольшое статическое руководство → разработка подсказок с использованием few-shot.
Настроить 8 гиперпараметров; каждое задание обучения занимает 30 минут; ограниченные вычислительные ресурсы.
SageMaker Automatic Model Tuning с байесовской оптимизацией (по умолчанию). Строит вероятностную модель целевой функции и отбирает перспективные области.
Почему: Grid search взрывается комбинаторно; random search растрачивает бюджет. Укажите целевую метрику (например, `validation:auc`) и тип (`Maximize`).
Новое задание настройки с теплым стартом, используя родительские задания в качестве априорных данных и суженные диапазоны, центрированные на наилучших конфигурациях.
Продолжить обучение существующей модели на новых ежемесячных метках - не начинать с нуля.
Инкрементное обучение: передайте предыдущие артефакты модели в качестве входных данных. Поддерживается встроенными алгоритмами Image Classification, Object Detection, Semantic Segmentation.
Модель помещается на один GPU, но данные огромны → параллелизм данных (репликация модели, разделение пакетов, градиенты AllReduce). Модель не помещается на один GPU → параллелизм модели (разделение слоев/тензоров между GPU). 10B+ параметров → библиотека SageMaker для параллельных моделей (tensor + pipeline parallel).
Потери на обучении продолжают падать, потери на валидации начинают расти после 50-й эпохи.
Переобучение. Примените раннюю остановку при минимуме потерь на валидации, а также dropout / L2 weight decay. Большее количество слоев ухудшает ситуацию.
Выберите правильную метрику классификации.
Несбалансированный + редкий положительный класс важен → recall, F1, PR-кривая / Average Precision (НЕ ROC AUC, который завышается большим количеством TNs). Многоклассовая с дисбалансом → F1 с макро-усреднением. Ранжирование, независимое от порога → AUC. Калибровка вероятности → log loss / Brier.
Регрессионная модель завышает прогноз на верхнем диапазоне и занижает на нижнем.
Постройте график остатков относительно предсказанного значения; используйте Mean Error (со знаком) для систематического смещения. RMSE / MAE / R² скрывают направление.
Каждый вход может принадлежать нескольким классам одновременно.
Активация Sigmoid для каждого выходного нейрона с функцией потерь binary cross-entropy (независимые вероятности). Softmax + categorical cross-entropy предполагают взаимоисключающие классы.
Стек из нескольких базовых моделей с мета-обучателем.
k-кратная кросс-валидация: каждая базовая модель выдает предсказания вне выборки на своей отложенной части; соберите их по всем частям и обучите мета-обучатель на них.
Почему: Обучение базовых моделей и предсказание на том же обучающем наборе приводит к утечке информации в мета-обучатель.
Отслеживать и сравнивать множество запусков обучения (параметры, метрики, артефакты).
SageMaker Experiments. Передайте `experiment_config` (эксперимент + trial + trial component) в задание обучения; SageMaker автоматически регистрирует гиперпараметры, входную конфигурацию, метрики и артефакты.
Обнаружение патологий обучения (исчезающий градиент, отсутствие уменьшения потерь, взрыв тензора) без переписывания скрипта.
SageMaker Debugger со встроенными правилами (`VanishingGradient`, `LossNotDecreasing`, `ExplodingTensor`, `Overfit`). Захватывает тензоры через хуки; оценивает правила на лету.
Развертывание и оркестрация рабочих процессов машинного обучения
Выберите режим вывода SageMaker.
Стабильная синхронная с низкой задержкой → конечная точка реального времени. Пиковый / холостой трафик, нет необходимости в GPU → бессерверный вывод (настройте Provisioned Concurrency, чтобы исключить холодные старты). Длительная обработка каждого запроса (>60 с) или большие полезные нагрузки → асинхронный вывод. Пакетная офлайн-оценка записей S3 → пакетное преобразование.
Много моделей с низким трафиком - одна конечная точка для каждой слишком дорога.
Конечная точка с несколькими моделями SageMaker (MME). Модели загружаются по требованию в общие инстансы. Одна конечная точка, много моделей, низкая стоимость.
Последовательно для каждого запроса: токенизировать → встроить → классифицировать, каждый в отдельном контейнере.
Конвейер вывода SageMaker (последовательный режим). До 15 контейнеров, соединенных в цепочку; выход каждого подается на вход следующего; одна конечная точка.
Конечная точка реального времени должна обрабатывать пиковые нагрузки в 1000 запросов/с, но масштабироваться почти до нуля ночью.
Автоматическое масштабирование приложений с отслеживанием цели по `InvocationsPerInstance`. Добавляет/удаляет инстансы за конечной точкой по мере изменения трафика.
Выкатить новую модель на 10% трафика, выдержать 30 минут, автоматически откатить при срабатывании тревог.
Конфигурация развертывания конечной точки SageMaker с канареечным или линейным перенаправлением трафика + тревоги CloudWatch для автоматического отката.
Конвейер должен координировать Glue ETL + Lambda + обучение SageMaker + SNS / DynamoDB.
AWS Step Functions. Нативные интеграции сервисов по всему стеку; богаче, чем Pipelines, для шагов, не связанных с SageMaker.
Почему: Pipelines - правильный выбор для чисто ML-рабочих процессов; Step Functions - правильный выбор, когда нужны более широкие интеграции сервисов AWS.
Развернуть модель TensorFlow на граничных устройствах ARM; нужна маленькая + быстрая.
SageMaker Neo. Компилирует для целевого оборудования; до 25× быстрее, ~1/10 памяти. Развертывание через среду выполнения DLR; комбинировать с IoT Greengrass для автономных граничных устройств.
Мониторинг, обслуживание и безопасность решений машинного обучения
Обнаружение того, что распределения входных признаков отклонились от базового уровня, полученного во время обучения.
SageMaker Model Monitor - Качество данных. Захват данных вывода, сравнение с базовым уровнем, рассчитанным по данным обучения, сигнализация о дрейфе.
Почему: Порядок настройки зафиксирован: (1) задание базового уровня → (2) расписание мониторинга → (3) тревоги CloudWatch по метрикам нарушения ограничений.
Обнаружение ухудшения качества предсказаний (точность / F1 / RMSE), когда истинные значения поступают с задержкой.
SageMaker Model Monitor - Качество модели. Объединяет захваченные предсказания с задержанными метками истинных значений; сигнализирует, когда метрики падают ниже базового уровня.
Распределение входных данных выглядит неизменным, но качество предсказаний изменилось.
Монитор дрейфа атрибуции признаков SageMaker Clarify (на основе SHAP). Обнаруживает концептуальный дрейф через смещение важности признаков. Сочетайте с монитором качества модели, когда доступны истинные значения.
Точность упала, но распределения входных признаков не изменились.
Концептуальный дрейф (изменилось отношение метка/признак). Дрейф данных был исключен. Решение: переобучение на свежих размеченных данных.
Проверить набор данных на предмет смещения перед обучением.
Метрики смещения перед обучением SageMaker Clarify. Class Imbalance (CI) для различия в размере выборки; Difference in Positive Proportions of Labels (DPL) для различия в частоте меток; расхождение KL/JS для распределительных разрывов.
Метрики смещения после обучения SageMaker Clarify. Disparate Impact (DI), Accuracy Difference (AD), Conditional Acceptance, Treatment Equality. Запускать против предсказаний модели.
Почему: Предварительно обученный DPL чист, но пост-обученный DI смещен = сама модель усиливает прокси-переменную. Исследовать признаки (например, почтовый индекс).
Соответствие требованиям требует структурированной документации каждой производственной модели (целевое использование, данные обучения, оценка, этика, ограничения).
SageMaker Model Cards. Версионируются; интегрированы с Model Registry.
Ноутбуку необходимо читать данные обучения из одного S3 bucket и записывать артефакты в другой.
Пользовательская политика IAM: `s3:GetObject` для тренировочного бакета/префикса и `s3:PutObject` для бакета/префикса артефактов, прикрепленная к роли выполнения SageMaker. Избегайте `AmazonS3FullAccess`.
Контроль доступа на основе атрибутов (ABAC) с условием IAM `aws:ResourceTag/project`. Ресурсы, помеченные `project=A`, доступны только ролям, политики которых соответствуют.
Шифрование данных обучения и артефактов модели с помощью управляемых клиентом ключей + ротация.
SSE-KMS с управляемым клиентом ключом (CMK). Ротация KMS, политики ключей, аудит CloudTrail. Укажите ключ KMS в задании обучения + конфигурации конечной точки (volume + output), чтобы SageMaker использовал его.
Контейнер не должен выполнять исходящие сетевые вызовы; данные должны оставаться внутри каналов копирования SageMaker.
Установите `EnableNetworkIsolation=true` для задания обучения/обработки или конечной точки. SageMaker копирует входные каналы S3 перед запуском контейнера; контейнер не имеет исходящих соединений.
Запустите SageMaker в частной подсети без NAT/Internet Gateway. Добавьте конечные точки VPC - gateway endpoint для S3, interface endpoints для SageMaker API + Runtime + ECR + STS + CloudWatch Logs.
Обеспечить, чтобы все ресурсы SageMaker использовали VPC + KMS + одобренные типы инстансов.
Превентивно → продукты SageMaker Service Catalog (предварительно одобренные конфигурации) и ключи условий IAM (`sagemaker:VpcSecurityGroupIds`, `sagemaker:VolumeKmsKey`), которые запрещают несовместимые вызовы API. Детективно → управляемые/пользовательские правила AWS Config.