64 2 weeks ago

AntAngelMed是由浙江省卫生健康信息中心、蚂蚁健康、浙江省安诊儿医学人工智能科技有限公司共同联合开发的,迄今为止最大且最强大的开源医疗语言模型。

100b
ollama run MedAIBase/AntAngelMed:100b

Models

View all →

Readme

引言

AntAngelMed 正式开源!🚀

AntAngelMed是由浙江省卫生健康信息中心、蚂蚁健康、浙江省安诊儿医学人工智能科技有限公司共同联合开发的,迄今为止最大且最强大的开源医疗语言模型。

核心亮点

  • 🏆 权威评测全球领先:在OpenAI的HealthBench评测上,AntAngelMed超越所有开源模型及一系列顶尖闭源模型;在中国权威评测MedAIBench上,综合排名第一。
  • 🧠 专业的医疗能力:AntAngelMed通过严谨的三阶段训练流程(医疗语料持续预训练、高质量指令精调以及基于GRPO的强化学习),铸就了其专业的医疗能力。该训练流程为模型赋予了深厚的医学知识、复杂的诊疗推理能力以及强大的安全与伦理对齐能力。
  • ⚡ 极致的推理效率:基于 Ling-flash-2.0 的高效MoE架构,AntAngelMed以100B的总参数量,仅激活6.1B参数即可达到约40B稠密模型的性能水平。它在H20硬件上推理速度超过200 tokens/s,并支持128K上下文窗口。

📊 评测表现

HealthBench

HealthBench是由OpenAI发布的开源医疗评测基准,旨在通过高度仿真的多轮对话样本来评估模型在真实医疗环境中的表现。AntAngelMed在此评测中取得了卓越的成绩,位列所有开源模型第一,尤其在更高难度子集HealthBench-Hard上优势尤为显著。

1.png

图 | AntAngelMed在HealthBench的开源模型中排名第一

MedAIBench

MedAIBench 是由国家人工智能应用中试基地(医疗)打造的权威医疗大模型测评体系。AntAngelMed同样在该评测中排名领先,展现出强大的综合专业性与安全性,尤其在医疗知识问答、医疗伦理安全等方面表现突出。

2.png

图 | AntAngelMed在MedAIBench排名领先

MedBench

MedBench 是面向中文医疗场景的科学、公平且严谨的医疗大模型评测体系。MedBench由36个自主评测数据集构成,覆盖约70万条样本。AntAngelMed位列榜单第一,在医学知识问答、医学语言理解、医学语言生成、复杂医学推理、医疗安全与伦理五大核心维度也都表现出领先水平,体现出AntAngelMed医疗大模型的专业性、安全性与临床适用性。

3.png

图 | AntAngelMed位列MedBench榜单第一

🔧 技术特性

专业的三阶段训练流程

AntAngelMed 卓越的医疗能力源于其专业、精细的三阶段训练流程

  • 首先,通过持续预训练对通用基座模型 Ling-flash-2.0-base 注入大规模、高质量的医学语料,构建了深厚的医疗知识底蕴;
  • 随后,在监督微调阶段,通过多源异构的高质量指令数据,一方面强化了模型的通用核心思维链,另一方面针对医患问答、诊断推理等真实医疗场景进行深度适配;
  • 最后,AntAngelMed 采用先进的 GRPO** 强化学习算法**,并通过双阶段强化学习路径对模型能力进一步优化提升:首先以“推理强化学习”锻造其逻辑推理的核心能力,再以“通用强化学习”打磨其同理心与安全边界意识,最终实现了医疗专业性与人文关怀的高度统一。

4.jpeg

图 | 专业三阶段训练流程

高效MoE架构与高速推理

AntAngelMed继承了Ling-flash-2.0的先进架构。在Ling Scaling Laws的指导下,模型采用了1/32激活率的MoE架构,并在专家粒度、共享专家比例、注意力平衡、无辅助损失函数 + Sigmoid路由、MTP层、QK-Norm和Partial-RoPE等核心组件上进行了全面优化。

