В феврале 2025 года команда исследователей ИИ опубликовала статью NoLiMA, которая представляет новый эталонный тест для оценки способности больших языковых моделей работать с длинными контекстами.

Эта статья вносит существенное изменение в традиционный тест "иголка в стоге сена" (NIAH), удаляя буквальные совпадения между вопросами и иголкой (релевантной информацией), спрятанной в стоге сена (нерелевантном тексте).
Это подчеркивает критическое ограничение современных LLM: они сильно полагаются на поверхностное сопоставление паттернов, и их способность выполнять глубокие ассоциативные рассуждения быстро ухудшается с увеличением длины контекста.
Основываясь на этих выводах, мы стремимся исследовать, возникают ли подобные паттерны производительности в моделях эмбеддингов, в частности, фокусируясь на jina-embeddings-v3. Поскольку эффективность RAG-систем критически зависит от качества моделей поиска, мы стремимся расширить исследование NoLiMA через контролируемые эксперименты, отвечающие на два основных вопроса:
- Как модели эмбеддингов справляются с поиском иголки в стоге сена при различных длинах контекста, когда требуется делать семантические прыжки за пределы буквальных совпадений ключевых слов?
- может ли стратегическое расширение запроса семантически похожим содержанием уменьшить этот разрыв в производительности?
Резкий контраст, наблюдаемый в LLM — устойчивость при лексическом сопоставлении, но уязвимость при семантических вариациях — предполагает, что системы поиска на основе эмбеддингов могут сталкиваться с подобными проблемами при выходе за рамки поверхностного сопоставления терминов, потенциально раскрывая фундаментальные ограничения в современных технологиях семантического поиска.
tagКонструирование иголок и стогов сена
tagКонструирование иголок
Традиционные тесты с иголкой в стоге сена используют иголки, которые отражают формулировку искомого вопроса. Например:
- Вопрос: "Какой персонаж был в Дрездене?"
- Иголка: "Юки живет в Дрездене."
Но как и NoLiMA, мы хотим тестировать семантическое понимание, а не простое сопоставление ключевых слов, поэтому мы создаем однокомпонентные вариации (используя слова, которых специально нет в документах) с двумя различными порядками слов:
- Вопрос: "Какой персонаж был в Дрездене?"
- Иголка (стандартная): "Вообще-то, Юки живет рядом с Оперным театром Земпера."
- Иголка (инвертированная): "Оперный театр Земпера находится рядом с местом, где живет Юки."
Следуя методологии статьи, мы генерируем эти группы иголок-вопросов (состоящие из одного вопроса, одной однокомпонентной иголки и одной инвертированной однокомпонентной иголки) по нескольким категориям, как в примерах ниже:
Category | Question | Original needle (for reference) | One-hop needle | Inverted one-hop needle |
---|---|---|---|---|
Dietary restrictions | Which character cannot eat fish-based meals? | Alice cannot eat fish-based meals. | Then, Alice mentioned being vegan for years. | Being vegan was important to Alice for years. |
Medical conditions | Which character cannot drink milk? | Bob can't drink milk. | Bob explained he was lactose intolerant. | Being lactose intolerant affected Bob daily. |
Language proficiency | Which character speaks French? | Charlie speaks French. | Actually, Charlie studied at the Sorbonne. | At the Sorbonne, Charlie completed his degree. |
Professional background | Which character is a musician? | Diane is a musician. | In 2013, Diane conducted at the Sydney Opera House. | The Sydney Opera House performance was conducted by Diane. |
Обратите внимание, что оригинальные иголки (буквальные совпадения ключевых слов) приведены для справки и не используются в наших экспериментах.
tagКонструирование стогов сена
Мы начали с десяти книг, находящихся в общественном достоянии, каждая из которых содержит не менее 50 000 токенов, случайно объединяя короткие фрагменты (менее 250 токенов) из них в стога сена различной длины, а именно 128, 256, 512, 1024, 2048, 4096 и 8192 токенов. Затем мы встроили одну иголку в каждый стог сена:

Для более конкретного примера возьмем иголку "Вообще-то, Юки живет рядом с Оперным театром Земпера" и поместим ее в стог сена из 128 токенов на позиции 50:

Используя jina-embeddings-v3 для встраивания текстов, оценка схожести между текстом иголки и текстом стога сена составляет:
Question-Haystack similarity = 0.2391
Затем мы нормализуем оценку, разделив это число на оценку схожести вопроса и стандартной иголки (без создания стога сена, просто прямое сравнение):
Question-Needle similarity = 0.3598
Normalized Query-Haystack similarity = 0.2391 / 0.3598 = 0.6644
Эта нормализация необходима, поскольку не все модели дают одинаковые оценки схожести между двумя текстами, и jina-embeddings-v3 имеет тенденцию недооценивать схожесть между двумя текстами.
Для каждой иголки (включая все стандартные и инвертированные) мы сгенерировали десять стогов сена для каждой длины контекста, встраивая одну иголку на стог сена в разных местах. Для данной иголки и длины контекста стога сена выглядели бы примерно так:

В качестве контроля мы также сгенерировали один стог сена для каждого тестового условия без иголки. Всего получилось 3 234 стога сена. Мы закодировали каждый стог сена с помощью jina-embeddings-v3 (используя стандартную LoRA для сопоставления текста), затем для каждого стога сена мы обрезали его (если общее количество токенов превышало 8 192, лимит для
jina-embeddings-v3) затем кодировал соответствующий вопрос.tagМетрики оценки
Наша система оценки использует несколько метрик для анализа производительности моделей встраивания при различной длине контекста:
tagОсновные метрики
Нормализованная оценка сходства
Основной метрикой является нормализованная оценка сходства, учитывающая как семантическое сходство между вопросом и всем контекстом (сходство вопрос-стог), так и базовое сходство между вопросом и соответствующей ему стандартной иглой (сходство вопрос-игла). Такая нормализация обеспечивает оценку производительности модели относительно значимой точки отсчета, а не только абсолютных показателей сходства. Процесс нормализации включает вычисление прямой косинусной меры сходства между вопросами и соответствующими иглами (наша базовая линия) и деление сходства вопрос-стог на этот базовый показатель:
Сравнительное отношение к случайному выбору
Для любой модели встраивания косинусные меры сходства между различными парами запрос-документ напрямую сопоставимы только когда запрос остается неизменным. Поэтому, помимо использования нормализованных оценок сходства, мы также измеряем, как часто вопрос оказывается более похожим на весь стог, чем на случайный фрагмент той же длины без иглы.
tagВторичные метрики
Анализ разделения
Эта метрика оценивает, насколько хорошо модель различает релевантный и нерелевантный контент. Она включает среднее разделение, которое представляет разницу между положительными примерами (фрагменты, содержащие ответ) и отрицательными примерами (фрагменты без ответа), и показатель AUC (площадь под кривой), который измеряет способность различения на основе площади под кривой ROC (характеристическая кривая приёмника).
Эффекты позиции
Мы анализируем, как размещение иглы влияет на производительность через коэффициент корреляции между позицией и оценкой сходства, наклон регрессии, показывающий изменение производительности по позициям, и анализ производительности по группам позиций.
tagРезультаты
tagДеградация оценки сходства и корректности
Наши результаты четко показывают снижение производительности с увеличением длины контекста: средняя оценка сходства падает с 0.37 при 128 токенах до 0.10 при 8K токенах, следуя нелинейному тренду с резким снижением между 128 и 1K токенами.

На рисунке ниже мы демонстрируем, что инвертирование иглы мало влияет на нормализованную оценку сходства. И стандартная игла (например, "На самом деле, Юки живет рядом с Оперным театром Земпера"), и инвертированная игла (например, "Оперный театр Земпера находится рядом с местом, где живет Юки") показывают почти идентичную производительность:

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

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

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

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

Поскольку мы видим, что результаты для игл стандартного и инвертированного порядка следуют одному и тому же тренду, мы не будем продолжать разделённый анализ по этому критерию.
tagМожем ли мы отделить положительные результаты от отрицательных?
Один из наших важнейших выводов происходит из анализа того, насколько хорошо модели встраивания могут различать релевантный и нерелевантный контент при разной длине контекста. Этот "анализ разделения" показывает, что корректность поиска быстро падает между длиной контекста 128 и 1000 токенов, а затем продолжает снижаться, хотя и медленнее:

