baichuan-inc/Baichuan-M2-32B
This repository contains the model presented in [Baichuan-M2: Scaling Medical Capability with Large Verifier System](https://huggingface.co/papers/2509.02208). [](https://opensource.org/licenses/Apache-2.0) [](https://huggingface.co/baichuan-inc/Baichuan-M2-32B) [](https://huggingface.co/baichuan-inc/Baichuan-M2-32B-GPTQ-Int4) [](https://modelers.cn/models/Baichuan/Baichuan-M2-32B-W8A8) Baichuan-M2-32B is Baichuan AI's medical-enhanced reasoning model, the second medical model released by Baichuan. Designed for real-world medical reasoning tasks, this model builds upon Qwen2.5-32B with an innovative Large Verifier System. Through domain-specific fine-tuning on real-world medical questions, it achieves breakthrough medical performance while maintaining strong general capabilities. **Model Features:** Baichuan-M2 incorporates three core technical innovations: First, through the **Large Verifier System**, it combines medical scenario characteristics to design a comprehensive medical verification framework, including patient simulators and multi-dimensional verification mechanisms; second, through **medical domain adaptation enhancement** via Mid-Training, it achieves lightweight and efficient medical domain adaptation while preserving general capabilities; finally, it employs a **multi-stage reinforcement learning** strategy, decomposing complex RL tasks into hierarchical training stages to progressively enhance the model's medical knowledge, reasoning, and patient interaction capabilities. **Core Highlights:** - 🏆 **World's Leading Open-Source Medical Model**: Outperforms all open-source models and many proprietary models on HealthBench, achieving medical capabilities closest to GPT-5 - 🧠 **Doctor-Thinking Alignment**: Trained on real clinical cases and patient simulators, with clinical diagnostic thinking and robust patient interaction capabilities - ⚡ **Efficient Deployment**: Supports 4-bit quantization for single-RTX4090 deployment, with 58.5% higher token throughput in MTP version for single-user scenarios *Note: AIME uses max_tokens=64k, others use 32k; temperature=0.6 for all tests.* 📗 **Technical Blog**: [Blog - Baichuan-M2](https://www.baichuan-ai.com/blog/baichuan-M2) 📑 **Technical Report**: [Arxiv - Baichuan-M2](https://arxiv.org/abs/2509.02208) - **Patient Simulator**: Virtual patient system based on real clinical cases - **Multi-Dimensional Verification**: 8 dimensions including medical accuracy, response completeness, and follow-up awareness - **Dynamic Scoring**: Real-time generation of adaptive evaluation criteria for complex clinical scenarios - **Mid-Training**: Medical knowledge injection while preserving general capabilities - **Reinforcement Learning**: Multi-stage RL strategy optimization - **General-Specialized Balance**: Carefully balanced medical, general, and mathematical composite training data from transformers import AutoTokenizer, AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("baichuan-inc/Baichuan-M2-32B", trust_remote_code=True) tokenizer = AutoTokenizer.from_pretrained("baichuan-inc/Baichuan-M2-32B") prompt = "Got a big swelling after a bug bite. Need help reducing it." messages = [ {"role": "user", "content": prompt} ] text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True, thinking_mode='on' # on/off/auto ) model_inputs = tokenizer([text], return_tensors="pt").to(model.device) generated_ids = model.generate( **model_inputs, max_new_tokens=4096 ) output_ids = [ output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids) ][0].tolist() try: index = len(output_ids) - output_ids[::-1].index(151668) except ValueError: index = 0 thinking_content = tokenizer.decode(output_ids[:index], skip_special_tokens=True).strip(" ") content = tokenizer.decode(output_ids[index:], skip_special_tokens=True).strip(" ") print("thinking content:", thinking_content) print("content:", content) For deployment, you can use `sglang>=0.4.6.post1` or `vllm>=0.9.0` or to create an OpenAI-compatible API endpoint: - SGLang: python -m sglang.launch_server --model-path baichuan-inc/Baichuan-M2-32B --reasoning-parser qwen3 - vLLM: vllm serve baichuan-inc/Baichuan-M2-32B --reasoning-parser qwen3 1. Replace the qwen2.py file in the sglang installation directory with draft/qwen2.py. 2. Launch sglang: python3 -m sglang.launch_server \ --model Baichuan-M2-32B \ --speculative-algorithm EAGLE3 \ --speculative-draft-model-path Baichuan-M2-32B/draft \ --speculative-num-steps 6 \ --speculative-eagle-topk 10 \ --speculative-num-draft-tokens 32 \ --mem-fraction 0.9 \ --cuda-graph-max-bs 2 \ --reasoning-parser qwen3 \ --dtype bfloat16 1. **Medical Disclaimer**: For research and reference only; cannot replace professional medical diagnosis or treatment 2. **Intended Use Cases**: Medical education, health consultation, clinical decision support 3. **Safe Use**: Recommended under guidance of medical professionals Licensed under the [Apache License 2.0](LICENSE). Research and commercial use permitted. - Base Model: Qwen2.5-32B - Training Framework: verl - Inference Engines: vLLM, SGLang - Quantization: AutoRound, GPTQ Thank you to the open-source community. We commit to continuous contribution and advancement of healthcare AI. - Resources: [Baichuan AI Website](https://www.baichuan-ai.com) - Technical Support: [GitHub](https://github.com/baichuan-inc) **Empowering Healthcare with AI, Making Health Accessible to All**
Open baichuan-inc/Baichuan-M2-32B in AIniverse
Compare versions, read real ratings, save to your stack.
Open in App