
Как разрезать модель по чипам
Раскладка плотной модели для prefill и генерации — на примере кластера «Орбита»
Содержание слайдов
1. Как разрезать модель по чипам
Раскладка плотной модели для prefill и генерации — на примере кластера «Орбита»
2. Раскладка модели определяет задержку и цену
Как разрезать плотную модель по чипам и когда менять разрез
3. От одной GPU к группе GPU
Продолжение деки о vLLM (выпуск №32) и лонгрида о системах инференса
4. Плотная 70B не помещается в одну H100
«Орбита»: 16 узлов × 8 H100 80 ГБ, NVLink внутри узла, InfiniBand 400 Гбит/с между узлами
5. Малый батч ждёт веса, большой — KV-кеш
Время памяти, время вычислений и обмен между чипами
6. Prefill и генерация — две разные нагрузки
Задержка, пропускная способность, MFU и цена в чип-секундах на токен
7. Каждая раскладка — это набор коллективов
Нотация BLE_xyz, all-gather, reduce-scatter и all-to-all на торе TPU v4
8. 1D-раскладку тормозит обмен, не зависящий от n
Веса FFN режутся по одной оси, как в Megatron; активации собираются целиком
9. В 2D-раскладке обмен убывает как 1/√n
Веса режутся по E и по F; PaLM 540B, генерация, батч 512
10. При большом батче выгоднее двигать веса
Сбор весов: PaLM 540B, prefill, 64 чипа, длина 2 048
11. Multiquery экономит память при разрезе по батчу
Одна голова K/V на все головы запросов; генерация — по батчу, prefill — по головам
12. Та же память — контекст ×32
PaLM 540B, 64 чипа, 30 % памяти под KV-кеш
13. Параллельный блок убирает один из двух all-reduce
Слияние матриц, перекрытие обмена вычислениями и int8-веса
14. Цель меняет батч, раскладку и формат весов
PaLM 540B, 64 TPU v4, контекст 2 048; prefill — 2 048 токенов, генерация — 64
15. Низкая задержка дороже на каждый токен
Парето-граница цены и задержки генерации, PaLM 8B–540B
16. TP на 64 чипах удержал 44 % MFU
Сравнение с FasterTransformer на A100 по MFU
17. Выводы привязаны к тору TPU v4
Однородная сеть, статичные батчи и архитектура PaLM
18. DistServe: каждой фазе — свой пул и раскладка
Мысль статьи о раздельных серверах и DistServe (2024)
19. TP через InfiniBand съедает бюджет prefill
Формула 1D-раскладки для 70B: d_model 8 192, 80 слоёв, bf16, 50 ГБ/с
20. «Орбита»: одна копия 70B — внутри узла
Раскладка зависит от фазы и числа токенов в батче
21. Задержку коллективов покажет только замер
Сетка TP × батч × длина промпта на одном узле и на двух
22. Формулы переносятся, числа — нет
Что показала статья, что переносим мы и что надо проверить
23. Раскладка — функция фазы, а не модели
Сколько токенов в батче, где быстрая сеть, что держать на месте?