Instructions to use Intelligent-Internet/II-Medical-7B-Preview with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Intelligent-Internet/II-Medical-7B-Preview with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Intelligent-Internet/II-Medical-7B-Preview") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("Intelligent-Internet/II-Medical-7B-Preview") model = AutoModelForCausalLM.from_pretrained("Intelligent-Internet/II-Medical-7B-Preview") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.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=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use Intelligent-Internet/II-Medical-7B-Preview with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Intelligent-Internet/II-Medical-7B-Preview" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Intelligent-Internet/II-Medical-7B-Preview", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Intelligent-Internet/II-Medical-7B-Preview
- SGLang
How to use Intelligent-Internet/II-Medical-7B-Preview 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 "Intelligent-Internet/II-Medical-7B-Preview" \ --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": "Intelligent-Internet/II-Medical-7B-Preview", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'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 "Intelligent-Internet/II-Medical-7B-Preview" \ --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": "Intelligent-Internet/II-Medical-7B-Preview", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Intelligent-Internet/II-Medical-7B-Preview with Docker Model Runner:
docker model run hf.co/Intelligent-Internet/II-Medical-7B-Preview
# Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("Intelligent-Internet/II-Medical-7B-Preview")
model = AutoModelForCausalLM.from_pretrained("Intelligent-Internet/II-Medical-7B-Preview")
messages = [
{"role": "user", "content": "Who are you?"},
]
inputs = tokenizer.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=40)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:]))II-Medical-7B-Preview
I. Model Overview
II-Medical-7B-Preview is a medical reasoning model trained on a comprehensive dataset of medical knowledge. The model is designed to enhance AI capabilities in medical.
II. Training Methodology
We collected and generated a comprehensive set of reasoning datasets for the medical domain and performed SFT fine-tuning on the Qwen/Qwen2.5-7B-Instruct model. Following this, we further optimized the SFT model by training DAPO on a hard-reasoning dataset to boost performance.
For SFT stage we using the hyperparameters:
- Max Length: 16378.
- Batch Size: 128.
- Learning-Rate: 5e-5.
- Number Of Epoch: 4.
For RL stage we setup training with:
- Max prompt length: 2048 tokens.
- Max response length: 12288 tokens.
- Overlong buffer: Enabled, 4096 tokens, penalty factor 1.0.
- Clip ratios: Low 0.2, High 0.28.
- Batch sizes: Train prompt 512, Generation prompt 1536, Mini-batch 32.
- Responses per prompt: 16.
- Temperature: 1.0, Top-p: 1.0, Top-k: -1 (vLLM rollout).
- Learning rate: 1e-6, Warmup steps: 10, Weight decay: 0.1.
- Loss aggregation: Token-mean.
- Gradient clipping: 1.0.
- Entropy coefficient: 0.
III. Evaluation Results
We evaluate on ten medical QA benchmarks include MedMCQA, MedQA, PubMedQA, medical related questions from MMLU-Pro and GPQA, small QA sets from Lancet and the New England Journal of Medicine, 4 Options and 5 Options splits from the MedBullets platform and MedXpertQA.
| Model | MedMC | MedQA | PubMed | MMLU-P | GPQA | Lancet | MedB-4 | MedB-5 | MedX | NEJM | Avg |
|---|---|---|---|---|---|---|---|---|---|---|---|
| QWQ 32B | 69.73 | 87.03 | 88.5 | 79.86 | 69.17 | 71.3 | 72.07 | 69.01 | 24.98 | 75.12 | 70.68 |
| Qwen2.5-7B-IT | 56.56 | 61.51 | 71.3 | 61.17 | 42.56 | 61.17 | 46.75 | 40.58 | 13.26 | 59.04 | 51.39 |
| HuatuoGPT-o1-8B | 63.97 | 74.78 | 80.10 | 63.71 | 55.38 | 64.32 | 58.44 | 51.95 | 15.79 | 64.84 | 59.32 |
| Med-reason | 61.67 | 71.87 | 77.4 | 64.1 | 50.51 | 59.7 | 60.06 | 54.22 | 22.87 | 66.8 | 59.92 |
| M1 | 62.54 | 75.81 | 75.80 | 65.86 | 53.08 | 62.62 | 63.64 | 59.74 | 19.59 | 64.34 | 60.3 |
| II-Medical-7B-Preview-Wo-RL | 69.13 | 84.05 | 77.5 | 73.49 | 55.12 | 67.71 | 69.48 | 64.28 | 19.51 | 70.64 | 65.1 |
| II-Medical-7B-Preview | 69.42 | 85.15 | 77.9 | 77.26 | 55.90 | 65.29 | 72.72 | 68.50 | 22.97 | 68.66 | 66.4 |
IV. Dataset Curation
The training dataset comprises 555,000 samples from the following sources:
1. Public Medical Reasoning Datasets (103,031 samples)
- General Medical Reasoning: 40,544 samples
- Medical-R1-Distill-Data: 22,000 samples
- Medical-R1-Distill-Data-Chinese: 17,000 samples
- UCSC-VLAA/m23k-tokenized: 23,487 samples
2. Synthetic Medical QA Data with QwQ (225,700 samples)
Generated from established medical datasets:
- MedMcQA (from openlifescienceai/medmcqa): 183,000 samples
- MedQA: 10,000 samples
- MedReason: 32,700 samples
3. Curated Medical R1 Traces (338,055 samples)
First we gather all the public R1 traces from:
- PrimeIntellect/SYNTHETIC-1
- GeneralReasoning/GeneralThought-430K
- a-m-team/AM-DeepSeek-R1-Distilled-1.4M
- open-thoughts/OpenThoughts2-1M
- nvidia/Llama-Nemotron-Post-Training-Dataset: Science subset only
- Other resources: cognitivecomputations/dolphin-r1, ServiceNow-AI/R1-Distill-SFT,...
All R1 reasoning traces were processed through a domain-specific pipeline as follows:
Embedding Generation: Prompts are embedded using sentence-transformers/all-MiniLM-L6-v2.
Clustering: Perform K-means clustering with 50,000 clusters.
Domain Classification:
- For each cluster, select the 10 prompts nearest to the cluster center.
- Classify the domain of each selected prompt using Qwen2.5-32b-Instruct.
- Assign the cluster's domain based on majority voting among the classified prompts.
Domain Filtering: Keep only clusters labeled as Medical or Biology for the final dataset.
4. Supplementary Math Dataset
- Added 15,000 samples of reasoning traces from light-r1
- Purpose: Enhance general reasoning capabilities of the model
Preprocessing Data
Filtering for Complete Generation
- Retained only traces with complete generation outputs
Length-based Filtering
- Minimum threshold: Keep only the prompt with more than 3 words.
- Maximum threshold: Keep only the traces with less than 7,143 words.
- Wait Token Filter: Removed traces with has more than 47 occurrences of "Wait" (97th percentile threshold).
Data Decontamination
We using two step decontamination:
- Following open-r1 project: We decontaminate a dataset using 10-grams with the evaluation datasets.
- After that, we using the fuzzy decontamination from
s1kmethod with threshold 90%.
Our pipeline is carefully decontaminated with the evaluation datasets.
V. How To Use
Our model can be utilized in the same manner as Qwen or Deepseek-R1-Distill models.
For instance, you can easily start a service using vLLM:
vllm serve Intelligent-Internet/II-Medical-7B-Preview
You can also easily start a service using SGLang:
python -m sglang.launch_server --model Intelligent-Internet/II-Medical-7B-Preview
VI. Usage Guidelines
- Recommended Sampling Parameters: temperature = 0.6, top_p = 0.9
- When using, explicitly request step-by-step reasoning and format the final answer within \boxed{} (e.g., "Please reason step-by-step, and put your final answer within \boxed{}.").
VII. Limitations and Considerations
- Dataset may contain inherent biases from source materials
- Medical knowledge requires regular updates
- Please note that It’s not suitable for medical use.
VIII. Citation
@misc{2025II-Medical-7B-Preview,
title={II-Medical-7B-Preview: Medical Reasoning Model},
author={Intelligent Internet},
year={2025}
}
- Downloads last month
- 21

# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Intelligent-Internet/II-Medical-7B-Preview") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)