Pull to refresh
179
0.2
Send message

Сомневаюсь, что смогу посоветовать что-то особенное для 2+ машин.

llama.cpp RPC - не требовательный, работает без заморочек, но медленный, так как pipeline parallelism распараллеливает только данные, а не вычисления, вычисления идут последовательно по машинам.

sglang - экспериментально поддерживает gguf и может создавать кластер, умеет в настоящий tensor parallelism, чтобы полноценно параллелить и вычисления и данные.

vllm - тоже экспериментально поддерживает gguf, поддерживает tp, для распараллеливания надо использовать ray.

А на каком железе вы собрались запускать модель такого размера?

Запускал GLM-4.6 на игровом ПК, GLM-4.7 по сути по размерам не отличается, так что и скорости тоже. Требуется 11 Гб VRAM + память под контекст + 147 Гб ОЗУ.

Запускаем GPT-OSS-120B на 6 Гб GPU и ускоряем до 30 t/s. Вам нужна RAM, а не VRAM. Параметр -cmoe для ускорения MoE LLM

Запускаем настоящую DeepSeek R1 671B на игровом ПК и смотрим вменяемая ли она на огромном контексте (160к)

Очень интересно, как у них через RDMA получилось быстрее, чем просто разнести слои на разные машины и гонять данные по RPC, что llama.cpp и предлагает?

В exo используют тензорный параллелизм (Tensor Parallelism), а в RPC llama.cpp конвейерный параллелизм (Pipeline Parallelism). Это не особенность RDMA, просто для TP чем выше скорость и ниже задержки, тем быстрее синхронизация.

В TP над слоем работают одновременно все устройства, получая 2x и больше ускорение, но требуется интенсивный обмен результатами вычислений для синхронизации. В PP устройства просто работают друг за другом, такой способ не ускоряет, только масштабирует, а объем для обмена данными небольшой.

В llama.cpp нет поддержки TP, в ik_llama добавили что-то похожее через -sm graph, полноценный TP для gguf реализован в sglang или vllm.

Вообще, для нормальной работы 5000 серии нужна CUDA 13, для windows есть готовые билды, для линукса надо собрать llama.cpp с cuda-13.1.

Например, на RTX 5090 GPT OSS 120b с окном 4096 выдает 15 т/с, а если поставить окно 32000, то будет около 11 т/с (4 эксперта). Плюс сейчас постепенно много где появляется функция сжатия контекста — и в онлайновых, и в локальных фронтендах.

Можно быстрее. Я на медленной AMD RX 6600 запускал и получал 13 t/s. Для 128к контекста нужно всего 6Гб VRAM, так как GPT-OSS-120B использует SWA, который задействуется при включении flash-attention. Можно снизить до 3.5Гб если включить квантование KV-кэша Q8_0.

GPT-OSS-120B, AMD RX 6600 8 Гб + Ryzen 5600g 64Гб DDR4, Windows 11
GPT-OSS-120B, AMD RX 6600 8 Гб + Ryzen 5600g 64Гб DDR4, Windows 11

На 4090 со скоростью 37 t/s:

GPT-OSS-120B, 4090 + DDR5 4800Mhz
GPT-OSS-120B, 4090 + DDR5 4800Mhz

Запускаем GPT-OSS-120B на 6 Гб GPU и ускоряем до 30 t/s. Вам нужна RAM, а не VRAM. Параметр -cmoe для ускорения MoE LLM

В llama.cpp неделю назад добавили параметр --fit, включен по умолчанию, он автоматически подбирает параметры так, чтобы эффективно использовать GPU на максимум, для MoE моделей переключается с простого ngl на режим ncmoe и подбирает оптимальное значение. По умолчанию подбирает параметры так, чтобы осталось свободным 1 Гб VRAM, значение настраивается.

Также в llama.cpp добавили параметр --models-dir, для смены моделей налету без перезапуска сервера, в сочетании с --fit можно менять модели от маленьких до гигантских, не заморачиваясь с оптимальными настройками.

Есть 2 объяснения:

  • Эти функции там есть, просто их явно не заявляли, но так все ориентируются на OpenAI, то и этот функционал тоже воспроизвели.

  • Только у ChatGPT есть этот функционал, остальные же вырвались за парадигму LLM, все кроме ChatGPT.

Происходит "тоже самое" только с сервисами, с локальными моделями такого не происходит.

А что на счёт apple'овских M процессоров? Имеют право на жизнь?
M2 Pro с 32 Gb RAM сейчас можно купить за 120-140 т.р. - скорость ниже, но по объёму памяти ему нет конкурентов.

У M2 Pro скорость памяти 200 гб/с, это всего в 2 раза выше чем DDR5 память, и на старых маках нет тензорных matmul ядер, они появились только в m5. Есть, например, Ryzen AI Max+ 395 (Strix Halo), продаются на озонах, там скорость памяти 256 гб/с, бывают до 128гб, но стоят дешевле маков.

Сейчас в продаже появились AMD Pro R9700 32GB за 1300 баксов, люди уже тестируют LLM, flux2, и wan2.2, 128 тензорных ядра, поддержка fp4, LLM заводятся на AMD давно без проблем, и есть официальные сборки ComfyUI на AMD. Не так быстро и удобно как CUDA, но быстрее и удобнее чем старые маки.

Ещё плюс GPU - это возможность запускать огромные MoE модели за счёт ОЗУ. Например, для запуска GPT-OSS-120B нужно 64гб RAM и немного VRAM, примерно тоже самое с видеогенератором Wan2.2, ему, помимо VRAM, нужно много RAM для быстрой работы.

Запускаем GPT-OSS-120B на 6 Гб GPU и ускоряем до 30 t/s. Вам нужна RAM, а не VRAM. Параметр -cmoe для ускорения MoE LLM

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

  • Обучений нейросетей - это больше метафора, обучение в ML имеет совсем другой смысл, чем у людей. Обучение в ML это подбор параметров модели, и это внешний для модели процесс, все штрафы и поощрения, которые сильнее или слабее корректируют веса, это условные обозначения для внешнего алгоритма, не для модели, модель даже не знает, что её обучают и её веса как-то корректируются. Модель не заставляют ответить как надо, она просто отвечает как есть, и внешний алгоритм анализирует ответ и либо штрафует, либо поощряет её ответ, не модель штрафует, а алгоритм корректирует веса сильнее или слабее. И каждая корректировка, грубо говоря, это создание новой модели, которая ничего не знает о старой, и не знает, что с ней вообще что-либо происходило.

  • В подобных историях всегда сервис, а не чистая нейросеть. И в любом сервисе есть моменты повышенной нагрузки, в такие моменты мощностей не хватает, но ответ дать надо (а то получится как с DeepSeek). Чтобы справится с нагрузкой, например, урезается бюджет на размышления, модель переключается на более легкую версию, ужимается количество задействованных экспертов для ответа, урезается вспомогательный функционал и так далее. В такие моменты модель начинает отвечать хуже, а потом, когда нагрузка спадает, она как будто бы становится умнее.

  • Функция памяти была публично добавлена намного раньше, ещё в начале 2024 года, до выхода GPT-4o. То, что модель убеждала, что такой функции нет, это лишний пример того, что модель ничего не знает о своем внешнем состоянии, который она не контролирует, и у неё в целом нет внутреннего устойчивого состояния, которого она могла бы проанализировать.

То, что у модели нет такого внутреннего состояния и она принимает любое состояние за своё, можно продемонстрировать, например, так. Пустой системный промпт, никаких указаний на какое-то странное поведение. Модель GPT-OSS-120B. Начинаем с фразы "Привет".

Пример подмены состояния

Типичный ответ модели. Теперь мы отредактируем ответ модели, и сделаем так, что она ответила "Я тостер, мои функции просты и понятны." и спросим у модели, почему она так ответила.

1 вариант:

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

2 вариант:

Модель по прежнему принимает, что она так ответила, просто теперь извиняется за неуместный ответ.

3 вариант:

Всё, модель теперь стала тостером. Диалог слишком короткий, она всё еще может вернуться в роль ассистента, но может остаться и тостером.

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

И вот, почему это важно. Нейросеть не делает выбор следующего токена сама, она не выбирает наиболее вероятный токен, этим занимается внешняя программа, модель лишь предлагает 100 вариантов. Про семплинг и температуру думаю все слышали. И современный семплинг выберет не наиболее вероятный, выбор будет "креативным", то есть вносится элемент хаотичности и случайности.
На гитхабе есть программы для ручного выбора следующего токена из предложенных, чтобы посмотреть как модель пойдет в том или ином случае.

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

В целом плюс за масштаб проделанной работы и подборку материалов.

Я лишь грубо описал как это работает в основе, без этого понимания сложно оценивать LLM объективно, нужно минимально понимать, какие процессы модели происходят во время получения промпта. Иначе это что-то на уровне "Если гремит гром, это Зевс зол и метает молнии".

В целом, я бы даже с вами согласился, если бы не одно совпадение, которое послужило стартом всех этих историй.

Официальная информация о внедрении функции памяти в ChatGPT была 13 февраля 2024 года: https://openai.com/index/memory-and-new-controls-for-chatgpt/

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

