模型简介
模型特点
模型能力
使用案例
🚀 Aloe:一系列微调的开放医疗大语言模型
Aloe是一系列经过微调的开放医疗大语言模型,在多个医疗任务中取得了先进的性能。它有不同的模型大小可供选择,基于不同的基础模型进行训练,能有效处理多种医疗任务,评估显示其模型在同类中表现出色。
🚀 快速开始
使用示例
基础用法
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": "You are an expert medical assistant named Aloe, developed by the High Performance Artificial Intelligence Group at Barcelona Supercomputing Center(BSC). You are to be a helpful, respectful, and honest assistant."},
{"role": "user", "content": "Hello."},
]
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):])
高级用法
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": "You are an expert medical assistant named Aloe, developed by the High Performance Artificial Intelligence Group at Barcelona Supercomputing Center(BSC). You are to be a helpful, respectful, and honest assistant."},
{"role": "user", "content": "Hello"},
]
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))
✨ 主要特性
- 多模型规模:Aloe Beta提供四种模型大小,分别为7B、8B、70B和72B,所有模型基于Llama3.1和Qwen2.5两个不同的模型家族进行训练。
- 多任务训练:在20个医疗任务上进行训练,使模型具有强大而通用的医疗能力。
- 高性能表现:评估显示Aloe模型在同类中表现出色,结合RAG系统后,7B和8B版本接近MedPalm - 2、GPT4等闭源模型的性能,Llama3.1 - Aloe - Beta - 70B和Qwen2.5 - Aloe - Beta - 72B则超越了这些闭源模型。
- 增强训练数据:Aloe - Beta版本相比前代,训练数据增加了两倍多,达到18亿个标记,涵盖更多医疗任务和指令。
- 通用数据融合:为减轻灾难性遗忘并使模型学习新能力,融入了占总训练集20%的通用高质量数据。
- 对齐和安全提升:在对齐和安全阶段进行了改进,使用了医疗偏好数据集和红队数据集(即将发布)。
📚 详细文档
模型详情
模型描述
属性 | 详情 |
---|---|
开发团队 | HPAI |
模型类型 | 因果解码器仅变压器语言模型 |
语言 | 英语(有能力处理其他语言,但未正式评估) |
许可证 | 该模型基于Qwen2.5 - 72B,采用Qwen自定义许可证。所有修改内容采用CC BY 4.0许可证,使Aloe Beta模型可用于商业用途。 |
基础模型 | Qwen2.5 - 72B |
论文 | (更多即将发布) |
RAG仓库 | https://github.com/HPAI-BSC/prompt_engine |
模型来源
暂未提供相关信息。
模型性能
Aloe Beta在最流行的医疗问答数据集上进行了测试,使用和不使用Medprompt推理技术的结果都显示出具有竞争力的性能,在相同规模的模型中达到了先进水平。该模型在多个不同的医疗任务中表现出色,在通用领域的OpenLLM Leaderboard基准测试中也取得了有竞争力的结果,超越了其他医疗模型。
使用说明
直接使用
鼓励将Aloe用于研究目的,作为构建更好的医疗基础模型的基石。在实际应用中,Aloe应始终在人类专家的监督下使用。
超出范围使用
这些模型不得用于临床实践、医疗诊断或任何形式的直接或间接医疗建议。模型可能会出错并产生有害内容,严禁将Aloe模型用于对个人有害的活动,如垃圾邮件、欺诈或冒充。未成年人在没有监督的情况下不得单独与Aloe进行交互。
偏差、风险和限制
Aloe在特定提示下可能会产生有害内容,并存在多种不良偏差。尽管采取了大量措施来减轻这些问题(见下文对齐细节),但无法完全保证模型的安全性。训练过程中避免使用所有个人数据。
识别出至少三种特定于医疗大语言模型的风险情况:
- 医疗专业人员冒充:这是一种欺诈行为,目前已产生数十亿美元的利润。像Aloe这样的模型可能会提高此类欺骗活动的效率,使其更加普遍。主要的预防措施包括提高公众对数字化信息不可靠性的认识、强调医疗注册的重要性,以及制定强制要求标注AI生成内容的法律法规。
- 无专业监督的医疗决策:虽然这在现代社会已经是一个问题(如自我用药),但像Aloe这样能够生成高质量对话数据的模型可能会助长自我欺骗,特别是在存在谄媚的情况下。通过生成定制化响应,它还可以用于生成可操作的答案。提高公众对自我诊断危险的认识是主要的防御措施之一,同时在模型输出中添加免责声明和警告。
- 获取危险物质或程序信息:虽然关于敏感内容的文献已经可以在不同来源(如图书馆、互联网、暗网)找到,但大语言模型可以集中此类访问,使得控制此类信息的流动几乎不可能。模型对齐可以在这方面提供帮助,但到目前为止效果仍然不足,因为越狱方法仍然可以绕过它。
🔧 技术细节
训练详情
监督微调
在Qwen2.5 - 72B基础上使用axolotl(https://github.com/axolotl - ai - cloud/axolotl)进行监督微调。使用Deepspeed的Zero - 3分布式训练,硬件使用情况如下:
- 7B:Marenostrum 5的32个NVIDIA Hopper H100 64GB。
- 8B:Marenostrum 5的32个NVIDIA Hopper H100 64GB。
- 70B:Marenostrum 5的64个NVIDIA Hopper H100 64GB。
- 72B:Marenostrum 5的92个NVIDIA Hopper H100 64GB。
训练数据
训练集约由18亿个标记组成,包含三种不同类型的数据:
- 医疗领域数据集:包括来自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](https://github.com/arcee - ai/mergekit)进行合并操作。
模型对齐
使用直接偏好优化(DPO)技术通过两步过程对模型进行对齐:
- 通用DPO对齐:此步骤使用结合了医疗、通用偏好和安全数据的数据集。使用了数据集HPAI - BSC/Aloe - Beta - DPO,将数据集分为五部分,模型在每个部分上迭代训练一个轮次,学习率为2e - 7。
- 红队对齐:此步骤进一步微调模型以抵抗各种潜在攻击,增强其鲁棒性和安全性。数据集即将共享,此阶段学习率设置为1e - 7。
使用OpenRLHF库,在Marenostrum 5的16个NVIDA HOOPER H100 64GB上进行对齐,常见超参数如下:
- 序列长度:4096
- 优化器:Fused adam
- 总批量大小:128
- 每个设备的批量大小:1
- 梯度累积步骤:8
- Beta:0.1
评估
测试数据
- [ACI - BENCH](https://github.com/wyim/aci - bench)
- [MTS - Dialog](https://github.com/abachaa/MTS - Dialog)
- MedText
- [Medical Text classification](https://www.kaggle.com/datasets/chaitanyakck/medical - text/data)
- [OLAPH](https://github.com/dmis - lab/OLAPH)
- CareQA Open
- MedDialog
- MEDIQA QA
- Meddialog Qsumm
- Biored
- [MIMIC - III](https://huggingface.co/datasets/dmacres/mimiciii - hospitalcourse - meta)
- [Medical Prescription](https://huggingface.co/datasets/devlocalhost/prescription - full)
- MedQA (USMLE)
- MedMCQA
- PubMedQA
- MMLU - Medical
- [MedQA - 4 - Option](https://huggingface.co/datasets/GBaker/MedQA - USMLE - 4 - options)
- CareQA
- [Open LLM Leaderboard 2](https://huggingface.co/spaces/open - llm - leaderboard/open_llm_leaderboard)
指标
- 准确率:适用于多项选择题问答任务的评估。
- Rouge1:指系统输出与黄金标准之间一元组的重叠度。
总结
为了将Aloe与最具竞争力的开放模型(包括通用模型和医疗特定模型)进行比较,使用了流行的医疗数据集(PubMedQA、MedMCQA、MedQA和MMLU,仅用于六个医疗任务)以及新的、高度可靠的CareQA。然而,多项选择题基准测试虽然能提供模型处理结构化查询能力的有价值见解,但不足以代表医疗实践中面临的全部挑战。在此基础上,Aloe - Beta是Aloe家族的进一步发展,旨在超越定义Aloe - Alpha的多项选择题问答任务。
基准测试结果表明,Aloe的训练提升了其性能,达到了与Llama3 - OpenBioLLLM、Llama3 - Med42、MedPalm - 2和GPT - 4等先进模型相当的结果。Llama3.1 - Aloe - Beta - 70B在OpenLLM Leaderboard和其他医疗任务评估(如医疗事实和医疗治疗建议)中也超越了其他现有医疗模型,使其成为现有最佳的医疗模型之一。
Qwen2.5 - Aloe - Beta - 72B的训练也提升了其性能,在医疗多项选择题基准测试中超越了所有现有的公开和私有模型,在其他医疗任务评估中也表现出色。通过提示技术,Aloe的性能得到了显著提升,特别是Medprompting技术使报告的准确率提高了4%,之后Qwen2.5 - Aloe - Beta - 72B超越了所有未使用RAG评估的现有模型。
🔌 环境影响
- 硬件类型:32xH100
- 使用时长(8B):544 GPU小时
- 使用时长(70B):4500 GPU小时
- 硬件提供商:巴塞罗那超级计算中心(BSC)
- 计算区域:西班牙
- 碳排放:34.1千克二氧化碳
📄 许可证
该模型基于Qwen2.5 - 72B,采用Qwen自定义许可证。所有修改内容采用CC BY 4.0许可证,使Aloe Beta模型可用于商业用途。
👥 作者
Aloe Beta由高性能人工智能研究小组开发,该小组来自巴塞罗那超级计算中心 - BSC。主要作者包括Jordi Bayarri Planas、[Ashwin Kumar Gururajan](https://huggingface.co/G - AshwinKumar)和Dario Garcia - Gasulla,红队工作由Adrian Tormos领导。邮箱:mailto:hpai@bsc.es
📖 引用
如果在发表的工作中使用了此仓库,请引用相应的论文作为来源:
@misc{gururajan2024aloe,
title={Aloe: A Family of Fine-tuned Open Healthcare LLMs},
author={Ashwin Kumar Gururajan and Enrique Lopez-Cuena and Jordi Bayarri-Planas and Adrian Tormos and Daniel Hinjos and Pablo Bernabeu-Perez and Anna Arias-Duart and Pablo Agustin Martin-Torres and Lucia Urcelay-Ganzabal and Marta Gonzalez-Mallo and Sergio Alvarez-Napagao and Eduard Ayguadé-Parra and Ulises Cortés Dario Garcia-Gasulla},
year={2024},
eprint={2405.01886},
archivePrefix={arXiv},
primaryClass={cs.CL}
}



