У меня и пример из статьи не сразу вышел. Например модель брала год не из функции а из своих знаний. Или выполняла писк чанков за один запрос, а не разбивала его на подзапросы. Решил это настройкой промта.
Я у себя дома запустил на 2 x 3090. Но это чисто поиграться. Для прода надо считать производительность и подбирать соответствующее железо и ПО (модельки в частности).
Все понятно :) Непонятно почему вы изображаете обратно противоположную ситуацию :)
Возьмем ваш же пример (и немного его расширим | цифры условные):
15 слоев загружены на CPU. 0 слоев на GPU (память 0 Gb VRAM). Cкорость 10 t/s.
10 слоев загружены на CPU. 5 слоев на GPU (память 1 Gb VRAM). Cкорость 30 t/s.
(продолжим) 5 слоев загружены на CPU. 10 слоев на GPU (память 2 Gb VRAM). Cкорость 60 t/s.
И т.д.
Т.е. чем больше мы поместим слоев на GPU (и чем больше займем памяти VRAM) тем выше скорость. А у вас на первой картинке (в статье) показана обратная ситуация. Чем больше мы заняли памяти VRAM, тем МЕНЬШЕ скорость.
У вас тогда вопрос, не за счет чего MoE с cmoe быстрее, а про то, как вообще работает классическое ускорение в llama.cpp при комбинации GPU + CPU.
Мне в том же чатике сказали и для денс модели можно часть слоев принудительно выгрузить на CPU. Т.е. эта техника не только для MoE применима.
Никто ничего не подгружает динамически, особенно llama.cpp. Слои или тензоры один раз загружают и больше не гоняются туда сюда во время выполнения. Часть вычислений проводиться на GPU, та часть которая загружена в VRAM, а оставшаяся часть вычисляется на CPU.
Если это верно, то тогда снова не понятно за счет чего получается прирост...
все равно не понятно откуда увеличение скорости :)
Поспрашивал в чатиках тг. Мне объяснили так: При обычной загрузки модели на GPU, если она целиком не влазит в GPU, то ллама.цпп динамически подгружает слои во время выполнения. Т.е. постоянно гоняет слои туда сюда.
А если мы принудительно разместим часть слоев на CPU то ничего гонять не нужно. Из-за этого и прирост. Хотя сама CPU конечно медленнее.
В первом случае без cmoe мы выгружаем 24гб на GPU стандартным способом и получаем 18 t/s, во втором случае мы делаем умную выгрузку на GPU через cmoe, снижаем расход VRAM до 3 Гб и получаем 24 t/s.
А можете ткнуть носом, где написано, за счет чего происходит прирост скорости?
Три раза прочитал статью, но так и не понял. Все что понял: cmoe определяет, сколько надо выгрузить на GPU. Этим мы управляем расходом VRAM. Это понятно.
Но почему при бОльшем использовании CPU мы получаем прирост в скорости - не понятно. По логике должно быть наоборот: CPU медленней + имеются дополнительные расходы на обмен данными между CPU и GPU.
Совсем похожих на Warp не встречал. Но если вам нравится терминальные агенты, то можно Aider попробовать или что то из 4 раздела: https://habr.com/ru/articles/962046/#4
Добавил в статью. Агент и все прочее имеется. Вот только скорость генерации очень медленная. При этом иногда срывается и печатает очень быстро. Но в целом приходится ждать сильно больше чем конкурентов.
Насколько я понял, это своего обертка над агентом. У него нет функций IDE, только интерфейс для чата. Я пробовал подобные ему (Goose, например), но не стал включать в статью.
А почему их нельзя мешать? Агент это не приложение а функция. И она встроена во множество инструментов.
> Warp - это не ide, а консольный ai агент Не тянет он на консольного агента. Вот Aider это да - чисто консольный анет. А Warp имеет свое приложение, в котором многие действия можно выполнять через интерфейс.
Справедливости ради: лангчейн теперь выделяет сплитеры в отдельную библиотеку - https://reference.langchain.com/python/langchain_text_splitters/
Не очень понял вопрос. Если не ошибаюсь эта инструкция и так будет подставлена в систем промт.
Я думаю поиграться можно. С квантизацией какой-нибудь Qwen3-8B. Но в прод маловероятно.
У меня и пример из статьи не сразу вышел. Например модель брала год не из функции а из своих знаний. Или выполняла писк чанков за один запрос, а не разбивала его на подзапросы. Решил это настройкой промта.
Я у себя дома запустил на 2 x 3090. Но это чисто поиграться. Для прода надо считать производительность и подбирать соответствующее железо и ПО (модельки в частности).
Все понятно :) Непонятно почему вы изображаете обратно противоположную ситуацию :)
Возьмем ваш же пример (и немного его расширим | цифры условные):
15 слоев загружены на CPU. 0 слоев на GPU (память 0 Gb VRAM). Cкорость 10 t/s.
10 слоев загружены на CPU. 5 слоев на GPU (память 1 Gb VRAM). Cкорость 30 t/s.
(продолжим) 5 слоев загружены на CPU. 10 слоев на GPU (память 2 Gb VRAM). Cкорость 60 t/s.
И т.д.
Т.е. чем больше мы поместим слоев на GPU (и чем больше займем памяти VRAM) тем выше скорость. А у вас на первой картинке (в статье) показана обратная ситуация. Чем больше мы заняли памяти VRAM, тем МЕНЬШЕ скорость.
Мне в том же чатике сказали и для денс модели можно часть слоев принудительно выгрузить на CPU. Т.е. эта техника не только для MoE применима.
Если это верно, то тогда снова не понятно за счет чего получается прирост...
все равно не понятно откуда увеличение скорости :)
Поспрашивал в чатиках тг. Мне объяснили так:
При обычной загрузки модели на GPU, если она целиком не влазит в GPU, то ллама.цпп динамически подгружает слои во время выполнения. Т.е. постоянно гоняет слои туда сюда.
А если мы принудительно разместим часть слоев на CPU то ничего гонять не нужно. Из-за этого и прирост. Хотя сама CPU конечно медленнее.
Это не отвечает на вопрос за счет чего произошло увеличение скорости? Ну простаивает GPU память, ну и ладно...
Как использование медленного CPU и RAM увеличило скорость генерации?
А можете ткнуть носом, где написано, за счет чего происходит прирост скорости?
Три раза прочитал статью, но так и не понял. Все что понял: cmoe определяет, сколько надо выгрузить на GPU. Этим мы управляем расходом VRAM. Это понятно.
Но почему при бОльшем использовании CPU мы получаем прирост в скорости - не понятно. По логике должно быть наоборот: CPU медленней + имеются дополнительные расходы на обмен данными между CPU и GPU.
А из картинки следует, что переходите на (частичное использование) CPU (вместо GPU) и получите прирост в скорости.
Первая картинка смущает. Как модель полностью на GPU может проигрывать модели частично выгруженной на CPU?
У АПИ тоже есть свой IP и его можно заблочить. А речь именно про блокировку акаунта.
Пишет, что не работает в моем регионе.
Тогда бы не открывался бы сайт. А люди пишут. что у них именно акаунт заблокировали.
Совсем похожих на Warp не встречал. Но если вам нравится терминальные агенты, то можно Aider попробовать или что то из 4 раздела: https://habr.com/ru/articles/962046/#4
Добавил в статью. Агент и все прочее имеется. Вот только скорость генерации очень медленная. При этом иногда срывается и печатает очень быстро. Но в целом приходится ждать сильно больше чем конкурентов.
Насколько я понял, это своего обертка над агентом. У него нет функций IDE, только интерфейс для чата. Я пробовал подобные ему (Goose, например), но не стал включать в статью.
А почему их нельзя мешать? Агент это не приложение а функция. И она встроена во множество инструментов.
> Warp - это не ide, а консольный ai агент
Не тянет он на консольного агента. Вот Aider это да - чисто консольный анет. А Warp имеет свое приложение, в котором многие действия можно выполнять через интерфейс.
Спасибо за наводку. Попробовал (и дописал статью). Действительно неплохо выполняет запросы. Жалко только что агента нет.