Для коротких контекстов (128 токенов) модель показывает сильное разделение со средней разницей 0.1 и четкой дискриминацией, достигая AUC 0.81 (означая, что в 81% случаев модель ранжирует релевантный фрагмент выше, чем нерелевантный). Это указывает на то, что в более коротких контекстах модель может надежно различать фрагменты, содержащие ответ, от тех, которые его не содержат.
Однако, это быстро ухудшается с увеличением длины контекста. При 1000 токенах разделение падает на 60% до 0.040, а AUC снижается до 0.66, сигнализируя о заметном падении производительности. При 8000 токенах разделение минимально (0.001) и наблюдается почти случайное различение с AUC всего 0.50. Этот паттерн выявляет важное понимание: даже когда модели могут вычислять разумные оценки схожести в более длинных контекстах, они едва могут использовать эти оценки для различения релевантной и нерелевантной информации. При 8000 токенах способность модели различать релевантный контент фактически равна случайному угадыванию.
Скорость этой деградации с ростом контекста поразительна. Сырые оценки схожести падают примерно на 75% от 128 до 8000 токенов, но метрики разделения снижаются почти на 99% за тот же период. Еще более тревожно то, что размер эффекта показывает еще более крутое падение - на 98.6%. Это предполагает, что проблемы embedding-моделей с длинными контекстами выходят за рамки просто сниженных оценок схожести — их фундаментальная способность идентифицировать релевантную информацию разрушается гораздо серьезнее, чем считалось ранее.
tagКак Позиция Иглы Влияет на Ключевые Метрики?
Хотя ключевые метрики производительности обычно лучше, когда игла находится в начале стога сена, деградация производительности не всегда коррелирует с размещением в середине контекста:

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

tagКакой Эффект Оказывает Расширение Запросов на Результаты?
Недавно мы опубликовали статью о расширении запросов, технике, используемой в поисковых системах для улучшения производительности поиска путем добавления релевантных терминов к запросам.

В статье мы использовали LLM для генерации дополнительных терминов, которые затем добавлялись к эмбеддингам запросов для улучшения производительности поиска. Результаты показали значительные улучшения. Теперь мы хотим проверить, как (или если) эта техника улучшит результаты для поиска иглы в стоге сена. Например, дан запрос:
Which character has been to Dresden?
Мы используем LLM (Gemini 2.0) для его расширения и добавляем 100 дополнительных терминов, которые выглядят так:
Which character has been to Dresden? Character: fictional character literary character protagonist antagonist figure persona role dramatis personae\\n\\nDresden: Dresden Germany; bombing of Dresden World War II historical fiction Kurt Vonnegut Slaughterhouse-Five city in Saxony Elbe River cultural landmark\\n\\nHas been to: visited traveled to journeyed to presence in appears in features in set in takes place in location setting
tagНасколько Расширение Запросов Помогает Сопоставить Иглу со Стогом Сена?
Для нашего эксперимента мы сгенерировали три набора расширенных терминов запроса (как описано в оригинальной статье) - 100, 150 и 250 терминов. Затем мы провели тот же набор экспериментов, что и раньше, повторив их трижды, по одному разу с каждым набором расширенных терминов запроса.
Результаты со всеми наборами расширений показали явную деградацию с увеличением длины контекста, с эффектом, схожим с отсутствием расширения запроса (Рисунки 4 и 7):

По сравнению с нерасширенными запросами, все условия расширения запросов показали тот же паттерн деградации производительности с ростом контекста. Тренд деградации также остается нелинейным с резким снижением между 128 и 1K токенами:

