data-infra
Словарь ↗Перекрытие фрагментов
Перекрытие фрагментов — это намеренное повторение текста на границе соседних чанков в поисковом конвейере. Когда документ режут на части для векторизации, каждый разрез куда-то попадает, и куда бы он ни попал, он разделяет то, что было единым. Перекрытие означает, что каждый фрагмент несёт хвост предыдущего и голову следующего, поэтому предложение, определение или число, лежащие поперёк границы, целиком сохраняются хотя бы в одном из двух кусков. Сбой, который это предотвращает, конкретен и легко ускользает. Условие, начавшееся в одном фрагменте и завершившееся в следующем, даёт два обрывка, каждый из которых выглядит разумно и ни один не отвечает на вопрос. Хуже того, найденный обрывок часто читается как законченный: условие без исключения, цифра без следующей за ней оговорки. Модель уверенно строит ответ на материале, который был верен только в контексте. Поисковые метрики при этом выглядят нормально. Ответ неверен. Перекрытие не бесплатно. Оно раздувает индекс, тратит вычисления на векторизацию пропорционально дублированию и меняет выдачу: почти одинаковые соседние фрагменты конкурируют за одни и те же места, поэтому в верхушке могут оказаться три версии одного пассажа, а второй по качеству источник не всплывёт вовсе. Как только перекрытие перестаёт быть маленьким, обычно требуется дедупликация после поиска или переранжирование, штрафующее почти-дубликаты. Величина перекрытия — это компромисс, а не константа, и зависит она больше от формы текста, чем от общих правил. Плотные справочные материалы, договоры, спецификации и всё с перекрёстными ссылками выигрывают от большего перекрытия, потому что смысл переносится через предложения. Повествовательной прозе и самодостаточным записям нужно намного меньше. Честный способ настроить — проверить оба края на фиксированном наборе для оценки и посмотреть, улучшились ли ответы, а не рассуждать об этом отвлечённо. Перекрытие — ещё и грубое лекарство от проблемы, которую лучше решать правильными местами разреза. Резка по структуре — заголовки, разделы, пункты списков, строки таблиц — ставит границы там, где они уже есть в самом документе, и структурному разбивщику обычно нужно куда меньше перекрытия, чем разбивке по фиксированному размеру, для того же качества ответа. Перекрытие тогда становится страховкой для границ, которые структура предсказать не смогла. Одна деталь заслуживает внимания: контекст, без которого фрагмент непонятен сам по себе, стоит прикреплять, а не надеяться на него. Фрагмент, начинающийся с середины рассуждения и с неразрешённым местоимением, — обуза для поиска независимо от перекрытия, и подстановка заголовка документа и пути раздела в начало каждого чанка обходится дешевле, чем расширение окна перекрытия.
Похожие термины