Эмбеддинги (Embeddings)

Представление текста, изображения или другого объекта в виде набора чисел, в котором похожие по смыслу объекты оказываются рядом.

Эмбеддинг (embedding, «вложение») — способ записать смысл текста, изображения или любого другого объекта в виде вектора — набора из нескольких сотен или тысяч чисел. Главное свойство: похожие по смыслу объекты получают близкие векторы. Фразы «как вернуть деньги за заказ» и «оформить возврат оплаты» не имеют общих слов, но их эмбеддинги окажутся рядом, а «как открыть вклад» — далеко от обеих.

Откуда берутся эмбеддинги

Их вычисляют специальные нейронные сети — модели эмбеддингов. Модель обучается на огромном количестве текстов так, чтобы связанные по смыслу фрагменты оказывались рядом в пространстве чисел. Ранний известный пример — word2vec (2013), который строил векторы для отдельных слов; современные модели строят эмбеддинги целых предложений и абзацев с учетом контекста. Для русского языка выбирают многоязычные или специально обученные на русском модели.

Как сравнивают эмбеддинги

Близость векторов обычно измеряют косинусной мерой — по углу между ними. Значение близко к 1 — смысл похож, близко к 0 — не связан. Чтобы быстро искать ближайшие векторы среди миллионов, используют векторные базы данных.

Где применяются

  • Смысловой поиск — находит документы по смыслу запроса, а не по совпадению слов.
  • RAG — подбор фрагментов базы знаний для ответа языковой модели.
  • Классификация и группировка — распределить обращения по темам, найти похожие жалобы.
  • Рекомендации — похожие товары, статьи, услуги.
  • Поиск дубликатов — повторные заявки, одинаковые позиции в справочниках с разными названиями.
  • Изображения — эмбеддинги картинок позволяют искать похожие фото или находить изображение по текстовому описанию.

Практические правила

  • Одна модель для всего. Эмбеддинги разных моделей несовместимы: документы и запросы должны обрабатываться одной и той же моделью, а при ее смене все векторы пересчитывают.
  • Размер фрагмента. Эмбеддинг целого 50-страничного документа размывает смысл; тексты делят на осмысленные части.
  • Проверка на своих данных. Модель, лучшая в общих рейтингах, не обязательно лучшая для банковских регламентов. Качество проверяют на наборе реальных вопросов.
  • Хранение. Векторы занимают место: миллион фрагментов по 1024 числа — это несколько гигабайт, что нужно учитывать при выборе хранилища, например расширения pgvector для PostgreSQL.