Instructions to use hhj-ai/Evidence-RL-9B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use hhj-ai/Evidence-RL-9B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="hhj-ai/Evidence-RL-9B") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("hhj-ai/Evidence-RL-9B") model = AutoModelForMultimodalLM.from_pretrained("hhj-ai/Evidence-RL-9B", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use hhj-ai/Evidence-RL-9B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "hhj-ai/Evidence-RL-9B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "hhj-ai/Evidence-RL-9B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/hhj-ai/Evidence-RL-9B
- SGLang
How to use hhj-ai/Evidence-RL-9B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "hhj-ai/Evidence-RL-9B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "hhj-ai/Evidence-RL-9B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "hhj-ai/Evidence-RL-9B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "hhj-ai/Evidence-RL-9B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use hhj-ai/Evidence-RL-9B with Docker Model Runner:
docker model run hf.co/hhj-ai/Evidence-RL-9B
Evidence-RL-9B
Official checkpoint for Evidence-RL: Towards Evidence-intensive Visual Reasoning (NeurIPS 2026)
Overview
Vision-Language Models (VLMs) often answer from language priors and dataset shortcuts instead of actually looking at the image. Show a pair of glasses with one arm removed, and the model still says "two arms" because glasses usually have two. Evidence-RL-9B is post-trained with Counterfactual Evidence Disentanglement (CED), a counterfactual visual evidence reward that ensures each answer causally depends on the relevant object region, reducing hallucination and improving fine-grained multimodal visual reasoning.
How CED Works
During reinforcement learning post-training (GRPO), CED tests whether the model's answer truly depends on the visual evidence that supports it:
- Identifies an object-centric Evidence Region in the image
- Neutralizes that region in feature space (mean replacement) and measures the log-likelihood drop
- Compares this drop against matched non-evidence regions
Answers that are visually grounded, whose correctness causally depends on the right part of the image, earn higher reward. Answers that survive even without looking at the relevant region (relying on language priors or irrelevant context) are penalized. This counterfactual visual grounding reward uses only weak object-level proposals, requires no question-specific region annotations and adds zero inference-time overhead.
Evidence-RL consistently improves performance across nine benchmarks (counting, spatial reasoning, hallucination detection, fine-grained perception, and general multimodal reasoning) and four backbones, with the largest gains on perception-heavy tasks where language-prior shortcuts are most exposed.
Quickstart
from transformers import AutoModelForImageTextToText, AutoProcessor
from PIL import Image
model_id = "hhj-ai/Evidence-RL-9B"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(
model_id, torch_dtype="bfloat16", device_map="auto"
)
image = Image.open("example.jpg")
messages = [
{"role": "user", "content": [
{"type": "image", "image": image},
{"type": "text", "text": "How many wheels are visible in the image?"}
]}
]
inputs = processor.apply_chat_template(messages, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=256)
print(processor.decode(outputs[0], skip_special_tokens=True))
Resources
- Paper: arXiv 2608.08021
- Code: github.com/evidencerl/code
- Project Page: evidencerl.github.io
Citation
@article{huang2026evidence,
title={Evidence-RL: Towards Evidence-intensive Visual Reasoning},
author={Huang, Haojie and Yu, Xinlei and Xu, Chengming and Chen, Zhangquan and Yang, Cheng and He, Qingdong and Yang, Yu and Zhang, Jiangning and Hu, Xiaobin},
journal={arXiv preprint arXiv:2608.08021},
year={2026}
}
- Downloads last month
- 82