fedorthinks

Экспресс-курс · No. 32

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

20 понятий · схема у каждого · шпаргалка в конце

§ 01

Вся область покоится на одной изящной идее: если можешь разместить смысл в пространстве, можешь с ним вычислять. Ухвати это, и эмбеддинги перестанут быть загадочными.

Карта: 20 понятий в семи группах

Карта метро: сначала видишь линии целиком, потом едешь по станциям.

Сначала три основы — почему компьютеру не хватает символов, что такое эмбеддинг и что такое пространство смыслов. Дальше шесть групп, по одной на главу: сходство, векторная база, семантический поиск, применения за пределами поиска, ловушки и как применять хорошо.

У каждого понятия дальше одно и то же: английское название (запомни его — это термин), образ из жизни, схема и карточка с полями: что это, как работает, пример, подвох и связи.

BasicsLexical gapEmbeddingVector spaceSimilaritySemantic similarityNearest neighboursCosine similarityVector databaseVector databaseANN searchEmbed once, query manySemantic searchSemantic searchSame model, same spaceRAG retrievalBeyond searchClustering / dedupRecommendationsClassify / anomaliesPitfallsModel mismatchSimilar ≠ relevantGarbage inUsing it wellModel choiceEmbedding evals
Основы сверху, ниже — шесть групп, по ним идут главы 2–7.

Lexical Gap — компьютеры видят символы, а не смысл

Машина, что может сказать, что две фотографии различаются пиксель за пикселем, но понятия не имеет, что на обеих собака, — поверхность различна, смысл ей невидим.

Для компьютера текст — это просто символы. Он может проверить, идентичны ли две строки, но у него нет врождённого чувства, что «машина» и «автомобиль» значат одно, или что «банк одобрил мой кредит» и «мою ипотеку приняли» — об одном и том же событии. Это разрыв между словами и смыслом — lexical gap. Совпадение точных слов (exact match) упускает смысл целиком. Чтобы софт работал с тем, что текст значит, а не с тем, как он написан, нужен способ превратить смысл во что-то, что компьютер может измерить.

“the bank approved my loan”“my mortgage was accepted”Exact match✗ different stringsMeaning✓ the same eventcomputers compare characters — the meaning stays invisible
Для точного сравнения это две разные строки. Для человека — одно и то же событие.
ConceptLexical Gap· разрыв между словами и смыслом
Что это

Одинаковый смысл можно сказать разными словами — а компьютер сравнивает только слова.

Пример

«Машина» и «автомобиль»; «банк одобрил мой кредит» и «мою ипотеку приняли».

Подвох
Поиск по точным словам тихо пропускает всё, что сказано иначе.
Связи
Этот разрыв и закрывает embedding.

Embedding — текст превращается в точку

Карта, где у каждой идеи есть место, и идеи, что значат схожее, сидят рядом, — «собака» близко к «щенку», обе далеко от «налоговой декларации».

Эмбеддинг (embedding) — это список чисел, вектор (vector), что представляет смысл куска текста. Его производит модель эмбеддингов (embedding model): она читает текст и выдаёт его координаты. Похожий текст получает похожие числа — а значит, точку рядом. Смысл, что был невидим компьютеру, стал позицией, — а позиции это то, что софт может сравнивать, сортировать и искать.

“puppy”textEmbedding modelreads the text[0.21, −0.83, 0.47, …]vector = list of numberscoordinates of the meaningsimilar text → nearby numbers → nearby point
Текст → модель эмбеддингов → вектор. Вектор — это координаты смысла.
ConceptEmbedding· эмбеддинг, вектор
Что это
Список чисел (вектор), который представляет смысл текста.
Как работает

Модель эмбеддингов читает текст и выдаёт координаты; похожий смысл — похожие числа.

Пример
«щенок» → [0.21, −0.83, 0.47, …] — рядом с вектором «собаки».
Подвох
Качество всего пространства зависит от модели, что его строит.
Связи
Точки живут в vector space; их хранит vector database.

Vector Space — пространство, где близость значит сходство

Карта, на которой «собака», «щенок» и «кошка» стоят кучкой в одном углу, а «таблица» и «налоговая декларация» — в другом.

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

