【医学大模型 逻辑准确】PLPF:将医生诊断逻辑集成到大模型

news2024/10/7 12:18:54

PLPF:将医生诊断逻辑集成到大模型

    • 提出背景
      • 规则建模
      • 偏好数据构建
      • 人类偏好对齐
    • 实验结果
      • 不同模型对比
      • 论文复现

 


提出背景

论文:https://arxiv.org/pdf/2401.05695.pdf

 
起始问题: 如何提高大型语言模型(LLMs)在医疗对话生成中的逻辑一致性和诊断准确性?

5why分析:

  • Why 1: 为什么现有的医疗对话模型存在逻辑一致性和诊断准确性问题?原因是训练数据的质量和模型对话逻辑的不足。
  • Why 2: 这个原因为什么会导致逻辑一致性和诊断准确性问题?因为数据和对话逻辑不足不能准确模拟医生的诊断过程。
  • Why 3: 为什么会有这样的原因?现有研究主要关注单轮对话的优化,忽视了多轮对话中的逻辑一致性。
  • Why 4: 这个原因背后的更深层次原因是什么?医疗领域的复杂性要求高度的专业性和准确性,这在传统的模型训练方法中难以实现。
  • Why 5: 最根本的原因是什么?缺乏有效的训练方法和算法来集成和优化医疗专业知识和对话逻辑。

5so分析:

  • So 1: 因此,我们可以通过大模型集成医生的诊断逻辑和偏好学习方法来解决或改进。
  • So 2: 这个解决方案或改进会带来更高的逻辑一致性和诊断准确性。

这个解法是 PLPF — 偏好学习自过程反馈(PLPF)方法。

它将医生的诊断逻辑集成到LLM中。

PLPF涉及规则建模、偏好数据生成和偏好对齐,以训练模型遵循诊断过程。

为什么PLPF需要拆解为这三个步骤?

原因是这三个步骤反映了医疗诊断过程中的关键阶段:

  • 理解规则(规则建模)
  • 评估情况(偏好数据构建)
  • 做出决策(人类偏好对齐)

规则建模

制定一套详细的医疗对话流程规则,包括如何询问病史、判断何时进行诊断以及如何推荐治疗。

首先,我们需要了解医生如何与患者进行对话,包括询问病史、判断症状、建议检查、下诊断和提供治疗建议的流程。

然后,基于这个流程,制定一套规则,这些规则会指导模型在对话中的每一步应该如何进行,确保每一步都符合医学逻辑和实际操作。

  • 特征1(规则定义):通过流程图定义六条规则,包括任务导向和约束导向规则,以评估对话是否遵循特定的诊断流程。

通过实际的医疗对话数据训练一个规则评估模型(REM),用于自动评估生成的对话是否符合预先定义的医疗对话流程。

  • 特征2(规则评估模型REM的开发):利用Q&A任务格式开发REM,通过手工注释的数据集进行训练,以自动评估对话是否符合定义的规则。

医疗对话流程图:
在这里插入图片描述

  • 使用蓝色框表示活动、橙色菱形表示判断条件,以及灰色框表示额外的约束。
  • 流程图包含了三个本地约束,鼓励医生向患者解释活动内容,以及两个全局约束,鼓励积极收集患者信息以及在医疗对话中积极回答患者问题。

这幅图直接关联到规则建模阶段。

它定义了医疗对话中的关键活动和决策节点,这些是之后需要在语言模型中实现和遵循的规则。

这些规则会在后续阶段用于生成和评估偏好数据。

偏好数据构建

接着,使用已经制定的规则去评估现有的医疗对话数据。

这个过程可能需要医学专家去手动标注数据,评价对话中的每一句话是否遵守了我们的规则。

同时,开发一个自动的规则评估模型(REM),这个模型能够自动判断一个对话是否符合我们的规则。

  • 特征3(候选回复生成):通过数据采样和轨迹预测生成候选回复,旨在学习如何完成多阶段任务。
  • 特征4(回复排名):利用REM对候选回复进行评分和排名,选择高分回复并排除低分回复,以此构建偏好数据。

