Pull to refresh
86
0.8
Send message

а без 24 gb видеопамяти смысл есть что то ловить? на ноуте с 4050 и 6gb?

В 6gb vram влезут квантованные Gemma2-9B, Qwen2.5-7B, Llama3.1-8b.
B - это количество параметров модели в млрд, чем больше, тем лучше, но только в рамках семейства одной модели, между собой модели могут сильно отличаться по качеству.

Например, vision модель Qwen2-VL-7B при размере в 1.5 раза меньше ощутимо превосходит Llama-3.2-vision-11B.

Модели можно запускать и CPU only, небольшие модели будут работать с приемлемой скоростью, также gguf позволяет комбинировать CPU + GPU, то, что не влезло в GPU будет крутиться на CPU.

Например, Qwen2.5-7B-Instruct-Q4_K_M требует для запуска 5-6гб. Суммаризировать эту статью на CPU only занимает 60 секунд, скорость 5 t/s, на GPU скорость 30 t/s:

или совсем в идеале- на телефоне

Приложение PocketPal AI, Private AI, возможно есть и другие.

какие модели сейчас работают с доступом в интернет?

Сами модели не имеют доступа к интернету, оборудованию или файлам, этим занимаются клиенты.
Клиент ищет информацию по запросу, и подсовывает её модели, качество напрямую зависит от того, как эта часть реализована в клиенте (RAG with Web Search).

И отвечать вечером на вопросы "как сегодня прошли торги на ММВБ? отчётность каких компаний отклонилась от консенсуса аналатиков?"

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

В общем виде такое пытается делает проект perplexity - поисковая система с ИИ, работает не особо хорошо, нет ни стабильности ответа, ни точности.

Локально это реализовано в https://github.com/ItzCrazyKns/Perplexica (сложно) и https://msty.app/ (просто). Но работает еще хуже чем perplexity, так как ответ модели напрямую зависит от поискового движка, который найдет правильную информацию.

Ответ от perplexity
Локально запущенная ollama, gemma2-9b и Perplexica

Как настроить LLM на локальном сервере? Пошаговое руководство для ML-специалистов

Ну и как? Где руководство-то?

Интересно, как построить быстрый и экономичный инференс LLM? В тексте поделимся подробным гайдом и полученными результатами

Да, да, очень интересно. Где гайд-то?

Благо, есть такие open source-проекты, как saiga. По сути, это алгоритм «русификации», который применяется к известным моделям, таким как Mistral или Llama.

Текст достали из дальних чердаков палеозойской эры. Saiga, конечно, в свое время был интересным проектом, но он уже на столько устарел и даже близко не дотягивает до текущих уровней SOTA моделей.

Для тех кто всё же искал гайд и тоже не нашел его в статье, вот вам гайд:

  1. Вам нужен сервер с OpenAI-совсместивым API, это может быть: ollama, llama.cpp.

  2. Взять любой клиент, которые умеет подключаться к ChatGPT, и указать ему адрес этого локального сервера.

  3. ...

  4. Профит.

Вот и весь гайд, но даже этого нет в статье, которая называется "Как настроить LLM на локальном сервере? Пошаговое руководство".

Список актуальных моделей хорошего качества, а не тот позор из статьи:

  • Qwen2.5

  • LLama 3.1 (название 3.2 внутри содержит туже 3.1 без изменений, просто добавлена мультимодальность)

  • Mistral Large 2 (и более младшие модели Mistral Nemo, Mistral Medium)

  • DeepSeek 2.5

  • Gemma2

Есть небольшие модели для кода, чтобы поднять свой локальный copilot: Codestral, Qwen2.5-Coder-7B, DeepSeek-Coder-V2-Lite.

Модели нужны в формате gguf, квантизация подойдет Q4_K_M. Q4 - это квантизация до 4 бит, K_M означает, что важные веса внимания квантованы более высоким квантом. IQ4 - означает квантование с imatrix, считается, что они весят меньше, значит требуется меньше видеопамяти, и при этом выдают лучше качество, но требуют больше вычислительных ресурсов.

Качать их тут:

Качать нужно те, где указано instruct, а не base. instruct модели обучены на выполнение заданий и просто чата, а base нужные для самостоятельного файнтюнинга.

Если модель влезает в видеопамять, можно получить больше скорости: exl2, vllm.
Для моделей выполненных по MoE (DeepSeek, WizardLM-2), отличное ускорение через ktransformers.

