Интро
Если вам интересен мир ИИ и вы хотите не просто делать 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 |
? Linux |
NVIDIA GeForce RTX 4060 Laptop GPU |
8 GB |
162.2 |
15.4 |
16.0 |
22.4 |
13.6 |
18.3 W |
– |
8.88 |
0.84 |
0.88 |
1.23 |
0.74 |
Mac16,6 |
? macOS |
Apple M4 Max (32 cores) |
shared with system RAM |
55.8 |
56.5 |
61.0 |
51.5 |
47.8 |
11.7 W |
1.1 W |
4.77 |
4.84 |
5.22 |
4.40 |
4.09 |
Mac16,6 (on battery) |
? macOS |
Apple M4 Max (32 cores) (on battery) |
shared with system RAM |
53.9 |
55.3 |
62.2 |
49.0 |
46.5 |
11.3 W |
1.1 W |
4.79 |
4.91 |
5.52 |
4.35 |
4.13 |
OpenStack Nova 26.0.7-1 A100 40GB |
? Linux |
NVIDIA A100-PCIE-40GB |
39 GB |
453.6 |
– |
113.5 |
– |
108.0 |
218.2 W |
– |
2.08 |
– |
0.52 |
– |
0.50 |
OpenStack Nova A100 80GB |
? Linux |
NVIDIA A100 80GB PCIe |
79 GB |
623.8 |
– |
135.5 |
– |
121.2 |
230.5 W |
– |
2.71 |
– |
0.59 |
– |
0.53 |
OpenStack Nova RTX3090 |
? Linux |
NVIDIA GeForce RTX 3090 |
24 GB |
349.5 |
– |
114.8 |
– |
105.3 |
345.6 W |
– |
1.01 |
– |
0.33 |
– |
0.30 |
OpenStack Nova RTX4090 |
? Linux |
NVIDIA GeForce RTX 4090 |
24 GB |
643.6 |
– |
148.7 |
– |
130.4 |
282.5 W |
– |
2.28 |
– |
0.53 |
– |
0.46 |
OpenStack Nova Tesla T4 |
? Linux |
Tesla T4 |
15 GB |
133.7 |
– |
41.5 |
– |
32.6 |
68.9 W |
– |
1.94 |
– |
0.60 |
– |
0.47 |
Все бенчмарки проводились либо на локальном железе, либо на арендованной ВМ с GPU.
Суммарно на аренду GPU ресурсов было потрачено около 350-400 рублей, стандартные настройки бенчмарка не менялись, пропущены замеры на LM Studio, так как поднять GUI приложение на ВМ - задача не тривиальная.
Каждая отдельная таска в бенчмарке запускается 3 раза для сбора всех метрик и финальной аггрегации в то , что вы видите в документации.
Все результаты доступны в директории results/ в json формате и открыты для анализа и новых инсайтов.
Эмбэддинги
Для эмбэддингов основной метрикой стало количество строк обработанных за секунду для датасета IMDB в 3000 строк. Здесь RPS - rows per second (не путать с requests)

Также заменяется Performance Per Watt на GPU
Это RPS P50/Power (gpu, Watts) P50

Тут самой быстрой карточкой оказалась 4090, а самой энергоэффективный - 4060
Мак значительно отстает по скорости на fp16, но занимает 2-ое место по энергопотреблению.
В свою очередь A100 за счет высокой скорости и более низкому энергопотреблению, чем 4090 занимает 3-е место по эффективности.
LLM
Для LLM бенчмарка использовались 10 промптов в из Awesome Prompts.
Вот такой получилась E2E Latency

Здесь мак в LM Studio с MLX бэкендом показал наилучшие результаты, что говорит нам о хорошей оптимизации от LM Studio для маков. Но помимо этого на 4060 E2E Latency с LM Studio также значительно лучше чем на Ollama.
Интересно будет сравнить LM Studio MLX и условный VLM лоб в лоб и понять где все же лучше перформанс по Latency.
TPS:

Здесь M4 Max отстает от топовых карточек, а 4090 все еще дает прикурить A100.
То есть получается если ваши потребности покрываются 24 ГБ VRAM, то 4090 и даже 3090 выглядят очень неплохо, но с оглядкой на необходимость докупать к ним комплектующие.

