Лицензия YOLO
Назад к глоссарию Ultralytics

ColBERT

ColBERT кодирует запросы и документы в виде эмбеддингов BERT для каждого токена и оценивает их с помощью позднего взаимодействия (MaxSim), обеспечивая быстрый и точный поиск и генерацию с дополненной выборкой (RAG).

ColBERT (контекстуализированное позднее взаимодействие на основе BERT) — нейросетевая модель поиска, которая представляет запрос и каждый документ одним эмбеддингом на токен и оценивает документ с помощью позднего взаимодействия: для каждого токена запроса находится наиболее похожий токен документа, а максимальные значения сходства, называемые MaxSim, суммируются в оценку релевантности. Omar Khattab и Matei Zaharia из Стэнфордского университета представили эту модель в статье SIGIR 2020 года ColBERT: эффективный и результативный поиск фрагментов с помощью контекстуализированного позднего взаимодействия на основе BERT. Эмбеддинги токенов документов вычисляются заранее, офлайн, поэтому во время запроса выполняется недорогое вычисление сходства, а не полный проход BERT для каждого документа-кандидата.

Роль позднего взаимодействия#

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

ColBERT кодирует запрос и документ отдельно, как биэнкодер, но сохраняет по одному 128-мерному вектору на токен и позволяет двум сторонам взаимодействовать только на заключительном этапе MaxSim. Запросы дополняются маскирующим токеном BERT до фиксированной длины 32, благодаря чему у модели появляются дополнительные позиции для расширения запроса связанными терминами. В тестах поиска фрагментов MS MARCO и TREC CAR ColBERT показал результаты на уровне ранжировщиков на основе BERT, при этом работал в сто раз быстрее и использовал на четыре порядка меньше FLOPs на запрос.

Вычисление оценки MaxSim#

Оператор MaxSim реализуется всего в несколько строк PyTorch. В этом примере он применяется к контекстуальным эмбеддингам токенов, полученным с помощью небольшого энкодера семейства BERT:

import torch.nn.functional as F
from sentence_transformers import SentenceTransformer

encoder = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
query = "who wrote the novel Dune"
docs = [
    "Frank Herbert published the science fiction novel Dune in 1965.",
    "A dune is a hill of sand shaped by the wind.",
]

# One L2-normalized contextual embedding per query token
q = F.normalize(encoder.encode(query, output_value="token_embeddings"), dim=-1)
for doc in docs:
    d = F.normalize(encoder.encode(doc, output_value="token_embeddings"), dim=-1)

    # MaxSim: each query token keeps its best-matching document token, and the maxima are summed
    score = (q @ d.T).max(dim=1).values.sum()
    print(f"{score.item():.2f}  {doc}")

Оценка для фрагмента о романе составляет 5.90, а для фрагмента о песчаных дюнах — 4.33. В обоих есть слово «dune», которое хорошо совпадает в каждом случае, но в первом фрагменте токен запроса «wrote» находит «published» со сходством по косинусу 0.72, а «novel» находит сам себя; во втором фрагменте наилучшее совпадение для «wrote» составляет всего 0.29.

  • Сам BERT: предварительно обученный энкодер, который ColBERT дообучает для поиска, добавляя линейный слой, проецирующий каждый токен в пространство размерности 128.
  • Позднее разбиение на фрагменты: Текст тоже кодируется с учетом контекста до разделения, а затем токены усредняются в один вектор на фрагмент; ColBERT же сохраняет вектор каждого токена.
  • Семантический поиск: Задача, которую решает ColBERT, ранжируя фрагменты по смыслу, а не по совпадающим ключевым словам.
  • Гибридный поиск: Объединяет результаты поиска по ключевым словам и по одному вектору, чтобы совместить точное совпадение терминов со смысловым поиском. Сопоставление токенов в ColBERT обеспечивает часть такой точности в рамках одной нейросетевой модели.

Позднее взаимодействие для изображений#

Позднее взаимодействие применимо и к изображениям. ColPali (2024) кодирует снимок страницы документа как сетку векторов патчей с помощью визуально-языковой модели и оценивает его относительно токенов запроса с помощью MaxSim, перенося позднее взаимодействие в мультимодальный RAG для PDF-файлов. По схожей причине детекция объектов с открытым словарём сохраняет детализацию признаков изображения: Ultralytics YOLOE хранит текстовый эмбеддинг для каждого заданного класса, например «двухэтажный автобус», и сравнивает его с признаками областей во всех точках карт признаков, поэтому короткая подсказка может соответствовать одному небольшому объекту, а не одному вектору, суммирующему всё изображение.

ColBERTv2 и PLAID#

Хранение вектора для каждого токена делает индекс ColBERT примерно на порядок больше индекса с одним вектором. Эти затраты важны, когда ColBERT используется как поисковая модель первого этапа или переранжировщик в конвейере генерации с дополнением поиском (RAG). В репозитории Stanford ColBERT реализованы два решения. PLAID — это поисковая система, которая оценивает кандидатов по центроидам кластеров перед запуском полного MaxSim. ColBERTv2 (NAACL 2022) хранит каждый вектор токена как ID ближайшего центроида и остаток, квантованный до 1 или 2 бит на измерение; модель обучается на очищенных метках, полученных дистилляцией из кросс-энкодера. Сжатие остатков уменьшило объём памяти для позднего взаимодействия в 6–10 раз.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения