Llama3 OpenBioLLM 8B
模型简介
模型特点
模型能力
使用案例
🚀 OpenBioLLM-8B:生物医学领域的开源大语言模型
OpenBioLLM-8B 是一款专为生物医学领域设计的先进开源语言模型。由 Saama AI Labs 开发,该模型运用前沿技术,在众多生物医学任务中展现出卓越性能。
🚀 快速开始
你可以通过以下链接体验在线演示、访问项目的 GitHub 仓库、查看相关论文以及加入 Discord 社区进行交流:
✨ 主要特性
- 🏥 生物医学专业化:OpenBioLLM-8B 针对医学和生命科学领域独特的语言和知识需求进行了定制。它在大量高质量的生物医学数据语料库上进行了微调,能够准确流畅地理解和生成特定领域的文本。
- 🎓 卓越性能:拥有 80 亿参数的 OpenBioLLM-8B 在性能上超越了其他同规模的开源生物医学语言模型。在生物医学基准测试中,与 GPT - 3.5 和 Meditron - 70B 等更大的专有及开源模型相比,也取得了更优的结果。
- 🧠 先进的训练技术:OpenBioLLM-8B 基于强大的 Meta - Llama - 3 - 8B 和 Meta - Llama - 3 - 8B 模型构建。它整合了 DPO 数据集和微调方法,以及自定义的多样化医学指令数据集。训练流程的关键组成部分包括:
- 策略优化:Direct Preference Optimization: Your Language Model is Secretly a Reward Model (DPO)
- 排名数据集:berkeley - nest/Nectar
- 微调数据集:自定义医学指令数据集(我们计划在即将发表的论文中发布样本训练数据集,请持续关注)
📦 安装指南
使用 transformers 库
重要提示:请使用 Llama - 3 指令版本提供的精确聊天模板,否则性能会下降。在极少数情况下,模型输出可能会冗长。你可以考虑将 temperature 设置为 0 以减少这种情况的发生。
以下是使用 Transformers 库的代码示例:
import transformers
import torch
model_id = "aaditya/OpenBioLLM-Llama3-8B"
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16},
device="auto",
)
messages = [
{"role": "system", "content": "You are an expert and experienced from the healthcare and biomedical domain with extensive medical knowledge and practical experience. Your name is OpenBioLLM, and you were developed by Saama AI Labs. who's willing to help answer the user's query with explanation. In your explanation, leverage your deep medical expertise such as relevant anatomical structures, physiological processes, diagnostic criteria, treatment guidelines, or other pertinent medical concepts. Use precise medical terminology while still aiming to make the explanation clear and accessible to a general audience."},
{"role": "user", "content": "How can i split a 3mg or 4mg waefin pill so i can get a 2.5mg pill?"},
]
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.0,
top_p=0.9,
)
print(outputs[0]["generated_text"][len(prompt):])
💻 使用示例
基础用法
上述使用 transformers 库的代码示例展示了如何使用 OpenBioLLM-8B 进行文本生成,你可以根据需求修改 messages
中的内容来提出不同的医学问题。
📚 详细文档
训练过程
训练超参数
点击查看详情
- learning_rate: 0.0002
- lr_scheduler: cosine
- train_batch_size: 12
- eval_batch_size: 8
- GPU: H100 80GB SXM5
- num_devices: 1
- optimizer: adamw_bnb_8bit
- lr_scheduler_warmup_steps: 100
- num_epochs: 4
Peft 超参数
点击查看详情
-
adapter: qlora
-
lora_r: 128
-
lora_alpha: 256
-
lora_dropout: 0.05
-
lora_target_linear: true
-
lora_target_modules:
- q_proj
- v_proj
- k_proj
- o_proj
- gate_proj
- down_proj
- up_proj
训练结果
框架版本
- Transformers 4.39.3
- Pytorch 2.1.2+cu121
- Datasets 2.18.0
- Tokenizers 0.15.1
- Axolotl
- Lm harness for evaluation
基准测试结果
🔥 OpenBioLLM-8B 在 9 个不同的生物医学数据集上表现优于 GPT - 3.5、Meditron - 70B 等更大的模型,尽管参数数量显著较少,但平均得分达到 72.50%,取得了最先进的结果。该模型在临床知识图谱、医学遗传学和 PubMedQA 等特定领域任务中的出色表现,凸显了其有效捕捉和应用生物医学知识的能力。
🚨 GPT - 4、Med - PaLM - 1 和 Med - PaLM - 2 的结果取自其官方论文。由于 Med - PaLM 未提供零样本准确率,我们使用其论文中的 5 样本准确率进行比较。除 Med - PaLM - 2 和 Med - PaLM - 1 使用 5 样本准确率外,所有结果均为零样本设置。
临床知识图谱 | 医学遗传学 | 解剖学 | 专业医学 | 大学生物学 | 大学医学 | MedQA 4 选项 | PubMedQA | MedMCQA | 平均 | |
---|---|---|---|---|---|---|---|---|---|---|
OpenBioLLM - 70B | 92.93 | 93.197 | 83.904 | 93.75 | 93.827 | 85.749 | 78.162 | 78.97 | 74.014 | 86.05588 |
Med - PaLM - 2 (5 样本) | 88.3 | 90 | 77.8 | 95.2 | 94.4 | 80.9 | 79.7 | 79.2 | 71.3 | 84.08 |
GPT - 4 | 86.04 | 91 | 80 | 93.01 | 95.14 | 76.88 | 78.87 | 75.2 | 69.52 | 82.85 |
Med - PaLM - 1 (Flan - PaLM, 5 样本) | 80.4 | 75 | 63.7 | 83.8 | 88.9 | 76.3 | 67.6 | 79 | 57.6 | 74.7 |
OpenBioLLM - 8B | 76.101 | 86.1 | 69.829 | 78.21 | 84.213 | 68.042 | 58.993 | 74.12 | 56.913 | 72.502 |
Gemini - 1.0 | 76.7 | 75.8 | 66.7 | 77.7 | 88 | 69.2 | 58 | 70.7 | 54.3 | 70.79 |
GPT - 3.5 Turbo 1106 | 74.71 | 74 | 72.79 | 72.79 | 72.91 | 64.73 | 57.71 | 72.66 | 53.79 | 66 |
Meditron - 70B | 66.79 | 69 | 53.33 | 71.69 | 76.38 | 63 | 57.1 | 76.6 | 46.85 | 64.52 |
gemma - 7b | 69.81 | 70 | 59.26 | 66.18 | 79.86 | 60.12 | 47.21 | 76.2 | 48.96 | 64.18 |
Mistral - 7B - v0.1 | 68.68 | 71 | 55.56 | 68.38 | 68.06 | 59.54 | 50.82 | 75.4 | 48.2 | 62.85 |
Apollo - 7B | 62.26 | 72 | 61.48 | 69.12 | 70.83 | 55.49 | 55.22 | 39.8 | 53.77 | 60 |
MedAlpaca - 7b | 57.36 | 69 | 57.04 | 67.28 | 65.28 | 54.34 | 41.71 | 72.8 | 37.51 | 58.03 |
BioMistral - 7B | 59.9 | 64 | 56.5 | 60.4 | 59 | 54.7 | 50.6 | 77.5 | 48.1 | 57.3 |
AlpaCare - llama2 - 7b | 49.81 | 49 | 45.92 | 33.82 | 50 | 43.35 | 29.77 | 72.2 | 34.42 | 45.36 |
ClinicalGPT | 30.56 | 27 | 30.37 | 19.48 | 25 | 24.27 | 26.08 | 63.8 | 28.18 | 30.52 |
详细医学主题准确率
使用案例与示例
🚨 以下结果来自 OpenBioLLM - 70B 的量化版本
临床笔记总结
OpenBioLLM - 70B 可以高效地分析和总结复杂的临床笔记、电子健康记录(EHR)数据和出院小结,提取关键信息并生成简洁、结构化的摘要。
医学问题解答
OpenBioLLM - 70B 可以回答广泛的医学问题。
点击查看详情
  临床实体识别
