Векторные модели длинных текстов слепые за пределами 4K токенов?

NoLiMA, выпущенный в феврале 2025 года, - это метод оценки понимания длинного текста в Большой языковой модели (LLM). В отличие от традиционных тестов Needle-in-a-Haystack (NIAH), которые основаны на подборе ключевых слов, его наиболее важными особенностями являются Найти ответы в длинных текстах можно только с помощью вопросов и ключевых сообщений, которые заставляют модель глубоко понимать семантику и рассуждать.
NoLiMa: https://arxiv.org/abs/2502.05167
Результаты NoLiMA выявили важную проблему: LLM, претендующие на способность обрабатывать сотни тысяч или даже миллионы лексем, значительно отстают в задачах, которые действительно требуют понимания длинных текстов. Например, при длине текста 32 тыс. лексем производительность 10 протестированных моделей вдвое ниже, чем при работе с короткими текстами (менее 1 тыс. лексем); даже самая лучшая модель, GPT-4o, падает с почти идеальной производительности 99,3% до 69,7%.
Вдохновленные NoLiMA, мы используем векторную модель jina-embeddings-v3
Были проведены аналогичные эксперименты. Причина исследования векторной модели заключается в том, что в системах с расширенной генерацией поиска (RAG) модель поиска (также известная как векторная модель) является хорошей или плохой, что напрямую определяет эффективность всей системы.
Наше исследование посвящено двум основным вопросам:
- Могут ли векторные модели выполнять "одноходовое рассуждение" в длинных текстах? В традиционных тестах NIAH вопросы и ответы обычно совпадают напрямую (например, "В каком году Джон поехал в Париж?" и "Джон ездил в Париж в 2019 году"). В отличие от разработанной нами "булавки", она требует от модели семантических рассуждений (например, вопрос звучит так: "Кто из персонажей был во Франции?"). "Булавка" - это "Юки живет рядом с Оперным театром Земпера", и модель должна знать, что Оперный театр Земпера находится в Германии).
- Могут ли расширения запросов сделать поиск по длинным текстам более эффективным? Расширение запроса - это добавление к нему некоторых связанных слов, чтобы сделать семантику более богатой. Мы хотим проверить, сможет ли этот подход компенсировать недостатки векторных моделей при работе с длинными текстами.

