Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Zlasejd/HuangDI
黄帝(Huang-Di)模型仓库,基于Ziya-LLaMA-13B-V1的中医古籍知识问答大模型。
https://github.com/Zlasejd/HuangDI
ancient-books llm nlp qusetion-answer tcm
Last synced: 6 days ago
JSON representation
黄帝(Huang-Di)模型仓库,基于Ziya-LLaMA-13B-V1的中医古籍知识问答大模型。
- Host: GitHub
- URL: https://github.com/Zlasejd/HuangDI
- Owner: Zlasejd
- License: apache-2.0
- Created: 2023-07-29T04:09:31.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-09-06T04:12:34.000Z (about 1 year ago)
- Last Synced: 2024-08-03T23:03:53.516Z (3 months ago)
- Topics: ancient-books, llm, nlp, qusetion-answer, tcm
- Language: Python
- Homepage:
- Size: 202 KB
- Stars: 65
- Watchers: 1
- Forks: 7
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- Awesome-Domain-LLM - HuangDI (皇帝)
- StarryDivineSky - Zlasejd/HuangDI - LLaMA-13B-V1的基础上加入中医教材、中医各类网站数据等语料库,训练出一个具有中医知识理解力的语言模型(pre-trained ),之后在此基础上通过海量的中医古籍指令对话数据及通用指令数据进行有监督微调(SFT),使得模型具备中医古籍知识问答能力。以《中华医典》数据库为语料来源,约338MB,由两部分组成:①非结构化的“古籍文本”:涵盖了886本标点符号及内容完整的中医古籍。②结构化的“古籍辞典”:包含“名医”、“名言”、“名词”、“名著”等六大类,由中医学界诸多知名学者对中医古籍内容知识进一步系统提炼整理,是中医古籍内容精华最为直接的集中体现。 (文本生成、文本对话 / 大语言对话模型及数据)
README
# HuangDi-该名字源自中医古籍《黄帝内经》
介绍:首先在 [Ziya-LLaMA-13B-V1](https://huggingface.co/IDEA-CCNL/Ziya-LLaMA-13B-v1)基线模型的基础上加入中医教材、中医各类网站数据等语料库,训练出一个具有中医知识理解力的预训练语言模型(pre-trained model),之后在此基础上通过海量的中医古籍指令对话数据及通用指令数据进行有监督微调(SFT),使得模型具备中医古籍知识问答能力。
# 训练数据
## 继续预训练数据(纯文本语料)约0.5G
包含两部分:①中医教材数据:收集“十三五”规划所有中医教材共22本。②在线中医网站数据:爬取中医世家、民间医学网等在线中医网站及知识库。
## 通用指令微调数据
[Alpaca-GPT4](https://github.com/Instruction-Tuning-with-GPT-4/GPT-4-LLM) 52k 中文
## 中医古籍指令对话数据
### 语料库来源
以《中华医典》数据库为语料来源,约338MB,由两部分组成:①非结构化的“古籍文本”:涵盖了886本标点符号及内容完整的中医古籍。②结构化的“古籍辞典”:包含“名医”、“名言”、“名词”、“名著”等六大类,由中医学界诸多知名学者对中医古籍内容知识进一步系统提炼整理,是中医古籍内容精华最为直接的集中体现。
### 构建指令微调对话数据集
通过知识引导的指令数据生成和指令数据质量优化两个阶段,最终获得504372个对话数据。
(1)知识引导的指令数据生成
让ChatGPT基于对该段中医古籍的知识内容理解,模拟用户与AI,通过自问自答的方式,生成逻辑关系相关的若干问题和答案,从而保证对话数据的准确性和可靠性。
(2)指令数据质量优化
尽管基于知识引导使得生成的指令数据基于特定领域,并且与所提供的无监督文本内容相关,避免了模型内部“已有知识”的干扰。然而这种方法难以对数据质量进行监督和控制,也难以保证指令数据的多样性和难度,这可能导致大模型对指令数据集的过度拟合。为了解决这个问题,我们在现有指令数据集的基础上,通过指令数据过滤-指令数据整合两个阶段对数据进行二次优化。
#### 中医古籍指令数据种类概览(共504372条对话数据)
对话类型 |数量 |对话类型 |数量
---- | ----- |-----|------
医经理论 | 40410 |温病类 | 10288
诊法治法 | 14184 |综合医书 | 86413
本草方书 | 144993|临证各科 | 56872
针灸推拿灸 | 31009|中医问诊 | 76765
伤寒金匮 | 29602|预防养生 | 13836
# 训练细节
## 实验参数超参数 | 继续预训练 | 有监督微调|DPO优化
---- | ----- | ------|-----
learning_rate | 6e-5 | 3e-4|3e-4
lora_rank | 16 | 16 |16
num_train_epochs | 5 | 6 |6
per_device_train_batch_size | 8 | 16 |8
per_device_eval_batch_size | - | 16|-
gradient_accumulation_steps | 4 | 4|4
lr_scheduler_type | cosine | cosine |cosine
logging_steps | 1000 | 100|100
save_steps | 2000 | 5000|2000
train_loss | 1.456 | 1.245|0.00276
eval_loss | - | 1.258|-
# 模型下载-LoRA权重
模型名称 |大小|下载地址
---- | ----- |-----
pretrain | 25.05MB |[百度网盘](https://pan.baidu.com/s/1xepTocJxWZbFvN2v4YqEiA?pwd=v6uk)
sft|25.05MB|[百度网盘](https://pan.baidu.com/s/1nAX6mx6C0YTiFOBIz68zOw?pwd=v3fo)
dpo|50.16MB|[百度网盘](https://pan.baidu.com/s/1m0TON938ArjKdIAjD3Mw4w)# 模型效果
应用示例 |Input|通义千问|Huang-Di
---- | ----- |-----|------
医经理论|中医古籍中的“阴虚之热”和“阴盛格阳之火”分别应该如何进行治疗?|很抱歉呀,目前我还没有掌握回答这个问题的技巧,我会不断学习,您也可以问我一些其他问题,我会努力给您解答。|在中医中,“阴虚之热”是由于人体内阴气不足、水液不行、真阴耗伤等原因所致的虚火症状。对于阴虚之热的治疗,建议采用滋补阴液的方法,如六味地黄丸等中药进行治疗,能够缓解症状,达到滋阴降火的效果。而“阴盛格阳之火”则是指人体内阳气不足、阴气过盛、火热亢盛等导致的虚火症状。对于阴盛格阳之火的治疗,建议采用温补阳气的方法进行治疗,如附子干姜肉桂等中药能够温补阳气,从而产生脾胃运化之功,消除虚火症状。总的来说,中医认为实火宜泻、虚火宜补,从病因和症状分析,采用不同的治疗方法,有利于恢复人体内阴阳平衡,达到疾病的治疗和康复效果。
诊法治法|如何判断一个人阴阳失调?|中医认为,阴阳失调是指人体内阴阳两种力量的失衡,通常表现为身体的不适和疾病。可以通过观察一个人的症状来判断其是否阴阳失调,例如:体温过高或过低、头痛、口干、口臭、腹泻、便秘、失眠、多梦、焦虑、抑郁等。另外,可以通过检查一个人的脉搏和舌苔来进一步判断其阴阳失调的情况。|阴阳失调是中医理论中的重要概念,它指的是身体内部阴阳两种力量之间的不平衡。通常来说,判断一个人是否存在阴阳失调需要从以下几方面入手:1.观察外貌特征:阴虚、阳盛型的患者通常容易出现脸色苍白、瘦弱等症状;而阳虚、阴盛型的患者则可能表现为面色红润、肥胖等情况。2.检查舌苔:中医认为舌质和舌苔可以反映脏腑功能的变化。例如,阴虚型患者的舌质可能较薄,舌苔可能较厚;而阳虚型患者的舌质可能较厚,舌苔可能较薄。3.询问病史:了解患者过去是否有过类似疾病或者长期服用某些药物也可以帮助诊断阴阳失调。4.检测体温:阴虚型患者往往会出现低热、寒战等症状,而阳虚型患者则可能出现高热、汗多等情况。
针灸推拿灸|古籍中九刺是什么?|九刺是中医针灸学中的一种治疗方法,也称为“九针”。九刺是指使用九根针具,通过不同的刺激方式和手法,对特定的穴位进行刺激,以达到治疗疾病的目的。九刺的应用范围非常广泛,可以用于治疗各种疾病,如肩周炎、腰痛、坐骨神经痛、痛风等。|九刺指的是中医中古代的九种刺法,分别是输刺、远道刺、经刺、络刺、分刺、大泻刺、毛刺、巨刺、淬刺。在《灵枢经》的《官针》条中就提到:“凡刺有九,以应九变”,也就是说,九种不同的刺法适用于不同的病变。其中,输刺是通过针刺使病邪随汗液排出;远道刺是在病变部位远处刺激;经刺是通过刺激经脉穴位将病邪排出;络刺是刺激络脉,达到类似经刺的效果;分刺是将病变部位分成若干小部分进行刺激;大泻刺是快速放血,将有毒血液排出体外;毛刺是将针头刺入皮肤表层,产生微刺激;巨刺则是在病变部位直接刺出大量污血;淬刺是将针先烤热后再刺激穴位。九刺的运用需要根据不同的疾病情况灵活选择,是中医治疗的重要手段之一。
中医问诊|最近我怀孕了,但是感到神疲无力、面色黯淡、腰酸腹痛并且出现阴道流血的症状,这是否属于血虚滑胎的情况?请问怎样治疗?|首先,我要强调的是,我不是医生,我只能提供一些建议。如果你怀孕期间出现这些症状,请务必咨询专业的医生。血虚滑胎是中医中的一个概念,通常是指孕妇血液不足,导致胎儿不稳定,容易流产。但是,出现这些症状并不一定就是血虚滑胎,可能是其他原因引起的。因此,建议你及时就诊,让医生进行详细检查,确诊原因。在确诊后,医生会根据具体情况给出相应的治疗方案。对于血虚滑胎的治疗,中医可能会采用补血、安胎的方法,比如服用一些补血的药物,如当归、红枣、枸杞等。此外,还需要注意休息,保持良好的生活习惯,避免过度劳累,保持情绪稳定等。总之,如果你怀孕期间出现这些症状,请务必及时就诊,让专业的医生进行诊断和治疗。希望你和宝宝都健康平安!| 是的,你的症状很可能是血虚滑胎引起的。血虚滑胎是指由于孕妇平时血虚及有滑胎病史,怀孕后阴血益虚导致胎儿失去滋养而引起的情况。其中症状包括神疲无力、面色淡黄、浮肿、腰酸腹痛,而且严重的话还会出现阴道流血和胎动欲坠等症状。对于血虚滑胎的治疗,应该以补血益气为主,以此来预防滑胎的发生。常用的中药方剂包括胎元饮,该方剂的组成包括人参、当归、杜仲、芍药、熟地、白术、陈皮、炙甘草等,可起到补气补血的作用。如果出现下血症状,还可以加入阿胶和艾炭等药物。需要强调的是,血虚滑胎的治疗应该遵循个性化的原则,应根据孕妇的具体情况而定。另外,饮食调理、心理调节等方面的治疗也非常重要,这些措施可以有效地提高孕妇血液的养分含量,提高孕妇免疫力,从而预防或缓解血虚滑胎产生的症状。如果出现滑胎症状,建议及时就医,并且采取综合治疗。"希望我的回答能够对你有所帮助。如果你还有其他问题,请随时向我提问。祝你健康快乐!
# 项目参与者
本项目由Zlasejd(南京大学信息管理学院)及Suprit(郑州大学人工智能学院)合作完成。
# 致谢
本项目的开放过程中,获得了以下项目的帮助,在此表示感谢。
1.https://huggingface.co/IDEA-CCNL/Ziya-LLaMA-13B-v1
2.https://github.com/ymcui/Chinese-LLaMA-Alpaca
3.https://github.com/huggingface/peft
# 局限性和使用限制
本项目内容仅供用于学术研究,不得用于其他会对社会带来危害的用途。使用涉及第三方代码的部分时,请严格遵循相应的开源协议。本项目中使用的数据由ChatGPT生成,未经严格验证,可能会存在错误内容,在使用时请注意甄别。
模型生成的内容受模型计算、随机性和量化精度损失等因素影响,本项目无法对其准确性作出保证。本项目中的模型输出并非专业中医古籍咨询结果,可能会包含错误内容。
如需商业用途可联系:[email protected]
# 引用
如果您使用了本项目的数据或者代码,或者认为本项目对您的研究有帮助,请引用本项目。@misc{zhang2023huangdi,
title={HuangDi: 中医古籍生成式大语言模型的构建研究},
author={Jundong Zhang and Songhua Yang },
year={2023},
url={https://github.com/Zlasejd/HuangDi}
}