OpenBioLLM - 70B 可以通过识别和提取非结构化临床文本中的关键医学概念(如疾病、症状、药物、程序和解剖结构)来执行高级临床实体识别。凭借其对医学术语和上下文的深入理解,该模型可以准确地注释和分类临床实体,从而实现从电子健康记录、研究文章和其他生物医学文本来源中更高效的信息检索、数据分析和知识发现。这一能力可以支持各种下游应用,如临床决策支持、药物警戒和医学研究。
生物标志物提取
分类
OpenBioLLM - 70B 可以执行各种生物医学分类任务,如疾病预测、情感分析、医学文档分类。
去识别化
OpenBioLLM - 70B 可以检测并从医疗记录中删除个人身份信息(PII),确保患者隐私并符合 HIPAA 等数据保护法规。
咨询通知
虽然 OpenBioLLM - 70B 和 8B 使用了高质量的数据源,但其输出仍可能包含不准确、偏差或不一致的内容,如果在未经进一步测试和改进的情况下用于医疗决策,可能会带来风险。该模型的性能尚未在随机对照试验或现实世界的医疗环境中进行严格评估。
因此,我们强烈建议目前不要将 OpenBioLLM - 70B 和 8B 用于任何直接的患者护理、临床决策支持或其他专业医疗目的。其使用应限于有资质的个人进行研究、开发和探索性应用,这些个人应了解其局限性。
OpenBioLLM - 70B 和 8B 仅旨在作为辅助医疗专业人员的研究工具,绝不能替代合格医生的专业判断和专业知识。
要将 OpenBioLLM - 70B 和 8B 适当地调整和验证用于特定的医疗用例,需要进行大量的额外工作,可能包括:
- 在相关临床场景中进行全面的测试和评估
- 与循证指南和最佳实践保持一致
- 减轻潜在的偏差和失败模式
- 与人工监督和解释相结合
- 符合监管和道德标准
请始终咨询合格的医疗服务提供者以满足个人医疗需求。
📄 许可证
该模型遵循 Meta - Llama 许可证。
🔧 技术细节
模型信息
属性 | 详情 |
---|---|
模型类型 | OpenBioLLM-8B |
基础模型 | meta - llama/Meta - Llama - 3 - 8B |
模型大小 | 80 亿参数 |
量化版本 | 可在 此处 获取优化的量化版本 |
语言 | 英语 |
开发者 | Ankit Pal (Aaditya Ura)(来自 Saama AI Labs) |
许可证 | Meta - Llama 许可证 |
微调来源模型 | meta - llama/Meta - Llama - 3 - 8B |
更多信息资源 | 论文:即将发布 |
📖 引用
如果你在工作中发现 OpenBioLLM - 70B 和 8B 很有用,请按以下方式引用该模型:
@misc{OpenBioLLMs,
author = {Ankit Pal, Malaikannan Sankarasubbu},
title = {OpenBioLLMs: Advancing Open - Source Large Language Models for Healthcare and Life Sciences},
year = {2024},
publisher = {Hugging Face},
journal = {Hugging Face repository},
howpublished = {\url{https://huggingface.co/aaditya/OpenBioLLM-Llama3-70B}}
}
相关论文正在撰写中,即将发布。
💌 联系我们
我们期待与你交流并在这个令人兴奋的项目上进行合作!
贡献者:
- Ankit Pal (Aaditya Ura) [aadityaura at gmail dot com]
- Saama AI Labs
- 注意:本人正在寻找有资助的博士机会,特别是与负责任的生成式 AI、多模态大语言模型、几何深度学习和医疗 AI 技能相匹配的机会。
参考文献
感谢 Meta 团队 提供的优秀模型!
结果来源:
- [1] GPT - 4 Capabilities of GPT - 4 on Medical Challenge Problems
- [2] Med - PaLM - 1 Large Language Models Encode Clinical Knowledge
- [3] Med - PaLM - 2 Towards Expert - Level Medical Question Answering with Large Language Models
- [4] Gemini - 1.0 Gemini Goes to Med School



