Вчера вечером я включил опцию «AI embeddings enabled», и процесс заполнения данных (backfill) выполнялся в фоновом режиме. Сегодня я включил опцию «AI embeddings semantic search enabled», и загрузка процессора постоянно достигала 100%, при этом образовалась огромная очередь LOW в Sidekiq. Поиск на сервере полностью перестал работать.
Я отключил семантический поиск, и через несколько минут загрузка процессора вернулась к норме, а вся очередь была очищена.
Мне бы очень хотелось узнать больше о вашем профиле «железа», если вы используете самохостинг. Я тоже думал о том же для своих серверов, но не уверен в последствиях. Этот anecdotal опыт подсказывает мне, что стоит пока подождать или подготовить более продуманный план.
Время выполнения Jobs::GenerateEmbeddings должно составлять секунды, так как вы делаете API-запрос к сервису эмбеддингов для получения данных. Этот график нормален: он просто показывает, что операция занимает время, поскольку работу выполняет другой GPU в облаке.
Высокая загрузка CPU очень неожиданна. Возможно, ваш сервер PostgreSQL изначально был сильно перегружен, и вставка около 1000 чисел подряд оказалась достаточной, чтобы его нагрузить.
Нам нужно гораздо больше данных для диагностики: какие характеристики у сервера? Что именно показывают графики CPU, какой процесс потребляет ресурсы, какой сервис эмбеддингов вы используете и так далее…
Я вижу, что вы поделились только графиком длительности работы Sidekick, и он показывает, что после включения эмбеддингов Discourse корректно выполнил их обратное заполнение.
Можете ли вы предоставить больше информации о вашей конфигурации? Кто является поставщиком эмбеддингов? Это сторонний API или вы также размещаете его самостоятельно? Сколько у вас тем? Какие характеристики у базы данных?
Я использую сервер DigitalOcean с 16 ГБ оперативной памяти и 4 виртуальными процессорами Intel.
Использую Open AI text-embedding-3-small.
Загрузка процессора обычно составляет около 50% или меньше. Вот как это выглядело после включения семантического поиска. У нас около 2,5 млн сообщений и 250 тыс. тем. Я не включил генерацию эмбеддингов для личных сообщений, иначе пришлось бы добавить ещё 1 млн сообщений и 100 тыс. тем.