Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Expert Parallelism

Параллелизм экспертов распределяет экспертов слоёв смеси экспертов между GPU и направляет к ним каждый токен посредством обмена данными по схеме «каждый с каждым».

Параллелизм экспертов (EP) — это стратегия распределенного обучения и инференса для моделей со смесью экспертов (MoE): разные эксперты размещаются на разных GPU, а каждый токен отправляется на устройства, где находятся выбранные для него эксперты. Слой MoE заменяет один большой блок прямого распространения трансформера множеством небольших экспертных сетей и маршрутизатором, который активирует для каждого токена лишь нескольких экспертов. Поэтому общее число параметров может расти намного быстрее, чем вычислительные затраты на обработку каждого токена. Параллелизм экспертов позволяет разместить эти параметры в памяти: вместо того чтобы хранить всех экспертов на каждом GPU, на каждом устройстве хранится только своя часть. Еще в 2017 году Ном Шазир и его коллеги из Google распределили экспертов между устройствами, разместив по одной общей копии на каждом, в разреженном слое MoE с маршрутизацией. В июне 2020 года GShard масштабировал этот подход, распределив экспертов модели перевода с более чем 600 миллиардами параметров по 2,048 ускорителям TPU v3. Параллелизм экспертов теперь стал стандартом обучения и обслуживания крупных языковых и визуально-языковых моделей MoE.

Как токены перемещаются между GPU#

Каждый слой MoE выполняет четыре шага:

  1. Маршрутизация: Маршрутизатор оценивает каждый токен для каждого эксперта и выбирает k лучших экспертов — обычно одного, двух или восьми.
  2. Распределение: Коллективная операция обмена «каждый с каждым» отправляет скрытое состояние каждого токена на GPU, где находятся выбранные эксперты.
  3. Вычисление: Каждый GPU запускает локальных экспертов для полученных токенов.
  4. Объединение: Вторая операция all-to-all возвращает результаты на исходный GPU каждого токена. Там результаты взвешиваются по оценкам маршрутизатора и суммируются.

Приведённый ниже фрагмент имитирует маршрутизацию и распределение для одного слоя с 8 экспертами на 4 GPU — по два эксперта на GPU:

import torch

torch.manual_seed(0)
num_experts, num_gpus, top_k = 8, 4, 2
tokens = torch.randn(4096, 512)  # скрытые состояния для 4,096 токенов
router = torch.nn.Linear(512, num_experts)

# Маршрутизация: каждый токен выбирает 2 лучших экспертов по оценке маршрутизатора
with torch.no_grad():
    _, experts = router(tokens).topk(top_k, dim=-1)

# Параллелизм экспертов: эксперты 0-1 находятся на GPU 0, эксперты 2-3 — на GPU 1 и так далее
gpu = experts // (num_experts // num_gpus)

# Распределение: подсчитываем назначения токенов экспертам, полученные каждым экспертом и GPU
print(torch.bincount(experts.flatten(), minlength=num_experts).tolist())
print(torch.bincount(gpu.flatten(), minlength=num_gpus).tolist())

В первой строке вывода показана нагрузка каждого эксперта: от 948 до 1 087 назначений при равномерной доле 1 024. Во второй строке указано, что четыре GPU получили от 1 968 до 2 139 из 8 192 назначений. Даже случайно инициализированный маршрутизатор распределяет работу неравномерно, а после обучения у маршрутизаторов появляются популярные эксперты, из-за которых нагрузка становится ещё более перекошенной.

Балансировка нагрузки и ёмкость#

Работа слоя завершается только тогда, когда закончит самый загруженный GPU, поэтому дисбаланс маршрутизации приводит к простою оборудования. В обучении MoE с ним борются тремя способами:

  • Вспомогательная балансирующая функция потерь: Дополнительное слагаемое в функции потерь поощряет маршрутизатор равномерно распределять токены между экспертами.
  • Коэффициент емкости: Каждый эксперт обрабатывает не больше заданного числа токенов в батче, например в 1.25 раза больше равной доли; переполненные токены пропускают этого эксперта.
  • Балансировка на основе смещений: DeepSeek-V3 добавляет к оценкам маршрутизатора смещение для каждого эксперта, которое влияет только на выбор экспертов: после каждого шага оно снижается для перегруженных экспертов и повышается для простаивающих. Это балансирует нагрузку без вспомогательной функции потерь, конкурирующей с основной целевой функцией.

При ограничении емкости путь каждого токена зависит от загрузки его экспертов:

Пропущенный токен без изменений проходит через слой по остаточной связи, поэтому частое отбрасывание токенов снижает качество. Во время обучения DeepSeek-V3 не отбрасывает токены, полагаясь вместо этого на балансировку на основе смещений.

Еще одна статья расходов — обмен данными. Два обмена «каждый с каждым» происходят в каждом слое MoE, поэтому параллелизм экспертов эффективнее всего работает внутри узла, где GPU соединены скоростными каналами NVLink, и становится дорогим при использовании более медленных соединений между узлами. DeepSeek-V3 распределяет 256 маршрутизируемых экспертов в каждом слое с параллелизмом экспертов 64-way по 8 узлам, отправляет каждый токен экспертам не более чем на 4 узлах и совмещает обмен данными с вычислениями.

Сочетание стратегий параллелизма#

Параллелизм экспертов — один из нескольких способов распределить обучение между устройствами:

  • Параллелизм данных: Реплицирует полную модель на каждом GPU и разделяет каждый батч, синхронизируя градиенты после каждого шага.
  • Тензорный параллелизм: Разделяет отдельные матрицы весов между GPU, поэтому каждый GPU участвует в каждом слое.
  • Конвейерный параллелизм: Назначает последовательные слои разным GPU и передает через них микробатчи.
  • Контекстный параллелизм: Разделяет одну длинную последовательность входных данных между GPU.

Плотным моделям, которые помещаются на одном GPU, достаточно параллелизма по данным. Именно так Ultralytics YOLO26 обучается на нескольких GPU, когда в режиме обучения передаётся список устройств, например device=[0, 1]. Крупные MoE-модели сочетают несколько подходов: DeepSeek-V3 обучила свои 671 миллиард параметров, из которых 37 миллиардов активны для каждого токена, используя параллелизм конвейера с разделением на 16 частей, параллелизм экспертов с разделением на 64 части и шардированный параллелизм по данным, но без параллелизма по тензорам. Механизмы инференса, например vLLM, применяют такое же разделение при обслуживании модели, поэтому MoE-модель, эксперты которой не помещаются в память одного GPU, работает на нескольких GPU, каждый из которых хранит только свою часть экспертов.

Explore solutions

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

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

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения