Model reference · open weights

BaichuanMed-OCR

LLMs baichuan-inc Vision + text 2 builds Its own licence terms 279 dl/mo

BaichuanMed-OCR is an open-weight language model from baichuan-inc. BaichuanMed-OCR-7B (BF16) weighs 16.6 GB; the smallest configuration that runs it is 2× RTX 3060 12 GB.

  • BaichuanMed-OCR-7B is an image-text-to-text model developed by baichuan-inc for performing Optical Character Recognition on medical report images.
  • The model, which has 8.3B parameters and a context length of 128,000 tokens, is fine-tuned from Qwen2.5-VL-7B-Instruct to extract text and answer questions based on the content.
  • It supports English and Chinese languages and is released under an other licence.

Summary of the baichuan-inc/BaichuanMed-OCR-7B model card, 2026-10-01

What it is

Released bybaichuan-inc
Released2025-04-07
Parameters8.3B
VRAM16.6 GB for the weights

What it runs on

Memory and cards for BaichuanMed-OCR-7B (BF16)

16.6 GBweights, file size
57 MBcache per 1K tokens
2.1 GBruntime overhead, at least
128,000 tokenscontext max
CardRequests at onceContext maxMemory
8K each32K each
RTX 3060 12 GB … RTX 4060 Ti 16 GB
2 smaller cards
———
RTX 3090 24 GB10280K23.4 GB
RTX 4090 24 GB9279K23.4 GB
RTX 5090 32 GB266all 125K31.0 GB
L40S 48 GB5313all 125K44.0 GB
A100 80 GB12631all 125K78.2 GB
H100 80 GB11729all 125K78.1 GB
RTX PRO 6000 Blackwell 96 GB15037all 125K93.8 GB
DGX Spark (GB10) 128 GB unified17944all 125K107 GB
H200 141 GB24461all 125K138 GB
B200 180 GB32380all 125K176 GB
2× RTX 3060 12 GB
tensor parallel
5142K11.6 GB a card
2× RTX 4060 Ti 16 GB
tensor parallel
215all 125K15.4 GB a card
Memory needed at each load
Requests at once8K tokens each32K tokens each
119.1 GB20.6 GB
521.0 GB28.1 GB
822.4 GB33.7 GB
1626.2 GB48.7 GB
3233.7 GB78.8 GB
6448.7 GB139 GB

One card, with vLLM's small-card settings.

Builds

Sizes, precisions & builds

BuildParamsPrecisionWeightsSmallest setup
BaichuanMed-OCR-7B (above) ↗ 8.3BBF16 16.6 GB2× RTX 3060 12 GB
BaichuanMed-OCR-72B ↗ 73.4BBF16 147 GB4× L40S 48 GB

From the model card

What baichuan-inc says about BaichuanMed-OCR

Read the model card

Model Overview

BaichuanMed-OCR-7B is a model fine-tuned from the Qwen2.5-VL-7B-Instruct with our constructed and curated medical report datasets consists of medical report images and related questions and answers (QAs). It has been specifically adapted to perform Optical Character Recognition (OCR) on medical report images and answer questions based on the extracted content.

Capabilities:

  • Robust OCR Capability: Accurately recognizes complex textual content within medical report images.
  • Structured Markdown Output: Supports outputting extracted information in Markdown format.
  • Accurate Comprehension and Generation: Comprehends user queries and generates relevant, logically consistent answers derived from the OCR-extracted text.

Evaluation

To evaluate the effectiveness of BaichuanMed-OCR-7B on specific medical report data, we conducted a benchmark test on our private dataset (similar in composition to https://huggingface.co/datasets/mrlijun/SMR-R1), comparing its performance against relevant baseline models. The accuracy results are as follows:

ModelAcc%
Qwen2.5-VL-7B-Instruct71.3%
BaichuanMed-OCR-7B83.5%
Qwen2.5-VL-72B-Instruct83.3%
BaichuanMed-OCR-72B88.6%

The benchmark results indicate that BaichuanMed-OCR-7B and BaichuanMed-OCR-72B achieves higher accuracy on this dataset, showing strong performance for tasks such as extracting key information and summarizing content from medical reports.

Usage

Usage is the same as Qwen2.5VL, here is an example to use the chat model with transformers and qwen_vl_utils:

from transformers import Qwen2_5_VLForConditionalGeneration, AutoTokenizer, AutoProcessor
from qwen_vl_utils import process_vision_info

model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
    "baichuan-inc/BaichuanMed-OCR-7B", torch_dtype="auto", device_map="auto"
)

# default processer
processor = AutoProcessor.from_pretrained("baichuan-inc/BaichuanMed-OCR-7B")

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image",
                "image": "your image url or PATH here.",
            },
            {"type": "text", "text": "提取图片中的文字和重要符号,有表格的就用表格输出。如果有水印,只需要识别一次,不要重复输出同样的水印内容。"},
        ],
    }
]

# Preparation for inference
text = processor.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True
)
image_inputs, video_inputs = process_vision_info(messages)
inputs = processor(
    text=[text],
    images=image_inputs,
    videos=video_inputs,
    padding=True,
    return_tensors="pt",
)
inputs = inputs.to("cuda")

# Inference: Generation of the output
generated_ids = model.generate(**inputs, max_new_tokens=8192)
generated_ids_trimmed = [
    out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
    generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(output_text)

Citation

If you find our work helpful, please cite it as follows:

@misc{lijun2025BaichuanMed-OCR-7B,
  author       = {Lijun Liu, Tao Zhang, Tao Zhang, Chong Li, Mingrui Wang, Chenglin Zhu, Mingan Lin, Zenan Zhou, Weipeng Chen},
  title        = {BaichuanMed-OCR-7B: A powerful medical report OCR recognition model},
  year         = {2025}
}

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms