@emitrokhin

Как обеспечить многопользовательскую поддержку в LLM?

Кто сталкивался с concurrent доступом/запросом к текстовой языковой модели? Поясню, что я имею в виду: есть желание обеспечить доступом к текстовой модели нескольким десяткам человек. Какие наборы инструментов это помогут сделать? Из того, чем владею (опыт скромный), это
мак на arm,
llama.cpp,
сервер, что умеет попросить подождать, пока запрос исполняется,
и ui.

Ну с точки зрения сервера вопросов нет - поставит в очередь, и кто надо, дождется ответа. Но вот не могу понять, как в той же llama.cpp запускаться в несколько потоков, чтобы можно было много разных промптов от разных людей в разных контекстах обрабатывать.
  • Вопрос задан
  • 381 просмотр
Решения вопроса 1
@emitrokhin Автор вопроса
Друзья, всем спасибо за ответы. Как мне удалось выяснить, llama.cpp имеет серверный режим, который может обеспечить на одной машине параллельную обработку промптов.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
2ord
@2ord
С точки зрения движка LLM есть один ресурс, который нужно делить на всех клиентов, переключаясь с одного на другого по обработке каждого вопроса. Поэтому движок должен уметь получать контекст пользователя, обрабатываемого в данный момент. Получив его, отправить запрос движку, подождать окончания ответа, а затем поставить текущий сеанс на паузу.
Можно доработать схему, работая с пулом доступных движков.

Добавлено
Получив его ...
имеется в виду, веб-приложением.

От движка требуется способность переключаться между сеансами контекстов.
Ответ написан
Комментировать
Noizefan
@Noizefan
что то вы все всё намудрили, запросы, ридонли, контексты
можешь запустить несколько инстансов - запускай, пусть разгребают очередь
не можешь - запускай один, и пусть он же и разгребает
в чем проблема? тут нет ничего нового, это обыкновенная CLI-программа

например пришло два промпта, и одновременно два и обрабатывается сразу на одной машине. Вот например та же LLaMA.cpp

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

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

вот тебе принципиальная схема на примере чего-то другого. слева - UI, центр - очередь запросов на генерацию, справа - инстансы, слово "matlab" просто мысленно замажь
image001.jpg
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы