Локальный эмбеддер — меньше 1% цены крупного AI-провайдера
Выбор модели эмбеддингов — это выбор того, какие документы увидит поиск до того, как языковая модель начнёт писать ответ. Универсальная модель большого провайдера удобна для старта, но она не обязана лучше всех понимать русский язык, профессиональную лексику или смешанный корпус из инструкций, договоров и кода.
Например, посетитель пишет: «Когда привезут мою покупку?», а нужный раздел справки называется «Сроки и способы доставки». Обычный поиск по словам может не увидеть связь. Смысловой поиск может — если модель достаточно хорошо сопоставляет такие формулировки.
Эмбеддинг — числовой вектор, в котором модель представляет смысл короткого фрагмента текста. Близкие по смыслу фразы получают близкие векторы. Поэтому вопрос о доставке можно сопоставить с разделом о сроках, даже если одинаковых слов почти нет.
Сначала выбирают модель, а не поставщика
Модель, которую обучали специально на текстах и запросах нужного языка, может точнее сопоставлять его формулировки, морфологию и смысловые оттенки, чем универсальная модель внешнего провайдера. То же относится к моделям для права, медицины, кода и других предметных областей.
Качество эмбеддингов влияет не на красоту ответа, а на то, какие доказательства попадут в его контекст. Плохое сопоставление ведёт к трём ошибкам: нужный фрагмент не найден, похожий, но неверный фрагмент оказался выше, или поиск не понимает язык пользователя и терминологию организации.
Экономика эмбединга
Цены внешних API за 1 млн входных токенов:
— OpenAI, малая модель — $0.02;
— OpenAI, большая модель — $0.13;
— Cloudflare, bge-m3 — $0.012;
— Voyage — от $0.02.
В измерении dzen_embedder на GTX 1080 обрабатывал около 248 фрагментов в секунду. Для фрагмента в 500 токенов это до 640 млн фрагментов, или около 320 млрд токенов в месяц при непрерывной работе. Это теоретический предел: длинные фрагменты и реальная смешанная нагрузка снижают скорость.
Такой объём за месяц обойдётся примерно в
— $6,400 у малой модели OpenAI,
— $41,800 у большой,
— $3,900 у Cloudflare и от
— $6,400 у Voyage.
Сервер с минимальным GPU за $100 в месяц может окупиться при стабильно высокой загрузке. На практике расчёт нужно делать с учётом объёмов данных и нагрузки.
Локальную модель выбирают также ради безопасности: документы и запросы для эмбеддингов остаются внутри вашей инфраструктуры и не уходят внешнему провайдеру.
Что делает dzen_embedder
dzen_embedder — самостоятельный сервис эмбеддингов для Dzen Chat. При запуске он загружает выбранную модель из Hugging Face и принимает запросы через OpenAI-совместимый endpoint /v1/embeddings. У сервиса две очереди: вопросы посетителей имеют строгий приоритет, а индексация большого сайта идёт в фоновом режиме.
Как начать использовать проект
Откройте репозиторий dzen_embedder: https://github.com/dzenplatform/embedder
Либо скопируйте этот промпт в своего агента:
Read and follow the deployment instructions at: https://raw.githubusercontent.com/dzenplatform/embedder/master/llm-setup.txt
Проект распространяется по свободной лицензии 0BSD: его можно использовать, изменять и включать в собственные продукты.
Удачного эмбединга!