Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

Распределенное обучение

Ускорьте обучение ИИ с помощью распределенного обучения! Узнайте, как сократить время обучения, масштабировать модели и оптимизировать ресурсы для сложных проектов машинного обучения.

Распределенное обучение - это мощная техника в Машинное обучение (ML), которое ускоряет процесс создания модели за счет разделения вычислительной нагрузки на несколько процессоров, таких как графические процессоры (GPU) или Tensor вычислительные блоки (TPU). Используя совокупную мощность параллельно работающих устройств - будь то расположенных на одной рабочей станции или в сети огромного кластера, разработчики могут значительно сократить время, необходимое для обучения сложных архитектуры глубокого обучения (DL). Такой подход необходим для работы с огромными массивами данных и разработки самых современных систем искусственного интеллекта (ИИ), Это позволяет ускорить циклы итераций и проводить более масштабные эксперименты.

Основные стратегии распараллеливания

Чтобы эффективно распределить рабочую нагрузку, инженеры обычно используют одну из двух основных стратегий или гибридный подход. направленные на достижение максимальной эффективности:

  • Параллелизм данных: Это наиболее распространенный метод для таких задач, как обнаружение объектов. При такой настройке полная копия модели находится на каждом устройстве. Данные обучающие данные делятся на небольшие фрагменты, и каждое устройство одновременно обрабатывает разные подмножества. Во время фазы обратного распространения градиенты вычисляются независимо друг от друга, а затем синхронизируются между всеми устройствами с помощью коммуникационных протоколов, таких как Message Passing Interface (MPI) для последовательного обновления весов модели последовательно.
  • Параллелизм модели: Когда нейронная сеть (НС) слишком велика, чтобы поместиться в памяти одного GPU, необходим параллелизм моделей. Слои или компоненты модели разделяются на разные устройства. Данные последовательно или параллельно передаются между устройствами по мере прохождения через сеть. Эта техника очень важна для обучения массивных базовых моделей и больших языковых моделей (LLM), где количество параметров может достигать триллионов, что требует специализированных инструментов, таких как Microsoft DeepSpeed для управления памятью.

Применение в реальном мире

Распределенное обучение позволяет отраслям решать задачи, которые раньше были невыполнимы из-за нехватки времени и памяти. или нехватки памяти.

  • Автономное вождение: Создание надежных самоуправляемых автомобилей требует обработки петабайтов видео и данных датчиков. Автомобильные компании используют крупномасштабные распределенные кластеры для обучения моделей зрения, позволяющих в режиме реального времени семантической сегментации и отслеживания объектов. Используя ИИ в рабочих процессах автомобильной промышленности, инженеры могут быстро итеративно дорабатывать критически важные для безопасности модели для повышения производительности.
  • Медицинская визуализация: На сайте ИИ в здравоохранении, анализ трехмерных снимков высокого разрешения снимков высокого разрешения, таких как МРТ или КТ, требует значительных вычислительных ресурсов. Распределенное обучение позволяет исследователям обучать высокоточные диагностические модели на различных наборах данных, отвечающих требованиям конфиденциальности. Такие фреймворки, как NVIDIA CLARA, часто опираются на распределенные методы для эффективной обработки сложных медицинских изображений.

Реализация распределенного обучения с помощью YOLO

Сайт ultralytics Библиотека упрощает реализацию обучения Distributed Data Parallel (DDP). Вы можете легко масштабировать обучение YOLO11 модели на несколько графических процессоров, просто указав индексы устройств.

from ultralytics import YOLO

# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")

# Train the model using two GPUs (device 0 and 1)
# The library automatically handles DDP setup for parallel processing
results = model.train(data="coco8.yaml", epochs=5, device=[0, 1])

Распределенное обучение в сравнении со смежными концепциями

Важно отличать распределенное обучение от других связанных с ним терминов в экосистеме ИИ:

  • по сравнению с федеративным обучением: Хотя в обоих случаях задействовано несколько устройств, их основные цели различаются. При распределенном обучении данные обычно сосредотачиваются в высокопроизводительном кластере, чтобы максимально увеличить скорость и пропускную способность. В В отличие от этого, при федеративном обучении данные децентрализовано на пользовательских устройствах (например, смартфонах), чтобы обеспечить приоритет конфиденциальности данных, агрегируя обновления модели без Агрегация обновлений модели без выхода исходных данных за пределы устройства-источника.
  • В сравнении с высокопроизводительными вычислениями (HPC): HPC - это широкая область, включающая в себя супервычисления для научного моделирования, например, прогнозирования погоды. Распределенное обучение - это специфическое применение HPC, применяемое к алгоритмам оптимизации в нейронных сетей, часто использующее специализированные коммуникационные библиотеки, такие как NVIDIA NCCL для снижения задержек между GPU.

Инструменты и экосистема

Надежная экосистема инструментов и платформ с открытым исходным кодом поддерживает реализацию распределенного обучения:

  • Рамки: PyTorch предлагает родную поддержку через распространяемый пакет, в то время как TensorFlow предоставляет такие стратегии, как MirroredStrategy для плавного масштабирования.
  • Оркестровка: Управление ресурсами в большом кластере часто включает в себя оркестровку контейнеров инструменты, такие как Kubernetes или Kubeflow, которые автоматизируют развертывание и масштабирование учебных заданий.
  • Облачная инфраструктура: Крупнейшие поставщики предлагают управляемые услуги, такие как AWS SageMaker и Google Cloud TPUs, которые обеспечивают оптимизированную инфраструктуру для распределенных рабочих нагрузок, снимая с себя бремя обслуживания оборудования.
  • Универсальная масштабируемость: Такие библиотеки, как Horovod и Ray обеспечивают независимые от фреймворка подходы к масштабированию, позволяя разработчикам адаптировать свой код к распределенным средам с минимальными изменениями.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас