Как пользоваться
- Введите число параметров в миллиардах и выберите точность, в которой хранятся веса.
- Перепишите из конфигурации модели число слоёв, KV-голов и размерность головы.
- Задайте длину контекста и сколько последовательностей обрабатывается одновременно.
- Выберите точность KV-кэша (16 бит, если среда запуска не квантует кэш) и запас.
- Введите объём видеопамяти — одной карты или сумму нескольких, — чтобы увидеть, поместится ли модель и какой контекст влезет.
Формулы
- Веса = параметры × байт на параметр (4, 2, 1 или 0,5).
- KV-кэш = 2 × слои × KV-головы × размерность головы × контекст × батч × байт на значение.
- Всего = (веса + KV-кэш) × (1 + запас ÷ 100).
- Самый длинный контекст = (память ÷ (1 + запас ÷ 100) − веса) ÷ (KV-кэш на токен × батч), с округлением вниз.
У моделей с групповым вниманием (GQA) KV-голов меньше, чем голов внимания, поэтому поле KV-голов отдельное: вводите именно его, а не общее число голов.
Пример расчёта
Модель на 7 млрд параметров в 16 битах, 32 слоя, 8 KV-голов размерности 128, контекст 8192, одна последовательность, запас 10 %:
- веса 7 × 10⁹ × 2 = 14 GB;
- KV-кэш на токен 2 × 32 × 8 × 128 × 2 = 131 072 байта = 128 KiB, на 8192 токена — 1 073 741 824 байта = 1,074 GB;
- запас 10 % от 15,074 GB = 1,51 GB;
- всего 16,58 GB, то есть 15,44 GiB.
В 24 GiB модель помещается, а самый длинный контекст — (25 769 803 776 ÷ 1,1 − 14 × 10⁹) ÷ 131 072 = 71 923 токена.
Советы
- Главное — точность. Переход с 16 на 4 бита уменьшает веса вчетверо; KV-кэш сжимается, только если среда запуска тоже хранит его в меньшей точности.
- Контекст и батч растут линейно. Вдвое длиннее контекст или вдвое больше батч — вдвое больше KV-кэш, и модель, которой хватало памяти на 8 тыс. токенов, может не влезть на 128 тыс.
- Несколько видеокарт дают больше памяти, но каждой нужны свои буферы, поэтому запас лучше брать с избытком.
- Это оценка по формулам выше, а не замер: реальный расход зависит от среды запуска и её настроек.