Ну и тот самый график из начала статьи показывающий TPS/GPU W
M4 max тут лидирует по эффективности, причем в разы, обгоняя топовые карточки.
За ним в след идет мой ноутбук с 4060 и Tesla T4.
Tesla T4 - это та карточка с которой у большинства начинается погружение в DL, возможно конечно вы тренировали вашу первую CNN на CPU или на другой карточке, но тем не менее эта карточка все еще актуальна и провести небольшой набор экспериментов в ограниченное Colab или Kaggle время вы вполне сумеете, если памяти достаточно.
VLM
Для VLM бенчмарка использовался датасет Hallucination Coco из первых 10 запросов из промптов и картинок.
И тут интересно отметить вот что, для LM Studio и Ollama отправляются одни и те же текста и картинки в base64 кодировке и разрешении 448x448, такое разрешение подобрано так как выбранная модель qwen3 vl 8b не сильно хорошо работала с тем что ниже по разрешению и в принципе не могла нормально описать что на картинке.
Так вот ниже вы увидите суммарное количество токенов для LM Studio

А теперь посмотрим на Ollama

Я не буду фокусироваться на том, что ollama дает нам более болтливые модели (это актуально и для LLM исходя из полученных мной результатов), но что тут различается (а вроде как не должно), так это то что LM Studio по всей видимости не считает за входные токены репрезентации картинок, в то время как Ollama это делает, из за чего мы видим эту разницу в итоговом кол-ве токенов на входной запрос.
Поэтому если вы работаете с VLM учитывайте эти особенности при подсчетах токенов.
Давай перейдем к результатам
График по E2E Latency представлен ниже:

Cтоит отметить что для VLM также считается время обработки картинки, то есть последовательность такая:
- берем картинку,
- преобразуем в разрешение 484x484,
- кодируем в base 64 и шлем с текстовым запросом,
- ожидаем последний чанк со стрима, получаем финальный ответ
Все это время замеряется через perf_counter
M4 Max на LM Studio с MLX backend все еще неплох, уступая только 4090 и обгоняя A100 и это еще от батареи.
Теперь посмотрим на TPS

Тут снова лидирует 4090, за ней идут A100 80 и 40 GB а также 3090, M4 Max здесь не в лучшей позиции, но и не в самой слабой.
А что по энергоэффективности?