Традиционный тест NIAH (позволяет подбирать ключевые слова) против теста NOLIMA (требует семантических рассуждений)
Результаты экспериментов с LLM показали, что они слишком сильно полагаются на поверхностное сопоставление текста и недостаточно на более глубокие рассуждения. Интересно, справедливо ли то же самое для векторных моделей? Это может позволить нам увидеть, чего еще не хватает в современных методах семантического поиска.
Построение ключевых сообщений и контекста
Построение ключевой информации
В традиционных тестах "иголка в стоге сена" ключевые сообщения ("иголки") обычно сформулированы так же, как и вопросы, на которые они ищут ответы. Например:
- ВОПРОС: "Кто из персонажей бывал в Дрездене?"
- Ключевое сообщение: "Юки живет в Дрездене".
Но в статье NoLiMa этого не делается, да мы и не хотим. Мы хотим посмотреть на понимание моделью семантики, а не просто на совпадение ключевых слов. Поэтому мы разработали вариант "однохопа" ("однохоп" означает, что ответ и вопрос должны быть связаны небольшим умозаключением) и намеренно использовали некоторые слова, которые не встречались в тексте, а также использовали инвертированные предложения.
- ВОПРОС: "Кто из персонажей бывал в Дрездене?"
- КЛЮЧЕВАЯ ИНФОРМАЦИЯ (DEFAULT): "На самом деле, Юки живет рядом с оперным театром Семпера".
- Ключевое сообщение (инвертированное): "Оперный театр Семпера находится рядом с домом, где живет Юки".
Следуя методологии статьи, мы создали несколько категорий групп "вопрос-ключевое сообщение" (каждая содержит вопрос, "однохоповое" ключевое сообщение и версию "однохопового" ключевого сообщения в обратном направлении). "ключевое сообщение в обратном направлении").
Примеры приведены ниже:
форма | вопросы | Оригинальная ключевая информация (только для справки) | Ключевые сообщения при одиночном прыжке | Перевернутое выделение ключевой информации |
---|---|---|---|---|
Диетические ограничения | Кто из персонажей не может есть рыбу? | Алиса не может есть рыбу. | Затем Элис упоминает, что уже много лет является вегетарианкой. | Вегетарианская диета была важна для Алисы на протяжении многих лет. |
состояние здоровья | Кто из персонажей не может пить молоко? | Боб не может пить молоко. | Боб объясняет, что у него непереносимость лактозы. | От непереносимости лактозы Боб страдает каждый день. |
вербальная способность | Кто из персонажей говорит по-французски? | Чарли говорит по-французски. | Вообще-то Чарли учился в Сорбонне. | Чарли получил высшее образование в Сорбонне. |
Профессиональная биография | Кто из персонажей является музыкантом? | Диана - музыкант. | Диана дирижировала в Сиднейском оперном театре в 2013 году. | Выступление в Сиднейском оперном театре проходило под руководством Дианы. |
💡 Приведенные выше имена - лишь примеры. В реальной "булавке" имена выбираются случайным образом из списка имен из разных культур.
Кроме того, "оригинальная ключевая информация" (т.е. дословно совпадающая версия) в таблице приведена только для того, чтобы вы могли ее увидеть и понять, и не будет использоваться в наших экспериментах.
контекстуализация
Мы подготовили десять публичных книг, каждая из которых содержит не менее 50 000 лексем, и случайным образом выбрали из каждой книги несколько коротких фрагментов (каждый фрагмент содержит не более 250 лексем), а затем объединили эти фрагменты в "контексты" разной длины, длина которых составляет 128, 256, 512, 1024, 2048, 4096 и 8192 лексем соответственно. Затем эти фрагменты объединяются в "контексты" разной длины: 128, 256, 512, 1024, 2048, 4096 и 8192 слова соответственно. Затем мы помещаем в каждый контекст ключевое сообщение:

Создайте контекст с помощью коротких клипов и ключевых сообщений из книги
Если быть более точным, допустим, мы возьмем ключевое сообщение "На самом деле, Юки живет рядом с оперным театром Семпера" и поместим его в 50-ю лемму в контексте 128 лемм:

Пример иголки в стоге сена
Мы используем 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
Модели обычно недооценивают сходство между двумя текстами.
Для каждого ключевого сообщения (как для версии по умолчанию, так и для версии с флип-флопом) мы сгенерировали 10 контекстов разной длины, в каждом из которых ключевое сообщение появляется в разных местах. Для одного и того же ключевого сообщения и одной и той же длины контекста эти 10 контекстов выглядят следующим образом:

Размещайте ключевую информацию через регулярные промежутки времени в десяти контекстах
Кроме того, для контроля мы также сгенерировали контекст для каждого условия теста (разная длина контекста), который не содержал никакой ключевой информации. Таким образом, мы получили в общей сложности 3234 сгенерированных контекста.
Наконец, мы используемjina-embeddings-v3
Модель (с использованием стандартного текстового соответствия LoRA) кодирует каждый контекст. Если общее количество лексических элементов контекста превышает 8192 (это верхний предел модели jina-embeddings-v3), мы усекаем избыток и кодируем также соответствующий вопрос.
Оценка показателей
Мы разработали систему оценки с несколькими различными метриками для измерения производительности векторных моделей при различной длине контекста:
Основные показатели
1. нормализованные показатели сходства
Это основная метрика. Она не просто рассматривает семантическое сходство между вопросом и всем контекстом, но также берет вопрос и ключевую информацию и сравнивает их по отдельности. Это дает нам представление о том, насколько эффективно модель работает в контексте, содержащем ключевую информацию, по сравнению с тем, как она работает в идеальном случае (когда вопрос и ключевая информация сравниваются напрямую).
Метод расчета заключается в следующем: сначала вычисляется показатель косинусоидального сходства между вопросом и соответствующей ему ключевой информацией в качестве эталона; затем "сходство между вопросом и контекстом" делится на этот эталон, чтобы получить нормализованный показатель сходства.

