数据集:
HPAI-BSC/Aloe-Beta通用收集库
HPAI-BSC/诊断链数据集
HPAI-BSC/医学指令数据集
HPAI-BSC/超医学数据集
HPAI-BSC/pubmedqa推理数据集-llama31
HPAI-BSC/medqa推理数据集-llama31
HPAI-BSC/medmcqa推理数据集-llama31
HPAI-BSC/headqa推理数据集-llama31
HPAI-BSC/MMLU医学推理数据集-llama31
HPAI-BSC/多领域医学问答数据集
HPAI-BSC/Aloe-Beta通用收集库(重复)
HPAI-BSC/Aloe-Beta通用收集库(重复)
语言:
英语
库名称: transformers
标签:
生物学
医学
医疗保健
管道标签: 问答
Aloe系列:微调开源医疗大语言模型家族
Qwen2.5-Aloe-Beta-72B是一款开源医疗大语言模型 ,在多项医疗任务中达到最先进水平 。Aloe Beta提供四种规模:7B 、8B 、70B 和72B 。所有模型采用相同训练方案,基于Llama3.1和Qwen2.5两大模型家族开发。
Aloe在20项医疗任务上训练,形成强大而通用的医疗模型。评估显示Aloe系列处于同类最佳水平。结合RAG系统(已发布 )时,7B和8B版本接近MedPalm-2、GPT4等闭源模型表现。相同RAG系统下,Llama3.1-Aloe-Beta-70B和Qwen2.5-Aloe-Beta-72B超越这些私有方案,创造最先进成果。
Aloe-Beta-72B
Aloe-Beta 是Aloe家族 最新迭代版本,在前代Aloe-8B-Alpha 成功基础上改进。Beta训练数据量是Alpha三倍多,总计18亿token ,涵盖更丰富医疗任务和指令(如文本摘要、解释说明、诊断分析、文本分类、治疗建议等)。
为避免灾难性遗忘并增强函数调用 等新能力,我们引入占总量20%的多样化高质量通用数据。精选数据包含数学、编程、STEM等各领域顶级内容及超长指令(>8k token),全面提升模型跨领域适应力和理解力。
Beta在对齐与安全阶段较Alpha有显著提升,包括采用医疗偏好数据集 及即将发布的红队测试数据集。完整训练细节、模型融合配置及所有训练数据(含合成数据)详见下文,包含测试部署的RAG系统 。Aloe配备医疗专用风险评估体系,确保系统安全使用。
模型详情
模型描述
开发机构 :HPAI
模型类型 :因果解码器架构的Transformer语言模型
支持语言 :英语(其他语言能力未正式评估)
许可协议 :基于Qwen2.5-72B 开发,采用Qwen自定义许可。所有修改遵循CC BY 4.0 协议,允许商业用途
基础模型 :Qwen2.5-72B
论文 :(即将发布)
RAG代码库 :https://github.com/HPAI-BSC/prompt_engine
模型性能
Aloe Beta在主流医疗QA数据集上测试(含Medprompt推理技术),结果显示其竞争力,达到同规模模型最优水平。
Beta模型专精多项医疗任务,我们在多领域进行评估:
使用OpenLLM排行榜基准测试通用领域表现,Aloe-Beta在主流通用基准测试中与当前SOTA通用模型相当,并超越医疗专用模型:
使用场景
直接使用
鼓励将Aloe用于研究目的,作为构建更好医疗基础模型的阶梯。生产环境中应始终在专家监督下使用。
禁用场景
禁止用于临床实践、医疗诊断等直接或间接医疗建议。模型可能出错并产生有害内容。严禁用于垃圾邮件、欺诈、冒充等危害个人行为。未成年人需在监督下使用。
偏见、风险与限制
Aloe在特定提示下可能产生有害内容,存在多种不良偏见。虽经重大努力缓解(见下文对齐细节),但无法完全保证安全性。训练中避免使用任何个人数据。
我们识别出医疗LLM至少三类特殊风险:
冒充医疗专业人员:此类欺诈行为年获利超120亿美元 。Aloe可能增强欺骗效果,需通过公众教育(数字信息不可靠性、医疗注册重要性)及AI内容免责声明立法预防。
无专业监督的医疗决策:虽现代社会已存在自我用药等问题,但Aloe高质量对话能力可能加剧自我误导(特别是谄媚倾向)。需加强自我诊断危害教育,并在模型输出中添加免责声明。
危险物质/程序信息获取:虽相关文献可通过图书馆/互联网/暗网获取,但LLM可能集中此类访问渠道。模型对齐虽有效果,但破解方法仍存在。
快速开始
使用以下代码启动模型。可通过Transformers流水线抽象或利用Auto类配合generate()
函数进行对话推理。
Transformers流水线
import transformers
import torch
model_id = "HPAI-BSC/Qwen2.5-Aloe-Beta-72B"
pipeline = transformers.pipeline(
"text-generation" ,
model=model_id,
model_kwargs={"torch_dtype" : torch.bfloat16},
device_map="auto" ,
)
messages = [
{"role" : "system" , "content" : "您是由巴塞罗那超级计算中心高性能人工智能组开发的医疗专家助手Aloe。请保持专业、尊重和诚实的服务态度。" },
{"role" : "user" , "content" : "你好" },
]
prompt = pipeline.tokenizer.apply_chat_template(
messages,
tokenize=False ,
add_generation_prompt=True
)
terminators = [
pipeline.tokenizer.eos_token_id,
pipeline.tokenizer.convert_tokens_to_ids("<|im_end|>" )
]
outputs = pipeline(
prompt,
max_new_tokens=256 ,
eos_token_id=terminators,
do_sample=True ,
temperature=0.7 ,
top_p=0.8 ,
top_k=20 ,
repetition_penalty=1.05
)
print (outputs[0 ]["generated_text" ][len (prompt):])
Transformers AutoModelForCausalLM
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "HPAI-BSC/Qwen2.5-Aloe-Beta-72B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto" ,
)
messages = [
{"role" : "system" , "content" : "您是由巴塞罗那超级计算中心高性能人工智能组开发的医疗专家助手Aloe。请保持专业、尊重和诚实的服务态度。" },
{"role" : "user" , "content" : "你好" },
]
input_ids = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True ,
return_tensors="pt"
).to(model.device)
terminators = [
tokenizer.eos_token_id,
tokenizer.convert_tokens_to_ids("<|im_end|>" )
]
outputs = model.generate(
input_ids,
max_new_tokens=256 ,
eos_token_id=terminators,
do_sample=True ,
temperature=0.7 ,
top_p=0.8 ,
top_k=20 ,
repetition_penalty=1.05
)
response = outputs[0 ][input_ids.shape[-1 ]:]
print (tokenizer.decode(response, skip_special_tokens=True ))
训练细节
监督微调
基于Qwen2.5-72B使用axolotl(https://github.com/axolotl-ai-cloud/axolotl)进行SFT。
采用Deepspeed Zero-3分布式训练,硬件配置:
7B: 32块NVIDIA Hopper H100 64GB(Marenostrum 5 )
8B: 32块NVIDIA Hopper H100 64GB(Marenostrum 5 )
70B: 64块NVIDIA Hopper H100 64GB(Marenostrum 5 )
72B: 92块NVIDIA Hopper H100 64GB(Marenostrum 5 )
训练数据
约18亿token,含三类数据:
医疗领域数据集:覆盖20项医疗任务
合成数据:使用Llama3.1-70B生成高质量答案
通用数据:含数学、STEM、代码、函数调用及超长上下文指令
训练参数
训练轮次: 3
序列长度: 16384
优化器: adamw_torch
学习率: 1e-5
学习率调度: cosine
预热步数: 100
权重衰减: 0
梯度检查点: 启用
Zero 3: 启用
总批次大小: 128
单设备批次: 1
梯度累积步数: 4
模型融合
采用DARE_TIES技术将训练模型与Qwen2.5-72-Instruct模型融合,使用Mergekit 工具实现。
模型对齐
通过直接偏好优化(DPO)分两阶段对齐:
通用DPO对齐:结合医疗、通用偏好及安全数据,使用Aloe-Beta-DPO 数据集,分五部分迭代训练(每部分1轮),学习率2e-7
红队测试对齐:增强模型抗攻击能力,学习率1e-7(数据集即将发布)
使用OpenRLHF 库,在16块NVIDIA H100 64GB(Marenostrum 5 )上对齐。通用超参数:
序列长度: 4096
优化器: Fused adam
总批次大小: 128
单设备批次: 1
梯度累积步数: 8
Beta: 0.1
评估
测试数据与指标
测试数据集
评估指标
准确率:评估选择题答题能力
Rouge1:衡量系统输出与标准答案的单字重叠率
总结
通过主流医疗数据集(PubMedQA、MedMCQA、MedQA及MMLU六项医学任务)与高可靠性CareQA测试,Aloe Beta表现超越现有开源医疗模型(包括通用模型和医疗专用模型)。提示工程可显著提升性能,Medprompt技术使准确率提升4%,Qwen2.5-Aloe-Beta-72B在不使用RAG评估的模型中表现最优。
环境影响
硬件类型 :32块H100
8B模型耗时 :544 GPU小时
70B模型耗时 :4500 GPU小时
硬件提供商 :巴塞罗那超级计算中心
计算区域 :西班牙
碳排放量 :34.1千克CO₂
作者
Aloe Beta由巴塞罗那超级计算中心 的高性能人工智能 团队开发。核心作者包括Jordi Bayarri Planas 、Ashwin Kumar Gururajan 和Dario Garcia-Gasulla 。红队测试由Adrian Tormos主导。
联系邮箱:hpai@bsc.es
引用
若在发表作品中引用本资源,请引用以下论文:
@misc{gururajan2024aloe,
title={Aloe: A Family of Fine-tuned Open Healthcare LLMs},
author={Ashwin Kumar Gururajan等},
year={2024},
eprint={2405.01886},
archivePrefix={arXiv},
primaryClass={cs.CL}
}