Vector space (shown in 2D)dogpuppycattax returnspreadsheetinvoicefar = unrelatedclose = similar meaning
Схожие смыслы кучкуются рядом; несвязанные — на другом краю карты.
ConceptVector Space· embedding space, пространство эмбеддингов
Что это
Многомерное пространство, где у каждого текста есть место.
Как работает
Модель размещает точки так, что близость значит сходство смысла.
Пример

Кучка «собака / щенок / кошка» далеко от кучки «таблица / налоговая декларация».

Связи
Расстояние в нём — это semantic similarity.

Meaning as Geometry — как только у смысла есть координаты, с ним можно вычислять

Как только каждый город — точка на карте, «найди ближайший город» становится простой геометрией, — карта превратила смутный вопрос в измеримый.

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

fuzzy question about meaningprecise question about geometryWhich docs are about this?Which points are near this one?Is A similar to B?How far apart are A and B?a computer can't understand meaning, but it measures distance perfectly
Слева — размытые вопросы о смысле, справа — те же вопросы как точная геометрия.

Компьютеры видят символы, а не смысл. Эмбеддинг превращает кусок текста в точку в пространстве, размещённую так, что схожие смыслы сидят рядом, — делая смысл тем, что софт может измерить.

§ 02

Со смыслом, размещённым в пространстве, сравнение двух вещей по смыслу становится измерением того, как далеко их точки друг от друга. Эта простая идея — движок под всем, что делают эмбеддинги.

Semantic Similarity — близкие точки значат схожие вещи

На карте два города рядом — между ними легко проехать; два на противоположных побережьях — далеко. Близость на карте зеркалит близость в реальности.

Поскольку эмбеддинги размещают схожие смыслы рядом, расстояние между точками меряет разницу в смысле: близко — значит схоже, далеко — значит не связано. Это и есть семантическое сходство (semantic similarity). Чтобы спросить, насколько похожи два куска текста, ты эмбеддишь оба и меряешь зазор между их векторами — маленький зазор сигналит, что они значат почти одно. Расстояние, что можно вычислить, замещает сходство, что было нельзя.

“get my money back”refund policyoffice hourssmall gap → similarbig gap → unrelateddistance between points = difference in meaning
Запрос «вернуть деньги» рядом с «политикой возврата» и далеко от «часов работы».
ConceptSemantic Similarity· семантическое сходство
Что это
Насколько близки два текста по смыслу.
Как работает
Эмбеддишь оба и меряешь расстояние между векторами.
Пример

«Как мне вернуть деньги» близко к «политике возврата», хотя общих слов почти нет.

Подвох
Похожее по теме ещё не значит полезное — см. similar ≠ relevant.
Связи
Меряется обычно через cosine similarity.

Nearest-Neighbour Search — найти ближайших соседей

Библиотекарь, что, получив одну книгу, может мгновенно указать тебе полку книг, самых на неё похожих, — не по названию, а по тому, о чём они.

Ключевая операция — поиск ближайших соседей (nearest-neighbour search, k-NN): по одной точке найти k ближайших к ней. «Покажи мне похожее на это» становится «найди ближайших соседей этого элемента в пространстве». Вручи системе вопрос, продукт, документ, и она вернёт самые семантически похожие, ранжированные по близости. Эта единственная операция движет семантический поиск, рекомендации и бо́льшую часть того, что идёт дальше. Всё это какая-то версия «найди близкие точки».

query#1#2#3k = 3 nearest neighbours, ranked by closenesseverything else stays far
Вокруг запроса — три ближайшие точки, по порядку близости. Остальное далеко.
ConceptNearest-Neighbour Search· k-NN, поиск ближайших соседей
Что это
По одной точке найти k ближайших к ней.
Как работает
Считаешь сходство и сортируешь по близости — топ-k и есть ответ.
Пример
Вопрос → три самых близких по смыслу документа.
Подвох
На миллионах точек проверять каждую слишком медленно — нужен ANN.
Связи
Основа semantic search, recommendations, classification.

Cosine Similarity — направление важнее сырого расстояния

Две стрелки, указывающие в одну сторону, похожи, даже если одна длиннее, — важно направление, куда они указывают, а не их длина.

