Перейти к содержанию
modelium.
Начать с задачи
←

Open WebUI: локальный reranking для поиска по документам

Локальный reranking в Open WebUI пересортировывает уже найденные фрагменты документа по соответствию вопросу; сам по себе он не добавляет в поиск отсутствующие документы. Для него нужны загруженная база знаний, локальная embedding-модель и отдельный reranker; в рассматриваемом коде Open WebUI reranking включён в ветку hybrid search. Сравнивайте фрагменты до и после на одном наборе русских вопросов, сохраняя остальные настройки одинаковыми.

Срез на 30 сентября 2026 года: документация Open WebUI закреплена по commit 805f46f, код — по v0.11.4 (8bd8b4f), карточка BAAI — по ревизии 953dc6f. Команды и поведение ниже выведены из этих исходников, а не из собственного прогона Modelium. s1 s4 s7

Когда нужен второй этап поиска?

RAG сначала ищет подходящие части загруженных документов, затем передаёт их текст модели как контекст. В Open WebUI Knowledge Base можно прикрепить к чату или модели; путь обработки документа зависит от выбранных extraction, embedding и inference-провайдеров. s2 s3

Reranker получает пару «вопрос — найденный фрагмент» и оценивает соответствие, меняя порядок уже отобранных кандидатов; карточка BAAI отличает эту задачу от генерации embedding. Поэтому настройка reranker не исправит ошибку извлечения текста из PDF и не найдёт документ, которого вообще нет среди кандидатов. Последний вывод — следствие двухступенчатого конвейера, а не обещание качества. s5 s7

В закреплённой версии API /query/doc вызывает query_doc_with_hybrid_search и передаёт RERANKING_FUNCTION лишь при включённом ENABLE_RAG_HYBRID_SEARCH. При выключенном hybrid search маршрут использует обычный query_doc без этой функции. Это важно: записать имя reranker в конфигурацию, не включив соответствующую ветку поиска, недостаточно для данного маршрута. Другие пути и будущие релизы проверяйте отдельно. s4

Что подготовить для локального сценария?

Нужны установленный Open WebUI, подключённая локальная языковая модель, Knowledge Base с тестовыми документами, модель embeddings, а также отдельная локальная модель для reranking. Настройка одного из этих компонентов не делает остальные локальными автоматически: тип провайдера извлечения, embeddings и генерации проверьте отдельно. s3 s1

Для пробного многоязычного reranker можно рассмотреть BAAI/bge-reranker-v2-m3: авторская карточка помечает его как multilingual, а поле лицензии — apache-2.0. Это не независимое доказательство качества на русском, не обещание минимального объёма RAM/VRAM и не рекомендация под любую нагрузку. Сверьте условия использования и качество на своих документах. s7

В документации RAG_RERANKING_ENGINE пустой по умолчанию и означает локальный Sentence-Transformers CrossEncoder; значение external направляет данные в внешний API и требует полного URL. Код локального загрузчика создаёт sentence_transformers.CrossEncoder; сборка Slim не предоставляет этот путь для нового локального reranker. Для закрытого контура не подменяйте локальный путь внешним без проверки передачи данных. s1 s4

Как настроить воспроизводимое сравнение?

  1. В отдельном тестовом экземпляре подготовьте несколько документов с заведомо различимыми фактами и записанный набор русских вопросов. Сначала проверьте, что нужный фрагмент вообще появляется среди кандидатов — иначе меняйте извлечение, индексацию или первый этап поиска, а не reranker. Это протокол проверки, а не отчёт о выполненном тесте. s3 s5
  2. Зафиксируйте неизменные документы, embedding-модель, настройки поиска и набор запросов. В админских настройках Retrieval/RAG настройте гибридный поиск и количество кандидатов, оставив RAG_RERANKING_MODEL пустым для контрольного прогона. Ключи документации: ENABLE_RAG_HYBRID_SEARCH, RAG_TOP_K, RAG_TOP_K_RERANKER, RAG_RELEVANCE_THRESHOLD. Последний порог лучше оставить 0.0 на первом сравнении, чтобы он не скрывал кандидатов. s1 s4
  3. В том же экземпляре укажите RAG_RERANKING_MODEL=BAAI/bge-reranker-v2-m3 и пустой RAG_RERANKING_ENGINE — по документации, после предварительной загрузки/проверки разрешённого checkpoint. Код admin config загружает модель и создаёт функцию reranking. Если окружение полностью офлайн, предварительно подготовьте файлы embedding и reranker: OFFLINE_MODE останавливает автоматические загрузки и обновления, но сам по себе не является сетевой изоляцией. s1 s4 s6 s7
  4. Повторите ровно те же вопросы и запишите ID документа, текст нужного фрагмента, его позицию и задержку на каждом запросе до/после. Сравнивайте сначала поисковую выдачу, затем ответы LLM с цитатами: убедительный ответ не доказывает, что исходный фрагмент найден правильно. Исходный retrieval-код отдельно принимает k и k_reranker, поэтому не меняйте их одновременно с моделью. s4 s5

