La Perf — бенчмарк локального ИИ, или M-серия наносит ответный удар

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Интро

Если вам интересен мир ИИ и вы хотите не просто делать fit, predict на удаленной ВМ, а изучать что-то локально, экспериментировать и упрощать себе жизнь, запуская модели прямо на своем девайсе — скорее всего, вам понадобится достаточно мощное железо.

Эта статья - попытка ответить на вопрос эффективности железа для популярных AI задач: LLM, VLM, эмбэддинги.

Она будет полезна как ML/AI Инженерам, так и просто Энтузиастам, которые выбирают себе железо для локального инференса gpt-oss.

TL;DR:

  • M4 Max - лучший по эффективности энергопотребления

  • 4090 - лучший по абсолютной скорости (если хватает 24GB)

  • 4060 в ноутбуке - лучший бюджетный вариант (с лимитом на память в 8гб)

  • Tesla T4 в Colab и Kaggle - бесценно (буквально)

В статье я собираюсь ответить на следующие вопросы:

  • Какое железо быстрее обработает текст через LLM?

  • Как быстро я смогу векторизовать документы для RAG‑пайплайна?

  • Смогу ли я комфортно делать локальное демо и дебажить код с инференсом моделей?

  • Запущу ли я 20B модель оффлайн в поезде, чтобы закрыть рабочую таску?

  • Как быстро сядет батарея при таких задачах?

  • А каковы цена и потребление энергии за производительность что я получаю?

Ответы на часть из этих вопросов можно найти на просторах reddit, medium и других источников, есть ML Perf, LLM Perf, бенчмарки внутри комьюнити например у llamacpp, но все они объединяют либо узкий круг аудитории, либо фокусируются на конкретных задачах, например LLM Perf - только на LLM, без подсчета метрик самой системы.

Таким образом я пришел к выводу что мне нужен свой бенчмарк, где я для себя пойму разницу между различными девайсами и в очередной раз подниму холиварную тему, но она не про Mac против Linux или Windows, она про то, насколько эффективна карточка от дяди Хуанга и насколько хуже перформит аналог на Apple Silicon.

В этой статье вы получите информацию об основных инсайтах на основе полученных результатов, методологии замера метрик и конечно же увидите результаты поставленных экспериментов.

А для привлечения вашего внимания вот один из графиков, которые мне удалось получить после снятия замеров.

Этот график показывает эффективность энергопотребления за полученные TPS относительно GPU.

Картинка чтоб вы не скучали
Картинка чтоб вы не скучали

Надеюсь интерес подогрет и мы наконец можем приступать

Таски

La Perf состоит из набора тасок, которые решают определенную задачу:

1) Эмбэддинги:

Используется датасет IMDB на моделях из sentence‑transformers.

Тестируется модель:

  • modernbert‑embed‑base — англоязычная модель для векторизации текста

2) LLM-инференс:

Работает через LM Studio и Ollama, используется датасет Awesome Prompts.

Используемые модели:

  • LM Studio — gpt‑oss-20b

    • macOS: mlx‑community/gpt‑oss-20b‑MXFP4-Q8 (формат MLX MXFP4-Q8)

    • другие платформы: lmstudio‑community/gpt‑oss-20b‑GGUF (GGUF)

  • Ollama — gpt‑oss-20b

    • все платформы: gpt‑oss:20b (GGUF/Q4)

3) VLM-инференс :

Тестирование через LM Studio и Ollama, датасет Hallucination_COCO.

Модели:

  • LM Studio — Qwen3-VL-8B‑Instruct

    • macOS: lmstudio‑community/Qwen3-VL-8B‑Instruct‑MLX-4bit (MLX 4-bit)

    • другие платформы: lmstudio‑community/Qwen3-VL-8B‑Instruct‑GGUF‑Q4_K_M (GGUF Q4_K_M)

  • Ollama — qwen3-vl:8b

    • все платформы: qwen3-vl:8b (Q4_K_M)

В будущем я планирую добавить whisper, диффузионки для генерации картинок и возможно classic ML, чтобы сравнивать перформанс и на уровне CPU.

La Perf сам определяет ваш CUDA, MPS или CPU device для Torch, и делает cuda/mps.synchronize() чтобы дождаться выполнения задач со стороны GPU, это актуально для задач эмэддингов.

Ollama и LM Studio по дефолту поднимут вашу модель на GPU в столько слоев, насколько смогут, но я рекомендую использовать FULL GPU OFFLOAD или же скипнуть эту часть бенчмарка, если вы не готовы ждать результатов несколько часов.
Так например мой ноутбук с 4060 гонял весь бенчмарк 2 часа, так как VRAM не хватило на полную загрузку всех слоев LLM и VLM на GPU.

По дефолту La Perf сам знает какие модели ему нужны, но в контексте LM Studio модели лучше скачивать на уровне UI в приложении, выбирая именно версии выше (это если вы хотите сделать контрибьют, если не хотите то вы свободны в своем выборе)

Используя La Perf вы не ограничены данным списком моделей, вы можете сконфиругирировать достаточно широкий набор параметров начиная от URL-ов к моделям и их названиям, заканчивая batch-size-ом для эмбэддингов и размером датасетов для тестирования, используя .env.example из репозитория и просто создав свой .env файл, с которого будет происходить настройка.
Подробнее здесь: https://github.com/bogdanminko/laperf/blob/main/.env.example