这些优化使得小激活率的MoE模型相比同等规模的稠密架构,可以实现高达7倍的效率提升。换言之,AntAngelMed仅需激活6.1B参数,即可达到约40B稠密模型的性能水平。由于激活参数量小,AntAngelMed具备显著的速度优势:

  • 在H20硬件上,推理速度超过200 tokens/s,约为36B稠密模型的3倍。
  • 通过YaRN外推,模型支持128K上下文窗口;随着输出长度增加,相对速度优势可达7倍以上。

5.png

图 | 模型架构图

我们还专为AntAngelMed进行推理加速,采用 FP8 量化 + EAGLE3 优化,在 32 并发场景下,推理吞吐量较 FP8 显著提升: 在HumanEval 提升 71%,GSM8K 提升 45%,Math-500 提升高达 94%,实现了推理性能与模型稳定性的深度平衡。

快速开始

🤗 Hugging Face Transformers

以下是一个代码片段,展示了如何使用 transformers 库调用该模型:

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = “MedAIBase/AntAngelMed” # model_id or your_local_model_path

model = AutoModelForCausalLM.from_pretrained(

model_name,

device_map=“auto”,

trust_remote_code=True,

)

tokenizer = AutoTokenizer.from_pretrained(model_name)

prompt = “What should I do if I have a headache?”

messages = [

{“role”: “system”, “content”: “You are AntAngelMed, a helpful medical assistant.”},

{“role”: “user”, “content”: prompt}

]

text = tokenizer.apply_chat_template(

messages,

tokenize=False,

add_generation_prompt=True

)

model_inputs = tokenizer([text], return_tensors=“pt”, return_token_type_ids=False).to(model.device)

generated_ids = model.generate(

**model_inputs,

max_new_tokens=16384,

)

generated_ids = [

output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)

]

response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]

print(response)

🤖 ModelScope

如果您在中国大陆,我们强烈建议您使用我们在 🤖 ModelScope 中的模型。

部署 - Nvidia A100

vLLM

vLLM 支持离线批量推理或启动一个与 OpenAI 兼容的 API 服务进行在线推理。

环境准备

请准备好以下环境:

pip install vllm==0.11.0

推理

from modelscope import AutoTokenizer

from vllm import LLM, SamplingParams

def main():

model_path = “MedAIBase/AntAngelMed” # model_id or your_local_model_path

tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)

sampling_params = SamplingParams(

temperature=0.6,

top_p=0.95,

top_k=20,

max_tokens=16384,

)

llm = LLM(

model=model_path,

trust_remote_code=True,

dtype=“bfloat16”,

tensor_parallel_size=4,

)

prompt = “What should I do if I have a headache?”

messages = [

{“role”: “system”, “content”: “You are AntAngelMed, a helpful medical assistant.”},

{“role”: “user”, “content”: prompt},

]

text = tokenizer.apply_chat_template(

messages,

tokenize=False,

add_generation_prompt=True,

)

outputs = llm.generate([text], sampling_params)

print(outputs[0].outputs[0].text)

if __name__ == “__main__”:

main()

SGLang

环境准备

准备好以下环境:

pip install sglang -U

您也可以使用 Docker 镜像:

docker pull lmsysorg/sglang:latest

推理

SGLang 支持 BF16 和 FP8 模型,取决于 ${MODEL_PATH} 中模型的数据类型。它们都使用相同的命令如下:

  • 启动服务器:

SGLANG_USE_MODELSCOPE=true python -m sglang.launch_server

–model-path $MODLE_PATH

–host 0.0.0.0 –port $PORT

–trust-remote-code

–attention-backend fa3

–tensor-parallel-size 4

–served-model-name AntAngelMed

  • 客户端调用:

curl -s http://localhost:${PORT}/v1/chat/completions

-H “Content-Type: application/json”

-d ‘{“model”: “auto”, “messages”: [{“role”: “user”, “content”: “What should I do if I have a headache?”}]}’

更多用法可以在这里找到。

部署 - Ascend 910B

vLLM-Ascend

vLLM-Ascend是一个社区维护的硬件后端,使 vLLM 能够在 Ascend NPU 上运行。

环境准备

我们建议使用 64*8GB 内存版本的 Ascend Atlas 800I A2 服务器来运行此模型。

我们建议使用 Docker 进行部署。请按照以下步骤准备环境:

docker pull quay.io/ascend/vllm-ascend:v0.11.0rc3

接下来,您可以运行以下命令启动并进入容器,然后在容器中继续后续操作。

