Amazon MLA-C01: Обучение моделей и оптимизация гиперпараметров — Руководство по подготовке
Часть AWS Machine Learning Engineer Associate MLA-C01 — Руководство по подготовке. Практикуйтесь с проверенными ответами в центре экзаменов Amazon, или пройдите тесты на время на ExamRoll.io.
Основная концепция
Обучение моделей в Amazon SageMaker — это оркестрированный процесс, который объединяет контейнеризированный код обучения, вычислительные ресурсы, постоянное хранилище и, опционально, инфраструктуру для распределённых коммуникаций. Задание на обучение в SageMaker (training job) определяется образом для обучения или оценщиком (estimator) фреймворка, спецификацией входных данных, указывающей на местоположения в S3, и конфигурацией ресурсов, включающей InstanceType, InstanceCount и VolumeSizeInGB. Для управляемого обучения на спотовых инстансах (managed spot training) вы устанавливаете EnableManagedSpotTraining в true и указываете MaxWaitTimeInSeconds и MaxRuntimeInSeconds, чтобы SageMaker мог делать ставки на свободные вычислительные мощности и возобновлять или останавливать задания в пределах заданного вами временного окна. Сохранение контрольных точек (checkpointing) настраивается через CheckpointConfig с параметрами S3Uri и LocalPath; при использовании управляемых спотовых инстансов необходимо часто сохранять контрольные точки и устанавливать MaxWaitTimeInSeconds значительно больше, чем MaxRuntimeInSeconds, чтобы прерванные задания могли быть перезапущены.
Распределённое обучение реализуется с помощью стратегий параллелизма данных (data-parallel) или параллелизма моделей (model-parallel). SageMaker поддерживает нативное распределённое обучение с параллелизмом данных через PyTorch DistributedDataParallel или Horovod, а также предлагает библиотеку smdistributed с smdistributed.dataparallel для оптимизированных коммуникаций через NCCL. Параллелизм моделей доступен через smdistributed.modelparallel или через специфичные для фреймворка механизмы разделения (partitioning). Для высокопроизводительной меж-узловой коммуникации требуются семейства инстансов с поддержкой NVLink и EFA (Elastic Fabric Adapter) — выбирайте типы инстансов ml.p4d, ml.p3dn или другие с поддержкой EFA и устанавливайте use_mpi или use_nccL в соответствии с требованиями вашего скрипта обучения для эффективной операции all-reduce градиентов. Для крупномасштабных заданий подбирайте InstanceTypes с объёмом памяти GPU и сетевыми характеристиками, соответствующими размерам фрагментов (shards) вашей модели, чтобы сбалансировать соотношение вычислений и коммуникаций.
Оптимизация гиперпараметров выполняется с помощью SageMaker Automatic Model Tuning (AMT), который запускает множество заданий на обучение для поиска в пространстве гиперпараметров и оптимизации целевой метрики. HyperParameterTuningJobConfig включает ParameterRanges, ResourceLimits с MaxNumberOfTrainingJobs и MaxParallelTrainingJobs, а также Strategy (по умолчанию Bayesian; альтернативы включают Random или Grid для исчерпывающего или менее коррелированного поиска). Определите ObjectiveMetricName и MetricDefinitions, чтобы AMT мог анализировать логи обучения; если ваша целевая метрика — F1-score, установите ObjectiveType в Maximize и убедитесь, что регулярное выражение в MetricDefinitions соответствует выводимой метрике. Чтобы ускорить подбор параметров и сэкономить бюджет, используйте WarmStartConfig для повторного использования результатов предыдущих заданий по подбору и включите политики ранней остановки (EarlyStoppingType: Auto), где это поддерживается, для прекращения бесперспективных заданий на обучение.
Ключевые сервисы и конфигурация
При построении сквозного рабочего процесса обучения и подбора параметров вы, как правило, будете использовать несколько сервисов AWS и возможностей SageMaker в совокупности:
- Задания на обучение Amazon SageMaker (Estimator API /
CreateTrainingJob) - Автоматический подбор моделей SageMaker (
CreateHyperParameterTuningJob) - Реестр моделей SageMaker (Model Registry) (
ModelPackageиCreateModelPackageGroup) - AWS Glue / AWS Lake Formation для безопасной централизованной каталогизации данных
- Amazon S3 для надёжного хранения контрольных точек и артефактов
В конфигурации задания на обучение вы укажете ResourceConfig, включая InstanceType и InstanceCount, и передадите гиперпараметры через HyperParameters. Для управляемого обучения на спотовых инстансах включите EnableManagedSpotTraining и установите CheckpointConfig.S3Uri, чтобы прерванные задания сохраняли своё состояние. При запуске заданий по подбору параметров через CreateHyperParameterTuningJob заполните HyperParameterTuningJobConfig.ParameterRanges записями IntegerParameterRange, ContinuousParameterRange и CategoricalParameterRange, а также установите ResourceLimits с MaxNumberOfTrainingJobs и MaxParallelTrainingJobs. Используйте WarmStartConfig с ParentHyperParameterTuningJobs и WarmStartType, установленным в IDENTICAL_DATA_AND_ALGORITHM или TRANSFER_LEARNING, чтобы начать поиск, отталкиваясь от предыдущих результатов.
Для обеспечения безопасности и операционного контроля централизуйте артефакты моделей, регистрируя объекты ModelPackage в ModelPackageGroup в реестре моделей SageMaker (SageMaker Model Registry); установите ModelApprovalStatus в PendingManualApproval, чтобы требовалось ручное изменение статуса на Approved перед развёртыванием. Комбинируйте события реестра моделей с AWS CodePipeline или AWS Step Functions для создания действия ручного утверждения, которое обновляет ModelPackage.ModelApprovalStatus через API UpdateModelPackage. Для мониторинга активных эндпоинтов и обнаружения смещения данных (drift) включите DataCaptureConfig на эндпоинтах и используйте SageMaker Model Monitor для создания базовых статистик перед развёртыванием с помощью CreateMonitoringSchedule, а затем используйте сбор данных BatchTransform или RealTimeInference с S3 DestinationS3Uri для непрерывной оценки.
Шаблоны проектирования и компромиссы
Выбор распределённого обучения с параллелизмом по данным и множеством небольших шардов обеспечивает простое масштабирование и обычно является самым простым шаблоном, когда ваша модель помещается в память одной GPU. Подходы с параллелизмом по данным, использующие PyTorch DDP или Horovod, хорошо масштабируются, если сетевая инфраструктура высокопроизводительна, а инстансы поддерживают EFA и NCCL. Когда веса модели превышают объём памяти одной GPU, требуется параллелизм по модели или конвейерный параллелизм; smdistributed.modelparallel помогает разделять тензоры между GPU, но это увеличивает сложность отладки, создания контрольных точек и балансировки между вычислениями и коммуникацией. Практичный шаблон проектирования — гибридный: использовать шардинг модели для очень больших слоёв и параллелизм по данным между группами воркеров.
Компромиссы при подборе гиперпараметров в основном касаются времени и стоимости. Широкий случайный (Random) или сеточный (Grid) поиск прост, но дорог; байесовская оптимизация (стратегия по умолчанию в AMT) использует предыдущие результаты для сужения области поиска и может сократить количество заданий обучения, необходимых для достижения хорошей конфигурации. Используйте WarmStartConfig для переноса знаний из предыдущих экспериментов по подбору в новые, когда изменения в наборе данных или модели незначительны. Распараллеливание множества заданий обучения ускоряет общее время оптимизации, но увеличивает сиюминутную стоимость и может привести к исчерпанию квот сервиса; настраивайте MaxParallelTrainingJobs консервативно и используйте Spot-инстансы для заданий подбора, чтобы сократить расходы, но всегда настраивайте CheckpointConfig и MaxWaitTimeInSeconds для устойчивости к прерываниям.
Частота создания контрольных точек и выбор хранилища влияют как на отказоустойчивость, так и на стоимость. Частые контрольные точки уменьшают потери вычислений при прерываниях, но добавляют накладные расходы на пропускную способность и задержки S3; используйте инкрементальное создание контрольных точек внутри контейнера (LocalPath) и асинхронно синхронизируйте их с S3 для надёжного восстановления. При обучении на управляемых спотовых инстансах установите надёжный интервал для создания контрольных точек и используйте меньшее количество инстансов для заданий обучения, которые могут завершиться в пределах типичного времени до прерывания, или проектируйте цикл обучения так, чтобы он был устойчив к вытеснению, используя предоставляемые SageMaker хуки SIGTERM для гарантированного создания консистентных контрольных точек перед завершением.
← Инженерия данных и инженерия признаков · Все домены · Оценка и выбор моделей →
Отработать эти вопросы → · Тесты на время на 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.
Сдайте экзамен →