Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.
Тернарные языковые модели научились быстрее считать матричные произведения, если заранее исключить нулевые веса. Команда ETH Zurich получила на Llama-3.1 1B ускорение времени до первого токена в 3,5–6,3 раза против RSR++, хотя препринт не рецензирован и все числа в нём измерили сами авторы. Для инференса на CPU высокая доля нулей становится не только способом сжать модель, но и источником экономии вычислений.
Тернарные веса принимают три значения: −1, 0 и +1. Прежний метод RSR++ обрабатывает нули вместе с остальными весами, а Sparse Segment Reduction, или SSR, при подготовке модели удаляет полностью нулевые шаблоны, группирует оставшиеся и строит компактное дерево сложений. Подготовку фиксированных весов выполняют один раз, затем используют её для каждого запроса.
На отдельных операциях матричного умножения GEMM SSR работал в 2,1–11,3 раза быстрее RSR++ при доле нулевых весов от 45% до 95%. На уровне всей модели он также сократил расход памяти на 4,9%. Однако RSR++ — не единственная точка сравнения: при очень высокой доле нулей на меньшей матрице SSR уступал PyTorch Sparse CSC до 35%, поэтому преимущество зависит от размера матрицы и структуры весов.
Метод проверяли на ноутбучном AMD Ryzen 7 8845HS с AVX2 и многопоточностью, а сквозной тест провели на тернарной Llama-3.1 1B с запросом длиной 512 токенов. Тернарными были блоки MLP, тогда как механизм внимания оставался обычным. Работа охватывает только CPU; реализацию для GPU авторы оставили следующей задачей, поэтому результат пока меняет прежде всего планы команд, которые запускают тернарные модели на процессорах общего назначения.
Источники
Похоже на вашу задачу?
Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.