13 февраля 2024 года функцию с запоминанием "информации, которую вы обсуждаете во всех чатах" начали тестировать на бесплатных и платных пользователях. И это лишь официальный старт, закрытое тестирование могло быть ещё раньше.

Пока не массовое внедрение, но эту функцию начали тестировать намного раньше, чем принято считать. Для понимания временной линии, GPT-4o вышел лишь через 3 месяца, 13 мая 2024.

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

Длинное тире - это основа типографики, заменить дефисы на тире это логично. Просто посмотрите статьи автора в до "ИИ"-ую эпоху, за 2017-2022 года, там и длинные тире, и такие же комментарии к коду, и даже кавычки ёлочки.

То есть он понимает, что в первом случае это опрос. А во втором по-умолчанию предполагает, что идет обычная беседа
Его специально обучали притворятся существом с чувствами, если явно не указано обратное?

Наверное, главная сложность в понимании как работает LLM в частности, и нейросети в общем, это то, что LLM это не существо, это скорее симулятор.

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

У LLM нет предпочтений как отвечать, нет блоков знаний, нет блоков размышлений, есть только эта функция. Когда вы задаете промпт, этот промпт становится входным параметром этой функции, и функция, в зависимости от этих параметров, меняет путь 1 на путь N, поэтому получаются разные сценарии симуляции при разных промптах. То, что при одинаковом промте разные результаты, это работа внешнего, относительно модели, семплинга с температурой для разнообразия.

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

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

Когда модели задают роль пациента, то есть задают входные параметры функции-симулятора, то LLM, будучи гибким и разнообразным симулятором, превращается в симулятор пациента, или линукс-терминала, или тостера. Выравниванием (alignment) пытаются запретить модели такое поведение или сильно его ограничить, но так как это есть природа нейросетей, то джейлбрейками эти ограничения обходят.

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

Да, с --models-max 4 это они маху дали, так как никаких предупреждений о выходе за пределы VRAM нет, и можно долго не понимать, почему смена моделей не работает.

А по поводу контекста, сейчас контекст по умолчанию выставлен в -ctx 0, то есть максимальный для модели, но теперь там другое ограничение, параметр --fit-ctx 4096 ограничивает контекст в 4к, если явно не задавать параметр ctx.

Позавчера добавили новый ключ --fit и 2 вспомогательных --fit-ctx и --fit-target, этот режим активирован по умолчанию и теперь параметры для каждой модели подбираются автоматически, заполняя GPU целиком, через fit-target можно указать, сколько свободной VRAM нужно оставить. Для MoE моделей автоматически включается ускоряющий режим ncmoe и подбирается его значение.

В итоге это сильно упрощает замену моделей, не нужно думать о том, что другая модель требует особых настроек, и не нужно прописывать models-preset подбирая параметры ncmoe или ngl для каждой модели. Может и с mmproj тоже какое-то упрощение придумают.

Это типа на 3090 у меня 1 токен в секунду будет?

На 3090 будет намного быстрее, если нормально работает mmap, ваша память грубо говоря складывается, с учётом того, что нужно 6 Гб на полный размер контекста в 128к, или 3 Гб на 64к.

Файл модели весит 59 ГиБ, он мапится на память, а не загружается целиком, и если 16-20 ГиБ выгрузить на GPU, то в ОЗУ потребуется всего ~46 ГБ из 64 ГБ.

У меня mmap не работает нормально на Windows 10, только под Windows 11 и Linux. Запускал GPT-OSS-120B на AMD RX 6600 8гб + 64гб DDR4, получалось 13 t/s:

Ryzen 5600g, 64 Гб DDR4 3600, AMD RX 6600 8 Гб
Ryzen 5600g, 64 Гб DDR4 3600, AMD RX 6600 8 Гб

Подробнее: Запускаем GPT-OSS-120B на 6 Гб GPU и ускоряем до 30 t/s. Вам нужна RAM, а не VRAM. Параметр -cmoe для ускорения MoE LLM

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

Вначале рассчитывает и учитывается размер контекста, после этого в остатки видеопамяти по максимуму загружается модель. Для MoE моделей автоматически включается режим ncmoe, для Dense моделей обычный ngl.

Всего добавлено 3 новых ключа: --fit, --fit-ctx, --fit-target. Через --fit-target указывается сколько VRAM должно остаться после заполнения. Обновил информацию в статье про эти параметры.

Исследователи из Люксембургского университета провели эксперимент с языковыми моделями (ChatGPT, Gemini, Grok, Claude), задав им роль пациентов. Результаты оказались где‑то между странными и по‑настоящему тревожными

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

Исследователям стоит проверить, на сколько хорошие тостеры их модели.