从规则建模到偏好数据构建的整个过程:
在这里插入图片描述

  • 训练过程被划分为三个步骤,分别用不同颜色的圆角方框标出了关键活动。
  • 每个步骤分别为:规则建模、偏好数据构建和人类偏好对齐,通过不同的数据处理和优化技术来训练最终的目标模型。

CSPT数据集的实验结果:
在这里插入图片描述

  • 表格展示了不同模型在CSPT数据集上的表现,包括识别关键症状、医学测试和疾病诊断的概率。
  • 红色和绿色标签分别表示最佳和次佳结果,我们的PLPF优化模型在多个方面都取得了显著的提升。

人类偏好对齐

  • 特征5(模型训练):使用标注好的数据对基础模型进行微调,然后应用直接偏好优化(DPO)算法训练模型,以学习偏好数据,优化模型以偏好选择的回复而非拒绝的回复。

以偏向于产生更符合医生诊断逻辑的对话。

反映了人类偏好对齐阶段的成果:

在这里插入图片描述
雷达图展示了各个模型遵循六个规则的程度,每个规则对应雷达图的一个轴。

模型的排名以每个雷达轴上的分数表示,分数越高,排名越靠前。

实验结果

作者在实验中,使用不同模型处理相同患者案例(急性阑尾炎)时的对话历史。

  • Baichuan-Chat 有效地生成了潜在的病人诊断列表,并与特定的解释相关联。
  • Huatuo-II 使用单轮对话完成多轮对话任务,但未能协助病人使用对话历史中的症状信息来解释医学检查结果。
  • DISC-MedLLM 有效地从病人那里获取了他们的症状信息,但回答模板化,大部分回答用于提供建议。
  • PLPF (Baichuan-base) 严格遵循询问症状、提出诊断、验证诊断和建议治疗的过程。

不同模型对比

Baichuan-Chat: 在处理标准化病人案例时,Baichuan-Chat能够有效列出潜在诊断并与具体解释相关联,但在指导病人验证诊断方面表现不足,有时会避免回答病人的某些询问。

Huatuo-II: Huatuo-II的独特之处在于尝试使用单轮对话完成多轮对话任务。然而,它在使用对话历史中的症状信息帮助病人解读医疗测试结果方面存在不足。

DISC-MedLLM: 虽然DISC-MedLLM有效地从病人那里获取症状信息,但它采用固定的回复模板,回复往往过长且缺乏针对性。

论文复现

PLPF(偏好学习自过程反馈)方法是一种结合了医生诊断逻辑的大型语言模型训练方法。

PLPF主要包含以下步骤:

  1. 规则建模

    • 根据医生的诊断流程创建一个详细的流程图。
    • 为每个步骤定义明确的规则,包括何时收集信息、何时进行诊断、何时建议治疗等。
  2. 偏好数据生成

    • 使用规则评估模型(REM)来自动评估生成的对话是否符合预先定义的规则。
    • 生成候选对话,然后使用REM为这些对话打分,以建立一个偏好数据集。
  3. 偏好对齐

    • 利用偏好数据对模型进行训练,使用如直接偏好优化(DPO)算法等技术来调整模型的参数,使其更倾向于生成符合医生诊断逻辑的对话。

要实现这个方法,你需要:

  • 一组定义良好的医疗对话规则。
  • 大量的医疗对话数据进行训练和测试。
  • 一个能够处理自然语言并生成对话的预训练语言模型。
  • 一个规则评估模型来自动评分对话的质量。
  • 一个算法来进行偏好对齐,例如DPO。

以下是基于这些步骤的一个高层次的概念实现:

# 定义医疗对话的规则
rules = define_medical_dialogue_rules()

# 加载和预处理医疗对话数据
dialogues = load_and_preprocess_medical_dialogues()

# 使用预训练的语言模型生成候选对话
candidate_responses = generate_candidate_responses(pretrained_model, dialogues)

