“本草”大模型開源,ChatGPT時代,連AI私人醫(yī)生都出現(xiàn)了?
今天給大家分享的ChatGPT新應(yīng)用項目,是ChatGPT模型在醫(yī)學(xué)領(lǐng)域的應(yīng)用,什么,醫(yī)學(xué)領(lǐng)域?
是的,沒錯,是醫(yī)學(xué)領(lǐng)域的ChatGPT應(yīng)用,我們都知道ChatGPT是OpenAI開源的一個智能對話式引擎,今天給大家分享的項目叫“本草”。

“本草”模型是經(jīng)過中文醫(yī)學(xué)指令精調(diào)/指令微調(diào)(Instruct-tuning) 的LLaMA-7B模型。
通過醫(yī)學(xué)知識圖譜和GPT3.5 API構(gòu)建了中文醫(yī)學(xué)指令數(shù)據(jù)集,并在此基礎(chǔ)上對LLaMA進(jìn)行了指令微調(diào),提高了LLaMA在醫(yī)療領(lǐng)域的問答效果。
“紙上來得終覺淺,絕知此事要躬行”,我們直接演示一下具體的使用效果。
1.安裝依賴包,python環(huán)境建議3.9
accelerate
appdirs
bitsandbytes
black
black[jupyter]
datasets
fire
git+https://github.com/huggingface/peft.git
git+https://github.com/huggingface/transformers.git
gradio
sentencepiece
wandb
執(zhí)行Linux系統(tǒng)指令:
pip install -r requirements.txt
2. 中醫(yī)推理模型權(quán)重的下載
(1)對LLaMA進(jìn)行指令微調(diào)的LoRA權(quán)重文件:
#基于醫(yī)學(xué)知識庫
lora-llama-med/
- adapter_config.json # LoRA權(quán)重配置文件
- adapter_model.bin # LoRA權(quán)重文件
#基于醫(yī)學(xué)文獻(xiàn)
lora-llama-med-literature/
- adapter_config.json # LoRA權(quán)重配置文件
- adapter_model.bin # LoRA權(quán)重文件
(2)對Alpaca進(jìn)行指令微調(diào)的LoRA權(quán)重文件
#基于醫(yī)學(xué)知識庫
lora-alpaca-med-alpaca/
- adapter_config.json # LoRA權(quán)重配置文件
- adapter_model.bin # LoRA權(quán)重文件
#基于醫(yī)學(xué)知識庫和醫(yī)學(xué)文獻(xiàn)
lora-alpaca-med-alpaca-alldata/
- adapter_config.json # LoRA權(quán)重配置文件
- adapter_model.bin # LoRA權(quán)重文件
3. 訓(xùn)練數(shù)據(jù)集構(gòu)建
采用了公開和自建的中文醫(yī)學(xué)知識庫,醫(yī)學(xué)知識庫圍繞疾病、藥物、檢查指標(biāo)等構(gòu)建,字段包括并發(fā)癥,高危因素,組織學(xué)檢查,臨床癥狀,藥物治療,輔助治療等。
知識庫示例如下:
{
"中心詞": "偏頭痛",
"相關(guān)疾病": ["妊娠合并偏頭痛", "惡寒發(fā)熱"],
"相關(guān)癥狀": ["皮膚變硬", "頭部及眼后部疼痛并能聽到連續(xù)不斷的隆隆聲", "晨起頭痛加重"],
"所屬科室": ["中西醫(yī)結(jié)合科", "內(nèi)科"],
"發(fā)病部位": ["頭部"]
}
我們利用GPT3.5接口圍繞醫(yī)學(xué)知識庫構(gòu)建問答數(shù)據(jù),設(shè)置了多種Prompt形式來充分利用知識。
指令微調(diào)的訓(xùn)練集數(shù)據(jù)示例如下:
"問題:一位年輕男性長期使用可卡因,突然出現(xiàn)胸痛、嘔吐、出汗等癥狀,經(jīng)檢查發(fā)現(xiàn)心電圖反映心肌急性損傷,請問可能患的是什么疾?。恐委煼绞绞鞘裁矗?#34;
回答: 可能患的是心肌梗塞,需要進(jìn)行維拉帕米、依普利酮、硝酸甘油、?阻滯劑、嗎啡等藥物治療,并進(jìn)行溶栓治療、低分子量肝素、鈣通道阻滯劑等輔助治療。此外需要及時停用可卡因等藥物,以防止病情加重。"
4. 運(yùn)行應(yīng)用效果測試
在./data/infer.json中提供了一些測試用例,可以替換成其它的數(shù)據(jù)集,請注意保持格式一致
運(yùn)行推理腳本代碼:
#基于醫(yī)學(xué)知識庫
bash ./scripts/infer.sh
#基于醫(yī)學(xué)文獻(xiàn)
bash ./scripts/infer-literature-single.sh
千尋選擇了基于醫(yī)學(xué)知識庫的模型與數(shù)據(jù),推理GPU顯卡類型為: Tesla T4
以下為運(yùn)行結(jié)果:
Example1:
輸入:小張最近感覺身體不適,出現(xiàn)心悸、氣促等癥狀。體檢發(fā)現(xiàn)心臟擴(kuò)大、搏動減弱。
回答: 小張可能患有心肌炎,建議盡快到醫(yī)院進(jìn)行檢查和治療。治療方案包括藥物治療和手術(shù)治療。
Example2:
輸入: 麻風(fēng)病和兒童哮喘的病因是否一致?
回答: 不一致,麻風(fēng)病的病因是麻風(fēng)桿菌感染,而兒童哮喘的病因是喂養(yǎng)不良、吸煙等因素。
Example3:
輸入: 一位患者出現(xiàn)了持續(xù)性的脹痛和黃疸,經(jīng)影像學(xué)檢查后確診為肝膽管結(jié)石病,應(yīng)該采取哪些治療方案?
回答: 針對肝膽管結(jié)石病,治療方案包括手術(shù)治療、藥物治療和輔助治療等。具體治療方案需要根據(jù)患者的具體情況而定。
5. 模型遷移訓(xùn)練,更加合適精確
使用自己的數(shù)據(jù)集微調(diào)LLaMA,按照./data/llama_data.json的格式構(gòu)建自己的數(shù)據(jù)集
運(yùn)行finetune腳本
bash ./scripts/finetune.sh
6. 模型效果對比

目前“本草”大模型,只開放了針對"肝癌"單個疾病訓(xùn)練的模型參數(shù)。
希望在未來,發(fā)布融入文獻(xiàn)結(jié)論的醫(yī)學(xué)對話數(shù)據(jù)集的AI全能醫(yī)生,作為AI時代的“私人醫(yī)生”的指向!期待!