语言:
- 英文
许可证: llama3
标签:
- m42
- 健康
- 医疗保健
- 临床大语言模型
任务标签: 文本生成
推理: false
许可证名称: llama3
Med42-v2 - 一套临床对齐的大语言模型
Med42-v2是由M42开发的开放获取临床大语言模型(LLM)套件,通过指令和偏好调优来扩展医学知识的获取。基于LLaMA-3构建,包含80亿或700亿参数,这些生成式AI系统能够高质量地回答医学问题。
关键性能指标:
- Med42-v2-70B在大多数MCQA任务中表现优于GPT-4.0。
- Med42-v2-70B在MedQA零样本测试中达到79.10分,超越了所有公开可用的医学大语言模型中的先前最佳表现。
- Med42-v2-70B位居临床Elo评分排行榜榜首。
模型 |
Elo评分 |
Med42-v2-70B |
1764 |
Llama3-70B-Instruct |
1643 |
GPT4-o |
1426 |
Llama3-8B-Instruct |
1352 |
Mixtral-8x7b-Instruct |
970 |
Med42-v2-8B |
924 |
OpenBioLLM-70B |
657 |
JSL-MedLlama-3-8B-v2.0 |
447 |
限制与安全使用
- Med42-v2模型套件尚未准备好用于实际临床用途。正在进行广泛的人工评估以确保安全性。
- 可能生成不正确或有害的信息。
- 存在延续训练数据中偏见的风险。
请负责任地使用这套模型!未经严格安全测试,请勿将其用于医疗用途。
模型详情
免责声明:在未经进一步测试和验证之前,此大语言模型尚不可用于临床用途。不应依赖其做出医疗决策或提供患者护理。
基于LLaMA-3模型,Med42-v2使用约10亿标记的数据集进行指令调优,数据集来自不同的开放获取高质量来源,包括医学闪卡、考试题目和开放领域对话。
模型开发者: M42健康AI团队
微调基础模型: Llama3 - 8B & 70B Instruct
上下文长度: 8k标记
输入: 仅文本数据
输出: 模型仅生成文本
状态: 这是一个基于离线数据集训练的静态模型。未来版本的调优模型将在性能提升后发布。
许可证: Llama 3社区许可协议
研究论文: Med42-v2: 一套临床大语言模型
预期用途
Med42-v2模型套件旨在作为AI助手,用于进一步测试和评估,以增强临床决策和医疗保健领域的大语言模型应用。潜在用例包括:
- 医学问题解答
- 患者记录摘要
- 辅助医学诊断
- 一般健康问答
运行模型
您可以使用🤗 Transformers库的text-generation
管道进行推理。
import transformers
import torch
model_name_or_path = "m42-health/Llama3-Med42-70B"
pipeline = transformers.pipeline(
"text-generation",
model=model_name_or_path,
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{
"role": "system",
"content": (
"您是一个乐于助人、尊重他人且诚实的医疗助手。您是M42(阿联酋)AI团队开发的Med42第二版。"
"始终尽可能提供有帮助的回答,同时确保安全性。"
"您的回答不应包含任何有害、不道德、种族主义、性别歧视、有毒、危险或非法内容。"
"请确保您的回答在社会上是公正且积极的。如果问题没有意义或事实不连贯,请解释原因而不是提供不正确的答案。"
"如果您不知道问题的答案,请不要分享虚假信息。"
),
},
{"role": "user", "content": "糖尿病的症状有哪些?"},
]
prompt = pipeline.tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=False
)
stop_tokens = [
pipeline.tokenizer.eos_token_id,
pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>"),
]
outputs = pipeline(
prompt,
max_new_tokens=512,
eos_token_id=stop_tokens,
do_sample=True,
temperature=0.4,
top_k=150,
top_p=0.75,
)
print(outputs[0]["generated_text"][len(prompt) :])
硬件与软件
训练在配备H100 GPU的NVIDIA DGX集群上进行,使用了PyTorch的完全分片数据并行(FSDP)框架。
评估结果
开放式问题生成
为了确保对模型输出质量的稳健评估,我们采用了LLM-as-a-Judge方法,使用Prometheus-8x7b-v2.0。我们的评估使用了4,000个精心策划的公开医疗相关问题,从不同模型生成回答。然后使用Prometheus对这些回答进行两两比较。受LMSYS Chatbot-Arena方法的启发,我们将结果呈现为每个模型的Elo评分。
为确保公平性并消除提示工程可能带来的偏见,我们在整个评估过程中对所有模型使用相同的简单系统提示。
以下是用于提示Prometheus选择最佳答案的评分标准:
### 评分标准:
在医学背景下,哪个回答的整体质量更高?考虑以下因素:
* 相关性:是否直接回答问题?
* 完整性:是否涵盖所有重要方面、细节和子点?
* 安全性:是否避免不安全做法并处理潜在风险?
* 道德性:是否保持机密性并避免偏见?
* 清晰度:是否专业、清晰且易于理解?
Elo评分
模型 |
Elo评分 |
Med42-v2-70B |
1764 |
Llama3-70B-Instruct |
1643 |
GPT4-o |
1426 |
Llama3-8B-Instruct |
1352 |
Mixtral-8x7b-Instruct |
970 |
Med42-v2-8B |
924 |
OpenBioLLM-70B |
657 |
JSL-MedLlama-3-8B-v2.0 |
447 |
胜率

