Новости
Модели
Продукты
keyboard_arrow_down
Глубокий поиск
Ищите, читайте и рассуждайте, пока не найдете лучший ответ.
Читатель
Читайте URL-адреса и ищите информацию в Интернете для получения более подходящей подготовки для получения степени магистра права.
Вложения
Мультимодальные многоязычные вложения мирового класса.
Реранкер
Нейронный ретривер мирового класса для максимального повышения релевантности поиска.
Более
keyboard_arrow_down
Классификатор
Классификация изображений и текста по нулевому и небольшому количеству кадров.
Сегментатор
Разрежьте длинный текст на куски и выполните токенизацию.

API-документы
Автоматическая генерация кода для вашего второго пилота IDE или LLM
open_in_new


Компания
keyboard_arrow_down
О нас
Связаться с отделом продаж
Стажерская программа
Присоединяйтесь к нам
open_in_new
Скачать логотип
open_in_new
Условия использования


Авторизоваться
login
Поздняя разбивка для решения проблемы потери контекста
Поздняя разбивка устойчива к плохим указаниям о границах
Поздний чанкинг является двунаправленным
Поздний чанкинг можно обучать
Поздний чанкинг vs. Контекстуальный поиск
Какие модели эмбеддингов поддерживают поздний чанкинг?
Заключение
Технический блог
октябрь 03, 2024

Что действительно представляет собой позднее слияние потоков и чем оно не является: Часть II

Часть 2 нашего исследования позднего разбиения (Late Chunking) — глубокий анализ того, почему это лучший метод для создания чанк-эмбеддингов и улучшения производительности поиска и RAG.
Slide depicting the "Late Chunking" process, with flow charts and a model highlighting the transition from a "Long Document"
Han Xiao
Han Xiao • 9 минуты чтения
💡
Настоятельно рекомендуется сначала прочитать Часть I, так как эта статья предлагает более глубокий взгляд, фокусируясь на распространенных заблуждениях и сравнениях. Рекомендуемый порядок чтения: часть I, часть II, научная статья.
Late Chunking: Контекстные чанк-эмбеддинги с использованием моделей эмбеддинга с длинным контекстом
Многие случаи использования требуют извлечения небольших фрагментов текста, и системы плотного векторного поиска часто работают лучше с более короткими текстовыми сегментами, так как семантика с меньшей вероятностью будет чрезмерно сжата в эмбеддингах. Следовательно, практики часто разделяют текстовые документы на меньшие чанки и кодируют их отдельно. Однако чанк-эмбеддинги, созданные таким образом, могут терять контекстную информацию из окружающих чанков, что приводит к субоптимальным представлениям. В этой статье мы представляем новый метод, называемый поздней разбивкой (late chunking), который использует модели эмбеддинга с длинным контекстом для первоначального встраивания всех токенов длинного текста, при этом разбивка применяется после трансформер-модели и непосредственно перед усреднением - отсюда термин "поздний" в его названии. Получающиеся чанк-эмбеддинги захватывают полную контекстную информацию, что приводит к превосходным результатам в различных задачах поиска. Метод достаточно универсален, чтобы применяться к широкому спектру моделей эмбеддинга с длинным контекстом, и работает без дополнительного обучения. Чтобы дополнительно повысить эффективность поздней разбивки, мы предлагаем специальный подход к дообучению моделей эмбеддинга.
arXiv.orgMichael Günther

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

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

С нашей точки зрения, эти две проблемы почти ортогональны и могут решаться отдельно. Если бы нам пришлось расставить приоритеты, мы бы сказали, что 2-я проблема более критична.

Проблема 2: Контекстная информация
Сохранена Потеряна
Проблема 1: Точки разбиения Хорошие Идеальный сценарий Плохие результаты поиска
Плохие Хорошие результаты поиска, но результаты могут быть нечитаемыми или неподходящими для рассуждений LLM Наихудший сценарий

tagПоздняя разбивка для решения проблемы потери контекста

Поздняя разбивка начинается с решения второй проблемы: потери контекста. Речь идет не о поиске идеальных точек разбиения или семантических границ. Вам по-прежнему нужно использовать регулярные выражения, эвристики или другие техники для разделения длинного документа на маленькие чанки. Но вместо того, чтобы встраивать каждый чанк сразу после сегментации, поздняя разбивка сначала кодирует весь документ в одном контекстном окне (для jina-embeddings-v3 это 8192 токена). Затем она следует указаниям о границах для применения усреднения для каждого чанка — отсюда термин "поздняя" в поздней разбивке.

Diagram comparing "Naive Chunking" and "Late Chunking" methods for processing long documents with labeled steps.
Поздняя разбивка все еще требует указаний о границах, но ключевое отличие в том, когда эти указания используются. При поздней разбивке указания применяются только после того, как весь документ был встроен, и они используются для определения диапазона усреднения.

tagПоздняя разбивка устойчива к плохим указаниям о границах

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

Scatter plot chart showing the percentage of relative improvements across various models against a baseline, with a vertical
Относительное улучшение поиска по сравнению с базовой линией (т.е. jina-embeddings-v2-small с указаниями о границах фиксированной длины токенов и наивной разбивкой). В рамках аблационного исследования мы протестировали позднюю разбивку с различными указаниями о границах (фиксированная длина токенов, границы предложений и семантические границы) и разными моделями (jina-embeddings-v2-small, nomic-v1 и jina-embeddings-v3). На основе их производительности на MTEB, рейтинг этих трех моделей эмбеддинга: jina-embeddings-v2-small < nomic-v1 < jina-embeddings-v3. Однако, основное внимание в этом эксперименте уделяется не оценке производительности самих моделей эмбеддингов, а пониманию того, как более качественная модель эмбеддингов взаимодействует с поздним чанкингом и граничными маркерами. Подробности эксперимента можно найти в нашей исследовательской работе.
Combo SciFact NFCorpus FiQA TRECCOVID
Baseline 64.2 23.5 33.3 63.4
Late 66.1 30.0 33.8 64.7
Nomic 70.7 35.3 37.0 72.9
Jv3 71.8 35.6 46.3 73.0
Late + Nomic 70.6 35.3 38.3 75.0
Late + Jv3 73.2 36.7 47.6 77.2
SentBound 64.7 28.3 30.4 66.5
Late + SentBound 65.2 30.0 33.9 66.6
Nomic + SentBound 70.4 35.3 34.8 74.3
Jv3 + SentBound 71.4 35.8 43.7 72.4
Late + Nomic + SentBound 70.5 35.3 36.9 76.1
Late + Jv3 + SentBound 72.4 36.6 47.6 76.2
SemanticBound 64.3 27.4 30.3 66.2
Late + SemanticBound 65.0 29.3 33.7 66.3
Nomic + SemanticBound 70.4 35.3 34.8 74.3
Jv3 + SemanticBound 71.2 36.1 44.0 74.7
Late + Nomic + SemanticBound 70.5 36.9 36.9 76.1
Late + Jv3 + SemanticBound 72.4 36.6 47.6 76.2

Обратите внимание, что устойчивость к плохим границам не означает, что мы можем игнорировать их — они по-прежнему важны как для человеческой читабельности, так и для LLM. Вот как мы это видим: при оптимизации сегментации, то есть упомянутой выше первой проблемы, мы можем полностью сосредоточиться на читабельности, не беспокоясь о потере семантики/контекста. Поздний чанкинг справляется как с хорошими, так и с плохими точками разрыва, поэтому вам нужно заботиться только о читабельности.

tagПоздний чанкинг является двунаправленным

Другое распространенное заблуждение о позднем чанкинге заключается в том, что его условные эмбеддинги чанков опираются только на предыдущие чанки, не "заглядывая вперед". Это неверно. На самом деле условная зависимость в позднем чанкинге является двунаправленной, а не однонаправленной. Это происходит потому, что матрица внимания в модели эмбеддингов — энкодере-трансформере — полностью связана, в отличие от маскированной треугольной матрицы, используемой в авторегрессивных моделях. Формально, эмбеддинг чанка kkk, vk∼Q(ck∣D)v_k \sim Q(c_k|D)vk​∼Q(ck​∣D), а не vk∼Q(ck∣c1,c2,⋯ ,ck−1)v_k \sim Q(c_k | c_1, c_2, \cdots, c_{k-1})vk​∼Q(ck​∣c1​,c2​,⋯,ck−1​), где QQQ обозначает факторизацию языковой модели. Это также объясняет, почему поздний чанкинг не зависит от точного расположения границ.

Diagrams of a transformer model with detailed encoder on the left and decoder on the right, labeled with tokens, embeddings,
В отличие от моделей только с декодером с маскированным самовниманием, модели эмбеддингов обычно состоят только из энкодера с полной матрицей внимания. Это означает, что каждый токен-эмбеддинг обусловлен всеми другими токенами в пределах того же контекстного окна, которое в случае jina-embeddings-v3 включает до 8191 других токенов. В результате эмбеддинг чанка несет информацию о глобальном контексте в обоих направлениях.

tagПоздний чанкинг можно обучать

