Интро
Если вам интересен мир ИИ и вы хотите не просто делать 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

В 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 — это рутинный процесс, который должен быть доведен до автоматизма в каждой уважающей себя компании. А потому частенько воспринимается, как восход солнца — это происхо...
|
