🩺 HuatuoGPT-3-7B-Pangu

Introduction

HuatuoGPT-3 is an open-source medical LLM trained with SeedRL, an RL-only domain adaptation paradigm that transforms a base model into a medical expert in a single RL stage.

HuatuoGPT-3-7B-Pangu is the Pangu-based variant in the HuatuoGPT-3 series. Different from the Qwen-based versions, it is built on FreedomIntelligence/openPangu-Embedded-7B and trained with Ascend NPUs.

For more information, visit our GitHub repository: https://github.com/FreedomIntelligence/HuatuoGPT-3

HuatuoGPT-3-7B-Pangu is set to thinking mode by default. Since it is based on openPangu, the generated reasoning content is placed between [unused16] and [unused17], and the final response starts after [unused17].

Model Info

Model Description Backbone Link
HuatuoGPT-3-32B 32B medical LLM trained with SeedRL Qwen3-32B HF Link
HuatuoGPT-3-8B 8B medical LLM trained with SeedRL Qwen3-8B-Base HF Link
HuatuoGPT-3-7B-Pangu 7B medical LLM trained with SeedRL openPangu-Embedded-7B HF Link

Usage

You can use HuatuoGPT-3-7B-Pangu in the same way as FreedomIntelligence/openPangu-Embedded-7B.

When using this model, please note that the Pangu backbone requires trust_remote_code=True in Transformers, and --trust_remote_code when serving with vLLM.

  • Direct inference:
from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "FreedomIntelligence/HuatuoGPT-3-7B-Pangu"

tokenizer = AutoTokenizer.from_pretrained(
    model_name,
    use_fast=False,
    trust_remote_code=True
)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    trust_remote_code=True,
    torch_dtype="auto",
    device_map="auto"
)

messages = [
    {"role": "user", "content": "What are the common causes of chest pain?"}
]

text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)

inputs = tokenizer([text], return_tensors="pt").to(model.device)
outputs = model.generate(
    **inputs,
    max_new_tokens=4096,
    eos_token_id=45892,
    return_dict_in_generate=True
)

input_length = inputs.input_ids.shape[1]
generated_tokens = outputs.sequences[:, input_length:]
output_text = tokenizer.decode(generated_tokens[0])

thinking_content = output_text.split("[unused17]")[0].split("[unused16]")[-1].strip()
content = output_text.split("[unused17]")[-1].split("[unused10]")[0].strip()

print("thinking content:", thinking_content)
print("content:", content)
  • You can also serve the model with vLLM. Make sure to include --trust_remote_code:
CUDA_VISIBLE_DEVICES=0 \
vllm serve FreedomIntelligence/HuatuoGPT-3-7B-Pangu \
  --served-model-name HuatuoGPT-3-7B-Pangu \
  --trust_remote_code \
  --port 8000

Or:

CUDA_VISIBLE_DEVICES=0 \
python -m vllm.entrypoints.openai.api_server \
  --model FreedomIntelligence/HuatuoGPT-3-7B-Pangu \
  --served-model-name HuatuoGPT-3-7B-Pangu \
  --trust_remote_code \
  --port 8000

📖 Citation

@article{huatuogpt3,
  title={HuatuoGPT-3: RL-Only Domain Adaptation from Base Models via Off-Policy Seeding},
  author={Coming soon},
  journal={arXiv preprint},
  year={2026}
}
Downloads last month
20
Safetensors
Model size
8B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for FreedomIntelligence/HuatuoGPT-3-7B-Pangu

Finetuned
(2)
this model