Игорь Градов
Игорь Градов
6 мин
ai

Семантический поиск без GPU и облака: «Первая Форма» уложила конвейер в 1,3 секунды на CPU

Семантический поиск (способность системы находить документы по смыслу, а не по точному совпадению слов) обычно требует облака, видеокарт и отдельных баз данных, но команда «Первой Формы» собрала рабочий конвейер без всего этого, и 4 июня 2025 года опубликовала разбор архитектуры с замерами.

Семантический поиск без GPU и облака: «Первая Форма» уложила конвейер в 1,3 секунды на CPU
Почему это важно

Семантический поиск впервые описан как воспроизводимое решение для изолированных сетей без GPU, облачных API и векторных баз данных, на обычном процессоре и внутри процесса приложения.

Команда AI-ассистента в системе «Первая Форма» решала конкретную задачу: часть заказчиков работает в закрытом контуре, без выхода в интернет и без специализированного железа. Стандартная архитектура семантического поиска требует облачного API для эмбеддингов (преобразования текста в числовые векторы), GPU для локальной модели, выделенную векторную базу и ещё один GPU для переранжирования. Инженеры сняли все три зависимости и описали, как именно это сделали.

Что понадобится

  • Обычный сервер с процессором и оперативной памятью, без GPU
  • Компактная открытая модель эмбеддингов: multilingual-e5-base (экспортируется в формат ONNX, который позволяет запускать нейросеть на процессоре без специальных драйверов)
  • Компактный cross-encoder (модель, которая оценивает пару «запрос плюс документ» за один проход) для переранжирования: mmarco-mMiniLMv2, 118 миллионов параметров
  • Полнотекстовый движок (уже есть в большинстве СУБД)
  • Изолированная сеть или обычная локальная сеть, облако не нужно
  • Время на разовую индексацию существующего корпуса документов

Пошаговая инструкция

  1. Выберите модель эмбеддингов по задаче, а не по размеру. Команда «Первой Формы» сравнила компактные открытые модели (multilingual-e5-base, e5-large, bge-m3) с облачной Qwen3-Embedding-8B, у которой вектор в 4096 измерений. Компактные модели на обычном процессоре обошли облачную по всем метрикам полноты. Причина: retrieval-модели (модели, обученные именно для поиска) специализированы под эту задачу, а большая универсальная модель решает её «по совместительству».

  2. Остановитесь на самой лёгкой модели, которая надёжно доставляет документ в пул кандидатов. e5-base по способности не потерять нужный документ идентична более крупной bge-m3, но вдвое легче и быстрее. Точный порядок в выдаче всё равно наводит переранжировщик на следующем шаге.

  3. Для переранжирования используйте cross-encoder, а не генеративную модель. Генеративная LLM (большая языковая модель) в роли судьи на CPU обрабатывала пакет кандидатов 42 секунды. Компактный cross-encoder mmarco-mMiniLMv2 обработал тот же пакет за 1,3 секунды на том же процессоре. Разница объясняется архитектурой: генеративная модель порождает ответ токен за токеном (токен это минимальная единица текста для модели, слово или его часть), cross-encoder делает один проход.

  4. Откажитесь от векторной базы данных, считайте в памяти процесса. Полный перебор корпуса в памяти процесса приложения занимал единицы миллисекунд на запрос. Тот же перебор внутри СУБД (SQL Server без нативного векторного типа) длился 86 секунд. Скалярное произведение (математическая операция сравнения двух векторов) это задача для процесса приложения, а не для SQL-движка.

  5. Соедините лексический и векторный поиск параллельно. Вектор не заменяет полнотекстовый поиск, а работает рядом. Полнотекстовый движок ловит точные формулировки, названия и термины. Выдачи сливаются методом взаимного ранга (reciprocal rank fusion): документ, который высоко у обеих веток, поднимается; уникальные находки каждой ветки не теряются.

  6. Поверх объединённого пула запустите cross-encoder. Он упорядочивает кандидатов по релевантности, и итоговый топ уходит языковой модели как контекст для ответа.

  7. Разместите весь конвейер в процессе приложения. Команда начинала с отдельного контейнера и сознательно ушла от него. Не ради скорости (выделенный сервис на своих ядрах по чистой задержке даже выигрывает), а ради эксплуатации: ноль сетевых переходов, нечему отдельно упасть, нечего отдельно мониторить. В закрытом контуре каждый дополнительный сервис это отдельное согласование и сопровождение.

  8. Считайте вектор в момент индексации документа. Свежесть корпуса обеспечивается эмбеддингом на запись: вектор фрагмента вычисляется при индексации, это десятки миллисекунд на фрагмент.

Как это выглядит на практике