Бонусом модель, которая может заменить ChatGPT-4o mini, отлично разговаривает на многих языках, включая русский, и которая влезет в 24гб видеопамяти:

Модель: https://huggingface.co/bartowski/Qwen2.5-32B-Instruct-GGUF
Попробовать онлайн: https://huggingface.co/spaces/Qwen/Qwen2.5

но все-таки тестировать будет правильней на английском

На английском результаты тоже не в пользу ламы.

Llama-3.2-vision-11B откровенно разочаровала. Модель Qwen2-VL-7B, которая в 1.5 раза меньше, работает в разы лучше. Еще у Qwen2-VL есть модель на 72B, которая уже может конкурировать с GPT-4V, и поддерживает разбор видео длиной больше 20 минут.

Картинка, запрос "Что тут написано, что изображено и в чем юмор?":

Ответ от Llama-3.2-vision-11B

Надписи на изображении написаны на русском языке, поэтому я их перевела: "Тяжелая неделька, да?" - это фраза, с которой человек на метро начинает разговор с незнакомым человеком. "Сейчас только седа, чувах" - это ответ на предыдущую фразу, который, по-видимому, означает, что сейчас он не в лучшей форме, но он будет лучше, когда сядет. Иллюстрация представляет собой сцену, в которой человек сидит на метро и разговаривает с незнакомым человеком. Внизу изображения написано "Тяжелая неделька, да?" - это фраза, с которой человек на метро начинает разговор с незнакомым человеком. Внизу изображения написано "Сейчас только седа, чувах" - это ответ на предыдущую фразу, который, по-видимому, означает, что сейчас он не в лучшей форме

Ллама плохо распознала текст (слова "чувах" и "седа"), не увидела лягушку в собеседнике, не поняла в чем вообще смысл картинки.

Ответ от Qwen2-VL-7B:

На изображении изображен мультфильм с двумя персонажами: мужчиной в костюме и зеленой лягушкой. Мужчина спрашивает: "Тяжелая неделя, да?" Лягушка отвечает: "Сейчас только среда, чувак".
Юмор заключается в том, что мужчина спрашивает о неделе, которая еще только начинается, а лягушка отвечает, что сейчас только среда, то есть неделя еще не началась. Это вызывает смех, так как ситуация выглядит абсурдной и неожиданной.

Распознание текста корректное, лягушка распознана, абстрактность тоже. Не точное описание в чем юмор, но это ближе к сути, чем то что у лламы.

Другой пример, скриншот из видео про I9-13950HX(ES), дешевый i9 мутант за пол цены, пока особо нет обзоров, поэтому приходится смотреть китайское видео и распознавать текст. Запрос в этот раз на английском "recognize the text and write it".

Llama наделала кучу ошибок, многие иероглифы распознаны не правильно, а также пропущены некоторые части, вроде "总结", а Qwen2 справилась без видимых ошибок и без пропусков. Работает и с японскими иероглифами, и с корейским алфавитом, у лламы с этим не очень хорошо.

Конечно, модели зрения не для распознания текста, но если GPT-4v с этим справляется, и даже Qwen2-VL в размере 7B справляется, можно ожидать этого и от 11B у Llama.

Попробовать новинки можно на llm арене, вторая вкладка, где выбрать конкретные модели: https://lmarena.ai/

Демо разбора видео на Qwen: https://huggingface.co/spaces/Qwen/Qwen-VL-Max

Если пропустили, можете посмотреть еще и на Qwen2.5, по многим тестам превосходит Llama3.1, а модель на 32B работает на уровне 70B: https://huggingface.co/spaces/Qwen/Qwen2.5

Еще из интересных новинок есть Molmo, модель умеет распознавать сколько времени по часам.

И в целом по бенчмаркам тоже превосходит LLama 3.2:

Аналогия не про "припрелать нейросети" ради нейросетей, а про количество мощности необходимой для запуска этих "в 100кб помещали".

Чтобы эти 100кб запустить и получить симпатичную, но всё-таки посредственную графику, нужен был ПК мощнее, чем необходимый для запуска FarCry на минималках - игры которая была признана одной из самых красивых своего времени, или Doom 3 - игра которая нещадно ставила на колени ПК того времени.

