Pull to refresh

Comments 28

PinnedPinned comments

Изначально хотел взять именно cuda как индустриальный стандарт, но вероятно, подружить старую AMD-видеокарту, которая и родным ROCm-ом уже поддерживается только со свистоплясками, с NVIDIA-ориентированным cuda было бы еще сложнее

Если будет запрос и найду теоретическое подтверждение такой возможности - с радостью выпущу вторую часть этой эпопеи с cuda

можно было ещё попробовать cuda, не знаю наскольно оно совместимо с старыми gpu, но в новостях мелькал rocm-cuda "эмулятор"

p.s. ещё нашёл такой вариант vuda (VUDA — это библиотека, состоящая только из заголовочных файлов, основанная на Vulkan, которая предоставляет интерфейс API среды выполнения CUDA для написания приложений с ускорением на графическом процессоре. )

Изначально хотел взять именно cuda как индустриальный стандарт, но вероятно, подружить старую AMD-видеокарту, которая и родным ROCm-ом уже поддерживается только со свистоплясками, с NVIDIA-ориентированным cuda было бы еще сложнее

Если будет запрос и найду теоретическое подтверждение такой возможности - с радостью выпущу вторую часть этой эпопеи с cuda

При сборке докер образа llama.cpp указывать билд арг ROCM_DOCKER_ARCH=gfx... и получается рабочий образ. Все.

То есть вы прямо сразу без локальных тестов (без K8S) стали всё тестировать на K8S??? то есть не выбираем лёгкий путь?

Был промежуточный этап в виде докера, дебажить в нем быстрее
+ есть ощущение, что запуск на хосте очень далек от запуска в контейнере, поэтому не хотелось экспериментировать с локалкой впустую

Вполне возможно, что я не прав, и начни я с локалки - было бы меньше боли

Даже топовые эпики не сравнятся в скорости инференса даже со старыми гпу типа 1060. Там максимум 5-10 токенов, а минимум 0.5 в сек.

10 токенов в секунду для личного использования более чем комфортно. И это всё на каком-нибудь MacBook air. А не системник с гпу.

Как будто бы инферинг ллмки - это не тот случай когда ГПУ маст хэв. А вот всякие диффузионки для генерации медиа, там без гпу действительно тяжко.

Заходь на hugginface и смотри внимательно: для видеокарт на 8gb сейчас специально выпускают неплотные мое модели. Такие модели имеют в имени "a3b", что значит 3 миллиарда активных параметров. В реальности на карте для размещения всех слоев модели (а это как правило роутер + аутпут) нужно всего 4 гб видеопамяти. Получается, что остальные 4 гб видеопамяти можно заюзать на kv кеш для контекста (<= 96к) и обеспечить хорошую производительность. Если отключить ризонинг (или взять инстракт модель), то это дает возможность интегрировать абсолютно ненужную и завалящую видеокарту на 8 гб (типа 2060 super или 3050) на дев или даже стейджинг (на прод конечно не стоит).

Причем тут hf? Вопрос был зачем? - Потому что есть видеокарта. Понятно.
А так было бы интереснее посмотреть на тот стейдж и какие там задачи решают ллмки на 3B параметров, если это конечно не фантазии.

На этой карте, как и например на картах нвидия 1000 серии нет тензорных ядер, что делает невозможным ускорение квантованных моделей. Запустить можно, но производительность будет боль и печаль. Запускать же крошечные модели в q8 на 8гб нет особого смысла тк они глуповатые.

Автор, тебе будет лучше купить любую карту с тензорными ядрами типа 2060 супер на те же 8 гб vram. Затем взять moe модель типа qwen 3.5 a3b и запустить ее в кванте на 3-4 бита. Тензорные ядра (пусть даже первой версии у 2060) дают возможность ускорять умножение для тех самых квантованных чисел в 3-4 бита. Сам роутер модели займет 4 гб vram плюс output слой плюс kv кеш на 48к контекста и суммарно выйдет 7 гб vram. В итоге ты получишь адекватные 30 тс инпут и 5 тс аутпут. Никаких других более бюджетных решений не существует. Я пробовал даже майнинговые карты и там все плохо.

Нет, не будет лучше)

Лучше сжигать элекроэнергию на рх? Это ведь вообще глупо. Разумнее уже заплатить за апи или купить подписку на микро модель.

Попробую иначе объяснить: лучше ДЛЯ ЧЕГО?

