Масштабирование Saiga2 70B Q4
Подскажите, что можно использовать для масштабирования больших языковых модлей (LLM) в продакшене для цели рапараллеливания запросов?
Описание ситуации:
Пытаемся масштабировать Saiga2 70B Q4, необходимо обсепечить параллельность работы 30 клиентов при использовании чат-бота.
Аппаратное оснащение: 4 RTX 4090 на каждый из трёх инстансов (физических машин).
Для распараллеливания использовали uvicorn+fastapi, но не взлетело. При запуске каждого воркера требуется 11 Гб с каждой карты дополнительно (столько весит вся модель + эмэддинги для векторного хранилища). Соответственно, 30 воркеров запустить невозможно при таком подходе.
Так в чем проблема?
Так в чем проблема?
uvicorn на каждый отдельный воркер подгружает модель заново;
gunicorn позволяет загрузить модель в несколько воркеров один раз, но при этом инференс никакой модели недоступен, ошибка:
RuntimeError: Cannot re-initialize CUDA in forked subprocess. Ошибка: "To use CUDA with multiprocessing, you must use the 'spawn' start method about accelerate."
https://github.com/huggingface/text-generation-inference
Не для GGUF версии, конечно.