На практике сходство обычно меряют углом между векторами, а не расстоянием по прямой, — мера называется косинусным сходством (cosine similarity). Два эмбеддинга, указывающие в одну сторону, считаются похожими, даже если один «длиннее», потому что направление схватывает смысл, а длина часто просто отражает вещи вроде длины текста. Математика не нужна, чтобы использовать эмбеддинги, но стоит знать: стандартная мера «насколько похоже» — про направление, а не сырое расстояние.

A · short textB · long textC · other topicsmall angle→ similarbig angle → differentcosine similarity: direction counts, length doesn't
A и B смотрят в одну сторону — похожи, хоть и разной длины. C смотрит в другую.
TermCosine Similarity· косинусное сходство
Что это
Сходство по углу между векторами, а не по длине отрезка.
Почему так

Направление схватывает смысл; длина часто отражает лишь длину текста.

Пример

Короткая заметка и длинная статья на одну тему — маленький угол, высокое сходство.

Связи
Стандартная мера для semantic similarity и k-NN.

Схожие смыслы сидят рядом, так что сходство становится расстоянием. Ключевая операция — поиск ближайших соседей: найти ближайшие точки, обычно меряя направление через косинусное сходство.

§ 03

Найти ближайших соседей легко с горсткой точек и трудно с миллионами. Векторная база — это движок, построенный делать это быстро в масштабе, — практический дом эмбеддингов.

Vector Database — хранилище под поиск ближайших соседей

Склад, устроенный так, что по любому предмету он мгновенно принесёт тебе сотню самых похожих, — не сканируя каждую полку, а благодаря тому, как он устроен.

Векторная база данных (vector database) хранит твои эмбеддинги и быстро отвечает на запросы «найди ближайшие точки к этой», даже по миллионам векторов. Она построена под ту одну операцию, что нужна эмбеддингам: поиск ближайших соседей по сходству. Ты эмбеддишь данные раз, хранишь векторы, и база становится искомым индексом смысла. Когда люди строят поиск, RAG или рекомендации на эмбеддингах, векторная база — это где векторы живут и где случается поиск.

Appsearch · RAG · recsVector databasedoc-1[0.21, −0.83, …]+ metadatadoc-2[0.19, −0.80, …]+ metadatadoc-3[−0.66, 0.12, …]+ metadatadoc-4[0.05, 0.91, …]+ metadatamillions of rows + an index for nearest-neighbour searchstore vectorstop-k nearest
Приложение кладёт векторы в базу и получает обратно k ближайших.
ToolVector Database· векторная база данных
Что это
Хранилище векторов с быстрым поиском ближайших соседей.
Как работает

Хранит вектор, id и метаданные; по вектору запроса возвращает топ-k ближайших.

Пример

Миллион чанков документации; запрос находит пять ближайших за миллисекунды.

Связи

Внутри — индекс ANN; под ней работают semantic search и RAG.

ANN — приближённый поиск делает масштаб быстрым

Чтобы найти ближайшее кафе, ты не меряешь расстояние до каждого кафе на Земле — ты сперва смотришь в своём районе. Умные срезы бьют проверку всего.

Сравнивать запрос с каждым хранимым вектором было бы слишком медленно в масштабе. Так что векторные базы используют приближённый поиск ближайших соседей (approximate nearest-neighbour, ANN): хитрое индексирование, что находит ближайшие точки, не проверяя их все, меняя крошечную долю точности на огромный выигрыш скорости. Поэтому векторный поиск по миллионам элементов возвращается за миллисекунды. Точные ближайшие соседи нужны редко — «очень близко» так же хорошо, как «ближайшее».

Exact search: compare with every vectorqueryslow at scaleANN: the index jumps to the right neighbourhoodquerymilliseconds≈ same answertrade a tiny bit of accuracy for a huge gain in speed
Сверху — точный поиск сравнивает со всеми. Снизу — ANN сразу идёт в нужный «район».
ConceptANN· approximate nearest neighbour, приближённый поиск
Проблема
Сравнивать запрос с каждым из миллионов векторов слишком медленно.
Идея
Индекс сразу ведёт в нужный район пространства и проверяет только его.
Пример
Поиск по миллионам элементов — за миллисекунды.
Цена

Изредка пропускает истинного ближайшего — «очень близко» вместо «ближайшего».

Связи
Движок внутри vector database; ускоряет k-NN.