Для получения халявных токенов я бы просто взял бесплатную модель с OpenRouter, но задача была не такой.

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

для инференса ллм лучше взять парочку A100

Четыре майнинговые карты P102-100 - 40Гб VRAM полет нормальный ))) Nemotron-3-Nano-30B-A3B-Q8_0.gguf - 41.98 tokens per second //// Qwen3-Coder-30B-A3B-Instruct-Q8_0.gguf - 34.40 tokens per second

У вас электричество государственное?

sudo nvidia-smi -pl 150 /// то есть карты ограниченны на 150Вт каждая - при использовании llama.cpp нагрузка не более 40%

Я бы посоветовал выставлять базовые частоты, а не фиксировать tdp, но не суть важно.

Положим 650 ватт на машину ~ 475 квтч в месяц. Это 2900 рублей по ценам Питера каждый месяц.

Если у тебя 42 тс аутпут то инпут где-то 150 тс. Если предположить среднее использование с соотношение инпут:аутпут 2:1 то получится средняя скорость 80 тс. В месяц это выходит 200 млн токенов.

На опенроутере $0.05/M input tokens $0.20/M output tokens. При потреблении 2:1 средняя цена $0.1. В пересчете на 200 млн токенов получается $20 т.е. 1600 рублей.

При этом ты понес капитальные расходы на покупку карт. Копейки, но все равно. Ты уверен, что оно имеет смысл или просто балуешься?

Подскажите пожалуйста, а на каком форуме лучше проконсультироваться по всей этой тематике? Погружаюсь немного в тему (и железо уже купил), но много слов незнакомых, а нейронка зачастую предлагает чушь (сложно ей доверять).

Здравствуйте. Chat GPT инстант, подписка за 8 баксов. Отлично консультирует и вообще для всего.

Да у меня уже есть платная подписка Chat GPT. Но он меня уже столько раз в разработке в дерьмо окунал, что уже не хочется ему доверять. Надо хотя бы выбрать софт правильно, а уже затем детали реализовывать с помощью GPT...

Есть еще новая и очень интересная тема: MUSA (Moore Threads). В llama.cpp уже есть поддержка, в devops лежит готовый докер файл. По отзывам он хорошо работает с qwen (что лично для меня уже достаточно).

Карта Moore Threads S80 на 256 бит и 16 гб стоит на jd.com 1к юаней т.е. копейки в сравнении с даже 2-мя картами нвидиа или амд. Энергопотребление на базовых частотах в районе 150 ватт. Тензорные ядра для ускорения матричного умножения низкобитных чисел есть. Проблема только в непроверенной на практике архитектуре и драйверах.

Но вообще было бы разумно попробовать 2 такие карты, чтобы крутить плотную модель типа qwen 3.5 27b Q6: 26 гб на слои + 5 гб kv кеш на контекст 128к = 31 гб. Не факт, что на практике все сложится сразу в высокую производительность, но пробовать можно.

Автор, если ты этой темой интересуешься, то я тебе могу дать интересную наводку на еще одну штуку: локальное кеширование в слотах. Я просто сам изучаю и возможно тебе будет это интересно взять.

В llama.cpp (и не только) ты можешь кешировать несколько контекстов параллельно. Например если у тебя lang chain, то ты можешь очень эффективно обрабатывать несколько чейнов параллельно на нескольких машинах одной и той же моделью. Твоя задача - обеспечить любой вид синхронизации между ЖД на разных локальных машинах по сети. Размер kv кеша разнится от модели к модели, но обычно не более 8 гб.

Самое интересное, что можно дать фидбек из самого приложения и удалить kv кеш файл тогда, когда ты полностью обработал lang chain.

Получается очень круто: одна машина начинает обрабатывать один чеин, а вторая - другой. После обработки машины буквально за пару секунд обмениваются кешами и теперь каждая из них может обрабатывать любой чеин дальше.

Еще в данной парадигме интересно как будет работать мультиагентность с разными моделями. Т.е. на каждой из 10 машин у нас хранится много моделей и мы решаем сколько инстансов на данную модель поднять. Например мы решили по каким-то соображениям (из фидбэка самого приложения) поднять 3 машины с одинаковым агентами и моделями. После этого эти машины начинают шарить между собой общий кеш и очень эффективно в группе обрабатывать запросы. Т.е. получается алгоритм буста в мультиагентных системах с шарингом кеша.

Sign up to leave a comment.

Articles