PowerInfer

Гибридный вывод LLM на CPU/GPU с использованием локальности активаций — запуск моделей с 70B параметров на одном потребительском GPU за счёт интеллектуального распределения вычислений между CPU и GPU.

🌟 8 000+ звёзд на GitHub | Разработано в SJTU IPADS | Лицензия MIT


Что такое PowerInfer?

PowerInfer — это высокопроизводительный движок вывода для больших языковых моделей, который использует ключевое наблюдение: LLM демонстрируют сильную локальность активаций — небольшой поднабор нейронов ("горячие нейроны") регулярно активируется на большинстве шагов вывода, в то время как большинство остаётся неактивным.

PowerInfer использует это свойство для:

  1. Держать горячие нейроны на GPU для быстрой обработки

  2. Выгружать холодные нейроны на CPU/ОЗУ без существенной потери качества

  3. Динамически маршрутизировать вычисления между CPU и GPU на основе паттернов активации

Результат: вы можете запускать модель 70B имея всего 16 ГБ VRAM вместо необходимости иметь 140 ГБ+ полностью на GPU.

Ключевые возможности

  • Поддержка потребительских GPU — RTX 3090/4090 могут запускать модели 70B

  • Планирование с учётом нейронов — предиктор определяет маршрутизацию на CPU или GPU для каждого вывода

  • Минимальное ухудшение качества — сохраняет >95% качества с полной точностью

  • Совместимость с llama.cpp — поддержка формата GGUF

  • Выгрузка на CPU с учётом NUMA — оптимизировано для CPU с большим количеством ядер

Зачем использовать PowerInfer на Clore.ai?

Clore.ai арендует GPU по значительно более низкой цене, чем облачные альтернативы. С PowerInfer:

  • Запустите Llama 2 70B на одном RTX 4090 (24 ГБ VRAM)

  • Сократите расходы на аренду GPU по сравнению с мульти-GPU конфигурациями

  • Обрабатывайте длинные контексты, используя RAM CPU как переполнение

  • Запускайте модели, ранее требовавшие дорогих инстансов A100/H100


Требования к оборудованию

Размер модели
Мин. VRAM
Рекомендуемая ОЗУ
Производительность

7B

4 ГБ

16 ГБ

Отлично

13B

6 ГБ

32 ГБ

Очень хорошо

34B

12 ГБ

64 ГБ

Хорошо

70B

16 ГБ

128 ГБ

Умеренно

circle-info

CPU имеет значение: PowerInfer выгружает холодные нейроны на CPU. CPU с большим количеством ядер (AMD EPYC, Intel Xeon) и высокой пропускной способностью памяти значительно повышают пропускную способность для больших моделей.


Быстрый старт на Clore.ai

Шаг 1: Выберите сервер

На clore.aiarrow-up-right маркетплейсе отфильтруйте по:

  • NVIDIA GPU с VRAM 16 ГБ+ (RTX 3090, RTX 4090, A100)

  • Высокое количество ядер CPU (идеально 16+ ядер)

  • 64 ГБ+ ОЗУ для моделей 70B, 32 ГБ для 13B моделей

Шаг 2: Создайте пользовательский Docker-образ

PowerInfer требует кастомной Docker-настройки. Используйте этот Dockerfile:

Соберите и отправьте в Docker Hub или используйте встроенно с Clore.ai:

Шаг 3: Разверните на Clore.ai

В заказе Clore.ai укажите:

  • Docker-образ: yourname/powerinfer:latest

  • Порты: 22 (SSH)

  • Окружение: NVIDIA_VISIBLE_DEVICES=all


Сборка PowerInfer из исходников

Если вы предпочитаете собирать внутри контейнера:

Проверить сборку


Получение моделей

Скачать модели GGUF

PowerInfer использует формат GGUF (такой же, как в llama.cpp):

Генерация предиктора нейронов (требуется для PowerInfer)

PowerInfer требует предиктор активации нейронов для каждой модели. Это ключевое отличие от llama.cpp:

circle-exclamation

Запуск вывода

Базовый вывод (без предиктора)

Для тестирования без генерации предиктора (стандартное разделение GPU/CPU):

Режим PowerInfer (с предиктором)

Полный режим PowerInfer с маршрутизацией, учитывающей нейроны:

Интерактивный режим чата

Серверный режим (API, совместимый с OpenAI)


Оптимизация разделения слоёв на GPU

Параметр --gpu-layers определяет, сколько трансформер-слоёв держать на GPU. Настраивайте это в зависимости от вашей VRAM:

Руководство по распределению слоёв:

VRAM GPU
Модель 7B
Модель 13B
Модель 34B
Модель 70B

8 ГБ

Все (32)

20 слоёв

10 слоёв

4 слоя

16 ГБ

Все (32)

Все (40)

25 слоёв

10 слоёв

24 ГБ

Все (32)

Все (40)

Все (60)

20 слоёв

48 ГБ

Все (32)

Все (40)

Все (60)

Все (80)


Тесты производительности

Сравнение пропускной способности (Llama 2 70B, RTX 3090)

Движок
Слои на GPU
Токенов/с

llama.cpp (только GPU)

20/80

~4 т/с

llama.cpp (только CPU)

0/80

~1 т/с

PowerInfer

20/80 + предиктор

~12 т/с

circle-check

Запуск как сервис

Создайте systemd-сервис для постоянного обслуживания API:


Использование API

После запуска сервера используйте любой клиент, совместимый с OpenAI:


Устранение неполадок

CUDA: недостаточно памяти

Медленный вывод на CPU

Сборка не удалась

triangle-exclamation

Рекомендации по GPU для Clore.ai

Гибридная архитектура PowerInfer изменяет экономику запуска больших моделей. Сервера Clore.ai с GPU большой памяти И быстрыми CPU идеальны.

GPU
VRAM
Цена Clore.ai
Макс. модель (Q4)
Пропускная способность (Llama 2 70B Q4)

RTX 3090

24 ГБ

~$0.12/ч

70B (при 64 ГБ+ ОЗУ)

~8–12 ток/с

RTX 4090

24 ГБ

~$0.70/ч

70B (быстрая выгрузка на CPU)

~12–18 ток/с

A100 40GB

40 ГБ

~$1.20/ч

70B (минимальная выгрузка)

~35–45 ток/с

A100 80GB

80 ГБ

~$2.00/ч

70B в полной точности

~50–60 ток/с

circle-info

Оптимальная точка PowerInfer: RTX 3090 за ~$0.12/ч, запускающий Llama 2 70B Q4, — прорыв для экономных пользователей. Вы получаете модель 70B за в 10–12× меньшую цену по сравнению с арендой A100. Пропускная способность ниже (~10 ток/с), но для исследований или низконагруженного вывода это непревзойдённая ценность.

CPU важен так же, как GPU: PowerInfer выгружает "холодные" нейроны на CPU. Сервера Clore.ai с CPU AMD EPYC или Intel Xeon (много ядер, высокая пропускная способность памяти) значительно превосходят одно- сокетные потребительские CPU. Проверьте характеристики сервера перед арендой для работы с большими моделями.

Узкое место — пропускная способность памяти: Для моделей 70B пропускная способность RAM CPU является ограничивающим фактором при вычислениях холодных нейронов. Сервера с DDR5 ECC RAM или архитектурами, близкими к HBM, обеспечат лучшую пропускную способность.


Ресурсы

Последнее обновление

Это было полезно?