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

0.60 0.47 Все бенчмарки проводились либо на локальном железе, либо на арендованной ВМ с GPU. Суммарно на аренду GPU ресурсов было потрачено около 350-400 рублей, стандартные настройки бенчмарка не менялись, пропущены замеры на LM Studio, так как поднять GUI приложение на ВМ — задача не тривиальная. Каждая отдельная таска в бенчмарке запускается 3 раза для сбора всех метрик и финальной аггрегации в то , что вы видите в документации. Все результаты доступны в директории results/ в json формате и открыты для анализа и новых инсайтов. Эмбэддинги Для эмбэддингов основной метрикой стало количество строк обработанных за секунду для датасета IMDB в 3000 строк. Здесь RPS — rows per second (не путать с requests) RPS по девайсам Также заменяется Performance Per Watt на GPUЭто RPS P50/Power (gpu, Watts) P50 Embeddings Perf per Watt Тут самой быстрой карточкой оказалась 4090, а самой энергоэффективный — 4060 Мак значительно отстает по скорости на fp16, но занимает 2-ое место по энергопотреблению. В свою очередь A100 за счет высокой скорости и более низкому энергопотреблению, чем 4090 занимает 3-е место по эффективности. LLM Для LLM бенчмарка использовались 10 промптов в из Awesome Prompts.Вот такой получилась E2E Latency E2E Latency Здесь мак в LM Studio с MLX бэкендом показал наилучшие результаты, что говорит нам о хорошей оптимизации от LM Studio для маков. Но помимо этого на 4060 E2E Latency с LM Studio также значительно лучше чем на Ollama.Интересно будет сравнить LM Studio MLX и условный VLM лоб в лоб и понять где все же лучше перформанс по Latency. TPS: LLM TPS Здесь M4 Max отстает от топовых карточек, а 4090 все еще дает прикурить A100.То есть получается если ваши потребности покрываются 24 ГБ VRAM, то 4090 и даже 3090 выглядят очень неплохо, но с оглядкой на необходимость докупать к ним комплектующие. LLM Perf per watt Ну и тот самый график из начала статьи показывающий TPS/GPU WM4 max тут лидирует по эффективности, причем в разы, обгоняя топовые карточки. За ним в след идет мой ноутбук с 4060 и Tesla T4. Tesla T4 — это та карточка с которой у большинства начинается погружение в DL, возможно конечно вы тренировали вашу первую CNN на CPU или на другой карточке, но тем не менее эта карточка все еще актуальна и провести небольшой набор экспериментов в ограниченное Colab или Kaggle время вы вполне сумеете, если памяти достаточно. VLM Для VLM бенчмарка использовался датасет Hallucination Coco из первых 10 запросов из промптов и картинок. И тут интересно отметить вот что, для LM Studio и Ollama отправляются одни и те же текста и картинки в base64 кодировке и разрешении 448×448, такое разрешение подобрано так как выбранная модель qwen3 vl 8b не сильно хорошо работала с тем что ниже по разрешению и в принципе не могла нормально описать что на картинке. Так вот ниже вы увидите суммарное количество токенов для LM Studio LM Studio VLM tokens in/out А теперь посмотрим на Ollama Ollama VLM tokens in/out Я не буду фокусироваться на том, что ollama дает нам более болтливые модели (это актуально и для LLM исходя из полученных мной результатов), но что тут различается (а вроде как не должно), так это то что LM Studio по всей видимости не считает за входные токены репрезентации картинок, в то время как Ollama это делает, из за чего мы видим эту разницу в итоговом кол-ве токенов на входной запрос.Поэтому если вы работаете с VLM учитывайте эти особенности при подсчетах токенов. Давай перейдем к результатам График по E2E Latency представлен ниже: vlm e2e latency Cтоит отметить что для VLM также считается время обработки картинки, то есть последовательность такая: — берем картинку, — преобразуем в разрешение 484×484, — кодируем в base 64 и шлем с текстовым запросом, — ожидаем последний чанк со стрима, получаем финальный ответВсе это время замеряется через perf_counter M4 Max на LM Studio с MLX backend все еще неплох, уступая только 4090 и обгоняя A100 и это еще от батареи. Теперь посмотрим на TPS vlm tps Тут снова лидирует 4090, за ней идут A100 80 и 40 GB а также 3090, M4 Max здесь не в лучшей позиции, но и не в самой слабой. А что по энергоэффективности? vlm perf per watt 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 Только зарегистрированные пользователи могут участвовать в опросе. Войдите , пожалуйста. Ждете ли вы продолжение и что вы хотели бы там увидеть? 0%Да и уже сделал git clone laperf, жди моих результатов в PR0 50%Да, покажи Perf per Cost для собранных устройств1 0%Я ничего не понимаю, как поставить твой бенч и подготовить среду? Нужно пояснение от А до Я0 50%Нет1 Проголосовали 2 пользователя. Воздержался 1 пользователь. Теги: Source: https://habr.com/ru/articles/966654/