Аналогия на нейросетях переносит это в современные реалии, которая многим будет понятна более явно, чем "ПК того времени не тянули запуск такой игры в 100кб".
Можно вместо ресурсов игры хранить только текстовые промпты, игра будет весить "всего 200кб", но запуск потребует пару rtx 4090, процессор на 20 ядер и блок питания на 1000Вт, чтобы это запустилось за 30 минут, а не за 5 часов как на обычном ПК.

Эти 100кб - это данные для генерации, из которых на лету генерируются тяжелые текстуры, но на "лету" это сильно сказано для ПК тех времен. В памяти это занимает уже 300мб, а требования к процессору и железу выше чем у Far Cry, вышедшей на 2 года раньше: https://habr.com/ru/companies/ruvds/articles/780102/

Можно такую аналогию провести. Обучить и дистиллировать универсальную Stable Diffusion на какое-то малое подмножество, в итоге модель будет весить допустим 450мб, она будет генерировать текстуры и ресурсы для конкретной игры, а в самой игре будут храниться только текстовые промпты и сиды для генерации. Плюс маленькая нейросеть для апскейлинга этих текстур до 4к. Плюс логика игры допустим еще 50мб.

В итоге GTA можно упихнуть в 500мб вместо 88гб, но правда запуститься она часов через 5-10 после запуска, и будет иметь требования к процессору и диску в разы выше, чем типичные игры в 500мб. Но на ПК из 2042 это будет занимать секунды и люди будут писать "умели же в 2024 в 500мб запихнуть целую GTA 6".

Представлена языковая модель Mistral Large 2 размером 123B. Как запускать. Локальный Сopilot. Открытый конкурент GPT-4o - раздел "Как запускать локально", там различные варианты как запустить, включая видеокарты AMD.

Запуск возможен в формате CPU + GPU - на сколько памяти хватит. Для локального запуска актуальны gguf версии моделей с квантизацией, например, gemma-2-9b-it в кванте Q5_K_L нужно всего 6гб видеопамяти, что доступно на многих ПК и ноутах, а из маленьких моделей это одна из самых разумных.

Актуальные альтернативы ChatGPT (в скобочках это количество параметров в млрд, размер модели):

  • Mistral Large 2 (123B)

  • Llama 3.1 (405B, 70B)

  • Qwen2 (72B)

  • Gemma2 (27B, 9B)

Для кода:

  • Codestral (22B)

  • DeepSeek-Coder-V2-Lite (16B)

  • Yi-Coder-9B (9B)

Для описания изображений (аналог GPT-4Vision), у Qwen2-VL хорошее распознание (OCR) текста, включая китайский, японский, русский на хорошем уровне:

LLaVA мне себя показала неудовлетворительной.

Вышла Qwen2-VL-7B (есть также 2B версия), которая на порядок лучше себя показывает. Помимо картинок, она может разобрать видео.

Модель: https://huggingface.co/Qwen/Qwen2-VL-7B-Instruct
Онлайн-демо: https://huggingface.co/spaces/GanymedeNil/Qwen2-VL-7B

Ваш пример с картинкой уже описывается полноценно:

В целом распознание на достойном уровне, можно прям этот текст засунуть и попросить распознать его (так как я забыл сам текст ответа скопировать, поэтому его же и попросил распознать):

Текст

На изображении есть следующие надписи:

  1. «Ваши дети не знают про Чебурашку!» В Самарской области лишают родительских прав за отсутствие телевизора.

  2. Отца лишают родительских прав за то, что его дети слишком развиты.

На картинке изображен мальчик, который закрывает лицо руками. Он стоит на улице, перед ним виден столик с креслом и несколько людей на заднем плане.

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

Хз чо там плазма, ушел с нее когда она была жутко тормозной. Но у меня на крысе в 2024 года до сих пор детские проблемы с интерфейсом

Потому что Xfce это по сути нищевое решение, даже если оно когда-то было популярно из-за своей легкости. Сейчас по сути Cinnamon, KDE Plasma, Gnome - только эти DE могут предложить какое-то современное и актуальное UI с исправлением косяков. Даже Manjaro перенесли акцент с Xfce на KDE.

А по поводу тормознутости. Плазма тогда и плазма сейчас это разные плазмы, в том числе не без того, что KDE выбрали основой для Steam Deck, а это каждый год +несколько млн устройств, что придает ей популярности, а следовательно качества и легкости, так как портативное устройство должно работать долго и не тормозить.

