模型简介
模型特点
模型能力
使用案例
🚀 Aloe:一系列微调后的开源医疗大语言模型
Aloe 是一系列经过微调的开源医疗大语言模型,在多个医疗任务中实现了最先进的性能,为医疗领域的研究和应用提供了强大的支持。
🚀 快速开始
使用以下代码开始使用模型。你可以使用 Transformers
管道抽象运行对话推理,也可以使用 Auto
类和 generate()
函数。以下是两种方法的示例:
基础用法
import transformers
import torch
model_id = "HPAI-BSC/Llama3.1-Aloe-Beta-8B"
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("<|eot_id|>")
]
outputs = pipeline(
prompt,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
print(outputs[0]["generated_text"][len(prompt):])
高级用法
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "HPAI-BSC/Llama3.1-Aloe-Beta-8B"
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("<|eot_id|>")
]
outputs = model.generate(
input_ids,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
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 - 8B - Beta 是 Aloe 家族的最新版本,相较于前身 Aloe - 8B - Alpha,训练数据增加了两倍多,达到 1.8B 个标记,并增强了对齐和安全阶段。
📦 安装指南
文档未提供具体安装步骤,暂无法展示。
📚 详细文档
模型详情
属性 | 详情 |
---|---|
开发者 | HPAI |
模型类型 | 因果解码器 - 仅变压器语言模型 |
语言 | 英语(有能力处理其他语言,但未进行正式评估) |
许可证 | 该模型基于 Meta Llama 3.1 8B,遵循 Meta Llama 3 许可证。所有修改部分采用 CC BY 4.0 许可证,使 Aloe Beta 模型 可用于商业用途 |
基础模型 | [meta - llama/Llama - 3.1 - 8B](https://huggingface.co/meta - llama/Llama - 3.1 - 8B) |
论文 | 更多即将发布 |
RAG 仓库 | https://github.com/HPAI - BSC/prompt_engine |
模型性能
Aloe Beta 在最流行的医疗问答数据集上进行了测试,使用和不使用 Medprompt 推理技术的结果都显示出具有竞争力的性能,在相同尺寸的模型中达到了 SOTA 水平。在通用领域的 OpenLLM Leaderboard 基准测试中,Aloe - Beta 与当前的 SOTA 通用模型取得了有竞争力的结果,并超越了医疗模型。
使用场景
直接使用
鼓励将 Aloe 用于研究目的,作为构建更好的医疗基础模型的基石。在生产环境中,Aloe 应始终在人类专家的监督下使用。
超出范围的使用
这些模型不得用于临床实践、医疗诊断或任何形式的直接或间接医疗建议。模型容易出错,可能会产生有害内容。严禁将 Aloe 模型用于对个人有害的活动,如垃圾邮件、欺诈或冒充。未成年人在没有监督的情况下不得独自与 Aloe 进行交互。
偏差、风险和局限性
Aloe 在适当的提示下可能会产生有害内容,并存在多种不良偏差。尽管进行了大量努力来减轻这些问题,但无法完全保证模型的安全性。训练过程中避免使用所有个人数据。
识别出至少三种特定于医疗大语言模型的风险情况:
- 冒充医疗专业人员:这种欺诈行为目前在医疗保健欺诈中产生了数十亿美元的利润。像 Aloe 这样的模型可能会被用于增加此类欺骗活动的效果,使其更加普遍。主要的预防措施包括提高公众对数字化信息不可靠性的认识、强调医疗注册的重要性,以及制定强制要求披露 AI 生成内容的立法。
- 无专业监督的医疗决策:虽然这在现代社会中已经是一个问题(如自我用药),但像 Aloe 这样能够生成高质量对话数据的模型可能会助长自我欺骗,特别是在存在谄媚的情况下。通过生成量身定制的响应,它还可以用于生成可操作的答案。提高公众对自我诊断危险的认识,以及在模型输出中引入免责声明和警告是主要的防御措施。
- 获取危险物质或程序的信息:虽然关于敏感内容的文献已经可以在不同来源(如图书馆、互联网、暗网)中找到,但大语言模型可以集中此类访问,使得控制此类信息的流动几乎不可能。模型对齐可以在这方面提供帮助,但目前效果仍然不足,因为越狱方法仍然可以绕过它。
训练详情
监督微调
在 Llama 3.1 的基础上使用 axolotl(https://github.com/axolotl - ai - cloud/axolotl)进行 SFT。使用 Deepspeed 的 Zero - 3 分布式训练,硬件配置如下:
- 8B:使用 Marenostrum 5 的 32 个 NVIDIA Hopper H100 64GB GPU。
- 70B:使用 Marenostrum 5 的 64 个 NVIDIA Hopper H100 64GB GPU。
训练数据
训练集约由 1.8B 个标记组成,包含三种不同类型的数据:
- 医疗领域数据集:包括来自 20 个不同医疗任务的数据,如 [HPAI - BSC/Aloe - Beta - General - Collection](https://huggingface.co/datasets/HPAI - BSC/Aloe - Beta - General - Collection)、[HPAI - BSC/chain - of - diagnosis](https://huggingface.co/datasets/HPAI - BSC/chain - of - diagnosis) 等。
- 合成数据:使用 Llama3.1 - 70B 生成高质量答案来扩展训练数据,如 [HPAI - BSC/pubmedqa - cot - llama31](https://huggingface.co/datasets/HPAI - BSC/pubmedqa - cot - llama31) 等。
- 通用数据:包括数学、STEM、代码、函数调用和长上下文指令等,如 [HPAI - BSC/Aloe - Beta - General - Collection](https://huggingface.co/datasets/HPAI - BSC/Aloe - Beta - General - Collection)。
训练参数
- 轮数:3
- 序列长度:16384
- 优化器:adamw_torch
- 学习率:2e - 5
- 学习率调度器:cosine
- 热身步骤:100
- 权重衰减:0
- 梯度检查点
- Zero 3
- 总批量大小:128
- 每个设备的批量大小:1
- 梯度累积步骤:4
模型合并
使用 DARE_TIES 技术将训练好的模型与 Llama - 3.1 - Instruct 模型合并,使用 [Mergekit](https://github.com/arcee - ai/mergekit) 进行合并操作。
模型对齐
使用直接偏好优化(DPO)技术通过两步过程对模型进行对齐:
- 通用 DPO 对齐:使用包含医疗、通用偏好和安全数据的数据集 [HPAI - BSC/Aloe - Beta - DPO](https://huggingface.co/datasets/HPAI - BSC/Aloe - Beta - DPO),将数据集分为五部分,模型在每个部分上迭代训练一个轮次,学习率为 2e - 7。
- 红队对齐:进一步微调模型以抵抗各种潜在攻击,增强其鲁棒性和安全性。数据集即将共享,此阶段学习率设置为 1e - 7。
使用 OpenRLHF 库,在 Marenostrum 5 的 16 个 NVIDA HOOPER H100 64GB GPU 上进行对齐。常见超参数如下:
- 序列长度: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](https://huggingface.co/datasets/HPAI - BSC/CareQA)
- [Open LLM Leaderboard 2](https://huggingface.co/spaces/open - llm - leaderboard/open_llm_leaderboard)
评估指标
- 准确率:适用于多项选择题问答任务的评估。
- Rouge1:指系统输出与黄金标准之间一元语法的重叠程度。
总结
为了将 Aloe 与最具竞争力的开源模型(包括通用模型和医疗特定模型)进行比较,使用了流行的医疗数据集(PubMedQA、MedMCQA、MedQA 和 MMLU 仅用于六个医疗任务)以及新的、高度可靠的 CareQA。训练使 Aloe 的性能优于 Llama31 - 8B - Instruct,Llama31 - Aloe - Beta - 8B 也优于其他医疗模型,如 Llama3 - OpenBioLLM 和 Llama3 - Med42。通过提示技术,Llama3 - Aloe - 8B - Beta 的性能显著提高,特别是 Medprompting 使报告的准确率提高了 7%。
环境影响
属性 | 详情 |
---|---|
硬件类型 | 32xH100 |
使用时长(8B) | 544 GPU 小时 |
使用时长(70B) | 4500 GPU 小时 |
硬件提供商 | 巴塞罗那超级计算中心(BSC) |
计算区域 | 西班牙 |
碳排放 | 34.1 kg CO₂ |
作者
Aloe Beta 由 高性能人工智能 研究小组开发,该小组来自 巴塞罗那超级计算中心 - BSC。主要作者包括 Jordi Bayarri Planas、[Ashwin Kumar Gururajan](https://huggingface.co/G - AshwinKumar) 和 Dario Garcia - Gasulla。红队工作由 Adrian Tormos 领导。邮箱:mailto:hpai@bsc.es
引用
如果你在发表的作品中使用了此仓库,请引用相应的论文:
@article{garcia2025aloe,
title={The Aloe Family Recipe for Open and Specialized Healthcare LLMs},
author={Garcia - Gasulla, Dario and Bayarri - Planas, Jordi and Gururajan, Ashwin Kumar and Lopez - Cuena, Enrique and Tormos, Adrian and Hinjos, Daniel and Bernabeu - Perez, Pablo and Arias - Duart, Anna and Martin - Torres, Pablo Agustin and Gonzalez - Mallo, Marta and others},
year={2025},
eprint={2505.04388},
archivePrefix={arXiv},
}
⚠️ 重要提示
这些模型不得用于临床实践、医疗诊断或任何形式的直接或间接医疗建议。模型容易出错,可能会产生有害内容。严禁将 Aloe 模型用于对个人有害的活动,如垃圾邮件、欺诈或冒充。未成年人在没有监督的情况下不得独自与 Aloe 进行交互。
💡 使用建议
鼓励将 Aloe 用于研究目的,作为构建更好的医疗基础模型的基石。在生产环境中,Aloe 应始终在人类专家的监督下使用。通过提示技术(如 Medprompting)可以显著提高模型的性能。



