Что такое эмбеддинг: текст как вектор смысла

Сердце RAG: как текст превращается в числа так, что близкие по смыслу тексты оказываются рядом.

Эмбеддинг (embedding) — представление текста в виде вектора чисел фиксированной длины, где геометрическая близость векторов отражает смысловую близость текстов.

Зачем вообще превращать текст в числа

Алгоритмы не умеют сравнивать строки «по смыслу»: для них «авто» и «машина» — просто разные наборы букв, совпадений ноль. А по смыслу это почти одно и то же. Эмбеддинги решают задачу: они кладут каждый текст в точку многомерного пространства так, чтобы похожие по смыслу тексты стояли рядом, а далёкие — далеко.

Интуиция на крошечных «осях смысла»

Представим всего три оси: насколько про животных, насколько про технику, насколько про еду. Тогда слово можно описать тремя числами. Это игрушечный эмбеддинг, но он показывает идею: близость по числам = близость по теме.

# [животные, техника, еда] — игрушечные «оси смысла»
embeddings = {
    "кошка":   [0.9, 0.1, 0.2],
    "котёнок": [0.88, 0.05, 0.15],
    "ноутбук": [0.1, 0.9, 0.0],
    "пицца":   [0.1, 0.0, 0.9],
}

def distance(a, b):
    return sum((x - y) ** 2 for x, y in zip(a, b)) ** 0.5

base = embeddings["кошка"]
for word, vec in embeddings.items():
    print(f"{word:8} расстояние до 'кошка' = {distance(base, vec):.3f}")

Вывод:

кошка    расстояние до 'кошка' = 0.000
котёнок  расстояние до 'кошка' = 0.073
ноутбук  расстояние до 'кошка' = 1.149
пицца    расстояние до 'кошка' = 1.068

«Котёнок» оказался почти вплотную к «кошке», а «ноутбук» и «пицца» — далеко. Мы нигде не прописывали правило «котёнок похож на кошку» — это следует из чисел. В этом вся магия: смысл закодирован в координатах.

Откуда берутся настоящие числа

В реальности оси не задаёт человек. Их «изобретает» нейросеть-энкодер, обученная на гигантских корпусах. Она подбирает координаты так, чтобы слова и фразы, встречающиеся в похожих контекстах, получали похожие векторы (принцип дистрибутивной семантики: «слово узнаётся по компании»). Осей не три, а сотни или тысячи, и они не интерпретируемы по отдельности — но геометрия работает так же.

Что можно эмбеддить

  • Слова, предложения, абзацы, целые документы.
  • Код, заголовки, описания товаров.
  • Даже картинки и звук (мультимодальные эмбеддинги) — но в RAG чаще текст.

Итог

  • Эмбеддинг — вектор чисел, где близость = смысловая похожесть.
  • Координаты подбирает обученная нейросеть, а не человек.
  • Это позволяет искать «по смыслу», а не по совпадению слов.
Проверьте себя
1. Что такое эмбеддинг текста?
AСжатый zip-архив текста
BВектор чисел, где близость отражает смысловую похожесть
CХеш-сумма строки
DПеревод текста на английский
2. Кто задаёт «оси смысла» в настоящих эмбеддингах?
AЧеловек вручную прописывает каждую ось
BНейросеть-энкодер, обученная на больших корпусах
CОни случайны и ничего не значат
DИх определяет операционная система
3. Почему эмбеддинги позволяют искать «по смыслу»?
AОни хранят синонимы в словаре
BПохожие по смыслу тексты оказываются близко в векторном пространстве
CОни переводят текст в SQL
DОни удаляют стоп-слова
Поддержать проект