- Category
- AI Tools
- Rank
- No. 1307Tools index
Previous survey · No. 1313 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- openbmb
- GitHub
- 979 stars
- Date
About
Parsing-free RAG pipeline backed by vision-language models — index PDFs and slides as images instead of text.
What it does
VisRAG answers questions across visually rich documents. Its current EVisRAG workflow inspects each retrieved image, records image-specific evidence, reasons over those observations, and returns an answer or declares that the evidence is insufficient. A separate document model handles retrieval, while compatible vision-language models handle generation.
Why it's ranked here
The project tackles a real weakness in document question answering: text extraction can discard layout and other visual information. Its strongest case is the explicit evidence stage for multi-image reasoning, backed by released models, training procedures, datasets, evaluation scripts, and several generation modes. The setup remains research-oriented and operationally demanding.
What's good
The evidence format makes the reasoning pipeline inspectable. Each image receives a relevant finding or an explicit no-information marker before answer generation. Users can evaluate exact match, accuracy, and F1, including separate treatment of answerable and insufficient-evidence cases. Retrieval training supports distributed contrastive learning, shared negatives, gradient caching, and custom datasets.
Tradeoffs
Installation pins an older CUDA toolkit and several exact package versions, then requires editable installation of both the main package and a modified vision library. Training spans external frameworks and manually prepared datasets. The supplied prediction script contains placeholder model locations and fixes visible GPUs in code. Generation still depends on substantial vision-language models and local orchestration.
How to use it well
Choose VisRAG for research or controlled document question-answering systems where charts, slides, page layout, and evidence across several images matter. Start with the released retriever and vision-language models, then benchmark against your own documents and insufficient-evidence cases. It does not provide a hosted application service, general document management, or a lightweight turnkey deployment surface.
Technical notes+
setup.py packages src/openmatch as openmatch-thunlp, requires Python 3.7 or newer, and declares Transformers, Datasets, and SentencePiece; requirements.txt adds pinned Torch, Transformers, CUDA-oriented DeepSpeed, PyMuPDF, Pillow, OpenAI, and evaluation dependencies. src/evisrag/predict.py is an argparse-driven batch inference script using vLLM, Qwen vision utilities, bfloat16, local JSONL data, and placeholder model paths. src/evisrag/prompt.py defines tagged observation, evidence, reasoning, and answer prompts. src/evisrag/eval.py computes exact match, subset accuracy, F1, and answer-sufficiency splits. src/openmatch/loss.py implements local and distributed contrastive losses plus ranking losses. src/rsgrpo/setup.py separately packages the customized reinforcement-learning framework as verl under Apache 2.0.
Observed
- Primary language
- Python
- Main package
- Setuptools package named openmatch-thunlp, installed from the repository in editable mode
- Install surface
- Conda environment, pip requirements, two editable package installs, and an NVIDIA CUDA 11.8 toolkit
- Interfaces
- Python library modules and command-line scripts for training, prediction, generation, retrieval, and evaluation
- Model ecosystem
- Released retriever and generation models are linked through Hugging Face
- Licensing metadata
- The main package classifier declares MIT; the bundled RS-GRPO package declares Apache 2.0
Read from README.md, setup.py, requirements.txt, src/evisrag/eval.py, src/rsgrpo/setup.py, src/evisrag/prompt.py, src/openmatch/loss.py, src/evisrag/predict.py, src/openmatch/utils.py, src/openmatch/arguments.py, src/openmatch/generation_utils.py, src/rsgrpo/verl/__init__.py, src/openmatch/dataset/__init__.py, src/openmatch/trainer/__init__.py.
What it can do
Index PDF documents as images
PDF files → Image-based document index
Index presentation slides as images
Slide files (PPT, PPTX) → Image-based slide index
Perform visual document retrieval
User query and indexed document images → Relevant document sections or pages
Generate answers from visual content
User questions and retrieved document images → Text-based answers derived from visual analysis
Process documents without text parsing
Documents with complex layouts, charts, or diagrams → Searchable visual content understanding
Extract information from visual elements
Images containing charts, graphs, or infographics → Structured information and insights
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