2. Насколько это лучше, чем случайное предположение
Для векторных моделей имеет смысл сравнивать сходство одного и того же вопроса с разными текстами. Поэтому, помимо нормализованного показателя сходства, мы должны проверить, действительно ли вопрос больше похож на весь контекст, чем на случайный фрагмент текста той же длины, но без ключевой информации. Другими словами, мы хотим проверить, действительно ли ответ, найденный моделью, более точен, чем слепая догадка.
Вторичные показатели
1. анализ отличительных компетенций
Эта метрика оценивает способность модели отличать ключевую информацию от нерелевантного контента. Здесь есть два специфических аспекта:
- Среднее отделение: Насколько велика разница между отрывками, содержащими ответы ("положительные примеры"), и отрывками, в которых ответов нет ("отрицательные примеры").
- Показатель AUC (площадь под кривой): Способность модели отличать ключевую информацию от другого контента измеряется путем вычисления площади под кривой ROC (кривая операционных характеристик субъекта).
2. позиционные эффекты
Мы также изучим, влияет ли расположение ключевой информации в контексте на то, насколько легко модель может ее найти. Мы проанализируем:
- Существует ли какая-либо связь (коэффициент корреляции) между расположением ключевой информации и оценкой сходства.
- Что происходит с производительностью модели (наклон регрессии), когда ключевая информация располагается в разных местах.
- Сгруппируйте ключевые сообщения по местам и посмотрите, как по-разному ведут себя разные группы.
исследование показало
Показатели сходства и точность уменьшаются по мере увеличения длины текста
Результаты эксперимента очевидны: чем длиннее текстовый контекст, тем хуже работает модель.Средний балл сходства падает с 0,37 при 128 словах до 0,10 при 8 тыс. слов, причем это падение не прямолинейное, а особенно быстрое между 128 и 1 тыс. слов.

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

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

Взаимосвязь между сложностью поиска различных типов информации (группировка) (нормализованные показатели) и длиной текста
Чтобы проверить, действительно ли модель лучше, чем угадывание, мы сравнили результаты модели со "случайным угадыванием". Случайная догадка" - это фрагмент текста, который по длине равен вопросу, но не содержит ключевой информации. Результаты показали, чтоЧем длиннее контекст, тем ближе результаты модели к слепому угадыванию, а выбор бесполезного куска текста после него почти так же хорош.

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

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

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

Взаимосвязь между разделением и длиной контекста
В коротких текстах (128 слов) модель четко различает полезную и бесполезную информацию.Среднее разделение составило 0,1, а AUC - 0,81 (т.е. 81 раз из 100 отрывок, содержащий ответ, занимал первое место).
Однако по мере увеличения длины текста производительность модели резко возрастает.спускатьсяПри 1000 словах разделение падает до 0,04 (на 60%), а AUC - до 0,66, что говорит о том, что модель больше не способна различать. К 8000 слов разделение становится почти нулевым (0,001), а AUC приближается к 0,5 (сравнимо со случайным угадыванием), что означает, что модель больше не способна выделять полезную информацию на основе оценок сходства.
Поражает скорость, с которой способность модели выделять полезную информацию снижается с увеличением длины текста.В то время как сырой показатель сходства снизился примерно на 751 TP3T с 128 до 8000 слов, метрика разделения снизилась почти на 991 TP3T, а размер эффекта - еще больше, на 98,61 TP3T!Сложность работы векторных моделей с длинными текстами заключается не только в снижении баллов сходства, но и в сильной деградации способности различать полезную и бесполезную информацию, что гораздо больше, чем мы ожидали ранее.
Как расположение ключевой информации влияет на сложность ее поиска?
Как правило, легче всего найти ключевую информацию, разместив ее в верхней части текста. Однако не всегда верно, что если поместить ее в середину, ее будет труднее найти:

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

