BentSao开源了经过中文医学指令微调的大语言模型集,包括 Llama、AlpacaChinese、Bloom、活字模型等。基于医学知识图谱以及医学文献,结合 ChatGPT API 构建了中文医学指令微调数据集,并以此对各种基模型进行了指令微调,提高了基模型在医疗领域的问答效果。
一、模型特点
1. 基础模型:
本草建立在开源的`llama7b`模型基础上。`llama`模型是一种较为知名的语言模型基础架构,具有一定的语言理解和生成能力,而`llama7b`则表示该模型具有 70 亿参数,这为本草模型提供了基础的语言处理能力和架构支持。
2. 神经网络架构:类似于大多数大语言模型,“本草”采用神经网络架构,这种架构能够对大量的文本数据进行学习和分析,捕捉语言的语法、语义等信息。神经网络中的神经元通过复杂的连接和计算,对输入的文本进行编码和解码,从而实现对问题的理解和回答的生成。
3. 知识整合:
整合了来自中国医学知识图谱(CMKG)的结构化和非结构化医学知识。中国医学知识图谱包含了丰富的医学信息,如疾病、药物、症状等方面的知识,这些知识的引入使得本草模型能够更好地理解和处理医学相关的问题。
通过利用 ChatGPT 构造了 8000 多个指令数据形成指令数据集,用于监督微调。这种基于指令数据的微调方式可以让模型更好地适应医学领域的问答任务,提高回答的准确性和专业性。
除了医学知识图谱,“本草”还利用医学指南等非结构化的医学知识。这些非结构化的知识来源可以提供更丰富的医学背景信息和临床经验,帮助模型更好地理解医学领域的复杂性和多样性。对于非结构化的文本数据,需要使用自然语言处理技术进行处理,例如文本分词、词性标注、命名实体识别等,以便模型能够有效地理解和利用这些知识。
4. 指令数据集构建与微调:
构建指令数据集:借助 ChatGPT 构造了 8000 多个指令数据形成指令数据集。指令数据是一种特定格式的数据,用于指导模型如何回答问题。在构建指令数据集时,会设计各种类型的医学问题和相应的回答模板,让模型学习如何根据问题生成合适的回答。这些指令数据涵盖了广泛的医学主题和场景,例如疾病诊断、治疗方案、药物使用等,以便模型能够应对不同类型的医学问题。
监督微调:使用构建好的指令数据集对基础模型进行监督微调。在微调过程中,模型会根据指令数据中的问题和答案进行学习,不断调整模型的参数,以提高模型在医学领域的问答效果。通过监督微调,模型能够更好地理解医学问题的含义和意图,生成更准确、更专业的回答。
5. 评估与优化:
引入评估指标:引入了新的评估指标 SUS,由安全性(Safety)、可用性(Usability)和流畅性(Smoothness)三个维度组成。安全性评估生成的响应是否可能误导用户并对其健康构成威胁,可用性评估生成的响应反映医学专业知识的程度,流畅性衡量生成的回答是否通顺、易读。通过这样的评估指标,可以全面地评估模型的性能,发现模型存在的问题和不足。
持续优化:根据评估结果,对模型进行持续优化和改进。例如,如果发现模型在某些医学问题上的回答不准确,会进一步调整模型的参数或增加相关的训练数据;如果发现模型的生成回答不够流畅,会对模型的生成策略进行优化。通过不断地优化和改进,提高模型的性能和质量。
二、优势
1. 专业的医学知识储备:
整合医学资源:它整合了来自中国医学知识图谱的结构化和非结构化医学知识。结构化知识能清晰呈现疾病、药物、症状等医学实体之间的关系,比如知道某种疾病的常见症状、对应治疗药物以及可能的并发症等;非结构化的医学指南等知识则提供了更丰富的临床背景信息和经验,帮助模型更全面、深入地理解医学领域的各种情况。
准确的医学问题解答:基于丰富的医学知识储备,在面对各类医学问题时,能够提供较为准确的诊断建议、治疗方案等信息,为医疗工作者提供参考,也能满足非专业人士对医学知识的需求。
2. 指令理解与执行能力:
基于指令微调优化:经过指令数据集的训练和微调,能够很好地理解用户输入的指令和问题意图。无论是复杂的病症描述、治疗方案咨询,还是对医学概念的疑问,都能准确理解并给出针对性的回答。
适应不同的提问方式:用户的提问方式可能多种多样,“本草”可以适应不同的表述风格和提问角度,准确提取关键信息并进行回答,提高了用户与模型交互的效率和体验。
3. 学习与自适应能力:
快速学习新知识:在不断的使用和训练过程中,能够快速学习新的医学知识和案例,不断更新和完善自己的知识体系。这使得模型能够保持对医学领域最新进展的了解,提供更符合当下医学认知的回答。
适应不同场景应用:无论是在临床诊断、医学教育、科研等专业场景,还是在面向普通大众的健康咨询场景,都能根据不同的应用场景进行自适应调整,提供合适的信息和建议。
4. 评估与反馈机制:
引入多维度评估指标:引入了SUS评估指标,包括安全性、可用性和流畅性三个维度。安全性确保生成的回答不会误导用户或对其健康构成威胁;可用性保证回答能够准确反映医学专业知识的程度;流畅性则让生成的回答通顺、易读。这种多维度的评估机制能够全面衡量模型的性能,为模型的优化提供依据。
根据反馈不断改进:基于评估结果和用户的反馈,能够不断改进自己的回答策略和知识表示,从而不断提高回答的质量和准确性。
5. 开源与可扩展性:
开源推动发展:模型开源意味着更多的开发者和研究人员可以参与到模型的改进和优化中来,共同推动医学大语言模型的发展。不同背景的专业人员可以根据自己的需求和专业知识,对模型进行进一步的开发和应用,为医学领域带来更多的创新和应用场景。
方便扩展与定制:开源的特性也使得模型具有较高的可扩展性和定制性,能够根据不同医疗机构、科研团队或企业的特定需求进行定制化开发,满足多样化的医学应用需求。
三、不足
1. 知识的准确性和可靠性仍有待提高:
可能产生错误信息:尽管经过大量医学知识的训练,但在某些复杂或罕见的医学问题上,仍然可能给出不准确或不完整的回答。例如,对于一些疑难病症的诊断和治疗建议,可能会因为训练数据的局限性或模型理解的偏差而出现错误。在医学领域,错误的信息可能会对患者的健康产生严重的影响,因此这是一个需要重点关注的问题。
缺乏对最新医学研究的实时更新:医学知识不断更新和发展,新的研究成果、治疗方法和药物不断涌现。然而,“本草”模型可能无法及时获取并整合这些最新的信息,导致其提供的知识可能存在一定的滞后性。这对于需要获取最新医学信息的用户来说,可能会影响其参考价值。
2. 缺乏临床实践经验和真实情境理解:
无法替代临床医生的判断:模型主要是基于文本数据进行训练,缺乏实际的临床实践经验。在临床诊断和治疗中,医生需要综合考虑患者的具体情况,包括病史、体征、检查结果等多方面因素,而模型可能无法准确理解这些复杂的实际情况,因此其给出的建议可能与临床实际情况存在偏差。例如,对于一些症状相似但病因不同的疾病,模型可能难以准确区分,而临床医生可以通过进一步的检查和诊断来确定。
对患者的个体差异考虑不足:每个人的身体状况、基因背景、生活习惯等都存在差异,对疾病的反应和治疗效果也会有所不同。然而,“本草”模型在回答问题时可能无法充分考虑到这些个体差异,给出的建议可能过于通用,无法满足患者的个性化需求。
3. 语言理解和表达的局限性:
对模糊或不明确问题的处理能力有限:在实际的医学咨询中,患者可能无法准确地描述自己的症状或问题,或者问题本身存在模糊性。“本草”模型在处理这类问题时,可能会出现理解困难,导致回答不准确或不相关。例如,患者说“我感觉不舒服,但不知道具体哪里不舒服”,模型可能难以给出有针对性的建议。
生成的回答可能过于复杂或难以理解:为了尽可能准确地回答问题,模型可能会生成一些较为复杂的医学术语和句子结构,对于非医学专业的用户来说,理解这些回答可能存在困难。这就需要模型在生成回答时,既要保证准确性,又要考虑到用户的理解能力,使回答更加通俗易懂。
4. 伦理和法律方面的挑战:
责任界定不明确:如果用户根据模型的回答进行自我诊断或治疗,出现了不良后果,那么责任的界定将变得非常困难。模型的开发者、使用者以及提供数据的机构等各方之间的责任划分不明确,可能会引发法律纠纷和伦理争议。
隐私保护问题:在使用模型的过程中,可能会涉及到用户的个人健康信息等隐私数据。如果模型的安全防护措施不够完善,这些隐私数据可能会被泄露,对用户的隐私造成侵犯。
5. 计算资源和运行效率的限制:
对硬件要求较高:大语言模型的训练和运行需要大量的计算资源,包括高性能的处理器、大容量的内存和存储空间等。这对于一些小型医疗机构或个人用户来说,可能难以满足其硬件要求,限制了模型的广泛应用。
运行速度较慢:在处理复杂的医学问题时,模型需要进行大量的计算和推理,可能会导致运行速度较慢,影响用户的使用体验。特别是在一些紧急的医疗场景下,快速获取准确的信息非常重要,而模型的运行速度可能无法满足这一需求。
四、应用场景
主要应用于医学领域的问答场景,能够为医学专业人员、患者等提供医学知识解答、疾病诊断建议、治疗方案推荐等方面的帮助。
1. 辅助医疗诊断:
症状分析与疾病初步判断:患者向模型描述症状后,“本草”可以根据输入的信息,结合其整合的医学知识,对可能的疾病进行初步分析和推测。例如,患者描述头痛、发热、咳嗽等症状,模型可以根据这些症状信息提供可能的疾病范围,如感冒、流感、肺炎等的可能性,为医生的进一步诊断提供参考。
辅助医生制定诊断方案:医生在诊断过程中,可以利用“本草”快速获取相关疾病的诊断要点、检查项目建议等信息,帮助医生更全面地考虑诊断方案,减少遗漏重要信息的可能性。比如,对于一个出现胸痛症状的患者,模型可以提示医生考虑心脏疾病、肺部疾病、消化系统疾病等不同方向的检查和诊断方法。
2. 医学教育与培训:
提供学习资源:为医学生和医学从业者提供丰富的学习资料,如疾病的病理机制、临床表现、治疗方法等方面的详细解释和案例分析。医学生可以通过与“本草”的互动,快速获取相关知识,加深对医学概念的理解。例如,学生学习糖尿病时,模型可以提供糖尿病的分类、发病机制、常见并发症以及不同类型糖尿病的治疗策略等信息。
模拟病例讨论:创建虚拟的病例场景,让医学生进行诊断和治疗方案的讨论。“本草”可以作为一个智能助手,参与讨论并提供专业的意见和建议,帮助学生提高临床思维能力和解决实际问题的能力。比如,给出一个复杂的病例,让学生分析并提出诊断和治疗方案,然后“本草”可以根据其医学知识对学生的方案进行评估和反馈。
3. 医疗科研:
文献分析与总结:帮助医学科研人员快速阅读和分析大量的医学文献。“本草”可以提取文献中的关键信息,如研究目的、方法、结果和结论等,并进行总结和归纳,为科研人员节省时间和精力。例如,科研人员在研究某个疾病的治疗方法时,模型可以帮助他们快速筛选相关的文献,并提取其中的重要信息,以便进行综合分析。
研究思路启发:根据科研人员输入的研究问题或方向,提供相关的研究思路和方法建议。例如,科研人员想要研究某种药物对特定疾病的疗效,“本草”可以提供类似研究的设计思路、实验方法以及可能遇到的问题和解决方案等,为科研人员提供启发和参考。
4. 医患沟通与健康咨询:
患者咨询服务:为患者提供在线的健康咨询服务,解答患者关于疾病、症状、治疗、康复等方面的疑问。患者可以通过文字或语音的方式与“本草”进行交流,获得及时的解答和建议。比如,患者在手术后对康复过程中的饮食和运动有疑问,“本草”可以根据患者的手术类型和身体状况,提供相应的饮食和运动建议。
医患沟通辅助:在医患沟通中,医生可以使用“本草”来更好地理解患者的需求和问题,提高沟通效率和质量。例如,患者可能对医学术语不太理解,医生可以通过“本草”将专业的医学术语转化为通俗易懂的语言,向患者解释病情和治疗方案,增强患者对医生的信任和理解。
5. 智能医疗管理:
病历管理与分析:协助医院和医疗机构管理病历信息,对大量的病历数据进行分析和挖掘,为医疗质量管理、疾病预防控制等提供数据支持。例如,通过分析大量的糖尿病病历,模型可以发现糖尿病患者的发病趋势、治疗效果等信息,为医院制定糖尿病的防治策略提供参考。
医疗资源分配优化:根据疾病的流行趋势、患者的分布情况等信息,为医疗机构的医疗资源分配提供建议,如合理安排病床、设备、医护人员等资源,提高医疗资源的利用效率。例如,在流感高发季节,“本草”可以根据往年的流感数据和当前的疫情监测信息,建议医院增加呼吸科的病床和医护人员数量。
总的来说,本草模型在医学知识的基础上进行了优化和改进,具有一定的医学专业知识处理能力,但在实际应用中仍可能存在一些局限性,需要不断地进行改进和优化。如果你对该模型的具体代码或应用感兴趣,可以参考相关的开源项目获取更多信息。