Поздний чанкинг не требует дополнительного обучения для моделей эмбеддингов. Его можно применять к любым моделям эмбеддингов с длинным контекстом, использующим усреднение (mean pooling), что делает его очень привлекательным для практиков. Тем не менее, если вы работаете над такими задачами, как вопросно-ответные системы или поиск документов по запросу, производительность можно дополнительно улучшить с помощью тонкой настройки. В частности, обучающие данные состоят из кортежей, содержащих:

  • Запрос (например, вопрос или поисковый термин)
  • Документ, содержащий релевантную информацию для ответа на запрос
  • Релевантный фрагмент внутри документа, который является конкретным куском текста, напрямую отвечающим на запрос

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

tagПоздний чанкинг vs. Контекстуальный поиск

Introducing Contextual Retrieval
Anthropic is an AI safety and research company that's working to build reliable, interpretable, and steerable AI systems.

Вскоре после появления позднего чанкинга Anthropic представила отдельную стратегию под названием Contextual Retrieval. Метод Anthropic — это подход "в лоб" для решения проблемы потери контекста, который работает следующим образом:

  1. Каждый чанк отправляется в LLM вместе с полным документом
  2. LLM добавляет релевантный контекст к каждому чанку
  3. Это приводит к более богатым и информативным эмбеддингам

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

tagКакие модели эмбеддингов поддерживают поздний чанкинг?

Поздний чанкинг не является эксклюзивным для jina-embeddings-v3 или v2. Это довольно универсальный подход, который можно применять к любой модели эмбеддингов с длинным контекстом, использующей усреднение (mean pooling). Например, в этом посте мы показываем, что nomic-v1 тоже его поддерживает. Мы тепло приветствуем всех провайдеров эмбеддингов в реализации поддержки позднего чанкинга в их решениях.

Как пользователь модели, при оценке новой модели эмбеддингов или API вы можете следовать этим шагам, чтобы проверить, может ли она поддерживать поздний чанкинг:

  1. Единственный выход: Выдает ли модель/API только одно финальное эмбеддинг на предложение вместо эмбеддингов на уровне токенов? Если да, то она, вероятно, не может поддерживать позднюю фрагментацию (особенно для веб-API).
  2. Поддержка длинного контекста: Обрабатывает ли модель/API контексты не менее 8192 токенов? Если нет, то поздняя фрагментация будет неприменима — точнее говоря, нет смысла адаптировать позднюю фрагментацию для модели с коротким контекстом. Если да, убедитесь, что она действительно хорошо работает с длинными контекстами, а не просто заявляет об их поддержке. Обычно эту информацию можно найти в техническом отчете модели, например, в оценках на LongMTEB или других бенчмарках для длинного контекста.
  3. Mean Pooling: Для самостоятельно размещаемых моделей или API, которые предоставляют эмбеддинги на уровне токенов до пулинга, проверьте, является ли mean pooling методом пулинга по умолчанию. Модели, использующие CLS или max pooling, несовместимы с поздней фрагментацией.

Подводя итог, если модель эмбеддингов поддерживает длинный контекст и использует mean pooling по умолчанию, она может легко поддерживать позднюю фрагментацию. Ознакомьтесь с нашим репозиторием GitHub для деталей реализации и дальнейшего обсуждения.

tagЗаключение

Итак, что такое поздняя фрагментация? Поздняя фрагментация — это простой метод генерации эмбеддингов фрагментов с использованием моделей эмбеддингов для длинного контекста. Он быстрый, устойчивый к граничным сигналам и высокоэффективный. Это не эвристика или переусложнение — это продуманный дизайн, основанный на глубоком понимании механизма трансформера.

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

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

Категории:
Технический блог
rss_feed
Офисы
location_on
Саннивейл, Калифорния
710 Lakeway Dr, Ste 200, Саннивейл, Калифорния 94085, США
location_on
Берлин, Германия (штаб-квартира)
Prinzessinnenstraße 19-20, 10969 Берлин, Германия
location_on
Пекин, Китай
Уровень 5, здание 6, ул. Хайдянь Вест, д. 48, Пекин, Китай
location_on
Шэньчжэнь, Китай
402, этаж 4, здание Fu'an Technology, Шэньчжэнь, Китай
Поиск Фонда
Глубокий поиск
Читатель
Вложения
Реранкер
Классификатор
Сегментатор
API-документация
Получить API-ключ Jina
Ограничение скорости
Статус API
Компания
О нас
Связаться с отделом продаж
отдел новостей
Стажерская программа
Присоединяйтесь к нам
open_in_new
Скачать логотип
open_in_new
Условия
Безопасность
Условия использования
Конфиденциальность
Управление файлами cookie
email
Jina AI © 2020-2025.