Distributed Training
Узнай, как распределенное обучение масштабирует AI-нагрузки на нескольких GPU. Научись ускорять обучение Ultralytics YOLO26 с помощью DDP, получая более быстрые и точные результаты.
Распределённое обучение — это метод машинного обучения, при котором рабочая нагрузка по обучению модели распределяется между несколькими процессорами или машинами. Такой подход необходим для работы с крупномасштабными наборами данных и сложными архитектурами нейронных сетей, на обучение которых на одном устройстве в противном случае потребовалось бы непрактично много времени. Используя совокупную вычислительную мощность нескольких графических процессоров (GPUs) или тензорных процессоров (TPUs), распределённое обучение значительно ускоряет цикл разработки, позволяя исследователям и инженерам быстрее выполнять итерации и повышать точность своих моделей.
Как работает распределённое обучение#
Основная идея распределённого обучения — распараллеливание. Вместо последовательной обработки данных на одном чипе задача разделяется на небольшие части, которые обрабатываются одновременно. Существует две основные стратегии достижения этой цели:
- Параллелизм данных: Это наиболее распространённый подход для таких задач, как обнаружение объектов. При таком подходе копия всей модели размещается на каждом устройстве. Общие обучающие данные разделяются на небольшие пакеты, и каждое устройство одновременно обрабатывает свой пакет. После каждого шага градиенты (обновления модели) синхронизируются между всеми устройствами, чтобы веса модели оставались согласованными.
- Параллелизм модели: Когда нейронная сеть (NN) слишком велика и не помещается в память одного GPU, сама модель разделяется между несколькими устройствами. Разные слои или компоненты модели размещаются на разных чипах, а данные передаются между ними. Это часто необходимо для обучения масштабных базовых моделей и больших языковых моделей (LLMs).
Практические применения#
Распределённое обучение преобразовало целые отрасли, сделав возможным решение задач, которые ранее были вычислительно невыполнимыми.
- Автономное вождение: Разработка безопасных автономных транспортных средств требует анализа петабайт видео и данных с датчиков. Автомобильные инженеры используют крупные распределённые кластеры для обучения моделей компьютерного зрения, предназначенных для семантической сегментации в реальном времени и обнаружения дорожной разметки. Такой масштаб гарантирует, что системы AI в автомобильной отрасли смогут надёжно реагировать на разнообразные дорожные условия.
- Медицинская визуализация: В сфере здравоохранения анализ изображений 3D-сканирования высокого разрешения, например МРТ, требует значительных объёмов памяти и вычислительной мощности. Распределённое обучение позволяет исследователям создавать высокопроизводительные диагностические инструменты для обнаружения опухолей и решения других критически важных задач. Используя такие фреймворки, как NVIDIA MONAI, больницы могут обучать модели на разнообразных наборах данных без переполнения памяти, улучшая результаты применения AI в здравоохранении.
Использование распределённого обучения с Ultralytics#
Библиотека ultralytics упрощает реализацию обучения с распределённым параллелизмом данных (DDP). Ты можешь масштабировать обучение передовых моделей YOLO26 на нескольких GPU, просто указав индексы устройств в аргументах обучения.
from ultralytics import YOLO
# Load a pre-trained YOLO26 model
model = YOLO("yolo26n.pt")
# Train the model using two GPUs (device 0 and 1)
# The library automatically handles the DDP communication backend
results = model.train(data="coco8.yaml", epochs=100, device=[0, 1])Связанные концепции и сравнения#
Чтобы понять особенности их применения, полезно отличать распределённое обучение от похожих терминов в экосистеме машинного обучения:
- В сравнении с федеративным обучением: Хотя оба подхода предполагают использование нескольких устройств, их цели различаются. Распределённое обучение обычно централизует данные в высокопроизводительном кластере, чтобы максимально увеличить скорость. В отличие от него, федеративное обучение хранит данные децентрализованно на устройствах пользователей (например, смартфонах), отдавая приоритет конфиденциальности данных, и обновляет глобальную модель, при этом исходные данные никогда не покидают источник.
- В сравнении с высокопроизводительными вычислениями (HPC): Высокопроизводительные вычисления — это широкая область, включающая суперкомпьютерные вычисления для научного моделирования, например прогнозирования погоды. Распределённое обучение — это конкретное применение высокопроизводительных вычислений к алгоритмам оптимизации в глубоком обучении. Оно часто опирается на специализированные библиотеки связи, такие как NVIDIA NCCL, чтобы минимизировать задержку между GPU.
Масштабирование с помощью облачных платформ#
Управление инфраструктурой для распределённого обучения может быть сложным. Современные платформы упрощают эту задачу, предлагая управляемые среды. Например, Ultralytics Platform позволяет пользователям управлять наборами данных и запускать сеансы обучения, которые можно развернуть в облачных средах или локальных кластерах. Такая интеграция упрощает рабочий процесс от разметки данных до финального развёртывания модели, обеспечивая максимально плавное масштабирование на несколько GPU. Аналогично, облачные провайдеры, такие как Google Cloud Vertex AI и Amazon SageMaker, предоставляют надёжную инфраструктуру для выполнения заданий распределённого обучения в масштабах предприятия.