Пользователь в закрытой корпоративной сети вводит запрос в AI-ассистент «Первой Формы». Система параллельно запускает два потока: полнотекстовый движок ищет точные совпадения по словам, векторная ветка ищет документы, близкие по смыслу. Результаты сливаются взаимным рангом. Cross-encoder за 1,3 секунды переранжирует кандидатов. Языковая модель получает релевантный контекст и отвечает пользователю. Всё это происходит на обычном процессоре, без обращения к облаку, без GPU и без отдельной векторной базы данных.

Частые ошибки
  • Гнаться за размером модели эмбеддингов. Больше параметров и длиннее вектор не означает лучший поиск. По замерам «Первой Формы», компактные специализированные модели обошли облачную модель с вектором в 4096 измерений.
  • Ставить генеративную LLM на переранжирование при работе на CPU. 42 секунды против 1,3 секунды при том же качестве. Архитектурная разница в 30 раз не компенсируется более мощным процессором.
  • Считать косинусную близость внутри СУБД без нативного векторного типа. В SQL Server без такого типа команда получила 86 секунд вместо единиц миллисекунд. Четыре порядка разницы.
  • Внедрять ANN-индексы (приближённый поиск ближайших соседей) на малом корпусе. На десятках тысяч фрагментов приближённый поиск решает несуществующую проблему: полный перебор и так занимает миллисекунды.
  • Выделять поисковый конвейер в отдельный сервис в закрытом контуре. Выигрыш в миллисекундах не стоит затрат на согласование, мониторинг и сопровождение отдельного компонента.

Что делать с этим прямо сейчас, по ролям

Автору Дзена. Если вы собираете базу знаний для AI-помощника по своему контенту, не платите за облачные API эмбеддингов. Компактная модель e5-base на обычном ноутбуке справится с корпусом из тысяч статей и даст семантический поиск по смыслу, а не по ключевым словам.

Маркетологу. Корпоративный поиск по внутренним документам, регламентам, базам ответов для поддержки клиентов можно запустить без бюджета на GPU-серверы и без облачных подписок. Это снижает порог входа в ИИ-автоматизацию.

Предпринимателю в РФ и СНГ. Решение работает в изолированной сети, что критично для компаний с жёсткими требованиями к безопасности данных. Все компоненты, открытые модели: e5-base, mmarco-mMiniLMv2, формат ONNX, доступны без ограничений. «Первая Форма» это российский продукт, и описанный подход воспроизводим на любом сервере без зависимости от зарубежных облаков.

Мнение редакции dzen.guru

Самое ценное в этом разборе не конкретные модели, а метод: измерять, а не верить репутации. Команда проверила «очевидное» допущение «больше модель, лучше поиск» и опровергла его на своих данных. Это применимо к любой задаче с ИИ. Честная оговорка: результаты получены на корпусе в десятки тысяч фрагментов. Если у вас миллионы документов, архитектурные решения будут другими, и ANN-индексы перестанут быть лишними. Но для большинства корпоративных баз знаний, с которыми я сталкиваюсь у авторов и малого бизнеса, этот масштаб более чем достаточен.

Попробуйте AI-инструменты dzen.guru

Если вы хотите разобраться, как использовать ИИ для работы с контентом без облака и сложных настроек, начните с наших практических гайдов.

Перейти к инструментам

Подход «Первой Формы» доказывает конкретную вещь: семантический поиск промышленного уровня на обычном процессоре это не компромисс, а осознанный архитектурный выбор, подтверждённый замерами. Для тех, кто работает в закрытых сетях и на старом оборудовании, это готовый рецепт, который можно воспроизвести уже сегодня.

Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

Читайте также

ai

Gradio получает экран входа за 30 минут: трейсы Langfuse разделяются по пользователям

Gradio за полчаса получает экран входа, а Langfuse начинает разделять трейсы по пользователям, и всё это без переписывания интерфейса, буквально двумя…

6 мин
Внедрение искусственного интеллекта буксует: Cloud.ru собирает «карту боли» российского бизнеса
ai

Внедрение искусственного интеллекта буксует: Cloud.ru собирает «карту боли» российского бизнеса

Компания Cloud.ru 11 июня 2025 года запустила на Хабре открытый опрос о барьерах внедрения искусственного интеллекта в российском бизнесе, опираясь на данные…

4 мин
Structured outputs в OpenAI API: 5 сценариев, когда гарантия формата молча ломается
ai

Structured outputs в OpenAI API: 5 сценариев, когда гарантия формата молча ломается

Компания OpenAI ещё в августе 2024 года добавила в API так называемый strict-режим для структурированных выходов (structured outputs), и за полтора года он…

6 мин