M4 max тут все еще лидирует и получается самым энергоэффективным железом не только для LLM, но и для VLM.
За ним идет 4060, A100 на 80gb занимает 3-е место среди уникальных девайсов, а вот игровые карточки слишком много энергии кушают за тот перформанс что предлагают.
Подробнее о результатах можно почитать тут: https://bogdanminko.github.io/laperf/results.html
Небольшое отступление и рефлексия
Мысли по поводу оптимизаций и железа
На мой личный взгляд 4090 и 3090 прям очень круты и неплохи за свою цену, естественно в этом есть заслуга не только того как работают сами железки, но и тех оптимизаций которые уже реализованы из коробки в фреймворках под CUDA.
Посмотрите на LLM и VLM на M4 Max результаты по E2E latency очень не плохи и очень даже сравнимы с карточки Nvidia под свой нативный MLX бэкенд. Я думаю что если либо сами Apple, либо коммьюнити сделает что то более быстрое для энкодеров и продолжит работу над оптимизациями мы получим компактного конкурента который не просто запускает gpt-oss локально, а может взять на себя более тяжелую работу, сравнимую с той что берет на себя A100, учитывая что по памяти текущие варианты M4 Max и M3 Ultra предлагают уникальные для рынка девайсы с максимальными 512 гб объедененной памяти, из которых по дефолту 384 ГБ может забрать себе карточка (так как 75%) но это тоже можно настроить несколькими командами в терминале.
Но еще один боттлнэк тут - пропускная способность самой GPU, у Nvidia она все же выше.
Эмбэддинги на MLX ?
Кстати есть такая библиотека https://github.com/Blaizzy/mlx-embeddings
Которая по сути позволяет запускать эмбэддинги на MLX бэкенде а не под костыль с MPS для Pytorch, учтите что библиотека имеет сомнительную лицензию GNU General Public License v3, что усложняет интеграцию в ваши открытые проекты, из за чего я и отказался добавлять её в свой бенчмарк, поскольку хочу сохранить для него лицензию Apache 2.0 и дать возможность как людям, так и организациям работать с ним и адаптировать его под себя без юридических проблем.
К тому же прирост перформанса который предлагает эта библиотека невысокий и составляет всего ~22% (исходя из замеров которые я проводил за рамками La Perf в отдельной от него среде, не относящейся к La Perf) , что все еще далеко от карточек с Nvidia.
Да, 22 процента это неплохо, это прирост производительности минимум одного поколения современного железа, но он точно не заставил меня либо добавить эту библиотеку, либо написать свою адаптацию, а когда MLX покажет прирост хотя бы в 70 процентов для энкодеров, вот тогда это уже будет действительно интересно и сравнимо с аналогами.
Ответы на вопросы из начала статьи
А теперь давайте вернемся к началу статьи, исходя из рассмотренного железа ответы на вопросы, заданные вначале можно сформулировать так:
Какое железо быстрее обработает текст через LLM?
Выбор зависит от целевой метрики либо E2E Latency, либо TPS, исходя из этого можно выбрать либо M4 Max, либо 4090 соответственно, скорее всего 4090 будет предпочтительнее, но важно понимать на чем будет инференс, как вы заметили Ollama сама по себе не очень хорошо умеет в E2E LatencyКак быстро я смогу векторизовать документы для RAG‑пайплайна?
Зависит от карточки, результаты в разделе про эмбэддинги, но в общем 4090 Тут лучшая до тех пор, пока вам хватает 24 GB памяти, она преобразует 3000 строк из IMDB в эмбэддинги за 4.66 секунд, в то время как M4 Max делает то же самое почти минуту, а Telsa T4 - 22 секундыСмогу ли я комфортно делать локальное демо и дебажить код с инференсом моделей?
Да вполне, если модель залезает в GPU. Этот вопрос по сути о том, есть ли у вас GPU и сколько там памяти, больше -> лучше.Запущу ли я 20B модель оффлайн в поезде, чтобы закрыть рабочую таску?
На маке - без проблем, я не упомянул это в статье, но на весь прогон бенча в 44 минуты для M4 Max, он разрядился на 56% (это при 100% загрузке GPU).
Да это не обещанные apple 5, 8 ,10 или сколько там часов, но тем не менее для коротких QA задач (без высокой нагрузки) вам его хватит на несколько часов, в то время как мой ноутбук с 4060 не измерялся на этот счет, поскольку после первого же прогона с эмбэддингами в первых итерациях создания бенчмарка я потерял порядка 30% батареи, а есть еще таски с LLM и VLM, из за чего результаты без батареи вы скорее всего физически получить не сможете для девайсов X86 архитектуры, а вот ARM ноутбуки здесь явно в выигрыше, пусть и слабее по скорости.
Если же доступ к зарядке - не вопрос, то просто берите условный asus rog zephyrus g 14 на самой мощной карточке которую сможете купить и радуйтесь жизни, шум от вентиляторов вряд-ли кто то услышит на фоне шума поезда, но это я уже не проверял.Как быстро сядет батарея при таких задачах?
На M4 Max за прогон всего бенча в текущем формате ушло 56% батареи за 44 минуты. Ваши результаты пополнят коллекцию долго-живущих на зарядке ноутбуков.
Также учтите что бенчмарк достаточно сильно нагружает систему, чего в ваших реальных пользовательских сессиях скорее всего не будет, только если вы сами не гоняете локальные бенчи.А каковы цена и потребление энергии за производительность что я получаю?
Про потребление энергии я написал и лидирует тут в основном M4 Max, а для эмбэддингов - asus vivobook pro 15 с 4060, 2024 года выпуска.
А что насчет цены?
Знаете я долго думал что сделать в этом плане, может взять пару ноутбуков с 4090, 3090 посчитать среднее от их стоимости, или наоборот взять конкретные, а потом из полученных метрик RPS/TPS вычесть 20% для честности, добавить цену за ежегодную аренду ВМ в 3 года и сравнить с покупкой железа...
В итоге я пришел к выводу что для этого понадобится также прозрачная и понятная методика, которая будет задокументирована в отдельном разделе бенчмарка, как это сделано сейчас для всего выше мною описанного и показанного.
Также я хотел бы собрать больше данных и результатов, поэтому я призываю всех вас, у кого есть железо, которое может запустить хотя-бы бенчмарк для эмбэддингов сделать git clone бенчмарка, прогнать и законтрибьютить.
В документации есть есть подробные quickstart и installation инструкции, двигаясь по ним и делая копипаст кода вы без проблем подготовите среду и сможете все запустить. Их я создал когда просто делал одни и те же операции на ВМ, если не получалось расшарить том по тем или иным причинам.
Если у вас возникнут вопросы или проблемы жду ваших Issue и Pull Requests с их решением и надеюсь статья была вам интересна и вы нашли что то полезное, спасибо за внимание.
А ниже все ссылки связанные с La Perf:
Гитхаб: https://github.com/bogdanminko/laperf
Документация: https://bogdanminko.github.io/laperf/index.html
Контрибьют: https://bogdanminko.github.io/laperf/contributing.html
Комментарии (4)