Да, но не все

Ну процентов 80-90% запускается без проблем, что уже существенный аргумент. А если брать новинки или популярные, то почти все, включая крупные онлайн проекты, вроде Counter-Strike 2, Dota 2, Apex (но не Fortnite). Правда запускать надо не под голым вайном, а под протоном.

запускается без проблем под линуксом
запускается без проблем под линуксом

Линукс в целом не стоит на месте в плане игр, есть различные удобные лаунчеры для запуска, вроде PortProton, который позволяют по двойному клику exe файла запускать игру, но при этом добавляет различные фичи. Например, запуская старые игры, которые запускаются автоматически в низком разрешении, ваш рабочий стол не превратиться в кашу, игра будет запущена в отдельном окружении, и не сломает рабочий стол как это бывает с вайном и на винде.

В каком-то смысле можно сказать, что Linux для игр, Windows для работы, так как с запуском игр под линуксом лучше, чем с рабочим софтом.

Но ROCm поддерживает очень мало видеокарт AMD. И только под Linux.

Не то чтобы это важно, но не так уж и мало, включая частичную поддержку даже rx 470/580. Но, конечно, не без бубнов для некоторых моделей. И для версии ROCm 5.7, которой достаточно. Не обязательно иметь именно 6.2, когда под рукой есть AMD карта и хочется с ней что-то ускорить.

Под Linux, например, для rx 6600/6700 нужно прописывать перед запуском скрипта:
export HSA_OVERRIDE_GFX_VERSION=10.3.0
Для rx 470/580:
export HSA_OVERRIDE_GFX_VERSION=8.0.3

На Windows есть ZLUDA, которая транслирует вызовы CUDA в ROCm для Windows. Для 6800 и выше это заведется само, а для моделей ниже нужно взять скомпилированные ROCmLibs отсюда: https://github.com/brknsoul/ROCmLibs

Можно использовать как с pytorch, заменяя библиотеки вручную, и работать как будто бы работа идут с CUDA, но замененные библиотеки будут ссылаться на ROCm, либо запускать вот так:
.\zluda.exe "C:\Program Files\Blender Foundation\Blender 4.0\blender.exe"

Но pytorch_dlprim конечно, удобнее, если он не требует ничего делать, хоть и OpenCL не самое быстрое из возможных решений.

Тут не так важны ядра, так как не особо нужно много мощности для преумножения матриц, на первое место выходит пропускная способность считывания этих матриц. Кто-то пишет 24-32 ядра это максимум, дальше показатели только ухудшаются, но цифр не приводит.

А по поводу сервера, то в двух-процессорной конфигурации могут быть потери из-за NUMA, так как каждый процессор работает со своими банками памяти, и если вычисления попали на cpu1, а веса модели в других банках памяти, то это станет узким местом. Для исправления этого добавили опцию --numa, которая должна лучше распределять блоки по процам. И гиперпоточность советуют тоже отключить.

И в целом речь про очень небольшую скорость уровня 1-2 t/s для гигантских моделей (меньше чем пол слова в секунду). И не особо грандиозные 4 t/s для средне-больших моделей 123B.
Но тут даже 10 RTX 3090 не спасают ситуацию. Для больших скоростей нужна HBM память со скоростью 3.9 Тб/с (карта H100), и наличие тысячи ядер тут не так важно.

Вот тут кто-то собрал 10x3090
У него скорость на llama 70b без квантования составила 4.5 t/s, там же цифрами делится тот, кто собрал на Epyc Genoa 9374F (это 32 ядра с ddr5 в 12 канале на скорости 460 гб/с против 935 гб/с на 3090), у него скорость 2.3 t/s.

Запуск на Epyc Genoa модели Llama 3.1 405B квантованная Q5_K_M, скорость около 1 t/s.

Видео в реальном времени (чтобы оценить что такое 1 t/s, на русском будет дольше из-за токенизатора):

Скорость работы 405B с более сильным квантованием Q3_K_M на AM5 7950x + 192gb двухканал ddr5 CL30 6000 составляет 0.34 t/s.

Я вот до сих пор нигде не могу найти ответа, ну хорошо, есть у меня 16 штук 4090. Как их в общую память линкуют?

