Толковый словарь по нейросетям и искусственному интеллекту
Тензорный параллелизм
Категория термина
Тензорный параллелизм (Tensor Parallelism) — это метод распределённого обучения нейросетей, при котором отдельные тензоры внутри слоёв модели (например, веса матричных умножений в трансформерах) делятся между несколькими устройствами. В отличие от Model Parallelism, где слои модели распределяются целиком, тензорный параллелизм позволяет параллельно выполнять вычисления внутри одного слоя, что особенно важно для очень больших моделей.
🧠 Механизм работы:
- Тензоры весов слоя разбиваются на части и распределяются между несколькими GPU.
- Входные данные также делятся соответствующим образом, чтобы каждая часть выполняла свою часть вычислений.
- Результаты вычислений агрегируются (например, через All-Reduce или All-Gather) для получения окончательного выхода слоя.
- Градиенты также делятся и синхронизируются для корректного обновления параметров на всех устройствах.
🔑 Основные особенности:
- Позволяет обучать слои, которые не помещаются на одном GPU.
- Часто используется в комбинации с Pipeline Parallelism и Data Parallelism (Hybrid Parallelism).
- Эффективен для слоёв с большими матрицами весов, типичных для трансформеров.
- Требует точной синхронизации между устройствами для корректного вычисления выходов и градиентов.
📌 Примеры применения:
- Обучение GPT-3 и других LLM, где отдельные слои превышают память одного GPU.
- Большие сверточные слои CNN, если тензоры фильтров не помещаются в память.
- Генеративные модели высокого разрешения, где веса слоёв очень велики.
- Трансформеры для NLP и CV, которые используют большие матрицы проекций и внимания.
⚖️ Преимущества и недостатки:
Преимущества:
- Позволяет обучать отдельные слои сверхбольших моделей.
- Эффективно распределяет вычисления внутри слоя, снижая нагрузку на память одного GPU.
- Хорошо комбинируется с другими методами параллелизма.
Недостатки:
- Сложная реализация, требует высокой пропускной способности между устройствами.
- Может увеличивать коммуникационные задержки при агрегации результатов.
- Настройка и отладка более трудоёмкая, чем при простом Model или Data Parallelism.
🧠 Связанные понятия:
- Model Parallelism — распределение слоёв модели между устройствами.
- Pipeline Parallelism — последовательная обработка блоков модели на разных устройствах.
- Data Parallelism — параллельная обработка подбатчей данных на нескольких устройствах.
- All-Reduce / All-Gather — операции синхронизации тензоров между устройствами.
💡 Вывод:
Тензорный параллелизм (Tensor Parallelism) позволяет эффективно обучать слои огромных моделей, распределяя вычисления и память весов между устройствами, что делает возможным обучение современных трансформеров и генеративных сетей с крайне большими слоями.