分享

一个厉害的中医GPT,AI老中医开源了!

 xiaosuperman 2023-06-04 发布于广东

大家好,我是 Jack。

大模型 fine-tune,在各个领域百花齐放。

今天介绍一个医学领域 fine-tune 得到的大模型,Huatuo-LLaMA。

我们都知道,OpenAI 最新的 GPT 都没有开源,自从 FaceBook(Meta)开源了 LLaMA 的预训练模型之后,基于 LLaMa fine-tune 得到的大模型开始多了起来。

Huatuo-LLaMA 就是其之一,属于医学领域的模型。

Image

一、Huatuo-LLaMA

我们都知道,LLaMA 有着 7B(70亿) 到 65B(650亿) 量级的参数量。

作者团队出于训练成本的考虑,选择了模型参数量相对较少的 LLaMA-7B 作为 HuaTuo 的基础模型,在此基础上进行 instruct tuning,获得指令微调的大模型。

基础模型,就是 Base LLM(Large Language Model),它有着续写的能力,比如给一个开头,Base LLM 能够根据提供的开头续写内容。

但是 Base LLM 不能理解对话,你问它问题,它不会回答。为了让大模型具有理解问题的能力,就需要在 Base LLM 的基础上,进行 instruct tuning,进而得到 Instruction LLM。

好了,Huatuo-LLaMA 大致的训练原理说明白了,它就是一个基于中文的医学数据在 LLaMA-7B 开源模型基础上,instruct tuning 得到的模型。

作者团队参考 cMeKG,采用公开和自建的中文医学知识库构建训练数据。

医学知识库围绕疾病、药物、检查指标等构建,字段包括并发症,高危因素,组织学检查,临床症状,药物治疗,辅助治疗等。

知识库示例如下:

{'中心词''偏头痛''相关疾病': ['妊娠合并偏头痛''恶寒发热'], '相关症状': ['皮肤变硬''头部及眼后部疼痛并能听到连续不断的隆隆声''晨起头痛加重'], '所属科室': ['中西医结合科''内科'], '发病部位': ['头部']}

然后利用 GPT3.5 接口围绕医学知识库构建问答数据,丰富 Prompt 的提问形式。

指令微调的训练集数据示例如下:

'问题:一位年轻男性长期使用可卡因,突然出现胸痛、呕吐、出汗等症状,经检查发现心电图反映心肌急性损伤,请问可能患的是什么疾病?治疗方式是什么?'
'回答: 可能患的是心肌梗塞,需要进行维拉帕米、依普利酮、硝酸甘油、ß阻滞剂、吗啡等药物治疗,并进行溶栓治疗、低分子量肝素、钙通道阻滞剂等辅助治疗。此外需要及时停用可卡因等药物,以防止病情加重。'

这个数据就构建好了。

然后利用 LLaMa 开源的 finetune 代码,就能进行训练了。

#!/bin/bash

exp_tag='e1'
python finetune.py \
    --base_model 'decapoda-research/llama-7b-hf' \
    --data_path './data/llama_data.json' \
    --output_dir './lora-llama-med-'$exp_tag \
    --prompt_template_name 'med_template' \
    --micro_batch_size 128 \
    --batch_size 128 \
    --wandb_run_name $exp_tag

具体的训练过程,可以看下代码。

项目地址:

https://github.com/SCIR-HI/Huatuo-Llama-Med-Chinese

作者团队在一张 A100-SXM-80GB 显卡上进行了训练,训练总轮次 10 轮,耗时约 2h17m。

batch_size 为 128 的情况下显存占用在 40G 左右。预计 3090/4090 显卡( 24GB 显存)以上显卡可以较好支持,根据显存大小来调整 batch_size。

二、效果

Example1:

输入:小张最近感觉身体不适,出现心悸、气促等症状。体检发现心脏扩大、搏动减弱。

回答: 小张可能患有心肌炎,建议尽快到医院进行检查和治疗。治疗方案包括药物治疗和手术治疗。

Example2:

输入: 麻风病和儿童哮喘的病因是否一致?

回答: 不一致,麻风病的病因是麻风杆菌感染,而儿童哮喘的病因是喂养不良、吸烟等因素。

Example3:

输入: 一位患者出现了持续性的胀痛和黄疸,经影像学检查后确诊为肝胆管结石病,应该采取哪些治疗方案?

回答: 针对肝胆管结石病,治疗方案包括手术治疗、药物治疗和辅助治疗等。具体治疗方案需要根据患者的具体情况而定。

三、最后

因为训练数据有限,并且生成效果还有一定的随机性,因此无法保证 Huatuo-LLaMA 输出答案的准确性。

不过这个项目用于学术研究,还是够用的,对于大模型 fine-tune 感兴趣的小伙吧,不妨看一看。

之前跟大家说的教学视频,我已经录制完成了,还要再剪辑一下。

手把手带大家一起训练一个中文的 Base LLM,预计 18 号发布到 B 站,时长在 20~30 分钟,现场写 Bug,哈哈。

好了,今天就聊这么多吧,我是 Jack,我们下期见!

Image
·················END·················

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多