开源医疗大语言模型推动医学智能研究
PMC-LLaMA是一个基于医学文献预训练和指令微调的开源大 语言模型。该模型在USMLE、MedMCQA等医学测试中表现优异,能够有效处理医学问答和相关查询。PMC-LLaMA为研究人员提供了便利的使用和开发平台,促进医学人工智能研究的进展。
"PMC-LLaMA:构建开源医学语言模型"的官方代码。
我们证明,医学大语言模型应首先使用领域语料进行预训练,然后再使用指令跟随数据集进行微调。
我们已发布最新模型 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 上预训练的多 语言 LLM | 2024/05/22 |
MMedLM | https://github.com/MAGIC-AI4Med/MMedLM | 进一步预训练的多语言 LLM | 2024/02/21 |
PMC_LLaMA_13B | https://huggingface.co/axiong/PMC_LLaMA_13B | 指令微调 | 2023/09/01 |
MedLLaMA_13B | https://huggingface.co/chaoyi-wu/MedLLaMA_13B | 在 480 万篇 PubmedCentral 论文和医学书籍上预训练 LLaMA | 2023/05/01 |
PMC_LLaMA_7B_10_epoch | https://huggingface.co/chaoyi-wu/PMC_LLAMA_7B_10_epoch | 类似于 PMC_LLaMA_7B 但训练了 10 个 epoch | 2023/05/01 |
PMC_LLaMA_7B | https://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找到我们的指令数据集。
方法 | 模型大小 | USMLE | MedMCQA | PubMedQA |
---|---|---|---|---|
人类 (及格) | - | 50.0 | -- | 60.0 |
人类 (专家) | - | 87.0 | 90.0 | 78.0 |
ChatGPT | 175B | 57.0 | 44.7 | 63.9 |
LLaMA-2 | 13B | 42.73 | 37.41 | 68.0 |
LLaMA-2 | 70B | 43.68 | 35.02 | 74.3 |
Med-Alpaca | 13B | 30.85 | 31.13 | 53.2 |
Chat-Doctor | 7B | 33.93 | 31.10 | 54.3 |
PMC_LLaMA_13B ![]() | 13B | 56.36 | 56.04 | 77.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。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用 户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
高分辨率纹理 3D 资产生成
Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。
一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。
3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号