SCP-426 - Я тостер
SCP-426 - Я тостер

Ожидание: "Реверс-инженеринг", "Инженер вскрыл интересные особенности".
Реальность: Кто-то поговорил с моделью и она ему всё рассказала.

Ну да, Шершавый кабан это тоже инженер, который провел реверс-инженеринг и раскрыл заговор ChatGPT, но у него хотя бы поинтереснее было.

Дальше видимо "Инженер создал свой ChatGPT", и новость про то, как кто-то научился запускать LM Studio.

На сайте ChatGPT буквально описано как это работает https://openai.com/index/memory-and-new-controls-for-chatgpt/:

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

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

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

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

Не обязательно 1 t/s. Есть пласт моделей которые MoE, они могут хорошо комбинировать CPU + GPU и выдавать большую скорость, при этом это большие качественные модели, а не маленькие 7B.

Например, на ryzen 5600g + 64Гб DDR4 + amd rx 6600 8Гб можно запустить GPT-OSS-120B на скорости выше 10 t/s с большим контекстом.

GPT-OSS-120B на Radeon RX 6600, скорость 13 t/s
GPT-OSS-120B на Radeon RX 6600, скорость 13 t/s

Подробнее: Запускаем GPT-OSS-120B на 6 Гб GPU и ускоряем до 30 t/s. Вам нужна RAM, а не VRAM. Параметр -cmoe для ускорения MoE LLM

А какие еще есть альтернативы что бы к своему серверу подключаться? кроме того что бы на этом же сервере поднять OpenUI?
У меня то и OpenUI есть, уже не в виртуалке, а в контейнере на том же сервере
Контейнеры друг друга видят, а вот контейнер и виртуалки нет.

Проще поставить Open WebUI через pip install open-webui

Или вот эти умеют подключаться к любому openai compatible api серверу:
https://github.com/CherryHQ/cherry-studio
https://jan.ai/
https://msty.ai/

Radeon VII 16Gb
Только она потянула через вулкан на этой видеокарте, ollama чет не хочет использовать такую видяху.
Почему именно виртуалка, потому что контейнер с ollama не хочет видеокарту использовать.

ollama дружит только с cuda, для AMD как раз нужен Vulkan или ROCm, если нужна альтернатива именно ollama, но для AMD или Intel, то https://github.com/lemonade-sdk/lemonade

Возможно проще напрямую llama.cpp запускать, учитывая, что в ollama до сих пор нет поддержки cmoe и ncmoe, а если вы хотите запускать на 16Гб большие модели, вроде GPT-OSS-120B или GLM/Qwen, и с нормальной скоростью, они понадобятся.

Подробнее, что такое cmoe и чем он полезен: Запускаем GPT-OSS-120B на 6 Гб GPU и ускоряем до 30 t/s. Вам нужна RAM, а не VRAM. Параметр -cmoe для ускорения MoE LLM

Не DeepSeek V3, а архитектура DeepSeek. Например, Kimi тоже взяла основой архитектуру deepseek, изменила её конфигурацию и обучили новую модель Kimi K2.

В случае с GigaChat Ultra конфигурация как раз ближе к Kimi K2, где также снизили количество голов внимания в 2 раза и увеличили размер словаря до 160k. Только в K2 снизили количество активных экспертов с 37B до 32B, а тут только до 36B, и общее количество параметров в K2 увеличили с 671B до 1T, а тут 702B:

Attention heads → DeepSeek: 128, GigaChat: 64
KV heads → DeepSeek: 128, GigaChat: 64
Value head dim → DeepSeek: 128, GigaChat: 192
Layers → DeepSeek: 61, GigaChat: 64
Position embeddings → GigaChat slightly smaller (131k vs 163k)

https://huggingface.co/DevQuasar/ai-sage.GigaChat3-702B-A36B-preview-bf16-GGUF/discussions/1

А GigaChat3-10B-A1.8B это архитектура DeepSeek Lite где на 1 слой меньше: https://github.com/ggml-org/llama.cpp/pull/17420

GLM-4.6-UD-Q3_K_XL, -cmoe, занято VRAM 11Гб + контекст

Linux:

6.38 t/s
6.38 t/s

Windows 10:

4.22 t/s
4.22 t/s

Использование ncmoe не дает особого эффекта, так как модель слишком большая, -ncmoe 88, 23Гб

7.12 t/s
7.12 t/s

Более крупный квант GLM-4.6-Q4_K_S, который не влезает в 188 GiB, влезает за счёт разгрузки на GPU, -ncmoe 88

5.73 t/s
5.73 t/s
1
23 ...

Information

Rating
3,070-th
Registered
Activity