AllReduce, Broadcast, AllGather — примитивы, которыми процессы обучения обмениваются тензорами.
Ключевые тезисы
- AllReduce складывает всех процессов и раздаёт результат каждому: после него копии моделей снова идентичны.
- Кольцевой алгоритм передаёт по сети примерно 2·(N−1)/N от размера независимо от числа узлов.
- NCCL перекрывает обмен с обратным проходом: уходят по мере готовности слоёв, а не в конце шага.
Подробный разбор
| Операция | Что делает |
|---|---|
| Broadcast | рассылает тензор одного процесса всем |
| складывает тензоры всех процессов в один | |
| AllReduce | складывает и раздаёт результат всем — основной примитив обучения |
| AllGather / ReduceScatter | собирает и раздаёт шарды — основа FSDP |
Кольцевой AllReduce разбивает тензор на N кусков и гоняет их по кольцу процессов: сначала фаза сложения, затем фаза раздачи. Каждый узел передаёт около от размера — при большом N это стремится к удвоенному объёму независимо от числа карт.
NCCL перекрывает обмен с обратным проходом: слоя уходят в сеть, пока считаются градиенты предыдущего. Поэтому размер бакета (bucket_cap_mb) заметно влияет на итоговую скорость — слишком мелкие бакеты дают много мелких пересылок.
Видеолекции
Тайм-кода именно на эту тему в записях нет. Но глава «Вычислительная инфраструктура» разобрана в курсах целиком — с той оговоркой, что место в записи придётся искать самому.
Связанные темы
Обучение на GPU
GPU Architecture85%
Архитектура GPU · Вычислительная инфраструктураТысячи простых ядер, сгруппированных в мультипроцессоры, и иерархия памяти, в которую упирается почти любое ускорение.
AI Accelerators85%
Ускорители: GPU, TPU, NPU · Вычислительная инфраструктураЧем специализированный чип отличается от универсальной видеокарты и когда эта разница окупается.
GPU in PyTorch85%
GPU в PyTorch · Вычислительная инфраструктураКак проверить доступность ускорителя, разложить тензоры по устройствам и понять, куда ушла видеопамять.
Distributed Training85%
Распределённое обучение · Вычислительная инфраструктураКак разложить обучение на несколько GPU: копиями модели по данным, шардами состояния или разрезанием самой модели.
Cluster Networking85%
Сеть кластера · Вычислительная инфраструктураТопология соединений и скорость обмена, которые определяют, доедет ли обучение до линейного ускорения.
Training Throughput85%
Ускорение обучения · Вычислительная инфраструктураЧто делать, когда число GPU фиксировано: снизить точность, накопить градиент, пересчитать активации, разгрузить загрузчик данных.
Mixed Precision85%
Смешанная точность · Оптимизация обученияОбучение в fp16 или bf16 при накоплении в fp32: двукратная экономия памяти и заметное ускорение.
Batch size85%
Размер батча · Оптимизация обученияЧисло объектов на одно обновление весов: влияет на скорость, память и качество обобщения.
Профильная компетенция для роли: MLOps-инженер.
Усиливает профиль: Data Engineer, Исследователь.
Спрашивают на собеседовании: YADRO — Инфраструктура обучения.
Разбор архитектуры, где эта тема — один из кирпичей: требования, развилки, цифры и режимы отказа.
Глава «Вычислительная инфраструктура» последний раз правилась . Нашли ошибку — напишите.