all-MiniLM-L6-v2 и multilingual-e5-large: бесплатные модели эмбеддингов через API
21 июня 2026 г. · Команда Hubris · 5 мин чтения
all-MiniLM-L6-v2 и multilingual-e5-large — компактные модели для превращения текста в числовые векторы. Они работают через стандартный API эмбеддингов, занимают мало памяти и стоят от 0,54 ₽ за миллион токенов. Подходят для семантического поиска, сортировки по смыслу и кластеризации текстов.
Что такое модели эмбеддингов и зачем они нужны
Эмбеддинг — это вектор чисел, который описывает смысл текста. Два похожих по смыслу предложения дадут близкие векторы — это позволяет находить релевантные документы без точного совпадения слов.
Типичные задачи:
- Семантический поиск: «найди похожие задачи» вместо поиска по ключевым словам
- RAG (Retrieval-Augmented Generation): подбор релевантного контекста перед отправкой вопроса в LLM
- Кластеризация: автоматическая группировка текстов по теме
- Дедупликация: обнаружение дублей с разными формулировками
Модели эмбеддингов принимают строку и возвращают массив чисел (вектор). Длина вектора фиксирована — у all-MiniLM-L6-v2 это 384 элемента, у multilingual-e5-large — 1024.
all-MiniLM-L6-v2 — быстрая модель для английского текста
all-MiniLM-L6-v2 от Sentence Transformers — лёгкая модель на 22 млн параметров, дообученная для задач сопоставления предложений. Несмотря на небольшой размер, она стабильно занимает лидирующие позиции в бенчмарках MTEB для английского языка в своём весовом классе.
Что важно знать:
- Размер вектора: 384 (достаточно для большинства задач)
- Максимальная длина: 512 токенов — длинный текст нужно разбивать
- Язык: оптимизирована для английского; русский слабее
- Цена через API: от 0,54 ₽ за миллион токенов — практически бесплатно для прототипирования
Пример запроса к API:
import requests
response = requests.post(
"https://api.hubris.pw/v1/embeddings",
headers={"Authorization": "Bearer ВАШ_КЛЮЧ"},
json={
"model": "sentence-transformers/all-minilm-l6-v2",
"input": ["кот сидит на диване", "кошка лежит на диване"]
}
)
data = response.json()
vec1 = data["data"][0]["embedding"]
vec2 = data["data"][1]["embedding"]
print(len(vec1)) # 384
Для массовой обработки передавайте список строк в input — выгоднее одного запроса на строку.
intfloat/multilingual-e5-large — для русского и мультиязычного поиска
multilingual-e5-large поддерживает более 100 языков, включая русский. Модель специально обучена командой Microsoft на задачах Text Embeddings Benchmark (MTEB) и показывает стабильные результаты на русских и смешанных корпусах.
Ключевые отличия от all-MiniLM-L6-v2:
- Размер вектора: 1024 — выше точность при сравнении сложных текстов
- Языки: русский, английский и более 100 других
- Параметры: 560 млн — заметно тяжелее, но мощнее при сравнении разноязычных текстов
- Цена через API: 1,07 ₽ за миллион токенов
- Особенность: модель ожидает префикс
query:/passage:— для запросов и документов соответственно
response = requests.post(
"https://api.hubris.pw/v1/embeddings",
headers={"Authorization": "Bearer ВАШ_КЛЮЧ"},
json={
"model": "intfloat/multilingual-e5-large",
"input": [
"query: как подключить API нейросети",
"passage: Для подключения к API используйте ключ в заголовке Authorization"
]
}
)
Для русскоязычных задач multilingual-e5-large — предпочтительный выбор.
Как выбрать между моделями
| Критерий | all-MiniLM-L6-v2 | multilingual-e5-large |
|---|---|---|
| Языки | Английский | Русский + 100 языков |
| Вектор | 384 | 1024 |
| Цена | 0,54 ₽/млн токенов | 1,07 ₽/млн токенов |
| Скорость | Быстрее | Медленнее |
| Качество RU | Слабее | Лучше |
Простое правило: если задача касается русского текста — берите multilingual-e5-large. Для сугубо английских корпусов — all-MiniLM-L6-v2.
Если нужна мультиязычная модель с ещё более высоким качеством, посмотрите на BAAI/bge-m3 — она доступна по той же цене 1,07 ₽/млн токенов и поддерживает как dense, так и sparse векторы.
Как подключить через Hubris API
Эмбеддинговые модели доступны через стандартный эндпоинт OpenAI Embeddings — ключ Hubris работает напрямую, без дополнительных настроек. Регистрация и пополнение счёта — через личный кабинет, оплата в рублях через СБП.
import openai
client = openai.OpenAI(
api_key="sk-gw-ВАШ_КЛЮЧ",
base_url="https://api.hubris.pw/v1"
)
result = client.embeddings.create(
model="intfloat/multilingual-e5-large",
input=["query: семантический поиск на русском"]
)
print(result.data[0].embedding[:5]) # первые 5 из 1024
Если вы уже используете библиотеку LangChain или LlamaIndex — достаточно поменять base_url и api_key. Ничего больше менять не придётся.
Посмотреть полный каталог эмбеддинговых моделей с ценами можно в разделе моделей.
Частые вопросы
Какую модель использовать для поиска по русским документам?
Для русского языка рекомендуем intfloat/multilingual-e5-large: добавляйте префикс query: к запросу пользователя и passage: к каждому документу. Это улучшает качество сопоставления.
Есть ли ограничение на длину текста? all-MiniLM-L6-v2 — до 512 токенов на фрагмент, multilingual-e5-large — до 512 токенов. Более длинные тексты нужно разбивать на части (чанки) и усреднять векторы, либо использовать только первый абзац документа.
Можно ли сравнивать векторы разных моделей? Нет. Векторы из разных моделей несовместимы — их нельзя сравнивать между собой. Всю базу документов нужно индексировать одной и той же моделью.
Как хранить и искать по векторам? Для небольших наборов данных подходит простое сравнение через cosine similarity в Python. При больших объёмах используют векторные базы данных: Qdrant, Weaviate, pgvector в PostgreSQL.
Насколько это дорого при больших объёмах? all-MiniLM-L6-v2 стоит 0,54 ₽ за миллион токенов. Миллион токенов — это примерно 500 000 коротких предложений. Для большинства проектов расходы на эмбеддинги пренебрежимо малы по сравнению с генеративными моделями. Смотрите актуальные цены на странице моделей.
Все модели из статьи доступны в Hubris — единый API, оплата в рублях.