Эмбеддинги, или векторные представления (embeddings), — это числовые векторы: списки чисел с плавающей точкой, которые кодируют свойства объекта так, чтобы близкие по смыслу тексты, изображения или другие данные оказывались рядом в общем пространстве. На практике вы превращаете запрос, документ или файл в точку с фиксированным числом координат и затем сравниваете такие точки по близости.
Английский термин: embedding, vector embedding. Также встречается: эмбеддинг, векторное представление. Иногда говорят просто «вектор», но это сокращение: эмбеддинг — не любой вектор, а вектор, полученный моделью для сравнения смысла или содержания.
Простыми словами
Грубо говоря, эмбеддинг — это «координаты смысла». Можно представить библиотеку, где каждая книга получает не полку по алфавиту, а точку на карте тем: рядом окажутся книги про одно и то же, даже если в названии используются разные слова.
Поэтому эмбеддинги удобны для семантического поиска. Запрос «как искать похожие статьи по смыслу» может привести к документу про «семантический поиск», даже если точной фразы в тексте нет.
Как это работает
Технически модель берёт входные данные и возвращает вектор фиксированной длины. В документации OpenAI эмбеддинг описан как список чисел с плавающей точкой; у разных моделей длина различается. В актуальном руководстве OpenAI по состоянию на 2026-08-16 указаны 1536 измерений для text-embedding-3-small и 3072 для text-embedding-3-large, а в карточках open-source моделей sentence-transformers/all-MiniLM-L6-v2 и all-mpnet-base-v2 указаны 384 и 768 измерений соответственно.
Во многих системах пространство обучают так, чтобы похожие объекты сближались, а непохожие расходились. Для sentence embeddings это хорошо видно в работе Sentence-BERT с siamese/triplet-подходом, а в работе OpenAI по contrastive pre-training — через контрастивное обучение для текста и кода.
Вход: текст / запрос / изображение
↓
Embedding-модель
↓
Вектор фиксированной длины
↓
Сравнение с другими векторами
(cosine similarity, dot product или другая метрика)
↓
Результат: поиск, кластеризация, рекомендации, классификация
- Вы выбираете модель эмбеддингов.
- Передаёте в неё текст или другой поддерживаемый объект.
- Получаете один вектор фиксированной длины на объект.
- Считаете близость между векторами.
- Для крупного поиска сохраняете векторы во векторной базе; OpenAI прямо рекомендует такой подход для large-scale search.
Есть важная практическая деталь: в FAQ OpenAI указано, что ответы embeddings API по умолчанию L2-нормализованы до длины 1. Поэтому cosine similarity для них можно считать через dot product, а ранжирование по cosine и Euclidean distance будет одинаковым. Это удобно, но переносить это правило на все другие модели нельзя: для open-source и других провайдеров нормализацию нужно проверять по их документации.
| Модель | Размер вектора | Что подтверждает источник |
|---|---|---|
text-embedding-3-small |
1536 по умолчанию | Текстовые эмбеддинги OpenAI; есть параметр dimensions для сокращения длины вектора |
text-embedding-3-large |
3072 по умолчанию | Текстовые эмбеддинги OpenAI; больше размер и выше цена, чем у small |
all-MiniLM-L6-v2 |
384 | Компактная open-source модель для кластеризации и semantic search |
all-mpnet-base-v2 |
768 | Более крупная open-source модель для кластеризации и semantic search |
Где применяется
- Семантический поиск по базе знаний. Вы векторизуете документы и запрос, а затем возвращаете ближайшие фрагменты. Это типичный сценарий для документации, FAQ и внутренних знаний.
- Кластеризация обратной связи или контента. Эмбеддинги помогают сгруппировать похожие отзывы, темы статей или пользовательские обращения без жёстких правил по ключевым словам.
- Рекомендации. Если у двух объектов близкие векторы, их можно предлагать как похожие.
- Классификация и anomaly detection. OpenAI прямо указывает эти задачи среди практических применений эмбеддингов.
- Мультимодальный retrieval. На странице pricing Google
gemini-embedding-2описан как multimodal embedding model, который отображает text, images, video, audio и PDF в единое embedding space.
Какие варианты видны в актуальной документации
На 2026-08-16 в каталоге OpenAI перечислены text-embedding-3-small и text-embedding-3-large, а text-embedding-ada-002 отмечается как более старая embedding-модель. Страницы моделей OpenAI указывают endpoint /v1/embeddings, текущие цены за input tokens и то, что лимиты зависят от usage tier.
У Google документация показывает методы models.embedContent и asyncBatchEmbedContent. По pricing page gemini-embedding-001 доступна на free и paid tiers, а gemini-embedding-2 описана как мультимодальная. При этом deprecations page важна не меньше самой API-документации: там указано, что text-embedding-004 выключена 2026-01-14, embedding-001 — 2025-10-30, embedding-2-preview — 2026-08-10, а для gemini-embedding-001 назначено отключение 2028-05-14; рекомендуемая замена — gemini-embedding-2.
Если для вас важен бюджет, проверяйте официальные страницы перед расчётом. На 2026-08-16 страницы OpenAI показывают $0.02 за 1M input tokens для text-embedding-3-small и $0.13 для text-embedding-3-large; pricing page Google показывает $0.15 за 1M tokens для standard paid pricing у gemini-embedding-001 и $0.075 за 1M tokens для batch paid pricing. Эти значения могут измениться.
Практический пример
Ниже — минимальный сценарий semantic search на Sentence Transformers. Он следует официальному workflow: загрузить модель через SentenceTransformer(...), получить векторы через encode() или специализированные encode_query()/encode_document(), а затем проверить форму массива и посчитать similarity.
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')
documents = [
'Как настроить семантический поиск по базе знаний',
'Как посчитать стоимость токенов в LLM',
'Когда нужна векторная база данных'
]
doc_vectors = model.encode_document(documents)
query_vector = model.encode_query('как искать похожие статьи по смыслу')
print(doc_vectors.shape) # число документов x размер эмбеддинга
# Далее посчитайте cosine similarity между query_vector и doc_vectors
# и отсортируйте документы по убыванию близости.
Для all-MiniLM-L6-v2 model card указывает пространство размерности 384. Если вам нужна более тяжёлая open-source модель того же семейства, в документации Sentence Transformers all-mpnet-base-v2 названа лучшей по качеству среди исходных моделей серии all-*, а all-MiniLM-L6-v2 — примерно в 5 раз более быстрой при всё ещё хорошем качестве.
Практический вывод отсюда простой: эмбеддинги полезны не сами по себе, а как основа пайплайна поиска или группировки. После получения векторов вам всё равно нужны хранение, сравнение, тестовый набор запросов и проверка качества на своей задаче.
Чем отличается от…
| Понятие | Что делает | Чем отличается от embeddings |
|---|---|---|
| Поиск по ключевым словам | Ищет буквальные совпадения слов и фраз | Embeddings ищут по близости смыслов, а не только по совпадению токенов |
| Векторная база данных | Хранит и ищет векторы | Это инфраструктура вокруг эмбеддингов, а не сам способ представления объекта |
| Обычный вектор признаков | Содержит любые числовые признаки | Эмбеддинги обычно обучены так, чтобы расстояние между векторами отражало семантическую близость |
Ограничения и заблуждения
- Заблуждение: «эмбеддинг — это просто список чисел». Точнее: формально да, но ценность в том, как модель обучила пространство и какую близость в нём действительно имеет смысл считать.
- Заблуждение: «одна метрика подходит всем». Точнее: для OpenAI нормализованные векторы позволяют использовать dot product как эквивалент cosine ranking, но для других моделей это нужно проверять отдельно.
- Заблуждение: «большая размерность всегда лучше». Точнее: источники показывают разные рабочие размеры — 384, 768, 1536, 3072. Выбор зависит от задачи, качества, скорости, стоимости и хранения.
- Ограничение: не все embedding-модели мультимодальны. В пакете OpenAI examples — text-only, Google
gemini-embedding-2описан как multimodal, а Sentence Transformers покрывает и текст, и другие модальности в зависимости от модели. - Ограничение: жизненный цикл моделей меняется. У Google это особенно видно по deprecations page, поэтому фиксировать архитектуру «на годы» без проверки сроков отключения рискованно.
- Ограничение: качество зависит от вашей задачи и языка. Документация Sentence Transformers прямо рекомендует бенчмарк на собственной нагрузке, а не слепой выбор по общей репутации модели.
Редакционное ограничение: в предоставленном пакете нет единой независимой сравнительной таблицы качества всех перечисленных моделей на одном русскоязычном наборе задач. Поэтому здесь нельзя честно назвать одну «лучшую» модель вообще.
Практический вердикт: если вам нужен рабочий старт, сначала выберите один тип данных, одну модель, одну метрику близости и небольшой набор контрольных запросов. Для крупного поиска сразу закладывайте хранение векторов и проверку стоимости, лимитов и сроков поддержки по официальным страницам.
Связанные термины и материалы
- Open Weights (открытые веса) — если вы выбираете локальную open-source модель эмбеддингов.
- Model serving (сервинг модели) — если вы отдаёте эмбеддинги из собственного сервиса.
- Batching (пакетная обработка) — когда векторы нужно считать пакетами, а не по одному.
- Transfer learning (перенос обучения) — полезный контекст, если вы адаптируете представления под свой домен.
Источники
- Vector embeddings | OpenAI API
- Embeddings FAQ | OpenAI Help Center
- All models | OpenAI API
- text-embedding-3-small Model | OpenAI API
- text-embedding-3-large Model | OpenAI API
- New embedding models and API updates
- Embeddings | Gemini API | Google AI for Developers
- Gemini Developer API pricing | Gemini API | Google AI for Developers
- Gemini deprecations | Gemini API | Google AI for Developers
- Usage — Sentence Transformers documentation
- Pretrained Models — Sentence Transformers documentation
- sentence-transformers/all-MiniLM-L6-v2 · Hugging Face
- sentence-transformers/all-mpnet-base-v2 · Hugging Face
- Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
- Text and Code Embeddings by Contrastive Pre-Training
Вопросы и ответы
Embeddings и векторные представления — это одно и то же?
В практическом употреблении — да. Embedding обычно и переводят как «векторное представление», хотя фраза «просто вектор» слишком общая и не всегда точна.
Какой метрикой сравнивать эмбеддинги?
Для текущих эмбеддингов OpenAI FAQ прямо указывает L2-нормализацию до длины 1, поэтому dot product можно использовать как эквивалент cosine similarity, а ранжирование по cosine и Euclidean будет одинаковым. Для других моделей метрику и нормализацию нужно проверять отдельно; в экосистеме sentence embeddings часто используют cosine similarity.
Нужна ли векторная база данных?
Для крупномасштабного поиска OpenAI прямо рекомендует хранить эмбеддинги во векторной базе. Для других масштабов в просмотренных источниках не задана одна обязательная архитектура, поэтому решение лучше привязывать к объёму данных и требованиям по латентности.
Почему размеры векторов такие разные?
Размер задаётся моделью. В источниках из пакета есть примеры на 384, 768, 1536 и 3072 измерений. У OpenAI дополнительно документирован параметр dimensions, который позволяет сокращать длину вектора.
Бывают ли эмбеддинги не только для текста?
Да. В reviewed sources Google описывает gemini-embedding-2 как мультимодальную модель для text, images, video, audio и PDF, а Sentence Transformers пишет о моделях для текста, изображений, аудио, видео и их комбинаций. В источниках OpenAI из этого пакета речь идёт о текстовых эмбеддингах.