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/
Если пропустили, можете посмотреть еще и на 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".
Запуск возможен в формате 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) текста, включая китайский, японский, русский на хорошем уровне:
Qwen2-VL-7B (заявлено понимание видео больше 20 минут)
Ваш пример с картинкой уже описывается полноценно:
В целом распознание на достойном уровне, можно прям этот текст засунуть и попросить распознать его (так как я забыл сам текст ответа скопировать, поэтому его же и попросил распознать):
Текст
На изображении есть следующие надписи:
«Ваши дети не знают про Чебурашку!» В Самарской области лишают родительских прав за отсутствие телевизора.
Отца лишают родительских прав за то, что его дети слишком развиты.
На картинке изображен мальчик, который закрывает лицо руками. Он стоит на улице, перед ним виден столик с креслом и несколько людей на заднем плане.
Юмор в этом изображении заключается в контрасте между текстом и изображением. Текст говорит о том, что родителей могут лишить родительских прав за отсутствие телевизора, а изображение показывает мальчика, который закрывает лицо руками, возможно, из-за стеснения или стыда. Этот контраст создает комический эффект.
Хз чо там плазма, ушел с нее когда она была жутко тормозной. Но у меня на крысе в 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.
Я вот до сих пор нигде не могу найти ответа, ну хорошо, есть у меня 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.
Редактор как-то на хабре по особенному заглючил, как и комментарий выше про дубли. Я удалял этот блок полностью, так как он тут не нужен, но вся эта мешанина всплыла после сохранения.
Уже не мало моделей которые явно обучались на русском датасете (aya-23, command-r+, qwen2, nemotron4 и так далее), но они не дотягивают до Sonnet 3.5. Или gpt-4o, несмотря на большой процент русский текстов в датасете, она не пишет стихи лучше, чем Sonnet 3.5.
Я привел Nemotron-4, которая размером почти такая же как llama 3.1, как раз потому, что она обучалась на 50 естественных языках, включая русский, и это не дало ей такое понимание фразеологизмов, какое есть у Llama 3.1 (не полное понимание "разбегаться" и "вылупляться"), которая, по вашим словам, ограничивала датасет.
Та же история с моделями, которые файнтюнили на русском датасете, вроде Saiga, они не становятся сильно лучше в русском языке после этого. Поэтому я склоняюсь к другим причинам почему Sonnet 3.5 лучше, либо у Sonnet 3.5 реально хороший датасет, которого нет ни у кого.
Не исключено, что они на нормальном уровне знают русский язык, просто либо файнтюн на инструкции или системный промпт не задан быть приятным собеседником, что есть у Sonnet 3.5.
Так-то, и llama3.1 405B и nemotron4 340B вполне не плохо отвечают и говорят:
Toppy-m это файнтюн Mistral 7b. Она считается немного устаревшей. Попробуйте gemma2-9b, тоже влезет в 3060. Ну и llama 3.1 8b уже вышла официально, скачать ее теперь не проблема.
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) текста, включая китайский, японский, русский на хорошем уровне:
Qwen2-VL-7B (заявлено понимание видео больше 20 минут)
Pixtral 12b
Хордовая диаграмма.
Вышла Qwen2-VL-7B (есть также 2B версия), которая на порядок лучше себя показывает. Помимо картинок, она может разобрать видео.
Модель: https://huggingface.co/Qwen/Qwen2-VL-7B-Instruct
Онлайн-демо: https://huggingface.co/spaces/GanymedeNil/Qwen2-VL-7B
Ваш пример с картинкой уже описывается полноценно:
В целом распознание на достойном уровне, можно прям этот текст засунуть и попросить распознать его (так как я забыл сам текст ответа скопировать, поэтому его же и попросил распознать):
Текст
На изображении есть следующие надписи:
«Ваши дети не знают про Чебурашку!» В Самарской области лишают родительских прав за отсутствие телевизора.
Отца лишают родительских прав за то, что его дети слишком развиты.
На картинке изображен мальчик, который закрывает лицо руками. Он стоит на улице, перед ним виден столик с креслом и несколько людей на заднем плане.
Юмор в этом изображении заключается в контрасте между текстом и изображением. Текст говорит о том, что родителей могут лишить родительских прав за отсутствие телевизора, а изображение показывает мальчика, который закрывает лицо руками, возможно, из-за стеснения или стыда. Этот контраст создает комический эффект.
Потому что 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 для работы, так как с запуском игр под линуксом лучше, чем с рабочим софтом.
Не то чтобы это важно, но не так уж и мало, включая частичную поддержку даже 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.
Это https://github.com/oobabooga/text-generation-webui
Вы выгружаете разные слои модели на разные видяхи. В случае с 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).
Например запрос:
И обе справились с 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.
Редактор как-то на хабре по особенному заглючил, как и комментарий выше про дубли. Я удалял этот блок полностью, так как он тут не нужен, но вся эта мешанина всплыла после сохранения.
Уже не мало моделей которые явно обучались на русском датасете (aya-23, command-r+, qwen2, nemotron4 и так далее), но они не дотягивают до Sonnet 3.5. Или gpt-4o, несмотря на большой процент русский текстов в датасете, она не пишет стихи лучше, чем Sonnet 3.5.
Я привел Nemotron-4, которая размером почти такая же как llama 3.1, как раз потому, что она обучалась на 50 естественных языках, включая русский, и это не дало ей такое понимание фразеологизмов, какое есть у Llama 3.1 (не полное понимание "разбегаться" и "вылупляться"), которая, по вашим словам, ограничивала датасет.
Та же история с моделями, которые файнтюнили на русском датасете, вроде Saiga, они не становятся сильно лучше в русском языке после этого. Поэтому я склоняюсь к другим причинам почему Sonnet 3.5 лучше, либо у Sonnet 3.5 реально хороший датасет, которого нет ни у кого.
Не исключено, что они на нормальном уровне знают русский язык, просто либо файнтюн на инструкции или системный промпт не задан быть приятным собеседником, что есть у Sonnet 3.5.
Так-то, и llama3.1 405B и nemotron4 340B вполне не плохо отвечают и говорят:
Toppy-m это файнтюн Mistral 7b. Она считается немного устаревшей.
Попробуйте gemma2-9b, тоже влезет в 3060.
Ну и llama 3.1 8b уже вышла официально, скачать ее теперь не проблема.