# 使用规则评估模型为候选对话打分
rem_scores = score_with_rem(candidate_responses, rules)

# 生成偏好数据集
preference_data = construct_preference_data(rem_scores)

# 使用偏好数据对模型进行训练
trained_model = train_with_preference_data(pretrained_model, preference_data, DPO_algorithm)

# 使用训练好的模型生成符合医生诊断逻辑的对话
final_dialogues = generate_dialogues(trained_model)

需要一个预训练的语言模型作为起点,可能是GPT-3或类似的模型。

还需要一个REM,能够根据规则来评分对话。

最后,需要实现一个训练算法,比如DPO,来根据偏好数据调整模型的行为。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1460114.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker (八)-dockerfile制作镜像

一 dockerfile dockerfile通常包含以下几个常用命令: FROM ubuntu:18.04 WORKDIR /app COPY . . RUN make . CMD python app.py EXPOSE 80 FROM 打包使用的基础镜像WORKDIR 相当于cd命令,进入工作目录COPY 将宿主机的文件复制到容器内RUN 打包时执…

CV论文--2024.2.21

source:CV论文--2024.2.21 1、Binary Opacity Grids: Capturing Fine Geometric Detail for Mesh-Based View Synthesis 中文标题:二元不透明度网格:捕获精细的几何细节以进行基于网格的视图合成 简介:尽管基于表面的视图合成算法由于其低计…

uni-app常用组件 App开发 小程序开发 这篇就够了

目录 一、uni-app官网网址 二、uni-app常用组件 1.视图容器 1.1 view 1.2 scroll-view 1.3 swiper 1.4 movable-area 1.5 movable-view 2.基础内容 2.1 icon 2.2 text 2.3 rich-text 3.表单组件 3.1 button 3.2 checkbox-group 3.3 form 3.4 input 3.5 label…

[经验] 什么是鄱阳湖旅游最主要的景点 #知识分享#知识分享

什么是鄱阳湖旅游最主要的景点 鄱阳湖是中国最大的淡水湖,位于江西省北部和湖南省南部。鄱阳湖旅游资源丰富,景色秀美,是游客游览江西最热门的旅游胜地之一。在所有的景点中,以下是鄱阳湖旅游中最主要的景点。 景点一&#xff1…

六西格玛培训对职场和财务的长期影响——张驰咨询

在当今竞争激烈的商业环境中,公司不断寻求提高质量和效率的方法,六西格玛(Six Sigma)作为一种旨在减少缺陷、提升产品和服务质量的管理策略,成为了很多企业的选择。然而,实施六西格玛需要专业的培训和认证&…

银河麒麟系列产品全新介绍——麒麟天御安全域管平台

麒麟天御安全域管平台是麒麟软件自主研发的新一代终端系统域管理平台,是专门针对银河麒麟操作系统环境下大规模的域用户和终端管理需求而设计。该平台聚焦用户身份验证、权限、访问控制、集中化管理、单点登录、策略等多个领域,提供组织管理、用户管理、终端管理、任务管理、软…

【python】windowslinux系统python的安装

一、python官网及下载路径 官网地址:Welcome to Python.org 下载路径:Download Python | Python.org ​​​​​​​ linux源码安装包下载: windows二进制安装包下载: 二、Linux如何安装python 2.1 单版本安装 以安装python…

防御保护---内容保护

文章目录 目录 文章目录 一.防火墙内容安全概述 二.深度识别技术(DFI/DPI) 深度包检测技术(DPI) 深度流检测技术(DFI) 两者区别 三.入侵防御IPS 一.防火墙内容安全概述 防火墙内容安全是防火墙的一个重…

即时设计和sketch对比

在设计领域,有很多易于使用的设计软件,每个软件都有自己的特点,但在使用中也会有一些限制。例如,传统的Sketch。Sketch是一款古老的UI设计软件。自2010年推出以来,已有10多年的历史,但它始终仅限于MAC。到目…

