COMRAD404 / GLOSSARY

Embeddings (векторные представления)

Embeddings

Embeddings, или векторные представления, — это числовые векторы, которые кодируют смысл текста, изображений и других объектов, чтобы их можно было сравнивать по близости, искать, кластеризовать и использовать в рекомендациях.

TL;DR

Эмбеддинг — это числовой вектор, который представляет смысл или содержание объекта так, чтобы похожие объекты можно было находить по близости в пространстве векторов.

Эмбеддинги, или векторные представления (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 или другая метрика)
        ↓
Результат: поиск, кластеризация, рекомендации, классификация
  1. Вы выбираете модель эмбеддингов.
  2. Передаёте в неё текст или другой поддерживаемый объект.
  3. Получаете один вектор фиксированной длины на объект.
  4. Считаете близость между векторами.
  5. Для крупного поиска сохраняете векторы во векторной базе; 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 прямо рекомендует бенчмарк на собственной нагрузке, а не слепой выбор по общей репутации модели.

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

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

Связанные термины и материалы

Источники

Вопросы и ответы

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 из этого пакета речь идёт о текстовых эмбеддингах.

Источники

SOURCES

Вопросы и ответы

FAQ
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 из этого пакета речь идёт о текстовых эмбеддингах.

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

LINKS