Собираем мультимодальный RAG пайплайн: NVIDIA NeMo Retriever, LanceDB и реранжирование на практике
NVIDIA выпустила подробный гайд по сборке мультимодального RAG пайплайна с использованием NeMo Retriever, hosted NIM (NeMo Inference Microservices) и LanceDB. Всё начинается с настройки окружения Python 3.12, установки пакета nemo-retriever и офлайн-извлечения текста из PDF через PDFium — без GPU и внешних API-ключей.
Затем подключаются hosted NIM-эндпоинты NVIDIA: Nemotron Page Elements для детекции элементов страницы, OCR, табличная структура и графические элементы. Эти сервисы извлекают таблицы, диаграммы и инфографику, а модель Llama-Nemotron Embed генерирует плотные векторные эмбеддинги. Всё сохраняется в LanceDB. Далее реализован dense retrieval, реранжирование с vision-language моделью Llama-Nemotron Rerank VL, поиск с фильтрацией по метаданным и генерация обоснованных ответов с inline-цитатами.
Для оценки качества извлечения используется метрика recall@k. Код полностью открыт и доступен на GitHub. Это готовый рецепт для тех, кто хочет быстро прототипировать мультимодальный поиск по документам с таблицами и графиками без аренды GPU.