Embed Once, Query Many — эмбедди раз, ищи много раз

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

Форма системы эмбеддингов такова: эмбедди свои данные раз заранее и храни векторы (index time), потом ищи дёшево на каждом запросе (query time). У вычисления эмбеддингов есть стоимость, но ты платишь её, когда данные добавляются, а не на каждом поиске. Дорогой шаг — разовое индексирование, а стоимость на запрос — один вектор и быстрый поиск. Знать это разделение помогает рассуждать и о стоимости, и о свежести системы.

INDEX TIME · once, when data arrives (costly)All documentsEmbedmany vectorsVector DBstoredQUERY TIME · every request (cheap)QueryEmbedone vectorSearchnearest neighbourspay the embedding cost once; every search after is fast
Сверху — разовое индексирование всех документов. Снизу — дешёвый путь каждого запроса.
PracticeEmbed Once, Query Many· index time vs query time
Идея

Эмбеддить данные заранее, при добавлении; на запросе — только сам запрос.

Пример

Документы эмбеддятся при загрузке; вопрос пользователя — один вектор и поиск.

Подвох
Новые или изменённые данные надо доэмбеддить, иначе поиск их не видит.
Связи

Хранится в vector database; смена модели = переэмбеддинг всего (same model).

Векторная база хранит эмбеддинги и находит ближайших соседей быстро, используя приближённый (ANN) поиск, чтобы масштабироваться до миллионов. Эмбедди данные раз заранее; ищи их дёшево на каждом запросе.

§ 05

Поиск — очевидное применение, но та же идея «смысл как координаты» тихо движет удивительный диапазон других задач. Увидеть их показывает, почему эмбеддинги — такой фундаментальный инструмент.

Clustering & Deduplication — группировка по смыслу

Сортировать кучу смешанных документов в стопки по теме — складывая те, что значат схожее, вместе, не читая каждое слово.

Поскольку схожие смыслы скучиваются в пространстве, можно группировать данные по смыслу автоматически — это кластеризация (clustering): собрать отзывы клиентов в темы, организовать статьи по теме, найти естественные категории в куче текста. Та же идея ловит дубликаты и почти-дубликаты (deduplication) — два тикета поддержки, описывающие одну проблему разными словами, сидят рядом, так что их можно обнаружить и слить. Любая задача «какие из этих значат одно?» — задача эмбеддингов.

billinglogin issuesshippingnear-duplicate tickets→ mergegroups appear by meaning
Тикеты сами складываются в темы; две почти одинаковые точки — дубликаты, их можно слить.
PatternClustering & Deduplication· кластеризация, поиск дубликатов
Проблема
Куча текста, и непонятно, какие темы в ней и что повторяется.
Идея
Близкие точки — одна группа; почти совпадающие точки — дубликаты.
Пример

Отзывы клиентов сами собираются в темы; два тикета об одной проблеме сливаются.

Связи
Та же близость, что в semantic similarity.

Recommendations — больше того, что тебе понравилось

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

Рекомендации (recommendations) — это поиск ближайших соседей в маскировке: эмбедди элементы (продукты, статьи, песни) так, что похожие сидят рядом, и «порекомендуй больше похожего» становится «найди ближайшие элементы к тому, что пользователю понравилось». Та же машинерия, что находит документы, похожие на запрос, находит продукты, похожие на покупку. Каждый раз, как видишь «вам также может понравиться», есть хороший шанс, что эмбеддинги тихо за этим.

You boughthiking bootsNearest itemsin embedding spacetrail socksrain jacketbackpackliked item= the “query”“you may also like”
Купленная вещь работает как запрос; её ближайшие соседи — рекомендации.
PatternRecommendations· рекомендации, «вам также может понравиться»
Проблема
Как предложить пользователю ещё что-то, что ему подойдёт.
Идея
Понравившийся элемент — это запрос; его ближайшие соседи — предложения.
Пример
Купил туристические ботинки → носки для трекинга, дождевик, рюкзак.
Связи
Это k-NN по товарам вместо документов.

Classification & Anomaly Detection — свои и чужие

Охранник, что знает, как выглядит нормальное, и замечает того одного человека, ведущего себя непохоже на всех остальных, — выброс стоит особняком в пространстве.

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

Classificationspamnot spamnew item lands near “spam”→ label it spamAnomaly detectionnormaloutlierfar from everything normal → flag it
Слева новый элемент лёг рядом со «спамом». Справа точка далеко от нормы — аномалия.
PatternClassification & Anomaly Detection· классификация, обнаружение аномалий
Классификация

Новый элемент получает метку своих ближайших помеченных соседей.

Аномалии
Точка далеко от всего нормального — выброс, который стоит пометить.
Пример
Письмо легло рядом со спамом → спам; странная транзакция → проверить.
Связи
Близость — это k-NN; расстояние до кластера — similarity.

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

§ 06

Эмбеддинги мощны, но легко злоупотребляемы способами, что тихо ломают результаты. Несколько ловушек отвечают за большинство систем эмбеддингов, что разочаровывают.

Model Mismatch — модель эмбеддингов решает качество

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

Всё зависит от модели, что создаёт эмбеддинги. Хорошая модель размещает смысл точно, так что похожие вещи правда сидят рядом; слабая или несовпадающая (model mismatch) производит искажённое пространство, где расстояния вводят в заблуждение. Модель, обученная на общем веб-тексте, может плохо эмбеддить специализированный домен (юридический, медицинский, код), потому что не схватывает различия, что там важны.

domain-fit modelbreachterminationliabilitylunch menulegal terms cluster; noise stays fargeneric / weak modelbreachterminationliabilitylunch menudistorted space → distances mislead
Слева модель знает домен — юридические термины рядом. Справа общая модель — всё перемешано.
PitfallModel Mismatch· несовпадение модели и домена
Что это
Модель не понимает твой домен и строит искажённое пространство.
Пример
Общая модель плохо различает юридические, медицинские термины или код.
Подвох
Ошибок нет — просто расстояния тихо врут.
Что делать
Выбирать модель нарочно и проверять на своих данных.
Связи
Лечится model choice и embedding evals.

Similar ≠ Relevant — похожее не то же, что релевантное

Два пассажа могут быть об одном предмете и при этом отвечать на разные вопросы, — «как отменить» и «почему отменяют» сидят рядом, но только один — то, что спросили.

Сходство эмбеддингов схватывает тематическую близость, что обычно хороший прокси релевантности, — но не всегда. Два текста могут быть близки по смыслу, пока только один реально отвечает нужде. Поэтому сырой поиск по эмбеддингам — сильный первый проход, но не финальное слово: он находит то, что об нужном, а это не совсем то же, что полезное. Отсюда доработки вроде переранжирования (reranking) — второй шаг, что пересортировывает найденное по тому, насколько оно отвечает вопросу.

vector search · similarafter rerank · relevant1. Why users cancel2. Cancel your plan: steps3. Cancellation feesRerankerchecks the need1. Cancel your plan: steps2. Cancellation fees3. Why users cancelquery: “how do I cancel?” — near in topic ≠ answers the question
Поиск по сходству ставит «почему отменяют» первым. Reranker поднимает то, что отвечает на вопрос.
PitfallSimilar ≠ Relevant· похожее ≠ релевантное, reranking
Что это
«Ближайшее» значит «самое похожее», а не «самое полезное».
Пример

На «как отменить» поиск вернул «почему пользователи отменяют» — та же тема, не тот ответ.

Подвох
Легко переоценить топ-результат.
Что делать

Считать поиск первым проходом; добавить reranking вторым шагом.

Связи
Ограничение semantic similarity и semantic search.

Garbage In — мусор внутрь, мусорное пространство

Если ты подшиваешь документы под небрежные, непоследовательные метки, даже идеальный поиск по шкафу возвращает бардак, — индекс хорош ровно настолько, насколько то, что в него вошло.

Качество системы эмбеддингов ограничено качеством того, что ты эмбеддишь. Плохой чанкинг (chunking) из курса о RAG, шумный текст или эмбеддинг не того поля производят пространство, где даже идеальный поиск возвращает плохие результаты, — расстояния вычислены над мусором. Так что бо́льшая часть работы — не поиск, а подготовка чистого, хорошо нарезанного текста. Чини входы, прежде чем винить поиск.

