问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

用AI训练科学老中医

创作时间:
作者:
@小白创作中心

用AI训练科学老中医

引用
CSDN
1.
https://blog.csdn.net/2401_85375298/article/details/142817053

随着AI通用大模型的普及,越来越多的企业发现这些模型无法完全满足其特定需求。因此,越来越多的企业开始探索自训练专属模型,以更加精准地解决行业中的复杂问题。相较于通用模型,专属模型更像是“量身定制的超能力”,能够更好地契合企业的需求。

在本文中,我们将通过微调大模型的过程,结合传统医学与AI技术,打造一个智能“老中医”,为日常健康咨询提供服务。

怎么训练一个大模型

训练大模型,基本和训练人一样,首先要选人(合适的模型),接着挑教材(良好的数据),然后再密集训练(微调)。接下来,就让我们看看怎么一步步打造一个“中医大模型”吧!

1. 挑选一个好的基底模型

在开始“人才培养”之前,首先要挑选一个合适的“好苗子”,就是基底模型。它相当于我们要训练的“基础人才”,具备一定的能力,但需要进一步培养来完成特定任务。我们不需要像ChatGPT那样博学的“硕博士”,比较好选择是应届毕业生,有基础知识但是不是懂很多的模型。

选择开源的大模型是一个不错的选择。比如,Meta推出的LLaMA 3.1版本就是一个不错的基底模型,规模适中,同时可以为多个任务提供良好的起点性能。

2. 挑选一个合适的数据集

训练大模型,数据集就像是模型的“教材”,它在模型学习过程中起着至关重要的作用。如果我们要训练一个中医AI,单纯把《黄帝内经》《伤寒论》《本草纲目》这些经典著作喂给模型,是否就足够了呢?其实是不行的。训练大模型通常通过大量的问答数据来进行。通过这种一问一答的方式,模型逐步学习并掌握特定领域的知识。

那目前有没有好的中医数据集呢?参考开源项目“神农”大模型,首个中医药中文大模型 (https://github.com/michael-wzhu/ShenNong-TCM-LLM) , 里面有中医药指令数据集包含11万条问诊记录。

3. 训练架构

有了合适的模型和数据,接下来就是制定训练过程,这个过程也叫微调(Fine-tuning)。像ChatGPT、文心一言、通义千问这些商用大模型都支持微调。但是企业为了安全,大部分都会考虑内部私有大模型,自己训练的话,可以使用Unsloth的开源工具。这个工具能够支持Llama-3、Mistral、Phi-3和Gemma...等开源模型,并且让微调的速度加快两倍,还能节省70%的内存,而且不会影响模型的准确性。所以我们用Unsloth来高效地完成模型的训练。

训练模型

整个训练过程由开始到导出模型文件只需要10分钟,GPU内存只需要1GB,训练脚本可以参考https://github.com/unslothai/unsloth/wiki 提供的范例,我们解说下核心代码:

  1. 加载模型:我们使用的是Meta llama3.1 8B 4bit 模型,体积很小
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "./Meta-Llama-3.1-8B-bnb-4bit",
max_seq_length = max_seq_length,
dtype = dtype,
load_in_4bit = load_in_4bit,
# token = "hf_...", # use one if using gated models like meta-llama/Llama-2-7b-hf
)
  1. 加载数据:我们将神农数据集先下载到本地,然后再转化成chatgpt的对话格式
dataset_path = “ChatMed_TCM-v0.2_Data.json”
dataset = load_dataset(“json”, data_files=dataset_path, split=“train”)
dataset = to_sharegpt(
dataset,
merged_prompt = "{instruction}",
output_column_name = "output",
conversation_extension = 1, # Select more to handle longer conversations
)
dataset = standardize_sharegpt(dataset)
  1. 配置训练参数:大部分的参数都是unsloth预设好的,基本上不用作任何改动
trainer = SFTTrainer(
model = model,
tokenizer = tokenizer,
train_dataset = dataset,
....
)
trainer_stats = trainer.train()
  1. 开始训练:接下来机器开始训练,同样的语料会连续训练60次,训练的过程很快只需要5分钟就可以跑完了。

  2. 导出文件 :最后最重要的一步就是导出模型文件, 导出之后才能让其他的AI大模型使用。

if True: model.save_pretrained_gguf(“model”, tokenizer,)
print(tokenizer._ollama_modelfile)
  1. 导入ollama之中:我们把生成的大模型导入ollama
ollama create shennong --file Modelfile

通过这些步骤,我们就训练出了一个专属的中医AI模型 ,接下来我们实测看下效果。

训练结果对比

我们用同样的问题,分别问训练前原始的LLAMA 3.1和我们训练后的中医模型,来对比一下训练前后的效果

  1. 问诊问题 : 请问冬瓜皮有什么功效?

