158 lines
6.5 KiB
Markdown
158 lines
6.5 KiB
Markdown
---
|
||
library_name: transformers
|
||
tags: []
|
||
---
|
||
|
||
# II-Medical-7B-Preview
|
||
|
||
<div style="display: flex; justify-content: center;">
|
||
<img src="https://cdn-uploads.huggingface.co/production/uploads/6389496ff7d3b0df092095ed/73Y-oDmehp0eJ2HWrfn3V.jpeg" width="800">
|
||
</div>
|
||
|
||
## I. Model Overview
|
||
|
||
II-Medical-7B-Preview is a medical reasoning model trained on a [comprehensive dataset](https://huggingface.co/datasets/Intelligent-Internet/II-Medical-Reasoning-SFT-V0) 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:
|
||
|
||
1. Embedding Generation: Prompts are embedded using sentence-transformers/all-MiniLM-L6-v2.
|
||
|
||
2. Clustering: Perform K-means clustering with 50,000 clusters.
|
||
|
||
3. 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.
|
||
|
||
4. 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
|
||
1. Filtering for Complete Generation
|
||
- Retained only traces with complete generation outputs
|
||
|
||
2. 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:
|
||
1. Following open-r1 project: We decontaminate a dataset using 10-grams with the evaluation datasets.
|
||
2. After that, we using the fuzzy decontamination from `s1k` method 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](https://github.com/vllm-project/vllm):
|
||
|
||
```bash
|
||
vllm serve Intelligent-Internet/II-Medical-7B-Preview
|
||
```
|
||
|
||
You can also easily start a service using [SGLang](https://github.com/sgl-project/sglang):
|
||
|
||
```bash
|
||
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
|
||
|
||
```bib
|
||
@misc{2025II-Medical-7B-Preview,
|
||
title={II-Medical-7B-Preview: Medical Reasoning Model},
|
||
author={Intelligent Internet},
|
||
year={2025}
|
||
}
|
||
``` |