Noisy inputbad chunks · wrong fieldEmbedperfect searchJunk resultsdistances over junkClean inputwell-chunked textEmbedsame searchGood resultsspace reflects meaningthe space inherits whatever you put in — fix inputs first
Тот же поиск: шумный вход даёт мусор, чистый — хорошие результаты.
PitfallGarbage In· мусор на входе
Что это
Плохой текст на входе портит всё пространство.
Пример
Обрывки чанков посреди фразы, шум в тексте, эмбеддинг не того поля.
Подвох
Винят поиск, хотя сломаны входы.
Что делать
Сначала чистить и хорошо нарезать текст, потом эмбеддить.
Связи
Прямо бьёт по RAG retrieval; ловится embedding evals.

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

§ 07

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

Model Choice — выбирай модель эмбеддингов под свои данные

Ты нанимаешь переводчика, что реально знает диалект, в котором работаешь, — универсал может упустить ровно те различия, что важнее всего для тебя.

Самый значимый выбор — модель эмбеддингов (embedding model), и правильная зависит от твоих данных и задачи. Общая модель нормальна для общего текста; специализированному домену может понадобиться модель, что его понимает или дообучена на нём. Учитывай язык, домен, размер вектора и стоимость. Не хватай дефолт — выбери модель, что строит точное пространство для твоего смысла, потому что каждое сравнение едет на ней.

LanguageDomainlegal · medical · codeVector sizeCostEmbedding modelchosen on purposeTest on your databefore you commit
Язык, домен, размер вектора и цена → выбор модели → проверка на своих данных.
PracticeModel Choice· выбор модели эмбеддингов
Идея
Выбрать модель под свои данные, а не взять дефолт.
Критерии
Язык, домен, размер вектора, стоимость.
Пример

Для юридических текстов — модель, что понимает юридический язык или дообучена на нём.

Цена
Смена модели позже = переэмбеддинг всех данных.
Связи
Лечит model mismatch; проверяется embedding evals.

Embedding Evals — меряй, отражает ли пространство реальный смысл

Ты тестируешь новую карту, проверяя, что места, что ты знаешь близкими, реально выходят близкими, — если нет, карта неверна.

Не предполагай, что настройка эмбеддингов работает, — проверь. Для набора случаев, где ты знаешь, что должно быть похожим, проверь, что поиск реально возвращает их среди ближайших. Это версия эвалов для эмбеддингов (embedding evals): кладёт ли пространство нужные вещи близко, на твоих реальных данных? Измерение ловит плохую модель, несовпадение домена или проблему чанкинга, прежде чем оно тихо испортит всё, построенное сверху. Непротестированное пространство — догадка; измеренное — инструмент, которому можно доверять.

Test casesquery → expected docSearchtop-kExpectedin top-k?✓ hit✗ missscore = share of hits on your real datacatches a bad model, a domain mismatch or a chunking problem early
Тест-кейсы «запрос → ожидаемый документ»; доля попаданий в топ-k — это оценка.
PracticeEmbedding Evals· оценка поиска по эмбеддингам
Идея
Набор пар «запрос → что должно найтись» и проверка, что оно в топ-k.
Пример

50 реальных вопросов поддержки с правильной статьёй — сколько раз она в топ-5?

Что ловит
Плохую модель, несовпадение домена, проблемы чанкинга.
Связи
Проверяет model choice, garbage in и всю цепочку целиком.

Как понятия связаны

Конвейер: на входе текст, на выходе — поиск, рекомендации и группы. Каждая ловушка — место, где конвейер может испортиться.

Всё в курсе — одна цепочка. Чистый текст идёт в модель эмбеддингов, она выдаёт векторы, они живут в векторной базе с индексом ANN. Запрос ищет ближайших соседей по косинусному сходству — и на этой одной операции стоят семантический поиск и RAG, рекомендации, кластеризация и классификация. Ловушки сидят на звеньях: garbage in — на входе, model mismatch — на модели, similar ≠ relevant — на поиске. А embedding evals меряют всю цепочку.