java中实体pojo对于布尔类型属性命名尽量别以is开头,否则 fastjson可能会导致属性读取不到

假如我们有一个场景,就是需要将一个对象以字符串的形式,也就是jsonString存到一个地方,比如mysql,或者redis的String结构。现在有一个实体,我们自己创建的,叫做CusPojo.java 有两个属性是布尔类型的&#x…

微调实操三:人类反馈对语言模型进行强化学习(RLHF)

1、前言 前面我们在《微调实操一: 增量预训练(Pretraining)》和《微调实操二: 有监督微调(Supervised Finetuning)》实操的两个章节,学习了PT(Continue PreTraining)增量预训练和SFT(Supervised Fine-tuning)有监督微调过程,,今天我们进入第三阶段的微调…

【微服务生态】Docker

文章目录 一、基础篇1. 简介2. 下载与安装3. 常用命令3.1 帮助启动类3.2 镜像命令3.3 容器命令 4. Docker 容器数据券5. Docker 镜像5.1 commit 生成镜像5.2 Docker Registry5.3 发布镜像 6. Docker 常规安装软件 二、高级篇1. Dockerfile1.1 概述1.2 基础知识1.3 Dockerfile常…

软件测试工程师经典面试题

软件测试工程师,和开发工程师相比起来,虽然前期可能不会太深,但是涉及的面还是比较广的。前期面试实习生或者一年左右的岗位,问的也主要是一些基础性的问题比较多。涉及的知识主要有MySQL数据库的使用、Linux操作系统的使用、软件…

豆粕贸易商的二次点价策略:如何在价格波动中获得收益补贴?

贸易商如何通过衍生品工具实现二次点价? 贸易商交易惯例:以豆粕贸易商和油厂签订的基差采购合同为例,同理可以类推至其他板块上下游企业。 按照交易惯例,贸易商通常会持有基差合同,但并不会先点价。当价格从高点到低…

饮用水、地下水深度去除全氟烷基物质的技术

摘要:全氟烷基物质(PFAS)是一组广泛存在于环境中的化学物质,对人体健康构成潜在威胁。本文将探讨PFAS的来源、危害以及饮用水处理中去除PFAS的方法,特别是离子交换树脂技术的应用,以期为公众提供环境保护和…

智慧水利数字孪生可视化,满屏黑科技!A3D引擎支持,免费即可搭建

2024年1月,在北京召开的全国水利工作会议,强调了要大力推进数字孪生水利建设,全面提升水利监测感知能力。 除此之外,2035年远景目标也提出:构建智慧水利体系,以流域为单元提升水情测报和智能调度能力。《数…

pom.xml常见依赖及其作用

1.org.mybatis.spring.boot下的mybatis-spring-boot-starter:这个依赖是mybatis和springboot的集成库,简化了springboot项目中使用mybatis进行持久化操作的配置和管理 2.org.projectlombok下的lombok:常用注解Data、NoArgsConstructor、AllA…

C语言二级易忘易错易混知识点(自用)

1.数组名不能自加。 因为数组名实际上是一个指针,指向数组的第一个元素的地址。数组名在编译器中被视为常量,它的值是固定的,不能改变。 要访问数组的不同元素,应该使用数组名加上偏移量的方式来访问。 2.共用体只有最后一次赋值…

主流开发语言和开发环境介绍

主流开发语言和开发环境介绍文章目录 ⭐️ 主流开发语言:2024年2月编程语言排行榜(TIOBE前十)⭐️ 主流开发语言开发环境介绍1.Python2.C3.C4.Java5.C#6.JavaScript7.SQL8.GO9.Visual Basic10.PHP ⭐️ 主流开发语言:2024年2月编程…

SwiftUI 更自然地向自定义视图传递参数的“另类”方式

概览 在 SwiftUI 中,正是自定义视图让我们的 App 变得与众不同!然而,除了传统的视图接口定义方式以外,我们其实还可以有更“银杏化”的选择。 如上图所示:对于 SubView 子视图所需的参数我们一开始并没有操之过急&…