{"id":50132754,"url":"https://github.com/OpenBMB/VisRAG","last_synced_at":"2026-06-23T05:00:31.373Z","repository":{"id":257987604,"uuid":"872632465","full_name":"OpenBMB/VisRAG","owner":"OpenBMB","description":"Parsing-free RAG supported by VLMs","archived":false,"fork":false,"pushed_at":"2025-12-07T07:45:09.000Z","size":20194,"stargazers_count":901,"open_issues_count":0,"forks_count":74,"subscribers_count":11,"default_branch":"master","last_synced_at":"2026-01-22T15:46:17.944Z","etag":null,"topics":["document-retrieval","document-understanding","multi-modal","multi-modality","rag","retrieval","retrieval-augmented-generation","vision-language-model"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenBMB.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-14T19:29:00.000Z","updated_at":"2026-01-22T12:41:55.000Z","dependencies_parsed_at":"2025-10-18T19:09:01.818Z","dependency_job_id":"8b632cdd-04da-449b-99fb-e85028a446c2","html_url":"https://github.com/OpenBMB/VisRAG","commit_stats":null,"previous_names":["openbmb/visrag"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/OpenBMB/VisRAG","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenBMB%2FVisRAG","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenBMB%2FVisRAG/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenBMB%2FVisRAG/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenBMB%2FVisRAG/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenBMB","download_url":"https://codeload.github.com/OpenBMB/VisRAG/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenBMB%2FVisRAG/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34675970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["document-retrieval","document-understanding","multi-modal","multi-modality","rag","retrieval","retrieval-augmented-generation","vision-language-model"],"created_at":"2026-05-23T21:00:29.580Z","updated_at":"2026-06-23T05:00:31.367Z","avatar_url":"https://github.com/OpenBMB.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# VisRAG 2.0: Evidence-Guided Multi-Image Reasoning in Visual Retrieval-Augmented Generation\n[![Github](https://img.shields.io/badge/VisRAG-000000?style=for-the-badge\u0026logo=github\u0026logoColor=000\u0026logoColor=white)](https://github.com/OpenBMB/VisRAG)\n[![arXiv](https://img.shields.io/badge/arXiv-2510.09733-ff0000.svg?style=for-the-badge)](https://arxiv.org/abs/2510.09733)\n[![arXiv](https://img.shields.io/badge/arXiv-2410.10594-ff0000.svg?style=for-the-badge)](https://arxiv.org/abs/2410.10594)\n[![Hugging Face](https://img.shields.io/badge/EvisRAG_7B-fcd022?style=for-the-badge\u0026logo=huggingface\u0026logoColor=000)](https://huggingface.co/openbmb/EVisRAG-7B)\n[![Hugging Face](https://img.shields.io/badge/EvisRAG_3B-fcd022?style=for-the-badge\u0026logo=huggingface\u0026logoColor=000)](https://huggingface.co/openbmb/EVisRAG-3B)\n[![Hugging Face](https://img.shields.io/badge/VisRAG_Ret-fcd022?style=for-the-badge\u0026logo=huggingface\u0026logoColor=000)](https://huggingface.co/openbmb/VisRAG-Ret)\n[![Hugging Face](https://img.shields.io/badge/VisRAG_Collection-fcd022?style=for-the-badge\u0026logo=huggingface\u0026logoColor=000)](https://huggingface.co/collections/openbmb/visrag-6717bbfb471bb018a49f1c69)\n[![Hugging Face](https://img.shields.io/badge/VisRAG_Pipeline-fcd022?style=for-the-badge\u0026logo=huggingface\u0026logoColor=000)](https://huggingface.co/spaces/tcy6/VisRAG_Pipeline)\n[![Google Colab](https://img.shields.io/badge/VisRAG_Pipeline-ffffff?style=for-the-badge\u0026logo=googlecolab\u0026logoColor=f9ab00)](https://colab.research.google.com/drive/11KV9adDNXPfHiuFAfXNOvtYJKcyR8JZH?usp=sharing)\n\n\u003cp align=\"center\"\u003e•\n \u003ca href=\"#-introduction\"\u003e 📖 Introduction \u003c/a\u003e •\n \u003ca href=\"#-news\"\u003e🎉 News\u003c/a\u003e •\n \u003ca href=\"#-visrag-pipeline\"\u003e✨ VisRAG Pipeline\u003c/a\u003e •\n \u003ca href=\"#%EF%B8%8F-setup\"\u003e⚙️ Setup\u003c/a\u003e •\n \u003ca href=\"#%EF%B8%8F-training\"\u003e⚡️ Training\u003c/a\u003e \n\u003c/p\u003e\n\u003cp align=\"center\"\u003e•\n \u003ca href=\"#-evaluation\"\u003e📃 Evaluation\u003c/a\u003e •\n \u003ca href=\"#-usage\"\u003e🔧 Usage\u003c/a\u003e •\n \u003ca href=\"#-license\"\u003e📄 Lisense\u003c/a\u003e •\n \u003ca href=\"#-contact\"\u003e📧 Contact\u003c/a\u003e •\n \u003ca href=\"#-star-history\"\u003e📈 Star History\u003c/a\u003e\n\u003c/p\u003e\n\n# 📖 Introduction\n**EVisRAG (VisRAG 2.0)** is an evidence-guided Vision Retrieval-augmented Generation framework that equips VLMs for multi-image questions by first linguistically observing retrieved images to collect per-image evidence, then reasoning over those cues to answer. **EVisRAG** trains with Reward-Scoped GRPO, applying fine-grained token-level rewards to jointly optimize visual perception and reasoning.\n\n\u003cp align=\"center\"\u003e\u003cimg width=800 src=\"assets/evisrag.png\"/\u003e\u003c/p\u003e\n\n\n**VisRAG** is a novel vision-language model (VLM)-based RAG pipeline. In this pipeline, instead of first parsing the document to obtain text, the document is directly embedded using a VLM as an image and then retrieved to enhance the generation of a VLM. Compared to traditional text-based RAG, **VisRAG** maximizes the retention and utilization of the data information in the original documents, eliminating the information loss introduced during the parsing process.\n\n\u003cp align=\"center\"\u003e\u003cimg width=800 src=\"assets/main_figure.png\"/\u003e\u003c/p\u003e\n\n# 🎉 News\n\n* 20251207: Released all [benchmarks](https://huggingface.co/collections/openbmb/visrag) on HuggingFace.\n* 20251118: Both EVisRAG and VisRAG can be easily reproduced within [UltraRAG v2](https://github.com/OpenBMB/UltraRAG).\n* 20251022: We upload all evaluation benchmarks in [VisRAG Collections](https://huggingface.co/collections/openbmb/visrag-6717bbfb471bb018a49f1c69) \n* 20251014: Released [EVisRAG-3B](https://huggingface.co/openbmb/EVisRAG-3B) on HuggingFace.\n* 20251014: Released **EVisRAG (VisRAG 2.0)**, an end-to-end Vision-Language Model. Released our [Paper](https://arxiv.org/abs/2510.09733) on arXiv. Released our [Model](https://huggingface.co/openbmb/EVisRAG-7B) on HuggingFace. Released our [Code](https://github.com/OpenBMB/VisRAG) on GitHub\n* 20241111: Released our [VisRAG Pipeline](https://github.com/OpenBMB/VisRAG/tree/master/visrag_scripts/demo/visrag_pipeline) on GitHub, now supporting visual understanding across multiple PDF documents.\n* 20241104: Released our [VisRAG Pipeline](https://huggingface.co/spaces/tcy6/VisRAG_Pipeline) on Hugging Face Space.\n* 20241031: Released our [VisRAG Pipeline](https://colab.research.google.com/drive/11KV9adDNXPfHiuFAfXNOvtYJKcyR8JZH?usp=sharing) on Colab. Released codes for converting files to images, which could be found at `visrag_scripts/file2img`.\n* 20241015: Released our train data and test data on Hugging Face which can be found in the [VisRAG](https://huggingface.co/collections/openbmb/visrag-6717bbfb471bb018a49f1c69) Collection on Hugging Face. It is referenced at the beginning of this page.\n* 20241014: Released our [Paper](https://arxiv.org/abs/2410.10594) on arXiv. Released our [Model](https://huggingface.co/openbmb/VisRAG-Ret) on Hugging Face. Released our [Code](https://github.com/OpenBMB/VisRAG) on GitHub.\n\n# ✨ VisRAG Pipeline\n## EVisRAG\n\n**EVisRAG** is an end-to-end framework that equips VLMs with precise visual perception during reasoning in multi-image scenarios. We trained and released VLRMs with EVisRAG built on [Qwen2.5-VL-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct), and [Qwen2.5-VL-3B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-3B-Instruct).\n\n## VisRAG-Ret\n\n**VisRAG-Ret** is a document embedding model built on [MiniCPM-V 2.0](https://huggingface.co/openbmb/MiniCPM-V-2), a vision-language model that integrates [SigLIP](https://huggingface.co/google/siglip-so400m-patch14-384) as the vision encoder and [MiniCPM-2B](https://huggingface.co/openbmb/MiniCPM-2B-sft-bf16) as the language model.\n\n## VisRAG-Gen\n\nIn the paper, we use MiniCPM-V 2.0, MiniCPM-V 2.6, and GPT-4o as the generators. Actually, you can use any VLMs you like!\n\n# ⚙️ Setup\n## EVisRAG\n```bash\ngit clone https://github.com/OpenBMB/VisRAG.git\nconda create --name EVisRAG python==3.10\nconda activate EVisRAG\ncd EVisRAG\npip install -r EVisRAG_requirements.txt\n```\n## VisRAG\n```bash\ngit clone https://github.com/OpenBMB/VisRAG.git\nconda create --name VisRAG python==3.10.8\nconda activate VisRAG\nconda install nvidia/label/cuda-11.8.0::cuda-toolkit\ncd VisRAG\npip install -r requirements.txt\npip install -e .\ncd timm_modified\npip install -e .\ncd ..\n```\nNote:\n1. `timm_modified` is an enhanced version of the `timm` library that supports gradient checkpointing, which we use in our training process to reduce memory usage.\n\n# ⚡️ Training\n## EVisRAG\n\nTo train EVisRAG effectively, we introduce Reward-Scoped Group Relative Policy Optimization (RS-GRPO), which binds fine-grained rewards to scope-specific tokens to jointly optimize visual perception and reasoning abilities of VLMs.\n\n\u003cp align=\"center\"\u003e\u003cimg width=800 src=\"assets/rsgrpo.png\"/\u003e\u003c/p\u003e\n\n***Stage1: SFT*** (based on [LLaMA-Factory](https://github.com/hiyouga/LLaMA-Factory))\n\n```bash\ngit clone https://github.com/hiyouga/LLaMA-Factory.git \nbash evisrag_scripts/full_sft.sh\n```\n\n***Stage2: RS-GRPO*** (based on [Easy-R1](https://github.com/hiyouga/EasyR1))\n\n```bash\nbash evisrag_scripts/run_rsgrpo.sh\n```\n\nNotes:\n\n1. The training data is available on Hugging Face under `EVisRAG-Train`, which is referenced at the beginning of this page.\n2. We adopt a two-stage training strategy. In the first stage, please clone `LLaMA-Factory` and update the model path in the full_sft.sh script. In the second stage, we built our customized algorithm `RS-GRPO` based on `Easy-R1`, specifically designed for EVisRAG, whose implementation can be found in `src/RS-GRPO`.\n\n## VisRAG-Ret\n\nOur training dataset of 362,110 Query-Document (Q-D) Pairs for **VisRAG-Ret** is comprised of train sets of openly available academic datasets (34%) and a synthetic dataset made up of pages from web-crawled PDF documents and augmented with VLM-generated (GPT-4o) pseudo-queries (66%). \n\n```bash\nbash visrag_scripts/train_retriever/train.sh 2048 16 8 0.02 1 true false config/deepspeed.json 1e-5 false wmean causal 1 true 2 false \u003cmodel_dir\u003e \u003crepo_name_or_path\u003e\n```\nNote:\n1. Our training data can be found in the `VisRAG` collection on Hugging Face, referenced at the beginning of this page. Please note that we have separated the `In-domain-data` and `Synthetic-data` due to their distinct differences. If you wish to train with the complete dataset, you’ll need to merge and shuffle them manually.\n2. The parameters listed above are those used in our paper and can be used to reproduce the results.\n3. `\u003crepo_name_or_path\u003e` can be any of the following: `openbmb/VisRAG-Ret-Train-In-domain-data`, `openbmb/VisRAG-Ret-Train-Synthetic-data`, the directory path of a repository downloaded from `Hugging Face`, or the directory containing your own training data.\n4. If you wish to train using your own datasets, remove the `--from_hf_repo` line from the `train.sh` script. Additionally, ensure that your dataset directory contains a `metadata.json` file, which must include a `length` field specifying the total number of samples in the dataset.\n5. Our training framework is modified based on [OpenMatch](https://github.com/OpenMatch/OpenMatch).\n\n## VisRAG-Gen\n\nThe generation part does not use any fine-tuning, we directly use off-the-shelf LLMs/VLMs for generation.\n\n# 📃 Evaluation\n## EVisRAG\n```bash\nbash evisrag_scripts/predict.sh\nbash evisrag_scripts/eval.sh \n```\n\nNotes:\n\n1. The test data is available on Hugging Face under `EVisRAG-Test-xxx`, as referenced at the beginning of this page.\n2. To run evaluation, first execute the `predict.sh` script. The model outputs will be saved in the preds directory. Then, use the `eval.sh` script to evaluate the predictions. The metrics `EM`, `Accuracy`, and `F1` will be reported directly.\n\n## VisRAG-Ret\n\n```bash\nbash visrag_scripts/eval_retriever/eval.sh 512 2048 16 8 wmean causal ArxivQA,ChartQA,MP-DocVQA,InfoVQA,PlotQA,SlideVQA \u003cckpt_path\u003e\n```\n\nNote: \n1. Our test data can be found in the `VisRAG` Collection on Hugging Face, which is referenced at the beginning of this page.\n2. The parameters listed above are those used in our paper and can be used to reproduce the results.\n3. The evaluation script is configured to use datasets from Hugging Face by default. If you prefer to evaluate using locally downloaded dataset repositories, you can modify the `CORPUS_PATH`, `QUERY_PATH`, `QRELS_PATH` variables in the evaluation script to point to the local repository directory.\n\n## VisRAG-Gen\nThere are three settings in our generation: text-based generation, single-image-VLM-based generation and multi-image-VLM-based generation. Under single-image-VLM-based generation, there are two additional settings: page concatenation and weighted selection. For detailed information about these settings, please refer to our paper.\n```bash\npython visrag_scripts/generate/generate.py \\\n--model_name \u003cmodel_name\u003e \\\n--model_name_or_path \u003cmodel_path\u003e \\\n--dataset_name \u003cdataset_name\u003e \\\n--dataset_name_or_path \u003cdataset_path\u003e \\\n--rank \u003cprocess_rank\u003e \\ \n--world_size \u003cworld_size\u003e \\\n--topk \u003cnumber of docs retrieved for generation\u003e \\\n--results_root_dir \u003cretrieval_results_dir\u003e \\\n--task_type \u003ctask_type\u003e \\\n--concatenate_type \u003cimage_concatenate_type\u003e \\\n--output_dir \u003coutput_dir\u003e\n```\nNote:\n1. `use_positive_sample` determines whether to use only the positive document for the query. Enable this to exclude retrieved documents and omit `topk` and `results_root_dir`. If disabled, you must specify `topk` (number of retrieved documents) and organize `results_root_dir` as `results_root_dir/dataset_name/*.trec`.\n2. `concatenate_type` is only needed when `task_type` is set to `page_concatenation`. Omit this if not required.\n3. Always specify `model_name_or_path`, `dataset_name_or_path`, and `output_dir`.\n4. Use `--openai_api_key` only if GPT-based evaluation is needed.\n\n# 🔧 Usage\n## EVisRAG\n\nModel on Hugging Face: https://huggingface.co/openbmb/EVisRAG-7B\n\n```python\nfrom transformers import AutoProcessor\nfrom vllm import LLM, SamplingParams\nfrom qwen_vl_utils import process_vision_info\n\ndef evidence_promot_grpo(query):\n    return f\"\"\"You are an AI Visual QA assistant. I will provide you with a question and several images. Please follow the four steps below:\n\nStep 1: Observe the Images\nFirst, analyze the question and consider what types of images may contain relevant information. Then, examine each image one by one, paying special attention to aspects related to the question. Identify whether each image contains any potentially relevant information.\nWrap your observations within \u003cobserve\u003e\u003c/observe\u003e tags.\n\nStep 2: Record Evidences from Images\nAfter reviewing all images, record the evidence you find for each image within \u003cevidence\u003e\u003c/evidence\u003e tags.\nIf you are certain that an image contains no relevant information, record it as: [i]: no relevant information(where i denotes the index of the image).\nIf an image contains relevant evidence, record it as: [j]: [the evidence you find for the question](where j is the index of the image).\n\nStep 3: Reason Based on the Question and Evidences\nBased on the recorded evidences, reason about the answer to the question.\nInclude your step-by-step reasoning within \u003cthink\u003e\u003c/think\u003e tags.\n\nStep 4: Answer the Question\nProvide your final answer based only on the evidences you found in the images.\nWrap your answer within \u003canswer\u003e\u003c/answer\u003e tags.\nAvoid adding unnecessary contents in your final answer, like if the question is a yes/no question, simply answer \"yes\" or \"no\".\nIf none of the images contain sufficient information to answer the question, respond with \u003canswer\u003einsufficient to answer\u003c/answer\u003e.\n\nFormatting Requirements:\nUse the exact tags \u003cobserve\u003e, \u003cevidence\u003e, \u003cthink\u003e, and \u003canswer\u003e for structured output.\nIt is possible that none, one, or several images contain relevant evidence.\nIf you find no evidence or few evidences, and insufficient to help you answer the question, follow the instruction above for insufficient information.\n\nQuestion and images are provided below. Please follow the steps as instructed.\nQuestion: {query}\n\"\"\"\n\nmodel_path = \"xxx\"\nprocessor = AutoProcessor.from_pretrained(model_path, trust_remote_code=True, padding_side='left')\n\nimgs, query = [\"imgpath1\", \"imgpath2\", ..., \"imgpathX\"], \"What xxx?\"\ninput_prompt = evidence_promot_grpo(query)\n\ncontent = [{\"type\": \"text\", \"text\": input_prompt}]\nfor imgP in imgs:\n    content.append({\n        \"type\": \"image\",\n        \"image\": imgP\n    })\nmsg = [{\n          \"role\": \"user\",\n          \"content\": content,\n      }]\n\nllm = LLM(\n    model=model_path,\n    tensor_parallel_size=1,\n    dtype=\"bfloat16\",\n    limit_mm_per_prompt={\"image\":5, \"video\":0},\n)\n\nsampling_params = SamplingParams(\n    temperature=0.1,\n    repetition_penalty=1.05,\n    max_tokens=2048,\n)\n\nprompt = processor.apply_chat_template(\n    msg,\n    tokenize=False,\n    add_generation_prompt=True,\n)\n\nimage_inputs, _ = process_vision_info(msg)\n\nmsg_input = [{\n    \"prompt\": prompt,\n    \"multi_modal_data\": {\"image\": image_inputs},\n}]\n\noutput_texts = llm.generate(msg_input,\n    sampling_params=sampling_params,\n)\n\nprint(output_texts[0].outputs[0].text)\n```\n\n\n## VisRAG-Ret\n\nModel on Hugging Face: https://huggingface.co/openbmb/VisRAG-Ret\n\n```python\nfrom transformers import AutoModel, AutoTokenizer\nimport torch\nimport torch.nn.functional as F\nfrom PIL import Image\nimport os\n\ndef weighted_mean_pooling(hidden, attention_mask):\n    attention_mask_ = attention_mask * attention_mask.cumsum(dim=1)\n    s = torch.sum(hidden * attention_mask_.unsqueeze(-1).float(), dim=1)\n    d = attention_mask_.sum(dim=1, keepdim=True).float()\n    reps = s / d\n    return reps\n\n@torch.no_grad()\ndef encode(text_or_image_list):\n    \n    if (isinstance(text_or_image_list[0], str)):\n        inputs = {\n            \"text\": text_or_image_list,\n            'image': [None] * len(text_or_image_list),\n            'tokenizer': tokenizer\n        }\n    else:\n        inputs = {\n            \"text\": [''] * len(text_or_image_list),\n            'image': text_or_image_list,\n            'tokenizer': tokenizer\n        }\n    outputs = model(**inputs)\n    attention_mask = outputs.attention_mask\n    hidden = outputs.last_hidden_state\n\n    reps = weighted_mean_pooling(hidden, attention_mask)   \n    embeddings = F.normalize(reps, p=2, dim=1).detach().cpu().numpy()\n    return embeddings\n\nmodel_name_or_path = \"openbmb/VisRAG-Ret\"\ntokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=True)\nmodel = AutoModel.from_pretrained(model_name_or_path, torch_dtype=torch.bfloat16, trust_remote_code=True)\nmodel.eval()\n\nscript_dir = os.path.dirname(os.path.realpath(__file__))\nqueries = [\"What does a dog look like?\"]\npassages = [\n    Image.open(os.path.join(script_dir, 'test_image/cat.jpeg')).convert('RGB'),\n    Image.open(os.path.join(script_dir, 'test_image/dog.jpg')).convert('RGB'),\n]\n\nINSTRUCTION = \"Represent this query for retrieving relevant documents: \"\nqueries = [INSTRUCTION + query for query in queries]\n\nembeddings_query = encode(queries)\nembeddings_doc = encode(passages)\n\nscores = (embeddings_query @ embeddings_doc.T)\nprint(scores.tolist())\n```\n## VisRAG-Gen\nFor `VisRAG-Gen`, you can explore the `VisRAG Pipeline` on Google Colab which includes both `VisRAG-Ret` and `VisRAG-Gen` to try out this simple demonstration.\n\n\n# 📄 License\n\n* The code in this repo is released under the [Apache-2.0](https://github.com/OpenBMB/MiniCPM/blob/main/LICENSE) License. \n* The usage of **VisRAG-Ret** model weights must strictly follow [MiniCPM Model License.md](https://github.com/OpenBMB/MiniCPM/blob/main/MiniCPM%20Model%20License.md).\n* The models and weights of **VisRAG-Ret** are completely free for academic research. After filling out a [\"questionnaire\"](https://modelbest.feishu.cn/share/base/form/shrcnpV5ZT9EJ6xYjh3Kx0J6v8g) for registration, **VisRAG-Ret** weights are also available for free commercial use.\n\n# 📧 Contact\n## EVisRAG\n- Yubo Sun: syb2000417@stu.pku.edu.cn\n- Chunyi Peng: hm.cypeng@gmail.com\n## VisRAG\n- Shi Yu: yus21@mails.tsinghua.edu.cn\n- Chaoyue Tang: tcy006@gmail.com\n\n# 📈 Star History\n\n\u003ca href=\"https://star-history.com/#openbmb/VisRAG\u0026Date\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=openbmb/VisRAG\u0026type=Date\u0026theme=dark\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=openbmb/VisRAG\u0026type=Date\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=openbmb/VisRAG\u0026type=Date\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOpenBMB%2FVisRAG","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FOpenBMB%2FVisRAG","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOpenBMB%2FVisRAG/lists"}