Sentence Transformers v6.0 додає підтримку багатовекторного пошуку Late Interaction
Sentence Transformers v6.0 представляє MultiVectorEncoder для моделей пізньої взаємодії в стилі ColBERT. Збереження векторів окремих токенів замість одного підсумкового вектора покращує якість точного пошуку складних та візуальних запитів.

Вплив: Середній
Чому це важливо
Тепер ви можете розгортати точні пайплайни пошуку ColBERT та ColPali безпосередньо через стандартний Python API Sentence Transformers.
TL;DR
- 01Sentence Transformers v6.0 додає нативну підтримку MultiVectorEncoder для моделей ColBERT та ColPali.
- 02Пізня взаємодія зберігає точність токенового пошуку для складних запитів із кількома умовами.
- 03Квантовані індекси на зразок fast-plaid нівелюють проблему збільшення розміру бази векторів.
Ключові факти
- Середня кількість векторів на текст
- 124.8
- Нестиснений розмір зберігання
- 62 КіБ на текст
- Стиснений індекс (fast-plaid)
- 92 МБ для 608k векторів
Архітектурний перехід до Late Interaction
Стандартні двокодувальники стискають фрагменти в один вектор (наприклад, 384 або 768 вимірів). Натомість MultiVectorEncoder зберігає контекст токенів, формуючи матрицю ($N \times 128$ для $N$ токенів). Оцінка запиту виконується оператором MaxSim, який підсумовує максимальні косинусні схожості між токенами запиту та документа.
Розмір індексу та варіанти квантування
Збереження векторів токенів збільшує обсяг індексу. Наприклад, кодування 4 874 фрагментів дає приблизно 608 414 векторів (124.8 векторів на фрагмент, близько 62 КіБ у нестисненому вигляді). Використання квантованих індексів, таких як fast-plaid, зменшує розмір цього ж корпусу до 92 МБ.
Вимоги та сумісність
Sentence Transformers v6.0 вимагає transformers v5.x, torch 2.2+ та huggingface-hub v1.x. Бібліотека підтримує пряме завантаження моделей PyLate, ColBERT та ColPali.
Спробуй за 2 хвилини
from sentence_transformers import MultiVectorEncoder
model = MultiVectorEncoder("lightonai/LateOn")python
✓ Коли використовувати
- Побудова RAG-систем, які вимагають точного збігу сутностей, технічних назв або складних умов запиту.
- Пошук у візуальних документах та сканах сторінок за допомогою ColPali без попереднього OCR.
✕ Коли НЕ варто
- Коли жорсткі обмеження оперативної пам'яті або диска не дозволяють зберігати кілька векторів на документ.
- Якщо звичайні одновекторні етикетки забезпечують достатню точність для коротких запитів.
Що зробити сьогодні
- Оновіть бібліотеку через pip install -U sentence-transformers.
- Протестуйте MultiVectorEncoder на датасетах із точними ідентифікаторами або декількома умовами.
- Оцініть використання fast-plaid або пулінгу токенів для оптимізації пам'яті індексу.
Джерела