Project Icon

PMC-LLaMA

开源医疗大语言模型推动医学智能研究

PMC-LLaMA是一个基于医学文献预训练和指令微调的开源大语言模型。该模型在USMLE、MedMCQA等医学测试中表现优异,能够有效处理医学问答和相关查询。PMC-LLaMA为研究人员提供了便利的使用和开发平台,促进医学人工智能研究的进展。

PMC-LLaMA

"PMC-LLaMA:构建开源医学语言模型"的官方代码。

Arxiv 版本

我们证明,医学大语言模型应首先使用领域语料进行预训练,然后再使用指令跟随数据集进行微调。

我们已发布最新模型 PMC_LLaMA_13B,该模型在我们的指令数据集上进行了微调。 它表现出比 MedLLaMA_13B 更好的遵循用户指令能力。

<img src=./figures/teaser.png width="50%">

同样,可以轻松加载:

import transformers
import torch
tokenizer = transformers.LlamaTokenizer.from_pretrained('axiong/PMC_LLaMA_13B')
model = transformers.LlamaForCausalLM.from_pretrained('axiong/PMC_LLaMA_13B')

在此我们列出 PMC_LLaMA 的版本和简介。

MedLLaMA_13B 在医学语料上预训练,PMC_LLaMA_13B 在此基础上进一步微调。

版本链接简介发布日期
MMed-Llama-3 https://huggingface.co/Henrychur/MMed-Llama-3-8B最新在 Llama-3 上预训练的多语言 LLM2024/05/22
MMedLMhttps://github.com/MAGIC-AI4Med/MMedLM进一步预训练的多语言 LLM2024/02/21
PMC_LLaMA_13Bhttps://huggingface.co/axiong/PMC_LLaMA_13B指令微调2023/09/01
MedLLaMA_13Bhttps://huggingface.co/chaoyi-wu/MedLLaMA_13B在 480 万篇 PubmedCentral 论文和医学书籍上预训练 LLaMA2023/05/01
PMC_LLaMA_7B_10_epochhttps://huggingface.co/chaoyi-wu/PMC_LLAMA_7B_10_epoch类似于 PMC_LLaMA_7B 但训练了 10 个 epoch2023/05/01
PMC_LLaMA_7Bhttps://huggingface.co/chaoyi-wu/PMC_LLAMA_7B使用 PMC 论文对 LLaMA-7b 进行 5 个 epoch 的微调2023/04/25

最新消息

我们发布了一个新的报告生成指标 RaTEScore。我们坚信,为了推动生成式医学基础模型的发展,开发一个稳健可靠的评估指标是至关重要的基础步骤。

环境

按以下方式简单设置所需环境:

conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 pytorch-cuda=11.6 -c pytorch -c nvidia
pip install transformers=4.28.1, sentencepiece, datasets

快速开始

查看 simple_test.py 以快速使用 PMC-LLaMA,或者您可以按照以下简单示例操作。

import transformers
import torch
tokenizer = transformers.LlamaTokenizer.from_pretrained('axiong/PMC_LLaMA_13B')
model = transformers.LlamaForCausalLM.from_pretrained('axiong/PMC_LLaMA_13B')
model.cuda()  # 将模型移至 GPU

prompt_input = (
    '以下是描述任务的指令,以及提供更多上下文的输入。'
    '请写出恰当完成请求的响应。\n\n'
    '### 指令:\n{instruction}\n\n### 输入:\n{input}\n\n### 响应:'
)
example = {
    "instruction": "你是一名医生,请根据患者的描述回答医疗问题。直接回答最佳选项。",
    "input": (
        "###问题:一名23岁的孕妇,孕期22周,出现排尿时灼热感。"
        "她表示这种症状从1天前开始,并且尽管增加饮水量和服用蔓越莓提取物,症状仍在恶化。"
        "除此之外,她感觉良好,正在接受医生的孕期随访。"
        "她的体温为97.7°F (36.5°C),血压122/77 mmHg,脉搏80次/分,呼吸频率19次/分,室内空气条件下血氧饱和度98%。"
        "体格检查显示无肋脊角压痛,子宫增大。"
        "以下哪项是该患者的最佳治疗方案?"
        "###选项:A. 氨苄青霉素 B. 头孢曲松 C. 多西环素 D. 呋喃妥因"
    )
}
input_str = [prompt_input.format_map(example)]

model_inputs = tokenizer(
    input_str,
    return_tensors='pt',
    padding=True,
)
print( f"\033[32mmodel_inputs\033[0m: { model_inputs }" )

topk_output = model.generate(
    model_inputs.input_ids.cuda(),
    max_new_tokens=1000,
    top_k=50
)
output_str = tokenizer.batch_decode(topk_output)
print('模型预测结果: ', output_str[0])

训练

训练过程可以分为两个阶段:预训练和指令微调。

预训练

预训练的脚本位于Pretrain/training.sh

我们的预训练数据集来源于S2ORC。只有那些带有PubMed ID的论文被视为与医学相关,并在预训练过程中使用。

医学书籍列表在本仓库中以MedicalBook.xlsx的形式提供,由于版权原因,我们无法发布原始内容。如需复现,请购买并处理这些书籍。

关于如何微调LLaMA的更多细节,可以参考Finetune_LLAMA

指令微调

我们还在SFT/train.py提供了指令微调脚本。 你可以在PMC LLaMA Instructions找到我们的指令数据集。

结果

QA基准测试

方法模型大小USMLEMedMCQAPubMedQA
人类 (及格)-50.0--60.0
人类 (专家)-87.090.078.0
ChatGPT175B57.044.763.9
LLaMA-213B42.7337.4168.0
LLaMA-270B43.6835.0274.3
Med-Alpaca13B30.8531.1353.2
Chat-Doctor7B33.9331.1054.3
PMC_LLaMA_13B 13B56.3656.0477.9

注:带*的人工和零样本结果引用自LMFLow

零样本案例

我们展示了PMC_LLaMA_13B对领域外查询的回应。

<img src=./figures/pmc_llama_cases.png>

注意,由于在论文上训练,MedLLaMA_13B可能会生成一些引用编号(LLaMA有时也会这样做),我们在案例中省略了这些编号以展示主要内容。 而对于PMC_LLaMA_13B,由于输出结果结构化,更容易提取正确答案。

致谢

Minimal LLaMA -- https://github.com/zphang/minimal-llama

alpaca -- https://github.com/tatsu-lab/stanford_alpaca

LMFLow -- https://github.com/OptimalScale/LMFlow/tree/main/src/lmflow

LLaMA: 开放高效的基础语言模型 -- https://arxiv.org/abs/2302.13971

联系方式

如果您有任何问题,请随时联系wtzxxxwcy02@sjtu.edu.cn

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号