Shannon
15.11.2025 20:05Ollama и LM Studio по дефолту поднимут вашу модель на GPU в столько слоев, насколько смогут, но я рекомендую использовать FULL GPU OFFLOAD или же скипнуть эту часть бенчмарка, если вы не готовы ждать результатов несколько часов.
Так например мой ноутбук с 4060 гонял весь бенчмарк 2 часа, так как VRAM не хватило на полную загрузку всех слоев LLM и VLM на GPU.Выгрузить столько слоев, сколько могут - это параметр
-ngl Nв llama.cpp, на котором построены ollama и LM Studio. Для MoE моделей, вроде GPT-OSS, не самая оптимальная стратегия.И если MoE модель не влезает целиком в GPU, то вместо попытки выгрузить 13гб модель в 8гб VRAM можно воспользоваться новым подходом через
-cmoeи-ncmoe N, который и ускорит модель, и снизить потребление VRAM, что позволит вместить куда больше контекста. И можно даже заменить Qwen3-VL-8B на более интересную Qwen3-VL-30B-A3B.

Bogdan_m01 Автор
15.11.2025 20:05Я полагаю, что ваш комментарий будет полезен тем, кто запускает La Perf через llama.cpp.
Однако отмечу, что в рамках бенчмарка Ollama и LM Studio рассматриваются как black box-клиенты: настройка их внутренних параметров остаётся на стороне пользователя, и он сам выбирает нужные флаги и стратегию offload.
La Perf же предоставляет единый OpenAI-совместимый клиент, который может работать с Ollama, LM Studio (протестированы), а также vLLM, llama.cpp, sglang и другими инференс-сервисами.
Методология бенчмарка построена таким образом, чтобы вы могли сконфигурировать La Perf под любой интересующий вас OpenAI-совместимый сервис, сохраняя при этом сопоставимость результатов между разными системами.
MaxAkaAltmer
Здесь расчет несколько мухлежный, поскольку карты типа A100 дают радикально более высокие показатели при больших батчах и производительность на ватт у них на голову выше чем у того же мака. Просто потому, что шина памяти в разы быстрее. Понятно что здесь рассматривается не параллельное применение модели, но тем не менее.
Bogdan_m01 Автор
Отличное замечание, спасибо!
Я думаю было бы действительно интересно посмотреть на реализацию через батчи, поэтому предлагаю вам сделать Pull Request с этой фичей.
Предполагаю, что вы хотите сделать более низкоуровневую реализацию через PyTorch и Transformers. Также будет полезно увидеть вариант на MLX-LM — это покажет перформанс на более нативной для Apple Silicon библиотеке.
Понимаю, что такой тип запуска повысит требования к VRAM и ограничит доступность бенчмарка по сравнению с квантизованными моделями. Но так как клиенты для LLM и VLM уже реализованы, это не станет проблемой — просто будет ориентировано на более нагруженные сценарии.
Для старта можно опереться на текущие абстракции для вызова модели и проведения бенчей:
https://github.com/bogdanminko/laperf/tree/main/src/tasks
Сохранение структуры и стиля кода позволит легко встроить новую функциональность в общий пайплайн.
Предлагаю поместить эти реализации в отдельные директории, например:
llm_batch_torch / llm_batch_mlx и т.п.
Инструкции по тому, как оформить PR, доступны здесь:
https://bogdanminko.github.io/laperf/contributing.html
Если по ходу работы возникнут сложности — можете добавить комментарий в PR, я помогу с интеграцией.