От простого текста к мультимодальному пониманию
Классические системы RAG (Retrieval-Augmented Generation) часто теряют ценную информацию, игнорируя визуальные элементы документов. Новая архитектура на базе NVIDIA NeMo Retriever решает эту проблему, интегрируя этапы извлечения таблиц, графиков и инфографики непосредственно в процесс подготовки данных. Пайплайн использует Python 3.12 и позволяет работать как в офлайн-режиме (CPU), так и с подключением к облачным API NVIDIA для сложного анализа.
Три ключевых этапа обработки данных
Процесс разделен на логические стадии, обеспечивающие гибкость и точность:
- Stage 1: Офлайн-экстракция. Использование библиотеки PDFium для извлечения базового текста без GPU и API-ключей. Это позволяет быстро протестировать структуру документа локально.
- Stage 2: Мультимодальный ингест. Подключение hosted NVIDIA NIM (NeMo Inference Microservices) для детекции элементов страницы, OCR, извлечения структуры таблиц и анализа графиков. Данные преобразуются в маркдаун, чанкуются с учетом токенов (max_tokens=512, overlap=64) и дедуплицируются.
- Stage 3: Векторный поиск и ранжирование. Генерация эмбеддингов моделью nvidia/llama-nemotron-embed-1b-v2 и сохранение в векторную базу LanceDB (индекс IVF_HNSW_SQ). Завершается процесс визуальным ранжированием (VL Reranking) с помощью модели nvidia/llama-nemotron-rerank-vl-1b-v2.
Технические характеристики и модели
Для обеспечения высокой точности ответов используется цепочка специализированных моделей NVIDIA. Ниже приведена сводка используемых эндпоинтов и моделей:
| Компонент | Модель / Эндпоинт | Назначение |
|---|---|---|
| Векторизация | nvidia/llama-nemotron-embed-1b-v2 | Создание плотных эмбеддингов для поиска |
| Ранжирование | nvidia/llama-nemotron-rerank-vl-1b-v2 | Визуально-язычное ранжирование результатов |
| Генерация ответа | nvidia/llama-3.3-nemotron-super-49b-v1.5 | Формирование ответа с цитированием (Grounded Generation) |
| Анализ страниц | nemotron-page-elements-v3 | Детекция layout и элементов страницы |
| nemotron-table-structure-v1 | Извлечение структуры и данных из таблиц |
Практическая значимость для разработчиков
Интеграция с LanceDB позволяет хранить не только текстовые чанки, но и метаданные (например, номера страниц, bounding-box координаты), что критично для проверки фактов. Система поддерживает фильтрацию по метаданным и предоставляет метрики Recall@K для валидации качества поиска. Такой подход делает возможным создание надежных систем для работы с финансовыми отчетами, научными статьями и техническими спецификациями, где важна точность извлечения данных из сложных макетов.
Источник: MarkTechPost ↗