训练前

  1. 透疹、利尿:冬瓜皮具有清热透疹和利尿作用,可以帮助排除体内多余水分和毒素。
  2. 清心、消痰:冬瓜皮还能清心明目、消食除胀,适合用于治疗由肺阴虚或胸部积气等原因引起的眼病。冬瓜皮可以用来制作汤类、茶饮或药膳等,有助于改善临床症状和身体健康状况。

训练后
冬瓜皮是一种常见的中药材,具有清热解毒、利尿消肿、降低血糖等功效。以下是几种常用的冬瓜皮应用方法:

  1. 清热解毒:冬瓜皮可以用来清热解毒,有助于治疗感冒发烧、咽喉肿痛等症状。将冬瓜皮煮水喝,或泡茶饮用。
  2. 利尿消肿:冬瓜皮含有丰富的维生素C和膳食纤维,能够促进尿液排出,有助于治疗高血压、心脏病等症状。将冬瓜皮煮水喝,或泡茶饮用。
  3. 降低血糖:冬瓜皮中的氨基酸成分可以帮助降低血糖水平,对糖尿病患者有一定的辅助作用。将冬瓜皮煮水喝,或泡茶饮用。

请注意,以上信息仅供参考。如果您有身体不适,请及时就医并咨询专业医生的意见。

  1. 问诊问题 : 有什么中药可以缓解体内湿气?

训练前
一种常见的中药是枳实消食丸。它能够帮助清除体内积聚的湿气和痰气,改善身体的新陈代谢。另一个选项是青皮汤,它也能作为一种治疗体内湿气的方法,可以帮助祛除湿气、解除体内的不适感。还有参苓甘草丸,它也可以帮助缓解体内湿气和痰气。

训练后
以下是一些常用的中药和方剂:

  1. 陈皮、山楂、草果、茯苓等单味中药都有助于消化湿气。
  2. 逍遥散:这是一种非常著名的中药方剂,由白术、陈皮、半夏、茯苓和甘草组成。它可以调理脾胃,促进水湿代谢,从而缓解体内湿气过重的情况。
  3. 四君子汤:这是一种常用的补益脾胃的中药方剂,由人参、白术、茯苓和甘草组成。它可以调理身体,促进水湿代谢,从而缓解体内湿气过重的情况。

请注意,这些中药和方剂都需要在医生的指导下使用,因为每个人的身体状况不同,需要针对性的治疗方案。如果您有任何疑问或不适,请咨询专业的中医师。

  1. 问诊问题 : 我感觉头痛,鼻子总是塞着,应该怎么办?

训练前
这听起来像是一些常见的症状,可能与多种因素相关联。这里有一些建议:

  1. 休息和放松:确保你有充足的睡眠,并且尽量减少身体和精神上的压力。这可以帮助缓解紧张,从而减轻头痛。
  2. 饮食调节:避免过量摄入咖啡因、酒精等可能导致头痛的刺激物。同时,尝试通过增加水分或电解质的摄入来补充身体所需的营养。
  3. 保持清新的空气:使用吸湿剂、空气净化器或将空调设定在较低温度等方式来保持清新的空气,帮助缓解鼻塞状。
  4. 锻炼和运动:进行适量的体力活动可以帮助缓解肌肉紧张,并且改善血液循环,从而减少头痛的发生率。

除了这些日常生活调整外,如果你持续经历严重的头痛和鼻塞,请考虑与医生或者中医师进行讨论。可能存在一些潜在的健康问题需要治疗。

训练后
您可能正在经历感冒或流感的症状之一。建议您多休息、多喝水,适当吃些易消化的食物,如汤、粥等,同时可以考虑使用一些中药来缓解症状。以下是一些常用的中药材:

  1. 荆芥穗:荆芥穗有散寒止痛、通鼻窍的功效,可以用于治疗感冒引起的头痛和鼻塞。
  2. 薄荷叶:薄荷叶具有清热解毒、宣肺散寒的作用,可以用于缓解感冒或流感引起的症状,如头痛、发热等。
  3. 金银花:金银花有清热解毒、解表散邪的功效,可以用于治疗感冒或流感引起的症状,如咳嗽、发热等。
  4. 羌活:羌活具有祛风除湿、止痛的作用,可以用于缓解头痛和关节疼痛等症状。

请注意,中药使用前最好咨询医生或中医师的建议。

在训练之前,AI给出的回答较为通用;而经过训练后,AI的对话内容和风格明显融合了传统中医的知识与特点,展现出浓厚的中医风格。

需要提醒的是,基于安全考虑,AI大模型提供的医疗建议仅供参考,具体诊疗方案仍应以专业医生的建议为准。

结语

通过本文的介绍,我们展示了如何从零开始打造一个中医AI大模型。虽然AI大模型在各行各业的应用已经越来越广泛,但只有结合企业或行业的特定需求,量身定制的模型才能发挥更大的价值。通过类似的方法,企业还可以训练出属于自己的“技术专家”、“营销能手”或“客服达人”等模型。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号