Сравните вероятность найти ключевую информацию, разместив ее в разных местах.
Могут ли помочь расширения запросов?
Недавно мы опубликовали блог о "расширении запроса". Это распространенный метод, используемый в поиске, который означает, что когда вы задаете вопрос, вы добавляете к нему соответствующие слова, чтобы сделать результаты поиска более точными.
Расширение запросов на основе LLM: больше информации, более точный поиск
С появлением векторных моделей способ поиска сильно изменился. Является ли такой метод, как "расширение запроса", который в значительной степени опирается на пополнение словарного запаса, все еще полезным в эпоху ИИ? Мы считаем, что да.
В этом блоге мы использовали Большую модель (LLM) для генерации некоторых расширенных слов, а затем добавили эти слова в вектор запроса и обнаружили, что результаты поиска стали намного лучше. Теперь мы хотим проверить, поможет ли это в задачах поиска длинных текстов, таких как "поиск иголки в стоге сена". Например, когда вы спрашиваете:
哪个角色去过德累斯顿?
Давайте расширим ее с помощью большой модели (Gemini 2.0), добавим 100 связанных слов, и она, вероятно, будет выглядеть так:
哪个角色去过德累斯顿? 角色:虚构角色 文学角色 主角 反派 人物 角色 身份 剧中人物
德累斯顿:德国德累斯顿;二战德累斯顿轰炸 历史小说 库尔特·冯内古特 《五号屠宰场》 萨克森州城市 易北河 文化地标
去过:访问过 去过 曾到过 出现于 出现于 特征为 设定在 发生于 地点 背景
Насколько полезными могут быть расширения запросов?
Мы провели эксперимент, в ходе которого сформировали три набора расширенных запросов, в каждый из которых было добавлено 100, 150 и 250 слов (подробнее о том, как их добавлять, читайте в этой статье). Затем мы провели предыдущий эксперимент еще три раза, каждый раз с разными наборами расширенных запросов.
Оказалось, что независимо от количества добавляемых слов, как только текст становится длинным, производительность модели тянется к промежности, примерно так же, как и при отсутствии расширения запроса:

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

Вероятность того, что модель найдет правильный ответ для различных сценариев расширения запроса.
Однако! Более пристальный взгляд на метрику "Сравнительное соотношение" показывает, что расширение запросов все еще полезно:Это облегчает модели поиск текста, содержащего ключевую информацию. Без расширения запросов модель работает примерно так же хорошо, как случайное предположение о длине лексического элемента в 8K.
Как интерпретировать результаты расширения запроса?
Эти результаты согласуются со статьей NoLiMa и нашими предыдущими результатами по расширению запросов. Это можно интерпретировать следующим образом:
- Добавление слов в умеренном количестве работает лучше всегоЭффект от добавления 100 слов лучше, чем от добавления 150 или 250 слов, что означает, что при расширении запроса существует определенная степень добавления слов, и добавление слишком большого количества слов принесет семантический шум вместо сигналов, что будет мешать суждению модели. При добавлении 250 слов велика вероятность добавления терминов со слабой релевантностью вопросу, и эти слова не помогут в длинном тексте.
- Длинные тексты остаются главной проблемой: Даже при расширении запроса производительность модели значительно падает, когда контекст становится длинным. Текущая архитектура модели, основанной на внимании, имеет фундаментальное узкое место при работе с длинным текстом, и эту проблему нельзя решить простым добавлением нескольких слов.
- Работа с запросами по-прежнему имеет значение: Хотя проблему длинного текста полностью преодолеть не удалось, метрика "Коэффициент сравнения" постоянно превышала 0,5, что говорит об эффективности расширения запроса. Даже при длинном тексте в 8 000 слов вопросы расширения запроса с большей вероятностью найдут правильный ответ, чем случайное угадывание. Это вдохновляет нас на то, что расширение запросов все еще является потенциальным направлением для улучшения способности векторных моделей обрабатывать длинные тексты, которое стоит изучить в дальнейшем.
Влияние буквенного соответствия на векторные модели?
В предыдущих экспериментах, чтобы измерить способность векторной модели выполнять "одноходовое умозаключение" в длинном тексте, мы намеренно избегали буквальных повторений между вопросами и ключевой информацией. Результаты показали, что даже при расширении запроса способность модели находить релевантную информацию в длинном тексте ухудшается. Этот феномен интересен. По идее, векторная модель должна уметь рассуждать так самостоятельно, без дополнительной помощи. В конце концов, мы только что заменили слово "Дрезден" на "Оперный театр Земпера", что по сути является заменой одного слова на аналогичное.
Так насколько важно дословное соответствие для семантического соответствия? Или длина текста оказывает большее влияние? Чтобы выяснить это, мы перестроили эксперимент таким образом, чтобы, например, между ключевыми сообщениями и вопросами были дословные повторы:
- ВОПРОС: "Кто из персонажей бывал в Дрездене?"
- Ключевое сообщение (по умолчанию): "Вообще-то Юки живет в Дрездене".
- Ключевое сообщение (инвертированное): "Дрезден - это место, где живет Юки".
Обратите внимание, что здесь мы напрямую сообщаем информацию "Юки живет в Дрездене", а не требуем от читателя сделать вывод "Оперный театр Земпера находится в Дрездене, поэтому люди, которые живут поблизости, бывали в Дрездене", как это было раньше.
Мы изменили все 22 группы вопросов и ключевую информацию в эту простую форму, а затем использовали ту же векторную модель jina-embeddings-v3
Провели эксперимент еще раз, попробовали разные длины текста и расположение ключевой информации.

