Эмбеддинги (Embeddings)
Представление текста, изображения или другого объекта в виде набора чисел, в котором похожие по смыслу объекты оказываются рядом.
Эмбеддинг (embedding, «вложение») — способ записать смысл текста, изображения или любого другого объекта в виде вектора — набора из нескольких сотен или тысяч чисел. Главное свойство: похожие по смыслу объекты получают близкие векторы. Фразы «как вернуть деньги за заказ» и «оформить возврат оплаты» не имеют общих слов, но их эмбеддинги окажутся рядом, а «как открыть вклад» — далеко от обеих.
Откуда берутся эмбеддинги
Их вычисляют специальные нейронные сети — модели эмбеддингов. Модель обучается на огромном количестве текстов так, чтобы связанные по смыслу фрагменты оказывались рядом в пространстве чисел. Ранний известный пример — word2vec (2013), который строил векторы для отдельных слов; современные модели строят эмбеддинги целых предложений и абзацев с учетом контекста. Для русского языка выбирают многоязычные или специально обученные на русском модели.
Как сравнивают эмбеддинги
Близость векторов обычно измеряют косинусной мерой — по углу между ними. Значение близко к 1 — смысл похож, близко к 0 — не связан. Чтобы быстро искать ближайшие векторы среди миллионов, используют векторные базы данных.
Где применяются
- Смысловой поиск — находит документы по смыслу запроса, а не по совпадению слов.
- RAG — подбор фрагментов базы знаний для ответа языковой модели.
- Классификация и группировка — распределить обращения по темам, найти похожие жалобы.
- Рекомендации — похожие товары, статьи, услуги.
- Поиск дубликатов — повторные заявки, одинаковые позиции в справочниках с разными названиями.
- Изображения — эмбеддинги картинок позволяют искать похожие фото или находить изображение по текстовому описанию.
Практические правила
- Одна модель для всего. Эмбеддинги разных моделей несовместимы: документы и запросы должны обрабатываться одной и той же моделью, а при ее смене все векторы пересчитывают.
- Размер фрагмента. Эмбеддинг целого 50-страничного документа размывает смысл; тексты делят на осмысленные части.
- Проверка на своих данных. Модель, лучшая в общих рейтингах, не обязательно лучшая для банковских регламентов. Качество проверяют на наборе реальных вопросов.
- Хранение. Векторы занимают место: миллион фрагментов по 1024 числа — это несколько гигабайт, что нужно учитывать при выборе хранилища, например расширения pgvector для PostgreSQL.