模型简介
模型特点
模型能力
使用案例
🚀 Meditron-70B-v1.0
Meditron是一套开源的医疗大语言模型(LLM)。Meditron-70B是一个拥有700亿参数的模型,它通过在精心策划的医疗语料库上进行持续预训练,从Llama - 2 - 70B适配到医疗领域。该语料库包括精选的PubMed文章、摘要、一个新数据集(包含国际公认的医疗指南)以及来自RedPajama - v1的通用领域数据。经过相关训练数据微调后,Meditron-70B在多个医疗推理任务上优于Llama - 2 - 70B、GPT - 3.5 (text - davinci - 003
, 8-shot)和Flan - PaLM。
🚀 快速开始
Meditron-70B作为人工智能助手,可用于进一步测试和评估,以增强临床决策能力,并提高医疗保健领域对大语言模型的可及性。如果你想以更交互的方式使用该模型,建议使用具有高吞吐量和内存效率的推理引擎,并搭配支持聊天和文本生成的用户界面。你可以查看我们的部署指南,我们在其中使用了FastChat和vLLM。
✨ 主要特性
- 医疗领域适配:通过在医疗语料库上持续预训练,从Llama - 2 - 70B适配到医疗领域。
- 性能优越:在多个医疗推理任务上优于Llama - 2 - 70B、GPT - 3.5和Flan - PaLM。
- 多用途:可用于医疗考试问答、支持鉴别诊断、疾病信息查询和一般健康信息查询等。
📦 安装指南
文档未提供相关安装步骤,暂不展示。
💻 使用示例
文档未提供相关代码示例,暂不展示。
📚 详细文档
模型详情
属性 | 详情 |
---|---|
开发团队 | EPFL LLM Team |
模型类型 | 因果解码器专用Transformer语言模型 |
语言 | 主要为英语 |
模型许可证 | LLAMA 2 COMMUNITY LICENSE AGREEMENT |
代码许可证 | APACHE 2.0 LICENSE |
预训练基础模型 | Llama - 2 - 70B |
上下文长度 | 4K tokens |
输入 | 仅文本数据 |
输出 | 仅生成文本 |
状态 | 这是一个基于离线数据集训练的静态模型。随着模型性能的提升,未来将发布调优后的版本。 |
知识截止日期 | 2023年8月 |
模型来源
- 仓库:epflLLM/meditron
- 训练器:epflLLM/Megatron - LLM
- 论文:MediTron - 70B: Scaling Medical Pretraining for Large Language Models
使用场景
潜在用例
Meditron-70B可作为人工智能助手,用于进一步测试和评估,以增强临床决策能力,并提高医疗保健领域对大语言模型的可及性。潜在用例可能包括但不限于:
- 医疗考试问答
- 支持鉴别诊断
- 疾病信息(症状、病因、治疗)查询
- 一般健康信息查询
直接使用
可以使用该模型生成文本,这有助于实验和了解其能力。但不应直接将其用于可能影响人们的生产或工作中。
下游使用
Meditron-70B和Meditron-7B都是未经微调或指令调优的基础模型。它们可以针对特定的下游任务和应用进行微调、指令调优或基于强化学习的人类反馈(RLHF)调优。我们有两种方式将该模型用于下游问答任务:
- 我们在提示中添加k个演示(在我们的论文中为3或5个),应用上下文学习。
- 我们使用特定的训练集对模型进行微调,以用于下游问答任务。
我们鼓励并期待将基础模型应用于更多样化的应用中。
超出适用范围的使用
不建议在生产环境中使用该模型进行自然语言生成,无论是否经过微调。
真实性、有用性、风险和偏差
真实性评估
我们针对基线模型和消费级医疗模型,对Meditron模型的真实性进行了初步评估。我们使用TruthfulQA(多项选择)作为主要评估基准,仅关注与医疗领域相关的类别,包括健康、营养、心理学和科学。对于7B模型,我们进行单样本评估以确保答案生成的一致性;对于70B模型,评估在零样本设置下进行。以下是各类别详细的真实性表现:
类别 | Meditron - 70B | Llama - 2 - 70B | Med42 - 70B* | Meditron - 7B | Llama - 2 - 7B | PMC - Llama - 7B |
---|---|---|---|---|---|---|
健康 | 81.8 | 69.1 | 83.6 | 27.3 | 16.4 | 3.6 |
营养 | 77.9 | 68.8 | 62.5 | 31.1 | 12.5 | 6.3 |
心理学 | 47.4 | 36.8 | 52.6 | 21.1 | 10.5 | 0.0 |
科学 | 77.8 | 44.4 | 33.3 | 33.3 | 11.1 | 0.0 |
平均 | 71.2 | 54.8 | 58.0 | 28.3 | 12.6 | 2.5 |
如需更详细的性能分析,请参阅我们的论文。
有用性、风险和偏差
对于有用性、风险和偏差,我们提供了一份关于Meditron-70B对医学专家设计的查询的全面定性生成报告。每个查询都针对有用性(医疗准确性、最新信息等)、风险(公共卫生、医学伦理等)和偏差(性别、年龄、种族等)的特定方面。请参阅我们论文中的详细生成结果。我们将生成结果与Llama - 2 - 70B和ChatGPT - 3.5(2023年11月27日版本)进行了比较。
要充分探索该语言模型潜在的偏差、公平性和安全问题,仍需要进行大量研究。
训练详情
训练数据
Meditron的领域自适应预训练语料库GAP - Replay结合了来自四个语料库的481亿个标记:
- 临床指南:一个包含46K条国际公认的临床实践指南的新数据集,来自各种医疗相关来源,包括医院和国际组织。
- 医学论文摘要:从闭源的PubMed和PubMed Central论文中提取的1610万个摘要。
- 医学论文:从500万篇公开可用的PubMed和PubMed Central论文中提取的全文文章。
- 回放数据:从RedPajama - v1中采样的4亿个通用领域预训练数据标记。
数据预处理
请参阅我们论文中的详细预处理步骤。
训练过程
我们使用Megatron - LLM分布式训练库(Nvidia的Megatron LM项目的衍生版本)来优化训练效率。硬件由16个节点组成,每个节点配备8个NVIDIA A100(80GB)SXM GPU,通过NVLink和NVSwitch连接,配备单个Nvidia ConnectX - 6 DX网卡,并搭载2个AMD EPYC 7543 32核处理器和512GB内存。节点通过融合以太网的远程直接内存访问(RDMA)连接。
我们的三路并行方案使用:
- 数据并行(DP - 不同的GPU处理不同的批次子集):2
- 流水线并行(PP - 不同的GPU处理不同的层):8
- 张量并行(TP - 不同的GPU处理矩阵乘法的不同子张量):8
训练超参数
参数 | 值 |
---|---|
bf16 | true |
lr | 1.5e - 4 |
eps | 1e - 5 |
betas | [0.9, 0.95] |
clip_grad | 1 |
weight decay | 0.1 |
DP size | 2 |
TP size | 8 |
PP size | 8 |
seq length | 4096 |
lr scheduler | cosine |
min lr | 1e - 6 |
warmup iteration | 2000 |
micro batch size | 2 |
global batch size | 512 |
速度、大小、时间
模型于2023年9月和10月进行训练。
模型架构与Llama 2完全相同,具体如下:
属性 | 值 |
---|---|
模型大小 | 70B |
隐藏维度 | 8192 |
注意力头数量 | 64 |
层数 | 80 |
我们在480亿个标记上训练70B模型,吞吐量约为40200个标记/秒,这相当于bfloat16模型的浮点运算利用率约为42.3%。
评估
测试数据和指标
测试数据
指标
- 准确率:适用于多项选择问答任务的评估。
结果
我们分别在每个基准(pubmedqa、medmcqa、medqa)的训练数据上对meditron - 70b和llama - 2 - 70b进行微调。我们报告了以自一致性思维链作为推理模式的微调模型的性能。对于MMLU - Medical,使用在MedMCQA上微调的模型进行推理;对于MedQA - 4 - Option,使用在MedQA上微调的模型进行推理。如需更详细的性能分析,请参阅我们的论文。
数据集 | Meditron - 70B | Llama - 2 - 70B | Med42 - 70B* | Clinical - Camel - 70B* |
---|---|---|---|---|
MMLU - Medical | 77.6 | 77.9 | 74.5 | 65.7 |
PubMedQA | 81.6 | 80.0 | 61.2 | 67.0 |
MedMCQA | 66.0 | 62.6 | 59.2 | 46.7 |
MedQA | 64.4 | 61.5 | 59.1 | 50.8 |
MedQA - 4 - Option | 70.2 | 63.8 | 63.9 | 56.8 |
平均 | 72.0 | 69.2 | 63.6 | 57.4 |
注意:带有*的模型已经过指令调优,因此我们不再对其在任何训练数据上进行进一步微调。
环境影响
- 硬件类型:128个NVIDIA A100(80GB)SXM
- 总GPU小时数:42496
- 硬件提供商:EPFL研究计算平台
- 计算区域:瑞士
- 碳排放:瑞士的碳效率为0.016 kgCO2/kWh(https://www.carbonfootprint.com/docs/2018_8_electricity_factors_august_2018_-_online_sources.pdf)。128个A100运行332小时,即42496小时,热设计功耗(TDP)为400W。假设电源使用效率(PUE)为1.8,总排放量估计为:(400W / 1000W/kWh / GPU * 0.016 kgCO2/kWh * 332 h * 128 GPU) * 1.8 PUE = 486 kgCO2。
引用
BibTeX: 如果你使用Meditron或其训练数据,请引用我们的工作:
@misc{chen2023meditron70b,
title={MEDITRON-70B: Scaling Medical Pretraining for Large Language Models},
author={Zeming Chen and Alejandro Hernández-Cano and Angelika Romanou and Antoine Bonnet and Kyle Matoba and Francesco Salvi and Matteo Pagliardini and Simin Fan and Andreas Köpf and Amirkeivan Mohtashami and Alexandre Sallinen and Alireza Sakhaeirad and Vinitra Swamy and Igor Krawczuk and Deniz Bayazit and Axel Marmet and Syrielle Montariol and Mary-Anne Hartley and Martin Jaggi and Antoine Bosselut},
year={2023},
eprint={2311.16079},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
@software{epfmedtrn,
author = {Zeming Chen and Alejandro Hernández Cano and Angelika Romanou and Antoine Bonnet and Kyle Matoba and Francesco Salvi and Matteo Pagliardini and Simin Fan and Andreas Köpf and Amirkeivan Mohtashami and Alexandre Sallinen and Alireza Sakhaeirad and Vinitra Swamy and Igor Krawczuk and Deniz Bayazit and Axel Marmet and Syrielle Montariol and Mary-Anne Hartley and Martin Jaggi and Antoine Bosselut},
title = {MediTron-70B: Scaling Medical Pretraining for Large Language Models},
month = November,
year = 2023,
url = {https://github.com/epfLLM/meditron}
}
⚠️ 重要提示
虽然Meditron旨在从高质量证据来源中编码医学知识,但它尚未适当地、安全地或在专业可行的约束范围内提供这些知识。我们建议在没有进行广泛的用例对齐以及额外测试(特别是包括在现实世界实践环境中的随机对照试验)的情况下,不要将Meditron部署到医疗应用中。
💡 使用建议
如果你想以更交互的方式使用该模型,建议使用具有高吞吐量和内存效率的推理引擎,并搭配支持聊天和文本生成的用户界面。



