64 Downloads Updated 2 weeks ago
ollama run MedAIBase/AntAngelMed:100b
AntAngelMed 正式开源!🚀
AntAngelMed是由浙江省卫生健康信息中心、蚂蚁健康、浙江省安诊儿医学人工智能科技有限公司共同联合开发的,迄今为止最大且最强大的开源医疗语言模型。
核心亮点
📊 评测表现
HealthBench
HealthBench是由OpenAI发布的开源医疗评测基准,旨在通过高度仿真的多轮对话样本来评估模型在真实医疗环境中的表现。AntAngelMed在此评测中取得了卓越的成绩,位列所有开源模型第一,尤其在更高难度子集HealthBench-Hard上优势尤为显著。
图 | AntAngelMed在HealthBench的开源模型中排名第一
MedAIBench
MedAIBench 是由国家人工智能应用中试基地(医疗)打造的权威医疗大模型测评体系。AntAngelMed同样在该评测中排名领先,展现出强大的综合专业性与安全性,尤其在医疗知识问答、医疗伦理安全等方面表现突出。
图 | AntAngelMed在MedAIBench排名领先
MedBench
MedBench 是面向中文医疗场景的科学、公平且严谨的医疗大模型评测体系。MedBench由36个自主评测数据集构成,覆盖约70万条样本。AntAngelMed位列榜单第一,在医学知识问答、医学语言理解、医学语言生成、复杂医学推理、医疗安全与伦理五大核心维度也都表现出领先水平,体现出AntAngelMed医疗大模型的专业性、安全性与临床适用性。
图 | AntAngelMed位列MedBench榜单第一
🔧 技术特性
专业的三阶段训练流程
AntAngelMed 卓越的医疗能力源于其专业、精细的三阶段训练流程。
图 | 专业三阶段训练流程
高效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具备显著的速度优势:
图 | 模型架构图
我们还专为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) 及使用条款,并自行承担相关责任与风险。
责任限制:模型发布方 MedAIBase 与 ModelScope 平台不对本摘要内容的准确性负责,亦不对用户基于本摘要或该模型所做的任何后续行为承担责任。模型涉及医疗内容,不构成专业医疗建议,使用时应进行专业审核与判断。