Чтобы число в финансовом отчете имело хоть какой-то смысл, ему необходимы строка, столбец и единица измерения. Графику нужны подписи. Когда вы создаете поиск по PDF-файлам, этот контекст является частью того, что вы хотите извлечь.
Perplexity выпустила pplx-embed-v2-late, две модели позднего взаимодействия, которые выполняют поиск по страницам документов как по изображениям. Модель встраивает изображение страницы, включая таблицы, графики и макет. Вы можете пропустить этап оптического распознавания символов (OCR) и выполнять поиск по странице в том виде, в каком она отображается.
Подводный камень заключается в размере этого представления. Мы проверили, насколько сильно мы можем уменьшить его в Qdrant, сохранив при этом качество поиска.
Одна страница — около 1700 векторов
Модели позднего взаимодействия хранят по одному вектору на токен. pplx-embed-v2-late преобразует изображение каждой страницы примерно в 1700 векторов размерностью 128. Оценка MaxSim выставляет странице балл, находя для каждого токена запроса наилучшее совпадение среди векторов документа и суммируя эти совпадения.
Это 856 КБ на страницу в формате float32. Для миллиона страниц потребовалось бы более 800 ГБ только для их векторов.
Векторы в 21 раз меньше, 96,5% качества
TurboQuant от Qdrant сохраняет каждый вектор с использованием всего нескольких бит. При 1 бите сжатые векторы занимают 40 КБ на страницу вместо 856 КБ. Это сокращение в 21 раз без удаления токенов или пресечения страницы в текст.
В наших тестах поиск по сжатым векторам сохранил 96,5% качества поиска, полученного при использовании float32. Пересчет оценок (rescoring) проверяет топовых кандидатов по исходным векторам и повышает этот показатель до 99,9%.
Векторы страниц: в 21 раз меньшеНа одно изображение страницы; меньше — лучше0500Исходные векторыбазовый уровень856 КБ1-битный TurboQuantбез пересчета40 КБ1-битный TurboQuantс пересчетом40 КБКБ на страницу
Для миллиона страниц сжатое представление составляет около 40 ГБ, а исходные векторы хранятся отдельно. Чтобы снизить потребление оперативной памяти, храните сжатые векторы в ОЗУ, а исходные — на диске.
При тех же настройках 1 бита без пересчета оценок бинарное квантование сохранило 76,4% качества поиска, а TurboQuant — 96,5%. Полные результаты включают другие значения битности и настройки пересчета.
Индексируйте масштабно. Запрашивайте компактно.
Векторное представление документа можно использовать повторно для разных поисковых запросов. Каждый новый запрос требует собственного представления. Мы считаем целесообразным тратить больше вычислительных ресурсов на индексацию, чем на каждый отдельный запрос. Мы протестировали эту идею с Constella, нашим собственным семейством моделей, которое в настоящее время находится в стадии исследовательского превью.
Модели Perplexity предоставляют вам аналогичный выбор. Эти две модели используют общее пространство встраивания, поэтому вы можете один раз проиндексировать страницы с помощью 9b и встраивать запросы с помощью 0.6b, у которой примерно в 20 раз меньше активных параметров. На изображениях страниц эта пара набрала 0,670 nDCG@10, что находится между 0,666 для модели 0.6b в одиночку и 0,681 для модели 9b.
Что это значит для OCR
Мы считаем, что OCR должна стать опциональной для поиска по документам. Для визуально насыщенных PDF-файлов мы рекомендуем протестировать поиск по изображениям страниц перед созданием конвейера извлечения текста. OCR по-прежнему необходима, если вашему приложению требуется извлеченный текст или структурированные поля.
В наших тестах изображения страниц набрали 0,681 nDCG@10 с моделью 9b против 0,671 для тех же страниц, преобразованных в Markdown. Страница в формате Markdown занимала 14 КБ сжатых векторов по сравнению с 40 КБ для изображения страницы. Сохраняйте изображение страницы, когда важен её макет; тестируйте Markdown, когда информацию несет в себе именно текст.
Полные результаты
Мы протестировали четыре публичных набора ViDoRe v3 (HR, финансы, промышленность и фармацевтика, всего 11 609 страниц) с использованием 200 английских запросов на каждый набор. Каждая страница представляет собой многовекторную точку в Qdrant, и каждый поиск сканирует все её векторы, поэтому между запусками меняется только квантование.
Мы измеряли качество ранжирования с помощью метрики нормализованного дисконтированного кумулятивного усиления при отсечке 10 (nDCG@10). Сохраненное качество — это доля точного счета float32, сохраненная при использовании тех же моделей, усредненная по четырем наборам. Размеры для миллиона страниц представляют собой проекции, полученные из размеров векторов для одной страницы, а не бенчмарк поиска по миллиону страниц.
В таблице сравниваются размер векторов и сохраненное качество поиска для модели 9b на изображениях страниц. Сжатые размеры не включают оригиналы; для пересчета используется 4-кратное передискретирование.
В таблице показаны точные значения nDCG@10 в формате float32 для каждой пары моделей. Результаты для страниц представляют собой средние значения по четырем наборам ViDoRe v3; FiQA — это отдельный тест текстового поиска.
Прирост по сравнению с использованием только меньшей модели был скромным на изображениях страниц и более значительным при поиске текста FiQA. При использовании 1-битного TurboQuant смешанная конфигурация сохранила 96,6% без пересчета и 100% с пересчетом по сравнению с той же парой в формате float32.
Настройте многовекторную коллекцию с помощью TurboQuant на 1 бит. Сравните сжатый поиск с неквантованным базовым уровнем на ваших собственных запросах, явно отключив пересчет оценок. Затем включите пересчет и проверьте, стоит ли прирост качества дополнительных чтений из исходных векторов.
Мы выражаем благодарность команде Perplexity за открытие свободного доступа к pplx-embed-v2.












