Я использую Kaldi для декодирования множества аудио-сэмплов каждый день. У меня есть план, что будет несколько декодеров, работающих параллельно, выполняющих декодирование на одной и той же языковой модели. Для этого было бы неплохо, если бы я мог использовать одну языковую модель, которая загружается в память несколькими декодерами. Модель, которая у меня сейчас есть, имеет 1 ГБ на диске и использует около 3 ГБ в памяти, и было бы здорово, если бы я мог сохранить память, используя ее еще раз.
Кто-нибудь когда-нибудь думал о такой вещи? Это выполнимо?
Любые другие идеи об этом подходе?
Вам не нужно несколько процессов, вы просто делитесь объектом fst между потоками. Это постоянно, поэтому нет необходимости защищать его. Вы создаете декодер с указателем fst в каждом работнике, декодеры являются отдельными для каждого потока. Ты можешь использовать io_service для обработки запросов.
Других решений пока нет …