Что такое текстовые эмбеддинги и как они работают [+примеры]
В этом руководстве рассказывается, что такое текстовые эмбеддинги, как они превращают текст в векторы, передающие смысл, а также как выбирать, оценивать и применять модели эмбеддингов для поиска, RAG и других практических задач.

Если вы знакомы с базовой идеей текстовых эмбеддингов, но не знаете, как применить их на практике, вы пришли по адресу. Мы разберём векторы, токенизацию и вычисление сходства, глубоко погрузимся в оценку моделей эмбеддингов и покажем реальные сценарии использования.
Что такое текстовые эмбеддинги?
Текстовые эмбеддинги — это числовые представления слов, предложений или документов, которые отражают их смысл и семантические связи. Их создают модели эмбеддингов, преобразующие текст в векторы — массивы чисел, которые алгоритмы машинного обучения могут обрабатывать и сравнивать.
ML-инженеры используют текстовые эмбеддинги, чтобы программные приложения могли распознавать связи между словами и предложениями. Это упрощает поиск, категоризацию и анализ больших объёмов данных.
Допустим, ежедневно к вам поступают тысячи обращений в службу поддержки. Клиенты сообщают о самых разных проблемах, а вам нужно распределять обращения по категориям и размечать их. Один из способов автоматизировать этот процесс — преобразовать каждое обращение в вектор с помощью предварительно обученной модели текстовых эмбеддингов.
Например, два клиента отправляют такие сообщения:
- «С меня дважды списали плату за подписку»: [0.21, -0.47, 0.83, ...]
- «В моём аккаунте отображается повторный платёж»: [0.19, -0.45, 0.80, ...]
Это упрощённые векторы, приведённые для наглядности.
Хотя клиенты используют разные слова, они описывают одну и ту же проблему. Модель эмбеддингов улавливает эту связь и располагает их векторы близко друг к другу в математическом пространстве. Оба обращения попадают в одну категорию и направляются в отдел биллинга.
Сценарии использования текстовых эмбеддингов в бизнесе
Текстовые эмбеддинги применяются в целом ряде задач обработки естественного языка (NLP), в том числе:
- Семантический поиск: Поиск релевантной информации на основе смысла. Delivery Hero использует эмбеддинги товаров и запросов наряду с поиском по ключевым словам, чтобы помочь клиентам, заказывающим продукты, находить нужные товары. Например, по запросу «нежирный йогурт» в выдаче могут появиться греческий йогурт или йогурт жирностью 0,5%, даже если формулировки не совпадают дословно.
- Классификация текстов: Распределение текстов по категориям, например выявление спама или сортировка документов по темам. MindCraft.ai разработала систему классификации документов, которая с помощью текстовых эмбеддингов на основе трансформеров и машинного обучения распределяет корпоративные документы по категориям и выявляет конфиденциальную информацию для соблюдения требований GDPR.
- Кластеризация: Группировка похожих документов или отрывков текста для выявления закономерностей. Doczy.ai преобразует текст договоров в эмбеддинги и группирует семантически связанные положения и понятия, даже если в разных договорах схожие обязательства сформулированы по-разному.
- Генерация, дополненная поиском (RAG): Извлечение релевантной информации, которую LLM может использовать для более точных ответов с учётом контекста. Ring применяет текстовые эмбеддинги Amazon Titan в многоязычном RAG-чат-боте: прежде чем ответить на вопросы клиентов на международных рынках, он находит релевантную документацию службы поддержки.
- Рекомендательные системы: Подбор связанных статей, товаров или другого контента на основе текстового сходства. Система JUDE от LinkedIn использует сгенерированные LLM текстовые эмбеддинги описаний вакансий и профилей пользователей, чтобы улучшать рекомендации вакансий, учитывая связь между опытом кандидатов и открытыми позициями.
- Распознавание именованных сущностей (NER): Выявление и классификация имён людей, названий организаций и мест в тексте. Amazon Health Services использует NER, чтобы определять медицинские понятия в запросах клиентов: заболевания, симптомы, лекарства и методы лечения. Это понимание сочетается с поиском по сходству на основе эмбеддингов, чтобы сопоставлять запросы с релевантными медицинскими товарами и услугами.
- Машинный перевод: Поддержка моделей, переводящих текст с одного языка на другой. Transglot использует текстовые эмбеддинги в семантической памяти переводов, чтобы находить ранее переведённые отрывки с похожим смыслом. Это помогает повторно использовать готовые переводы в рабочих процессах локализации.
Как работают текстовые эмбеддинги?
Как же модель эмбеддингов решает, какие числовые значения присвоить тексту, и почему ей можно доверять?
Всё начинается с обучения. Модели эмбеддингов учатся на больших коллекциях текстов, выявляя закономерности в том, как слова употребляются вместе. Например, традиционные модели вроде Word2Vec обучаются, предсказывая слово по окружающим его словам или наоборот. Современные модели, ориентированные на поиск, часто используют контрастивное обучение: их учат присваивать релевантным парам «запрос — документ» более высокие оценки сходства, чем несвязанным.
Вот что происходит, когда обученной модели подают на вход новый текст:
- Токенизация. Сначала модель разбивает текст на более мелкие части, которые называются токенами. Это могут быть целые слова, части слов или знаки препинания. Каждый токен получает числовой идентификатор из словаря модели, который сам по себе не несёт никакого смысла.
- Кодирование и пулинг. Модель обрабатывает эти токены с помощью закономерностей, усвоенных во время обучения, и формирует вектор. Каждое число в векторе — это координата, или компонента, а измерение — это ось, вдоль которой это число задаёт положение вектора. Каждое значение влияет на положение текста в математическом пространстве, которое называется пространством эмбеддингов.
- Вычисление сходства. Чтобы найти связанные тексты, поисковая система сравнивает эмбеддинг запроса с эмбеддингами документов с помощью меры сходства, например косинусного сходства или скалярного произведения
Именно так, например, интернет-магазины подбирают товары, соответствующие запросу пользователя.
Чем отличаются эмбеддинги слов, предложений и документов?
Главное отличие — в объёме текста, который представляет каждый эмбеддинг в одном векторе. Эмбеддинги можно создавать для отдельных слов, целых предложений или документов — в зависимости от того, какую информацию нужно уловить.
- Эмбеддинги слов отражают связи между отдельными словами и позволяют распознать, что «сбой» и «простой» — связанные понятия.
- Эмбеддинги предложений передают смысл целых предложений, даже если одна и та же мысль выражена разными словами.
- Эмбеддинги документов представляют весь документ одним вектором, а не создают отдельный вектор для каждого предложения. Это помогает сохранить общую тему и находить другие документы на ту же тему, однако извлечь детали может быть сложнее (а то и невозможно).
Насколько детальным должно быть разбиение? Подходящий уровень зависит от ваших данных и задач.
Для крупных документов распространена практика разбивать текст на более мелкие фрагменты и создавать отдельный эмбеддинг для каждого из них. Так вы получите и общий смысл документа, И конкретные детали, которые могут потеряться при эмбеддинге всего документа.
Насколько размер фрагмента влияет на качество эмбеддингов?
Весьма существенно. По словам Рахула Кумара, вице-президента по инженерии ИИ в Xenoss, сложность в том, чтобы подобрать размер фрагмента, который охватывает одну законченную мысль и при этом не теряет важный контекст. Он объясняет этот компромисс так:
«Размер фрагмента определяет, сколько семантического контекста несёт один эмбеддинг. Чем больше фрагмент, тем больше контекста получает вектор, но тем больше тем усредняется в одном векторе. Фрагмент, охватывающий три темы, оказывается где-то посередине и плохо соответствует каждой из них. Небольшой фрагмент сохраняет чёткость смысла, но может потерять контекст, благодаря которому его можно было найти».
Поэтому Кумар рекомендует выбирать стратегию разбиения в зависимости от содержимого, а не придерживаться одного фиксированного размера. По его словам, «фиксированный размер с перекрытием подходит только для однородного текста, например электронных писем или собранных парсером веб-страниц».
Для структурированных документов, таких как договоры или регламенты, лучше подходит рекурсивное разбиение с учётом структуры. Семантическое разбиение, в свою очередь, хорошо работает для расшифровок, поскольку делит текст там, где меняется тема или смысл.
Текстовые эмбеддинги и поиск по ключевым словам
Зачем использовать текстовые эмбеддинги, если можно просто искать по ключевым словам? Дело в том, что поиск по ключевым словам основан на совпадении терминов, а семантический поиск на основе эмбеддингов способен находить релевантную информацию, даже если в запросе и документе используются разные слова.
Однако семантическое сходство не всегда означает релевантность. Шоу Талеби, основатель AI Builder Academy, демонстрирует это ограничение на примере системы поиска по резюме. В его случае по запросу «дата-инженер с опытом работы с Apache Airflow» лишь в одном из пяти лучших результатов упоминался Apache Airflow, причём это резюме оказалось на третьем месте, хотя ещё в трёх резюме из набора данных этот навык был указан.
Это значит, что семантический поиск полезен для нахождения концептуально связанной информации, но может упускать точные требования, такие как технические навыки, идентификаторы продуктов или коды ошибок.
Чтобы решить эту проблему, Рахул Кумар рекомендует выбирать подход к извлечению в зависимости от того, с чем именно не справляется поисковая система:
- Гибридный поиск (сочетание поиска по ключевым словам с семантическим поиском) — вариант по умолчанию, когда запросы содержат точные термины, например артикулы (SKU), коды ошибок или ссылки на правовые нормы.
- Реранкеры оправдывают свою стоимость, когда важны лишь несколько первых результатов, например в ответах, сгенерированных на основе извлечённого контекста.
- Графовый поиск помогает, когда ответ охватывает несколько связанных источников данных.
Кумар также рассказал, как его команда применила эти подходы на практике. В одном из проектов они параллельно запускали поиск по ключевым словам BM25 и векторный поиск, объединяли результаты методом слияния по обратному рангу (RRF), а затем с помощью LLM переранжировали 124 лучших результата и отбирали из них 6.
«Переход к извлечению с приоритетом графа — когда векторный поиск находит близкие латентные пространства, а затем выполняется обход графа на два шага — повысил качество ранжирования (nDCG) с 0,58 до 0,67 и сократил время извлечения на уровне p90 с 19 с до менее чем 3 с», — добавляет Кумар.
Типы моделей текстовых эмбеддингов
Все модели эмбеддингов, по большому счёту, делают одно и то же — изучают связи в тексте. Однако они различаются тем, для какой работы их обучают, какую информацию они учитывают и для каких задач предназначены.
Статические модели эмбеддингов слов
Традиционные модели эмбеддингов слов изучают плотные числовые представления слов на основе закономерностей их употребления в больших коллекциях текстов. Такие эмбеддинги статические: каждое слово получает один и тот же вектор независимо от его значения в конкретном контексте.
Два известных метода:
- Word2Vec: Метод, разработанный Google в 2013 году, изучает представления по соседним словам с помощью двух архитектур: Continuous Bag of Words (CBOW), которая предсказывает слово по его соседям, и skip-gram, которая предсказывает соседние слова по заданному слову.
- GloVe (Global Vectors for Word Representation): Метод, разработанный в Стэнфорде в 2014 году, использует статистику совместной встречаемости слов, чтобы изучать связи между ними.
Контекстуализированные языковые модели
В отличие от статических эмбеддингов, языковые модели общего назначения создают контекстные представления, которые меняются в зависимости от окружающего текста. Это помогает моделям различать разные значения одного и того же слова.
- BERT (2018, Google): Использует двунаправленный механизм самовнимания, чтобы учитывать слова по обе стороны от токена. Например, модель создаёт разные представления слова «ключ» в предложениях «Я потерял ключ от квартиры» и «Мы набрали воды из ключа».
- GPT (2018, OpenAI): Использует представления на основе трансформеров, которые учитывают предшествующий текст при предсказании следующего токена. Модели GPT предназначены в первую очередь для генерации текста.
Модели эмбеддингов предложений и документов
Представляют в виде векторов более объёмные тексты — от отдельных предложений до абзацев и целых документов.
- Doc2Vec: Распространяет принцип обучения Word2Vec на предложения, абзацы и документы. Помогает группировать связанные статьи или классифицировать документы по темам.
- Universal Sentence Encoder (USE): Разработан Google в 2018 году для создания представлений фиксированной длины для предложений и коротких абзацев, которые применяются в задачах семантического сходства и классификации текстов.
- Sentence-BERT (SBERT, 2019): Разработана Нильсом Раймерсом и Ириной Гуревич в Техническом университете Дармштадта. Модель основана на BERT от Google и часто применяется для семантического поиска, выявления парафраз и кластеризации.
- pplx-embed-v1 (2026, Perplexity): Передовое семейство моделей текстовых эмбеддингов, созданное для реального поиска в масштабах интернета. В нём используется предобучение на основе диффузии, которое превращает каузальную языковую модель в двунаправленный энкодер. Модели генерируют плотные эмбеддинги для независимо кодируемых запросов и документов, а обучение с учётом квантования снижает затраты на хранение. Наша модель 4B INT8 достигла показателя 69,66 nDCG@10 в многоязычном бенчмарке поиска MTEB, тогда как у gemini-embedding-001 от Google он составляет 67,71.
- pplx-embed-context-v1 (2026, Perplexity): Решает распространённую проблему разбиения документов на фрагменты: фрагменты могут терять смысл, если отделить их от окружающего текста. Благодаря позднему разбиению на фрагменты (late chunking) модель сначала обрабатывает документ целиком, а затем объединяет контекстуализированные представления токенов в отдельные эмбеддинги фрагментов. Наша модель 4B достигла показателя 81,96 nDCG@10 в ConTEB, тогда как у voyage-context-3 он составляет 79,45.
- pplx-embed-v2-context (2026, Perplexity): Выводит контекстный поиск на новый уровень. Вместо того чтобы учиться находить только отрывок, содержащий ответ, модель учится определять вспомогательные отрывки, которые помогают объяснить или проверить этот ответ. Во время обучения модель использует сигналы релевантности, дистиллированные из модели сжатия контекста, но на этапе инференса эта модель-учитель не требуется. Наша предварительная версия 9B показала полноту по ответам 45,5% и полноту по подтверждающим отрывкам 40,6% при 10 результатах в бенчмарке context-bench.
Модели Perplexity также позволяют хранить эмбеддинги в больших масштабах. Они генерируют эмбеддинги в формате INT8 и бинарные эмбеддинги, что сокращает требования к объёму хранилища в 4 и 32 раза соответственно по сравнению с FP32.
Модель | Размерность | Контекст | MRL | Квантование | Инструкция | Пулинг |
pplx-embed-v1-0.6B | 1024 | 32K | Да | INT8/BINARY | Нет | Среднее |
pplx-embed-v1-4B | 2560 | 32K | Да | INT8/BINARY | Нет | Среднее |
pplx-embed-context-v1-0.6B | 1024 | 32K | Да | INT8/BINARY | Нет | Среднее |
pplx-embed-context-v1-4B | 2560 | 32K | Да | INT8/BINARY | Нет | Среднее |
Размерность, длина контекста, квантование и конфигурация пулинга моделей pplx-embed
Плотные, разреженные и многовекторные эмбеддинги
Есть ещё одно различие, которое стоит понимать, особенно в контексте семантического поиска. Модели эмбеддингов могут различаться тем, как они представляют текст и вычисляют релевантность.
- Плотные эмбеддинги: Представляют текст компактными векторами, в которых большинство значений ненулевые.
- Разреженные эмбеддинги: Используют векторы, состоящие в основном из нулей, с обученными весами для важных терминов. Модели вроде SPLADE (2021) учатся определять, какие термины важны для поиска релевантных документов.
- Многовекторные эмбеддинги: Сохраняют несколько векторов для одного текста, что позволяет детальнее сравнивать запросы и документы. Модели вроде ColBERT (2020) используют такие представления для более детального сопоставления запросов и документов.
- Модели, сочетающие несколько подходов: BGE-M3 (2024), разработанная BAAI, поддерживает плотный, разреженный и многовекторный поиск в рамках одной модели.
Как выбрать и оценить модель текстовых эмбеддингов
Публичные бенчмарки, такие как MTEB, — хорошая отправная точка. С их помощью можно составить шорт-лист из двух-трёх моделей, которые поддерживают нужные вам языки, длину входных данных и требования к развёртыванию. Но не спешите выбирать победителя. Мы не устанем подчёркивать, насколько важно протестировать эти модели на ваших собственных данных.
Вот практический рабочий процесс оценки:
- Создайте тестовый набор данных. Соберите 50–100 репрезентативных поисковых запросов в качестве первоначального набора для оценки (возможно, понадобится больше), включая сложные случаи: перефразирования, техническую терминологию и точные коды ошибок. Для каждого запроса определите, какие документы или отрывки содержат релевантные ответы. Эти метки релевантности станут вашими эталонными данными (ground truth).
- Измерьте качество поиска. Протестируйте каждую модель на одном и том же оценочном наборе данных: условия подготовки документов и поиска должны быть сопоставимыми, но при этом нужно соблюдать требования конкретной модели к форматированию запросов, нормализации и оценке сходства. Затем рассчитайте следующие метрики с помощью InformationRetrievalEvaluator из Sentence Transformers:
- Recall@k: Показывает долю релевантных фрагментов, попавших в первые k результатов.
- MRR: Показывает, насколько высоко в выдаче оказывается первый релевантный результат.
- nDCG@k: Оценивает, насколько удачно первые k результатов ранжированы по релевантности.
- Оцените задержку и пропускную способность. Измерьте, сколько времени каждой модели требуется на создание эмбеддинга запроса. В идеале указывайте медианную задержку (p50) и задержку 95-го перцентиля (p95) при реалистичной нагрузке.
- Рассчитайте затраты на хранение и эксплуатацию. Объем хранилища для векторов зависит от количества эмбеддингов, их размерности и числовой точности. Например, миллион 768-мерных эмбеддингов в формате FP32 занимает примерно 3,1 ГБ в виде необработанных векторов, не считая накладных расходов на индексирование. Чтобы снизить требования к хранилищу, векторы можно квантовать до более низкой числовой точности. Так, переход с FP32 на INT8 сокращает объем необработанных векторов примерно в 4 раза. Однако сжатие может повлиять на качество поиска, поэтому повторите оценку, чтобы проверить, оправдан ли такой компромисс.
В завершение сопоставьте результаты по всем параметрам: метрики поиска, задержку p95, пропускную способность, объем хранилища и стоимость. Выберите модель, которая отвечает вашим требованиям к качеству и укладывается в ограничения рабочей среды.
Когда стоит использовать эмбеддинги вместо LLM?
Сейчас, когда LLM справляются со всем — от анализа документов до сложных рассуждений, — очень заманчиво отдать модели весь текст и позволить ей самой во всем разобраться. Но платить за это вам вряд ли понравится.
Кроме того, LLM лучше справляются с оценкой и составлением текстов, но их возможности ограничены объемом информации, который помещается в один промпт. Эмбеддинги же дешевы, быстры, стабильны и работают с миллионами объектов.
«Эмбеддинги выигрывают в поиске, рекомендациях („больше похожего“), выявлении дубликатов, например повторяющихся обращений в поддержку, и группировке больших объемов контента по темам. Кроме того, они хорошо работают с разными языками. LLM выигрывает, когда задача требует рассуждений: нужно кратко изложить содержание, сравнить варианты или написать ответ. Большинству реальных систем нужно и то и другое, и каждый инструмент выполняет ту часть работы, с которой справляется лучше», — заключает Кумар.
Типичные ошибки разработчиков при работе с текстовыми эмбеддингами
О том, что разработчики часто упускают из виду, рассказали Рахул Кумар и Сибэйцзя Гуань, специалист по данным в Ahrefs. Они выделили шесть ошибок, которых стоит остерегаться:
- Отказ от предварительной обработки текста. Если входные данные содержат HTML, навигационные меню, рекламу или другой нерелевантный контент, такие этапы предварительной обработки, как удаление шаблонных элементов, помогут повысить качество эмбеддингов за счет устранения лишней информации.
- Игнорирование максимальной длины входных данных модели. У разных моделей разные ограничения на количество токенов и разное поведение при усечении. Текст, превышающий лимит, может быть обрезан, и тогда важная информация будет потеряна.
- Несоблюдение требований конкретной модели. Некоторым моделям эмбеддингов нужны определенные префиксы, например query: и passage:, или разные инструкции для разных задач. Если не соблюдать эти требования, качество поиска может снизиться.
- Использование несовместимой меры сходства. Косинусное сходство и скалярное произведение не всегда взаимозаменяемы. Проверьте, нормализованы ли эмбеддинги, и используйте метод оценки, рекомендованный для данной модели и векторного индекса.
- Смешение тематической близости с релевантностью. В узкоспециализированных коллекциях многие документы могут быть семантически близки, но при этом не отвечать на один и тот же вопрос. Анализируйте неудачные запросы и распределение результатов ранжирования. Если пользователям нужна точная информация, протестируйте лексический или гибридный поиск, переранжирование и фильтры по метаданным.
- Игнорирование нормализации эмбеддингов. Разные модели эмбеддингов могут выдавать как нормализованные, так и ненормализованные векторы. Проверьте, нормализованы ли эмбеддинги и нужна ли дополнительная нормализация с учетом используемой метрики сходства.
Часто задаваемые вопросы о текстовых эмбеддингах
1. Как создать текстовые эмбеддинги?
Самый простой способ — использовать предобученную модель эмбеддингов. Например, с помощью Python-библиотеки Sentence Transformers можно загрузить модель вроде all-MiniLM-L6-v2, передать текст в model.encode(), а на выходе получить числовой вектор. Также эмбеддинги можно генерировать через API.
Для семантического поиска или RAG документы обычно разбивают на фрагменты, создают эмбеддинг для каждого из них и сохраняют векторы в индексе, по которому можно выполнять поиск.
2. Какие модели эмбеддингов лучше всего подходят для текста?
В зависимости от того, что вы создаете, стоит рассмотреть несколько моделей:
- pplx-embed-v1 от Perplexity: Создана для крупномасштабного плотного поиска и поддерживает эмбеддинги в формате INT8 и бинарные эмбеддинги, которые снижают требования к хранилищу векторов.
- pplx-embed-context-v1 от Perplexity: Полезна для извлечения отрывков из длинных документов, в которых отдельные фрагменты теряют смысл без окружающего контекста.
- all-MiniLM-L6-v2: Хорошо подходит для легковесного локального семантического поиска, кластеризации и задач на сходство предложений. Создает компактные 384-мерные векторы, но обрезает входные данные длиннее 256 токенов WordPiece.
- BGE-M3: Полезна для многоязычного RAG и гибридного поиска. Поддерживает более 100 языков и сочетает плотные, разреженные и многовекторные представления.
- Qwen3-Embedding: Сильный кандидат для многоязычного поиска, поиска по коду и эмбеддингов под конкретные задачи. Включает модели с открытыми весами на 0,6 млрд, 4 млрд и 8 млрд параметров с поддержкой инструкций.
- text-embedding-3-large от OpenAI: Вариант на основе API для семантического поиска и поиска по документам, если вы не хотите размещать модель самостоятельно. Поддерживает до 3072 измерений, число которых можно уменьшить для экономии места в хранилище.
- Модели Gemini Embedding от Google: Полезны для приложений поиска на базе управляемых сервисов. Gemini Embedding 2 также поддерживает поиск по тексту, изображениям, аудио, видео и PDF-файлам в общем пространстве эмбеддингов.
3. Можно ли использовать LLM в качестве модели эмбеддингов?
Да, но между LLM общего назначения и моделью, оптимизированной для эмбеддингов, есть разница. LLM создают внутренние векторные представления текста, которые можно извлечь и объединить (с помощью пулинга) в один эмбеддинг. Однако без дополнительного обучения такие векторы не обязательно будут полезны для семантического поиска.
Например, Qwen3-Embedding построена на основе LLM, дополнительно обученной для задач эмбеддинга и поиска. Поэтому, хотя LLM и можно адаптировать для генерации эмбеддингов, специализированная модель эмбеддингов обычно оказывается более практичной отправной точкой.