模型简介
模型特点
模型能力
使用案例
🚀 芦荟(Aloe):全新医疗大语言模型家族
芦荟(Aloe)是一个全新的医疗大语言模型(LLM)家族。通过模型融合和先进的提示策略,它在同类型的所有开源模型中极具竞争力,并在其规模下达到了最先进的水平。由于结合了红队测试和对齐工作,芦荟在衡量伦理和事实性的指标上得分很高。后续将分享完整的训练细节、模型融合配置以及所有训练数据(包括合成生成的数据)。此外,本研究中用于在推理过程中取得最先进结果的提示仓库也将一并公开。芦荟还附带了特定于医疗保健的风险评估,以促进此类系统的安全使用和部署。

🎉 芦荟(Aloe)家族最新版本现已发布!芦荟β 8B 和 芦荟β 70B 版本,具备以下特性:
- 整体性能更优
- 对齐和安全性更完善
- 许可证更具通用性
✨ 主要特性
- 通过模型融合和先进的提示策略,在同规模模型中达到最先进水平。
- 在衡量伦理和事实性的指标上得分较高。
- 后续将分享完整训练细节、模型融合配置和所有训练数据。
- 附带医疗保健特定的风险评估,促进系统安全使用和部署。
📦 安装指南
文档未提供安装步骤,暂不展示。
💻 使用示例
基础用法
import transformers
import torch
model_id = "HPAI-BSC/Llama3-Aloe-8B-Alpha"
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-Aloe-8B-Alpha"
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))
📚 详细文档
模型详情
模型描述
属性 | 详情 |
---|---|
开发者 | HPAI |
模型类型 | 因果解码器型Transformer语言模型 |
语言 | 主要为英语 |
许可证 | 该模型基于Meta Llama 3 8B构建,遵循 Meta Llama 3许可证。所有修改内容采用 CC BY-NC 4.0 许可证。 |
微调基础模型 | meta-llama/Meta-Llama-3-8B |
模型来源
- 仓库:https://github.com/HPAI-BSC/prompt_engine (更多内容即将发布)
- 论文:https://arxiv.org/abs/2405.01886 (更多内容即将发布)
模型性能
芦荟模型已在最流行的医疗问答数据集上进行了测试,使用和不使用医学提示推理技术均有测试。结果显示,它具有很强的竞争力,甚至能与更大的模型相媲美。
使用先进提示方法(即Medprompt)的结果是通过 此仓库 实现的,该仓库已随本研究公开。
使用场景
直接使用
我们鼓励将芦荟模型用于研究目的,作为构建更好的医疗基础模型的垫脚石。
非适用场景
这些模型不得用于临床实践、医学诊断或任何形式的直接或间接医疗建议。模型可能会出错,并且可能会产生有害内容。禁止将芦荟模型用于对个人有害的活动,如垃圾邮件、欺诈或冒充等。
偏差、风险和局限性
我们考虑了三种风险情况:
- 冒充医疗专业人员:这是一种欺诈行为,目前已造成了数十亿美元的 利润。像芦荟这样的模型可能会被用于提高此类欺骗活动的效率,使其更加普遍。主要的预防措施包括提高公众对数字化信息不可靠性的认识、强调医疗注册的重要性,以及制定强制要求标注AI生成内容的法律法规。
- 无专业监督的医疗决策:虽然这在现代社会中已经是一个问题(如自我用药),但像芦荟这样能够生成高质量对话数据的模型,可能会助长自我欺骗,尤其是在存在谄媚的情况下。通过生成定制化的回复,它还可以用于生成可操作的答案。提高公众对自我诊断危险的认识,以及在模型输出中添加免责声明和警告,是主要的防御措施。
- 获取危险物质或程序的信息:虽然关于敏感内容的文献已经可以在不同的来源(如图书馆、互联网、暗网)中找到,但大语言模型可以集中获取这些信息,使得控制此类信息的流动几乎变得不可能。模型对齐在这方面可能会有所帮助,但到目前为止,效果仍然不足,因为越狱方法仍然可以绕过它。
下表显示了芦荟模型在几个AI安全任务中的表现:
建议
我们在训练中避免使用所有个人数据。但模型的安全性无法得到保证,芦荟模型在特定提示下可能会产生有害内容。因此,未成年人在没有监督的情况下不应单独与芦荟模型进行交互。
评估
测试数据、因素和指标
测试数据
指标
- 准确率:适用于评估多项选择题问答任务。
结果
总结
为了将芦荟模型与最具竞争力的开源模型(包括通用模型和医疗特定模型)进行比较,我们使用了流行的医疗数据集(PubMedQA、MedMCQA、MedQA和仅用于六项医疗任务的MMLU),以及全新且高度可靠的CareQA数据集。我们计算了标准的MultiMedQA分数作为参考,方法是计算除CareQA之外所有分数的加权平均准确率。此外,我们还计算了所有数据集的算术平均值。医学MMLU分数是通过对六项医学子任务(解剖学、临床知识、大学生物学、大学医学、医学遗传学和专业医学)的得分进行平均得出的。
基准测试结果表明,芦荟模型的训练使其性能优于Llama3-8B-Instruct。Llama3-Aloe-8B-Alpha甚至超过了像Meditron 70B这样的大型模型,并且接近像Yi-34这样的大型基础模型。对于前者,即使使用SC-CoT方法并采用其报告的最佳变体,这种优势仍然存在。所有这些结果使Llama3-Aloe-8B-Alpha成为同规模下最佳的医疗大语言模型。
借助提示技术,Llama3-Aloe-8B-Alpha的性能得到了显著提升。特别是Medprompt提示方法使报告的准确率提高了7%,在此之后,Llama3-Aloe-8B-Alpha仅落后于规模大十倍的Llama-3-70B-Instruct。这种改进在各个医学领域基本保持一致。使用Medprompt提示的Llama3-Aloe-8B-Alpha在MMLU医学测试中击败了使用自我报告的20次射击SC-CoT方法的Meditron 70B,在其他基准测试中表现略逊一筹。
环境影响
属性 | 详情 |
---|---|
硬件类型 | 4xH100 |
使用时长 | 7000小时 |
硬件提供商 | 巴塞罗那超级计算中心 |
计算区域 | 西班牙 |
碳排放 | 439.25千克 |
🔧 技术细节
训练详情
在Llama 3 8B的基础上进行监督微调,使用医疗和通用领域的数据集,采用DARE-TIES过程进行模型融合,并使用两阶段DPO过程进行人类偏好对齐。更多细节即将公布。
训练数据
- 医疗领域数据集,包括使用Mixtral-8x7B和Genstruct生成的合成数据
- HPAI-BSC/pubmedqa-cot
- HPAI-BSC/medqa-cot
- HPAI-BSC/medmcqa-cot
- LDJnr/Capybara
- hkust-nlp/deita-10k-v0
- jondurbin/airoboros-3.2
- argilla/dpo-mix-7k
- nvidia/HelpSteer
- 自定义偏好数据,包含从Anthropic Harmless、Chen等人的研究以及原始提示中生成的对抗性提示
📄 许可证
本模型基于Meta Llama 3 8B构建,遵循 Meta Llama 3许可证。所有修改内容采用 CC BY-NC 4.0 许可证。
模型卡片作者
模型卡片联系方式
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}
}



