Как оптимизировать бота с нейросетью для нескольких пользователей?
Я пишу своего первого бота (на aiogram), в которого я встроил style-transfer нейросеть на pytorch. Проблема у меня такая: нейросеть какое-то время (секунд 40-50) работает, а затем отправляет ответ. Если в это время боту напишет пользователь, он, конечно, проигнорирует его. Посоветуйте, как лучше оформить прием фото от пользователей (может, их id в очередь записывать и доставать оттуда, или как-то еще). Спасибо.
Запускайте несколько копий вашей ИНС в пуле потоков (параллельных процессов). Количество потоков сделайте равным например числу ядер на процессоре. При получении запроса на обработку фото, помещайте ее в очередь. При освобождении любого потока с ИНС доставайте из очереди фото и отправляйте ее на обработку в освободившуюся ИНС. Так же при получении фото на обработку, зная скорость обработки одной фото, количество потоков с ИНС и количество фото в очереди вы можете производить расчет времени, когда текущий запрос от пользователя сможет быть удовлетворен, и например если время ожидания окажеться слишком большим, предложить пользователю попробовать снова через некоторое время, не устанавливая его фото в очередь.