Вы выгружаете разные слои модели на разные видяхи. В случае с gguf форматом это работает в паре cpu + gpu или mutli-gpu, в случае с PyTorch Accelerate только с gpu.

При загрузке модели вы выбираете сколько слоев хотите выгрузить на GPU (если GPU несколько, то будет несколько полей сколько на какую, если видяхи разный объем видеопамяти имеют):

После этого, в консоли у вас будет отображено сколько слоев всего и сколько из них выгружено на GPU, сколько памяти занято в GPU и тому подобное:

Чем больше вы укажите размер контекста тем больше памяти потребуется сверх самих весов модели. Например, у Mistal Large2 123b (главный конкурент llama 405b, только с лучшей поддержкой русского языка и размером в 3 раза меньше, а по тестам часто превосходящий 405b) максимальный размер контекста 128k, но можно явно указать 8k, тогда потребуется меньше памяти и можно больше слоев выгрузить на GPU.

В итоге разные слои модели вычисляются параллельно на разных видяхах, что дает ускорение без создания какой-то общей памяти. И используя gguf вам не нужно много VRAM, можно использовать и обычную RAM в паре с видеокартами, но будет не очень быстро, тут вот примерные расчеты.

После того как выложили открытую Mistral Large 2 размером 123B, то LLaMa 3.1 405B стала не особо интересна. Лама большая, тяжелая, и справляется с заданиями хуже чем Large 2. А Large 2, помимо прочего, еще очень хороша в языках, включая русский.
Для тех кто пропустил: https://habr.com/ru/articles/831272/

По тестам она нигде не догнала и не обогнала. Она приблизилась, и среди открытых это вполне достойный конкурент, в отличии от других открытых.

Но в целом, есть примеры?
Я вот тестировал всякое, и не сказать, что GPT-4o сильно вырывается вперед, если не затрагивать вопросы знаний (очевидно, что модель в 123B не может вместить в себя столько же знаний, сколько 850-1700B).

Например запрос:

Напиши на js код с отрисовкой рей трейсинга. В кадре должны быть серый пол, красный шар, оранжевый куб и фиолетовая пирамида, фон должен быть светлый, как будто бы день. Они должны крутиться, на них должна падать тень и свет от зеленого и розового источников. Мышкой можно крутить сцену. Всё это в одном файле.

И обе справились с 1 раза, без правок, сразу запустилось и сцена крутиться, вертится, приближается:

А вот claude-3-5-sonnet и llama-3.1-405b не справились, обе не запускаются и выдают какие-то ошибки.

Тут речь про обычную память. Например, версия IQ2_XS, для работы ей нужно 39гб обычной памяти.

На обычной ddr4 в двухканале скорость чтения примерно равна 50гб/с, если вы будете запускать на CPU, то вы получите скорость примерно равную 0.3 t/s.
Если вы выгрузите 55 слоев из 89 на 4090, включив cache_8bit и cache_4bit чтобы высвободить еще пару гб vram, вы получите скорость примерно 1.14 t/s.
Скорость стала в 3 раза выше, но бутылочным горлышком является ddr4 память и 34 слоя крутящихся на ней.

Если бы все слои удалось перенести на GPU, то скорость бы выросла на порядок, так как скорость памяти в 4090 равна 1000 гб/c, что в 20 раз быстрее.

Поэтому, по цене одной 4090 можно купить серверную материнку, два дешевых эпика и горсть серверной недорогой ddr4 памяти общим объемом 512гб. В 16 канале это будет работать на скорости 250гб/с (тут обсуждение на эту тему).

От 26 гб до 130гб, смотря какое квантование выбрать. Модель в формате gguf мапится в память, поэтому размер файла примерно равно объем занимаемой памяти. Поэтому просто смотрите размеры gguf и это и будет объем занимаемой памяти.

Единственное что важно - это пропускная способность памяти.

Допустим у вас 512гб памяти, память работает на 50гб/с (2х канальная ddr4), а модель имеет размер 500гб, то вы получите скорость 0.1 токен в секунду, так как веса модели будет обходиться 10 секунд при такой скорости и таком размере. Если модель весит 50гб, и память 50гб/с, то вы получите 1 t/s и т.д.
Именно поэтому в профессиональных GPU не DDR6, а HBM, достигающая 3-4 Тб/с у H100.

1
23 ...

Information

Rating
1,651-st
Registered
Activity