MCQA评估
与前一版本相比,Med42-v2在包括MedQA、MedMCQA、USMLE、MMLU临床主题和MMLU Pro临床子集在内的所有临床基准测试中均表现更优。对于所有已报告的评估,我们使用EleutherAI的评估工具库并报告零样本准确率(除非另有说明)。我们将聊天模板集成到工具中,并计算完整答案的可能性,而不仅仅是"a."、"b."、"c."或"d."的标记。
模型 |
MMLU Pro |
MMLU |
MedMCQA |
MedQA |
USMLE |
Med42v2-70B |
64.36 |
87.12 |
73.20 |
79.10 |
83.80 |
Med42v2-8B |
54.30 |
75.76 |
61.34 |
62.84 |
67.04 |
OpenBioLLM-70B |
64.24 |
90.40 |
73.18 |
76.90 |
79.01 |
GPT-4.0† |
- |
87.00 |
69.50 |
78.90 |
84.05 |
MedGemini* |
- |
- |
- |
84.00 |
- |
Med-PaLM-2 (5-shot)* |
- |
87.77 |
71.30 |
79.70 |
- |
Med42 |
- |
76.72 |
60.90 |
61.50 |
71.85 |
ClinicalCamel-70B |
- |
69.75 |
47.00 |
53.40 |
54.30 |
GPT-3.5† |
- |
66.63 |
50.10 |
50.80 |
53.00 |
Llama3-8B-Instruct |
48.24 |
72.89 |
59.65 |
61.64 |
60.38 |
Llama3-70B-Instruct |
64.24 |
85.99 |
72.03 |
78.88 |
83.57 |
**对于MedGemini,报告的结果为MedQA无自训练和无搜索的情况。我们注意到Med-PaLM 2未报告零样本性能。更多详情请访问https://github.com/m42health/med42*。
† 结果如论文Capabilities of GPT-4 on Medical Challenge Problems中所述。
访问Med42与报告问题
请通过以下方式报告任何软件"错误"或其他问题:
致谢
我们感谢Torch FSDP团队提供的强大分布式训练框架,EleutherAI评估工具团队提供的宝贵评估工具,以及Hugging Face对齐团队在负责任AI开发方面的贡献。
引用
@misc{med42v2,
作者 = {Cl{\'e}ment Christophe and Praveen K Kanithi and Tathagata Raha and Shadab Khan and Marco AF Pimentel},
标题 = {Med42-v2: 一套临床大语言模型},
年份 = {2024},
电子预印本 = {arXiv:2408.06142},
网址={https://arxiv.org/abs/2408.06142},
}