NAME=your container name

MODEL_PATH=put your absolute model path here if you already have it locally.

docker run -itd –privileged –name=$NAME –net=host

–shm-size=1000g

–device /dev/davinci0

–device /dev/davinci1

–device /dev/davinci2

–device /dev/davinci3

–device /dev/davinci4

–device /dev/davinci5

–device /dev/davinci6

–device /dev/davinci7

–device=/dev/davinci_manager

–device=/dev/hisi_hdc

–device /dev/devmm_svm

-v /usr/local/dcmi:/usr/local/dcmi

-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi

-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/

-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info

-v /etc/ascend_install.info:/etc/ascend_install.info

-v /usr/local/sbin:/usr/local/sbin

-v /etc/hccn.conf:/etc/hccn.conf

-v \(MODEL\_PATH:\)MODEL_PATH

quay.io/ascend/vllm-ascend:v0.11.0rc2

bash

docker exec -u root -it $NAME bash

对于 vLLM 的离线和在线推理,请确保在执行前在终端中配置以下环境变量:

export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True

export HCCL_OP_EXPANSION_MODE=“AIV”

export NPU_MEMORY_FRACTION=0.97

export TASK_QUEUE_ENABLE=1

export OMP_NUM_THREADS=100

export ASCEND_LAUNCH_BLOCKING=0

export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7

#You can use ModelScope mirror to speed up download:

export VLLM_USE_MODELSCOPE=true

离线推理

from transformers import AutoTokenizer

from vllm import LLM, SamplingParams

model_path = “MedAIBase/AntAngelMed” # model_id or your_local_model_path

tokenizer = AutoTokenizer.from_pretrained(model_path)

sampling_params = SamplingParams(temperature=0.6, top_p=0.95, top_k=20, max_tokens=16384)

llm = LLM(model=model_path,

dtype=‘float16’,

tensor_parallel_size=4,

gpu_memory_utilization=0.97,

enable_prefix_caching=True,

enable_expert_parallel=True,

trust_remote_code=True)

prompt = “What should I do if I have a headache?”

messages = [

{“role”: “system”, “content”: “You are AntAngelMed, a helpful medical assistant.”},

{“role”: “user”, “content”: prompt}

]

text = tokenizer.apply_chat_template(

messages,

tokenize=False,

add_generation_prompt=True

)

outputs = llm.generate([text], sampling_params)

在线推理

model_id=MedAIBase/AntAngelMed

taskset -c 0-23 python3 -m vllm.entrypoints.openai.api_server

–model $model_id

–max-num-seqs=200

–tensor-parallel-size 4

–data-parallel-size 2

–enable_expert_parallel

–gpu_memory_utilization 0.97

–served-model-name AntAngelMed

–max-model-len 32768

–port 8080

–enable-prefix-caching

–block-size 128

–async-scheduling

–trust_remote_code

curl http://0.0.0.0:8080/v1/chat/completions -d ‘{

“model”: “AntAngelMed”,

“messages”: [

{

“role”: “system”,

“content”: “You are a helpful assistant.”

},

{

“role”: “user”,

“content”: “What should I do if I have a headache?”

}

],

“temperature”: 0.6

}’

详细指导请参阅此处的 vLLM-Ascend.

许可证

此代码仓库根据 MIT 许可证 发布。

免责声明

版权声明:本页面所描述的 AntAngelMed 模型的所有知识产权、权利与版权,均归属于其发布者 MedAIBase 及原始发布平台 ModelScope(模型主页:https://modelscope.cn/models/MedAIBase/AntAngelMed)。

内容说明:以上中文内容为基于原页面信息的摘要与概括,旨在辅助快速理解,并非官方发布的完整或法律文件。所有信息的准确性与完整性,均以模型原链接页面为准。

使用目的:此摘要内容仅用于个人学习与研究参考目的。任何对模型本身的下载、使用或开发行为,必须严格遵守该模型原页面所附带的许可证(License)使用条款,并自行承担相关责任与风险。

责任限制:模型发布方 MedAIBaseModelScope 平台不对本摘要内容的准确性负责,亦不对用户基于本摘要或该模型所做的任何后续行为承担责任。模型涉及医疗内容,不构成专业医疗建议,使用时应进行专业审核与判断。