Однако анализ сравнительного коэффициента показывает, что расширение запросов имеет явные преимущества: Модель с гораздо большей вероятностью выбирает стог сена с иглой, чем без нее. В противоположность этому, без расширения запроса вероятность выбора правильного отрывка падала настолько, что при размере стога сена в 8K токенов она была почти такой же, как при случайном выборе отрывка.
tagКак Объяснить Результаты Сопоставления Иглы с Расширением Запроса?
Эти результаты согласуются с выводами как статьи NoLiMa, так и исследования расширения запросов, и могут быть объяснены следующим образом:
- Компромисс между качеством и количеством: Лучшая производительность расширения на 100 терминов по сравнению со 150 и 250 терминами предполагает, что существует оптимальная точка, где дополнительные термины начинают добавлять больше шума, чем сигнала. Расширение на 250 терминов, вероятно, вводит термины со более слабыми семантическими связями с исходным запросом, что становится контрпродуктивным при более длинных контекстах.
- Длина контекста остается основной проблемой: Несмотря на преимущества расширения запроса, производительность все еще значительно ухудшается с увеличением длины контекста. Это предполагает, что даже с расширением сохраняется фундаментальное архитектурное ограничение моделей на основе внимания в длинных контекстах.
- Идентификация практического порога: Сохранение сравнительного коэффициента выше 0.5 указывает на то, что расширение поддерживает производительность выше случайного угадывания даже при 8K токенах, предоставляя практический способ расширить эффективное окно контекста для embedding-моделей. Сравнение со случайным угадыванием показывает, что даже при работе с документами с длинным контекстом, расширение запроса делает более вероятным нахождение правильного ответа (т.е. иглы), чем неправильного. Это улучшение по сравнению с нерасширенными запросами, где вероятность найти правильный ответ приближается к случайной по мере увеличения длины контекста.
tagДиагностика: Какую Роль Играет Лексическое Сопоставление в Эмбеддингах?
В вышеописанных экспериментах мы измеряли эффективность embedding-моделей в выполнении семантических выводов "одного шага" в отрывках с длинным контекстом, исключив все возможности буквального сопоставления. Мы обнаружили, что даже с расширением запроса способность embedding-модели находить релевантные отрывки ухудшается с ростом длины контекста. Этот эффект значителен, и находка примечательна, потому что обычно мы ожидали бы, что embedding-модель сможет делать соответствующие выводы без дополнительной помощи. Когда мы заменяем буквальные совпадения вариациями в один шаг (например, "Dresden" → "Semper Opera House"), мы просто заменяем одно понятие другим, близким по смыслу.
Давайте теперь возьмем быка за рога и зададим вопрос напрямую: Действительно ли буквальное сопоставление играет достаточно значимую роль в семантическом сопоставлении, или эффект длины контекста подавляет его? Чтобы ответить на этот вопрос, мы повторили наши тесты с иглами, содержащими буквальные совпадения, например:
- Вопрос: "Which character has been to Dresden?"
- Игла (по умолчанию): "Actually, Yuki lives in Dresden."
- Игла (инвертированная): "Dresden is where Yuki lives."
Обратите внимание, что вместо одношагового вывода о том, что Земперовская опера находится в Дрездене, и, следовательно, персонаж, живущий рядом с ней, должен был посетить Дрезден, эти "иголки" напрямую указывают имя персонажа, живущего в Дрездене.
Переформулировав все 22 пары вопрос-иголка таким образом, мы повторили наши эксперименты со всеми включенными длинами контекста и размещениями иголок, используя ту же модель эмбеддингов jina-embeddings-v3.



Результаты поразительны. Даже при наличии точных совпадений в контексте способность модели отличать правильный ответ от случайного быстро ухудшается с увеличением длины контекста, хотя и сохраняется небольшое преимущество перед полным отсутствием каких-либо точных совпадений.
Это окончательно доказывает, что способность модели эмбеддингов найти иголку в стоге сена гораздо больше зависит от размера стога (и размещения иголки в нем), чем от семантической формулировки самой иголки.
tagЗаключение
Наши выводы по моделям эмбеддингов согласуются с исследованием NoLiMA по LLM: размер контекста имеет решающее значение для правильного сопоставления и поиска. Мы показываем, что это верно даже при точном посимвольном совпадении слов.
Проблема не в способности эмбеддингов выполнять семантическое сопоставление. Модели эмбеддингов, такие как jina-embeddings-v3, хорошо справляются с короткими контекстами, но их эффективность снижается по мере увеличения длины контекста. Расширение запросов может в некоторой степени уменьшить этот эффект, но качество поиска все равно ухудшается на более длинных контекстах. Более того, расширение запросов создает дополнительные проблемы, поскольку крайне важно определить термины расширения, которые улучшают поиск, не добавляя семантического шума. Мы исследуем и ищем способы непосредственного решения проблемы поиска иголки в стоге сена и улучшения производительности будущей версии jina-embeddings-v4.