Зависимость производительности нормализации от длины контекста

Производительность модели по сравнению со случайной догадкой (0,5)

Сравнительные соотношения в разных местах
Результаты оказались неожиданными. Даже если в вопросе и ответе есть одинаковые слова, способность модели отличать правильный ответ от случайного предположения быстро падает, как только текст становится длинным. Конечно, это все равно немного лучше, чем в случае, когда одинаковых слов нет вообще.
В итоге это показывает, что длина контекста и расположение в нем ключевой информации оказывают большее влияние на производительность векторной модели в задаче "иголка в стоге сена", чем конкретная формулировка ключевой информации (семантическое представление).
вынести вердикт
В целом выводы наших экспериментов с векторными моделями согласуются с результатами экспериментов NoLiMA с большими языковыми моделями: чем длиннее текст, тем сложнее модели найти правильный ответ. Наши эксперименты также показывают, что даже если ключевые слова в вопросе и ответе полностью совпадают, модель не всегда может найти правильный ответ.
Наши экспериментальные результаты полностью совпадают с выводами, сделанными в статье NoLiMA, посвященной LLM:Для векторных моделей длина контекста является ключевым фактором, влияющим на эффективность поискаЧем длиннее текст, тем сложнее модели найти правильный ответ. Даже если ключевые слова в вопросе и ответе полностью совпадают, модель не всегда может найти правильный ответ.
- Производительность резко снижается с увеличением длины: jina-embeddings-v3 хорошо справляется с короткими текстами (128 слов), но ее производительность быстро падает при работе с длинными текстами. Нормализованный показатель сходства падает с 0,37 при 128 словах до 0,10 при 8 тыс. слов, и, что более важно, способность модели различать релевантную и нерелевантную информацию (которую мы называем "разделением") почти полностью исчезает.
- "Рассуждения в один прыжок" - это сложно.: Даже при работе с короткими текстами производительность модели значительно ухудшается, если между вопросом и ответом нет прямого буквального совпадения. Это говорит о том, что векторная модель испытывает трудности с "одноходовыми рассуждениями" (например, вывод "был в Дрездене" из "живет рядом с Оперным театром Земпера").
- Расширения запросов помогают, но это еще не все: Расширение запросов может в некоторой степени повысить эффективность поиска, особенно при работе с длинными текстами, что позволяет модели превзойти случайные догадки. Однако это не полностью решает проблемы, связанные с длинным текстом, и производительность все равно будет падать по мере увеличения длины текста. Кроме того, добавление слов должно быть осторожным, нерелевантные слова будут вносить семантический шум и снижать производительность.
- Буквальное соответствие не является ключевым моментом: Даже если в вопросе и ответе присутствуют одни и те же ключевые слова, если текст длинный, модель все равно не может его найти. Это показывает, что положение ответа в тексте оказывает большее влияние на то, сможет ли модель найти ответ, чем то, как он произнесен и насколько длинный текст.
В целом, наше исследование показывает, что такие jina-embeddings-v3
Такая векторная модель, которая хорошо справляется с короткими текстами, все еще не способна работать с длинными текстами, требующими более глубокого понимания семантики. Это побуждает нас продолжать поиск более эффективных методов для поиска длинных текстов, и, надеюсь, в будущем jina-embeddings-v4
Произошел прорыв.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...