Также стоит отметить что в текущей итерации фокус идет на синхронное выполнение задач, так как основной фокус- на Local AI, которым вы скорее всего будете пользоваться именно так, LLM Perf, например делает параллельные запросы за счет Ray.

Метрики

Метрики это по сути самая важная часть бенча, давайте посмотрим что предлагает La Perf в этом плане.

Метрики для Эмбэддингов

Метрика

Описание

Единицы

E2E Latency

Общее время, необходимое для векторизации всего датасета

секунды

RPS

Rows Per Second — пропускная способность, количество обработанных строк в секунду

строк/сек

Метрики для LLM/VLM-инференса

Метрика

Описание

Единицы

TTFT

Time To First Token — задержка до появления первого токена (время обработки промпта)

секунды

TG

Token Generation — время генерации выходного текста

секунды

TPS

Tokens Per Second — скорость генерации, количество токенов в секунду

токенов/сек

E2E Latency

Полная задержка одного запроса от начала до конца

секунды

Нюанс TPS

Когда вы пишите клиентскую OpenAI-совместимую обертку к запросам в Ollama, LM Studio и в принципе любому другому инференс серверу и делаете бенчмарк, то хочется понимать, насколько быстро ваша модель генерирует токены и логично предположить что TG- это то время, которое вам нужно, при условии если в вашей обертке включен стриминг.

Но давайте проясним следующую деталь:
Если: TPS = output_tokens / TG
То: 38 tokens / 0.0007s = 52 285.714 tokens/sec
Это реальный пример TPS который я получил на своем маке и как бы прекрасно это не выглядело - осознавать что твой мобильный девайс перформит лучше H100 все мы понимаем что это неправильный подсчет.

Причина в том что каждый API по своему стримит токены и отдает их чанками, чанк может содержать как несколько токенов, так и например 30.
Время прихода первого чанка - единственная возможность (без костылей к инференс сервису) получить TTFT и начать считать TG.
Проанализировав исходник LLM Perf я обнаружил что там ребята также не считают TPS от TG, подробнее показано в посте от Nvidia ниже, где они сравнивают свой GenAI-Perf с LLM-Perf

Метрики TPS, источник https://docs.nvidia.com/nim/benchmarking/llm/latest/metrics.html
Метрики TPS, источник https://docs.nvidia.com/nim/benchmarking/llm/latest/metrics.html

В La Perf выбран путь аналогичный пути Nvidia - замерять TPS по E2E latency между запросом и ответом.

Таким образом TPS будет считаться по следующей формуле:

TPS = output_tokens / E2E Latency
# E2E latency:  
E2E Latency = t1-t0
# где 
# t0 - время отправки запроса
# t1 - время полученя финального ответа (конец стрима)

# Например: 38 tokens / 0.6668s = 56.988 tokens/sec

Метрики устройства

Помимо метрик скорости и длительности обработки задач, La Perf замеряет:

Метрика

Описание

Единицы

GPU Power

Потребление энергии GPU

Вт

CPU Power

Потребление энергии CPU (только macOS)

Вт

GPU VRAM Used

Используемая видеопамять GPU

МБ

GPU VRAM Total

Всего доступной видеопамяти GPU

МБ

GPU Utilization

Загрузка GPU

%

GPU Temperature

Температура GPU (Nvidia)

°C

CPU Utilization

Загрузка CPU

%

RAM Used

Используемая системная память

ГБ

Эти метрики собираются ежесекундно со старта бенчмарка, для пользователей macOS нужен sudo доступ для получения доступа к встроенному powermetrics.

Сбор метрик был протестирован на MacBook M4 max и различных устройствах на Nvidia на дистрибутивах Fedora и Ubuntu. Для Amd GPU замеры не проводились.

Подробнее о метриках тут: https://bogdanminko.github.io/laperf/metrics.html

Основные результаты

В ходе экспериментов удалось собрать метрики по набору девайсов и получить такие результаты:

Устройство

Платформа

GPU

VRAM

Emb RPS P50

LLM TPS P50 (LM Studio)

LLM TPS P50 (Ollama)

VLM TPS P50 (LM Studio)

VLM TPS P50 (Ollama)

GPU Power P50

CPU Power P50

Emb Efficiency (RPS/W)

LLM Efficiency (TPS/W) LM Studio

LLM Efficiency (TPS/W) Ollama

VLM Efficiency (TPS/W) LM Studio

VLM Efficiency (TPS/W) Ollama

ASUSTeK COMPUTER ASUS Vivobook Pro N6506MV

Источник: https://habr.com/ru/articles/966654/


Интересные статьи

Интересные статьи

Эффективность управления командировками зависит от множества факторов, включая использование подходящих инструментов и правильную организацию документооборота. Важно наладить этот процесс от разработк...
В данном руководстве мы настроим федерацию между двумя инстансами OpenAM по протоколу OAuth2/OIDC. Один инстанс будет являться OAuth2/OIDC сервером (Identity Provider), другой - клиентом (Service Prov...
Начнем с небольшого предисловия. Битрикс24 позволяет автоматизировать множество разных процессов внутри компании. В частности в Битрикс есть большой и сильный блок автоматизации процессов работы с кли...
Тепловозы, корабли, нефтяные бурильные установки, грузовая и военная техника, тракторы, легковые автомобили, электростанции — список техники, в которой применяются дизельные двигатели, можно долго про...
Настройка любой площадки для CMS — это рутинный процесс, который должен быть доведен до автоматизма в каждой уважающей себя компании. А потому частенько воспринимается, как восход солнца — это происхо...