garbage inmodel mismatchClean textgood chunksEmbeddingmodelVectorspointsVector DB+ ANN indexNearest neighbourssimilarity = distance (cosine)querysimilar ≠ relevant→ rerankSemantic search→ RAGRecommendationssimilar itemsClustering+ dedupClassify+ anomaliesEmbedding evals measure the whole chain on your real data
Текст → модель → векторы → база → ближайшие соседи → все применения. Красным — где ломается.
Прежде чем строить на эмбеддингах
  • Про смысл ли задача — сходство, группировка, извлечение — что эмбеддинги реально подходят?
  • Правильна ли модель эмбеддингов для твоих данных, домена и языка?
  • Эмбеддятся ли запрос и документы одной моделью, в одно пространство?
  • Есть ли векторная база с приближённым поиском для твоего масштаба?
  • Чист ли текст, что ты эмбеддишь, и хорошо нарезан, а не шум?
  • Измерил ли ты, что пространство кладёт нужные вещи близко, на реальных случаях?
Признаки, что ты используешь эмбеддинги хорошо
  • Ты тянешься к эмбеддингам, когда задача про смысл, а не точное совпадение.
  • Ты выбрал модель эмбеддингов под свои данные и эмбеддишь запрос и документы одинаково.
  • Ты используешь векторную базу с приближённым поиском в масштабе.
  • Ты эмбеддишь чистый, хорошо нарезанный текст и относишься к «похожему» как к сильному, но несовершенному прокси релевантного.
  • Ты измерил, что пространство отражает реальный смысл, вместо того чтобы это предположить.

Шпаргалка: все 20 понятий

Основы

Lexical Gapразрыв слов и смысла

Один смысл — разные слова; точное совпадение его не видит.

Embeddingэмбеддинг, вектор

Список чисел — координаты смысла текста.

Vector Spaceпространство эмбеддингов

Карта смысла: близкие точки значат схожее; вопросы о смысле — вопросы о расстоянии.

Сходство

Semantic Similarityсемантическое сходство

Близость по смыслу = маленькое расстояние между векторами.

Nearest-Neighbour Searchk-NN

Найти k ближайших точек. Ключевая операция.

Cosine Similarityкосинусное сходство

Сходство по углу: важно направление, не длина.

Векторная база

Vector Databaseвекторная база

Хранит векторы и быстро находит ближайшие.

ANNapproximate nearest neighbour

Приближённый поиск: миллисекунды на миллионах ценой крошки точности.

Embed Once, Query Manyindex time / query time

Дорого эмбеддить раз заранее, дёшево искать на каждом запросе.

Семантический поиск

Semantic Searchсемантический поиск

Поиск по смыслу, а не по ключевым словам.

Same Model, Same Spaceодна модель

Запрос и документы — одной моделью, иначе расстояния бессмысленны.

RAG Retrievalизвлечение в RAG

Эмбеддинги находят чанки, на которых модель строит ответ.

За пределами поиска

Clustering & Deduplicationкластеризация, дубликаты

Близкие точки — одна тема; почти совпадающие — дубликаты.

Recommendationsрекомендации

Ближайшие соседи того, что понравилось.

Classification & Anomaly Detectionклассы и выбросы

Метка ближайших соседей; далеко от нормы — аномалия.

Ловушки

Model Mismatchмодель не знает домен

Искажённое пространство — расстояния тихо врут.

Similar ≠ Relevantreranking

Ближайшее — самое похожее, не самое полезное. Помогает переранжирование.

Garbage Inмусор на входе

Плохие чанки и шум портят пространство целиком.

Применять хорошо

Model Choiceвыбор модели

Язык, домен, размер вектора, цена — и проверка на своих данных.

Embedding Evalsоценка поиска

Пары «запрос → ожидаемое»: доля попаданий в топ-k.

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

Конец экспресс-курса · 7 глав · 20 понятий

Дальше — практика: возьми маленький набор своих текстов, эмбедди их и поищи — дай ему запрос своими словами и посмотри, те ли ближайшие результаты, что реально значат одно. Потом попробуй не-поисковое применение: кластеризуй их по смыслу или найди почти-дубликаты. Идея становится конкретной в тот миг, как поиск находит нужный документ, несмотря на то что он не делит ключевых слов с твоим запросом. Но держи одну мысль выше прочих: эмбеддинги превращают смысл в координаты, и как только у смысла есть координаты, «найди похожее» — это просто геометрия. Этот один перевод — движок за поиском, RAG, рекомендациями и куда большим.