Для конфигурации via environment (в тестовом инстансе, не как уже выполненная команда) достаточно задать имена переменных и модель:

ENABLE_RAG_HYBRID_SEARCH=true
RAG_RERANKING_ENGINE=
RAG_RERANKING_MODEL=BAAI/bge-reranker-v2-m3
RAG_RELEVANCE_THRESHOLD=0.0

Эти параметры в документации — persistent ConfigVar: сохранённые значения в БД могут иметь приоритет над последующей правкой окружения, поэтому фактические значения следует сверять в админских настройках. RAG_TOP_K и RAG_TOP_K_RERANKER по умолчанию равны 3, но для оценки recall часто понадобится больше кандидатов; это размер выборки, а не замер производительности. s1 s4

Что считать успехом и когда отказаться?

Составьте эталон: какие фрагменты документов действительно отвечают на каждый вопрос. Результат пилота — для каждого запроса нужный отрывок присутствует в финальной выдаче и корректно подтверждает ответ; дополнительно сопоставьте время отклика и долю ложных релевантных фрагментов до/после. Выбор порога приемлемости и ручная разметка остаются за вашей командой; Modelium не проводил этого сравнения. s5

Если нужный документ не попал в исходную выборку, reranker его не «восстановит». Если задержка стала неприемлемой или русские реквизиты ранжируются хуже, вернитесь к контрольной конфигурации: очистите RAG_RERANKING_MODEL, сохраните прежние TOP_K/TOP_K_RERANKER, повторите те же запросы. При использовании внешнего reranker содержимое фрагментов и запросов может покинуть локальный контур, в отличие от описанного локального CrossEncoder; это риск архитектуры внешнего API, требующий проверки конкретного провайдера. s1 s4 s5

Следующий шаг: откройте протокол оценки качества RAG и сохраните сравнение нужных фрагментов до и после reranking на своих документах. Материал про гибридный поиск объясняет отбор кандидатов; гайд Open WebUI — запуск интерфейса.

Источники

  1. Open WebUI Docs — env configuration, RAG and reranking — revision 805f46f8d9f42e26958ee80f849e0d27a1198db0. Получено 30.09.2026.
  2. Open WebUI Docs — Retrieval Augmented Generation — revision 805f46f8d9f42e26958ee80f849e0d27a1198db0. Получено 30.09.2026.
  3. Open WebUI Docs — Knowledge Bases and Document Chat — revision 805f46f8d9f42e26958ee80f849e0d27a1198db0. Получено 30.09.2026.
  4. Open WebUI v0.11.4 — retrieval API and local reranker loader — revision 8bd8b4fac5e059578ac0c74b3c18d11139f88b7d. Получено 30.09.2026.
  5. Open WebUI v0.11.4 — hybrid retrieval and reranking pipeline — revision 8bd8b4fac5e059578ac0c74b3c18d11139f88b7d. Получено 30.09.2026.
  6. Open WebUI v0.11.4 — RAG runtime defaults and offline mode — revision 8bd8b4fac5e059578ac0c74b3c18d11139f88b7d. Получено 30.09.2026.
  7. BAAI — bge-reranker-v2-m3 model card — revision 953dc6f6f85a1b2dbfca4c34a2796e7dde08d41e. Получено 30.09.2026.