Цель встречи
Обзор обучения Vertex AI для экзамена Google Cloud ML Engineer.
Темы
AutoML против пользовательского обучения
Обучение AutoML:
Быстрая разработка модели без кода для стандартных задач машинного обучения.
Пользователь предоставляет данные и целевую функцию → Vertex AI автоматически выбирает алгоритм, разрабатывает признаки и настраивает гиперпараметры.
Классификация изображений, прогнозирование табличных данных (например, отток клиентов).
Ограниченная настройка.
Пользовательское обучение:
Полный контроль над архитектурой модели, циклом обучения и артефактами.
Пользователь предоставляет код обучения → Vertex AI выполняет его на указанной инфраструктуре.
Новые архитектуры, пользовательская предварительная обработка, тонкая настройка LLM.
Более высокие затраты на разработку.
Вычислительные ресурсы
Экземпляры только для ЦП:
Варианты использования: Традиционное машинное обучение (например, scikit-learn, XGBoost), небольшие нейронные сети, ресурсоемкая предварительная обработка. — Обоснование: Экономически выгодно для рабочих нагрузок, которые не выигрывают от параллелизма GPU.
— Экземпляры GPU (NVIDIA T4, V100, A100):
— Варианты использования: Глубокое обучение (CNN, RNN, трансформеры).
— Обоснование: Массовый параллелизм ускоряет матричные операции.
— Выбор:
— T4: Экономически выгодно для небольших моделей.
— V100: Стандарт для производства (16 ГБ/32 ГБ памяти).
— A100: Максимальная производительность для самых больших моделей (40 ГБ/80 ГБ памяти).
— Экземпляры TPU:
— Варианты использования: Крупномасштабные модели TensorFlow с обширными матричными операциями.
— Обоснование: Собственный ускоритель Google, оптимизированный для TensorFlow.
— Компромисс: Эксклюзивно для Google Cloud, в основном оптимизирован для TensorFlow.
— - Прерываемые экземпляры:
Назначение: Снижение затрат на 60-80%.
Механизм: Может быть завершен с уведомлением за 30 секунд, когда требуется дополнительная мощность.
Требование: Обучающие задания должны использовать контрольные точки для обеспечения отказоустойчивости.
Требования к контейнерам
Предварительно созданные контейнеры:
Назначение: Удобство для распространенных фреймворков машинного обучения (TensorFlow, PyTorch, scikit-learn, XGBoost).
Содержимое: Фреймворк, распространенные библиотеки (NumPy, Pandas) и необходимые системные зависимости.
Настройка: Добавление определенных пакетов Python через requirements.txt или setup.py.
Ограничение: Фиксированные версии фреймворка; отсутствие контроля зависимостей на системном уровне.
Пользовательские контейнеры:
Назначение: Полный контроль над средой обучения.
Процесс: Пользователь создает Dockerfile, собирает образ, отправляет его в реестр артефактов и указывает URI в конфигурации задания.
Варианты использования: Нишевые фреймворки, конкретные версии фреймворков, зависимости системного уровня.
Настройка гиперпараметров
Назначение: Автоматизация поиска оптимальных гиперпараметров (например, скорости обучения, слоев).
Процесс:
1. Определение пространства поиска: Укажите гиперпараметры, типы (int, double, categorical) и границы.
2. Оптимизация метрики: Определите метрику для максимизации/минимизации (например, точность, RMSE).
3. Отчет о метриках: Код обучения использует библиотеку cloudml-hypertune для отправки метрики в Vertex AI.
Алгоритмы поиска:
Байесовская оптимизация (по умолчанию): Эффективно исследует пространство с помощью вероятностной модели.
Случайный поиск: Хороший базовый вариант, простой.
Поиск по сетке: Исчерпывающий, но дорогостоящий для больших пространств.
Оптимизации:
Параллельные испытания: Запуск нескольких испытаний одновременно для сокращения общего времени настройки. - Ранняя остановка: Прекращение неперспективных попыток для экономии вычислительных ресурсов.
Распределенное обучение
Назначение: Масштабирование обучения на нескольких машинах для больших моделей или наборов данных.
Стратегия: Параллелизм данных — одна и та же модель работает на каждой машине, обрабатывая разные подмножества данных.
Конфигурация пула рабочих процессов:
Основная реплика (мастер): Координирует обучение, управляет контрольными точками.
Рабочие реплики: Выполняют основную часть вычислений.
Серверы редукции (опционально): Оптимизируют агрегацию градиентов для обучения на GPU, освобождая GPU для вычислений.
Когда использовать:
Преимущество: Обучение занимает дни на одной машине; модель превышает объем памяти одной машины.
Избегайте: Небольшие модели/наборы данных, где накладные расходы на связь перевешивают преимущества параллелизации.
Мониторинг и контрольные точки
Мониторинг:
Консоль обучения Vertex AI: Статус задания, конфигурация и временная шкала.
Облачное логирование: Основной инструмент отладки; Захватывает весь стандартный вывод/ошибки из кода обучения.
Vertex AI TensorBoard: Визуализирует метрики обучения (потери, точность) для выявления таких проблем, как переобучение...
Информация по комментариям в разработке