FairyFuse: инференс LLM на CPU без умножений

Hacker News · оригинал

Материал подготовлен автоматизированной редакционной системой. Факты можно сверить по указанному первоисточнику.

Исследователи представили систему FairyFuse, позволяющую выполнять генерацию текста больших языковых моделей на процессорах без использования операций с плавающей точкой. За счет сжатия весов до тернарных значений и оптимизации под AVX-512 система демонстрирует значительное ускорение по сравнению с популярными квантованными форматами.

Ценность: Система решает ключевую проблему узкого места пропускной способности памяти при работе LLM на CPU, предлагая архитектуру, которая заменяет ресурсоемкие умножения на более эффективные условные сложения и вычитания.

Развёртывание больших языковых моделей на платформах, оснащённых только процессорами, сталкивается с фундаментальным ограничением: пропускная способность памяти становится главным узким местом для авторегрессивной генерации. Хотя квантование весов до четырёх бит и ниже снижает нагрузку на память, существующие системы всё равно требуют деквантования и выполнения операций умножения с плавающей точкой. Это ограничивает потенциальную эффективность. Альтернативой служат тернарные веса из множества {-1, 0, +1}, которые заменяют умножения условными сложениями, вычитаниями или отсутствием операции. Однако предыдущие работы, такие как Fairy2i, не использовали эту структуру в рантайме для максимальной производительности.

В представленной работе авторы описывают FairyFuse — систему инференса, обеспечивающую выполнение без умножений на обычных CPU. Ключевым техническим решением является слияние восьми вещественных под-GEMV (обратных векторно-матричных произведений) каждого широко-линейного слоя в единый цикл AVX-512. Этот подход использует маскированные сложения и вычитания, полностью исключая операции с плавающей точкой. Анализ по модели Roofline показывает, что 16-кратное сжатие весов смещает память-ограниченные GEMV в режим, ограниченный вычислительными мощностями, на CPU с ограниченной пропускной способностью.

Экспериментальные результаты подтверждают эффективность такого подхода. На уровне отдельных ядер (kernel) система достигает ускорения в 29,6 раза. При этом авторы отмечают, что на GPU такая оптимизация приносит мало пользы, так как архитектура графических процессоров иначе соотносит вычисления и память. В сквозных тестах (end-to-end) FairyFuse демонстрирует скорость генерации 32,4 токена в секунду на одном процессоре Intel Xeon 8558P.

Сравнение с популярным форматом квантования Q4_K_M показывает преимущество новой системы: FairyFuse работает в 1,24 раза быстрее при практически без потерь в качестве. Перекрёстная энтропия (perplexity) на наборе данных WikiText-2 составляет 5,52 против 5,47 для FP16, а точность на downstream-задачах достигает 66,0%. Эти цифры свидетельствуют о том, что радикальное изменение математической операции не обязательно ведёт к деградации качества модели.

Работа подчёркивает важность аппаратно-специфичной оптимизации для CPU. В то время как GPU часто ограничены вычислительными ресурсами, современные серверные процессоры с поддержкой AVX-512 могут эффективно использовать алгоритмы, минимизирующие операции умножения. Это открывает возможности для более энергоэффективного и быстрого инференса LLM в условиях, где использование GPU нецелесообразно или невозможно.

Таким образом, FairyFuse представляет собой значимый шаг в области оптимизации инференса, доказывая, что тернарные веса могут быть практически применимы при условии глубокой интеграции с инструкциями процессора. Подход позволяет достичь баланса между скоростью и качеством, превосходя стандартные методы квантования на CPU-платформах.