Что такое эмбеддинг: текст как вектор смысла
Сердце 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 чаще текст.
Итог
- Эмбеддинг — вектор чисел, где близость = смысловая похожесть.
- Координаты подбирает обученная нейросеть, а не человек.
- Это позволяет искать «по смыслу», а не по совпадению слов.