【医学大模型】InMD-X:超精细化 + 内科医生的大语言模型

InMD-X:超精细化 + 内科医生的大语言模型

    • 提出背景
    • 数据
    • 训练
      • 持续预训练
      • 监督式微调
      • 参数高效微调

 


提出背景

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

 
现有的医学语言模型往往将医疗健康视为一个单一领域,忽视了其复杂的子专业。

解法: 将内科重新定义为11个不同的子专业。

多样性 —— 每个子专业都有其复杂和独特的语言。

专业性高 —— 每个子专业都要求有高水平的专业知识。

内科的子专业包括:

  1. 心脏病学(Cardiology):专注于心脏和循环系统的疾病。
  2. 内分泌学(Endocrinology):研究内分泌系统和激素相关疾病,如糖尿病。
  3. 胃肠病学(Gastroenterology):关注消化系统的疾病。
  4. 肾脏病学(Nephrology):专门处理肾脏疾病。
  5. 呼吸系统病学(Pulmonology):研究肺和呼吸系统的疾病。
  6. 风湿病学(Rheumatology):关注关节、肌肉和骨骼的疾病。
  7. 血液学(Hematology):研究血液、血液生成器官和血液疾病。
  8. 感染病学(Infectious Disease):专注于由微生物引起的疾病。
  9. 肿瘤学(Oncology):研究癌症及其治疗。
  10. 神经内科(Neurology):虽然通常被视为独立于内科的专业,但它涉及到中枢和外周神经系统的疾病。

每个子专业都需要特定的知识和技能集,因为它们涵盖的健康问题、治疗方法和研究领域各不相同。

这种细分有助于医疗专业人员更精确地诊断和治疗各种疾病,同时也支持了医学研究的深入发展。

问题: 医疗健康领域的大型语言模型普遍缺乏针对医学子专业的特化,导致不能满足各子专业的独特需求。

特征: 医学领域的多样性和复杂性,不同子专业之间的独特语言和需求。

这里的目标是深入理解如何通过细化到内科的各个子专业来定制大型语言模型,从而满足医学领域的特定需求。

  • 解决方案名称: InMD-X
  • 解决方案定义: 一套经过细致调整的大型语言模型,专门针对内科的十一个子专业进行优化,以提高在特定医学领域内的准确性、效率和相关性。

拆解:

  1. 特征1: 数据策划
    • 描述: 精心收集来自各个子专业顶级期刊的研究论文。
    • 逻辑链: 由于医学子专业之间的语言和需求差异,需要有针对性地策划数据以确保模型的专业性和准确性。
  2. 特征2: 模型细化调整
    • 描述: 对大型语言模型进行细化和优化,以适应内科的不同子专业。
    • 逻辑链: 通过细化调整,模型能更好地理解和处理每个子专业的专业语言和独特需求。
  3. 特征3: 专业对齐
    • 描述: 确保每个模型都与其对应的医学子专业紧密对齐,提供专业相关的信息和建议。
    • 逻辑链: 对齐特定专业领域以增强模型的实用性和准确性,从而提升医疗决策的质量。

这些特征构成了一个逻辑链,因为每个步骤都是顺序依赖的,形成了一个线性的进展路径:从数据策划到模型的细化调整,再到专业对齐,每个步骤都为下一步奠定了基础。

假设在内科的一个子专业——心脏病学中,我们首先从顶级心脏病学期刊中收集数据(特征1),然后对模型进行细化调整,使其能够理解心脏病学的特定术语和治疗方法(特征2)。

接着,确保模型输出的建议和信息与心脏病学的实践紧密对齐(特征3)。

这个过程形成了一个从数据策划到模型专业化的逻辑链,最终实现了能够支持心脏病专家的InMD-X模型。

数据

在这里插入图片描述

这图展示了内科医学大型语言模型(InMD-X)的数据集构建框架。

  1. 内科子专业划分

    • 内科被划分为不同的子专业,如过敏学(ALLERGY)、肿瘤学(ONCOLOGY)、血液学(HEMATOLOGY)等。
  2. 目标期刊的选择

    • 选择每个子专业的顶级期刊,例如,过敏学领域的《Journal of Allergy and Clinical Immunology》,肿瘤学领域的《Journal of Clinical Oncology》和《Cancer Research》,血液学领域的《Journal of Hematology & Oncology》和《Blood》等。
    • 使用期刊影响因子排名(JCR)来选择顶级期刊。
  3. 子专业数据集

    • 从选定的顶级期刊中收集摘要信息,通过PubMed数据库进行。
    • 数据被组织成不同子集,对应不同的子专业,如ALL(所有期刊)、ONC(肿瘤学期刊)、HEM(血液学期刊)。
  4. 问答数据集(QA Dataset)

    • 从收集的摘要中制作发现(Findings),例如,提出“干细胞涉及…”的观点。
    • 从这些发现中创建问题(Questions),例如,提问“干细胞的作用是什么…”。

整个框架的目的是通过精确和有目的的数据收集,提炼信息,并生成能够支持问答系统的数据集。

这种方法强调了针对特定医学子专业的个性化语言模型的重要性,同时也体现了医学研究数据处理的细致程度。

问题: Pubmed不提供特定部门的信息,难以区分和收集部门数据。

解法: 建立两步法构建清晰区分子专业的数据集。

特征1: 基于顶级期刊 —— 使用JCR排名前10%的期刊名称作为Pubmed API的查询条件。

特征2: 有效分类 —— 根据JCR分类确保每个子专业数据的准确收集。

特征3: 数据时效性 —— 收集2010年以来的论文,保证信息的时效性。

从这些期刊中收集了397,602篇论文作为训练数据,这些数据来源于Pubmed。

训练数据包含了大约150.6百万个token,从中提取了大约170万对QA数据集进行了监督式微调。

训练

这部分文本详细描述了InMD-X模型的训练过程,包含了持续预训练、监督式微调和参数高效微调等阶段。现在我们将根据逻辑关系对这些过程进行中文拆解。

持续预训练

  • 问题: 基础的预训练模型需要适应医学领域的特定知识。
  • 解法: 对预训练的neural chat-7B语言模型进行持续预训练。
  • 特征1: 域适应 —— 通过研究论文摘要进行自回归训练,无需标签。
  • 特征2: 高专业性 —— 使模型在每个子领域获得高水平的专业知识。
  • 特征3: 训练设置 —— 持续预训练进行了3个时期,批量大小设为1,学习率为1e-4。

监督式微调

  • 问题: 模型需要根据人类期望优化问答任务的性能。
  • 解法: 使用标记好的QA数据集对模型进行监督式微调。
  • 特征1: 精细性能调整 —— 利用问答数据进行训练。
  • 特征2: 训练设置 —— 训练进行了1个时期,批量大小设为1,学习率为1e-4。

参数高效微调

  • 问题: 同时训练所有子专业的模型资源消耗巨大且效率低下。
  • 解法: 采用参数高效微调优化训练过程。
  • 特征1: Lora框架 —— 通过调整较少参数的独立模块间接微调模型。
  • 特征2: 集成和资源效率 —— 模块权重完成训练后与原始模型权重合并。
  • 特征3: 推理优势 —— 模型使用Lora权重与基础模型合并,便于处理多模型场景。

为了解决特定的问题(如域适应和资源效率),采用了特定的解决方法(如持续预训练和参数高效微调)。

以持续预训练为例,阶段包括:

  1. 选择模型:选定neural chat-7B作为基础模型。
  2. 域适应性训练:使用无标签的医学文献摘要进行自回归训练。
  3. 训练配置:设定训练周期(3个epochs)、批量大小(1)和学习率(1e-4)。

接着进行监督式微调,利用QA数据集精细化模型对问答任务的处理能力。

最后,为了提高资源使用效率,采用Lora框架进行参数高效微调,这允许模型在保持性能的同时减少资源消耗。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【代码随想录python笔记整理】第十二课 · 位置互换

前言:本笔记仅仅只是对内容的整理和自行消化,并不是完整内容,如有侵权,联系立删。 一、变量交换的实现 这节我们讨论一个简单的问题——怎么交换两个变量的值。比如说,一个瓶子里是水,一个瓶子里是油,想要将两个瓶子中的东西互换,我们应该怎么做呢?要实现上述过程,我们…

测试环境搭建整套大数据系统(四:ubuntu22.4创建普通用户)

一:创建用户,修改密码,增加sudo权限。 useradd dolphinscheduler #输入密码 passwd dolphinscheduler # 配置 sudo 免密 sed -i $adolphinscheduler ALL(ALL) NOPASSWD: NOPASSWD: ALL /etc/sudoers sed -i s/Defaults requirett/#Defa…

【OpenSSH+Jenkins搭建项目自动化部署】

OpenSSHJenkins搭建项目自动化部署 一、Windows安装OpenSSH1.下载2.解压3.安装4.启停服务5.SSH免密登录 二、Jenkins安装1.下载2.安装启动3.登录 三、项目自动化部署1.SSH配置2.项目配置3.权限控制 一、Windows安装OpenSSH 1.下载 https://github.com/PowerShell/Win32-0penS…

2024,深层互联第二代IndoorLink领夹式讲解器面世!

新年之初,每一步都举足轻重。2024开年之际,资深讲解器厂家深层互联重磅推出第二代IndoorLink领夹式无线讲解器,各项性能指标全线升级,成为新的行业标杆,一经面世即引起巨大反响。 2023年2月,首代IndoorLin…

WSL2配置Linux、Docker、VS Code、zsh、oh my zsh

0. 写在前面 本篇笔记来自于UP主麦兜搞IT的合集视频Windows10开发环境搭建中的部分内容 1. 安装WSL2 按照微软官方文档进行操作,当然也可以直接wsl --install 也可以按照 旧版手动安装的步骤 来进行操作 选择安装的是Ubuntu 20.04 LTS 注:WSL默认安装…

SparkSQL学习01

目录 1.SparkSQL特点1.1易整合1.2统一的数据访问1.3兼容Hive1.4标准的数据连接 2 SparkSQL编程模型DataFrameDataSet2.1 SQL2.2 DataFrame是什么2.3 DataSet是什么2.4 RDD,DataSet,DataFrame 3 SparkSQL核心编程3.1 编程入口3.2 SparkSQL基本编程3.2.1编…

《VitePress 简易速速上手小册》第2章:Markdown 与页面创建(2024 最新版)

文章目录 2.1 Markdown 基础及扩展2.1.1 基础知识点解析2.1.2 重点案例:技术博客2.1.3 拓展案例 1:食谱分享2.1.4 拓展案例 2:个人旅行日记 2.2 页面结构与布局设计2.2.1 基础知识点解析2.2.2 重点案例:公司官网2.2.3 拓展案例 1&…

来看看投资界最关心的 Sora 几大问题

作者:苍何,前大厂高级 Java 工程师,阿里云专家博主,CSDN 2023 年 实力新星,土木转码,现任部门技术 leader,专注于互联网技术分享,职场经验分享。 🔥热门文章推荐&#xf…

嵌入式开发-STM32CUBEMX使用—基于STM32G431RBTx

嵌入式–基于STM32G431RBTX 1.利用STM32CUBEMX生成工程框架 2.利用STM32CUBEMX生成初始化代码文件 创建文件 选择外晶振 Clock Configuration配置 按如下数据配置 Project Manager配置 Code Generator 在进行如上配置后即可生成 运行 在运行前需要把启动文件加入Applicati…

游戏被攻击如何处理

游戏服务器被攻击对于开发者来说是很常见的事情,一般游戏刚上线或者日活比较高的时候,很容易成为攻击者的目标,为了利益,攻击者会利用大量肉鸡发起DDoS跟CC攻击,导致游戏服务器瘫痪、网络卡顿、或用户掉线等情况&#…

多个.C 文件关于全局变量如何使用

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary_walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…

uniapp运动课程健身打卡系统微信小程序

考虑到实际生活中在我来运动管理方面的需要以及对该系统认真的分析,将系统分为小程序端模块和后台管理员模块,权限按管理员和用户这两类涉及用户划分。 (a) 管理员;管理员使用本系统涉到的功能主要有:首页、个人中心、用户管理、课程类别管理…

【知识分享】自动化测试首选接口自动化?

在分层测试的“金字塔”模型中,接口测试属于第二层服务集成测试范畴。 相比UI自动化测试而言,接口自动化测试收益更大,且容易实现,维护成本低,有着更高的投入产出比。因此,项目开展自动化测试的首选一般为接…

计网day5

六 传输层 6.1 传输层概述 6.2 UDP协议 6.3 TCP协议 TCP连接管理: TCP可靠传输: TCP拥塞控制:

kafka命令行操作

kafka命令行操作: 配置环境变量: export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk export JRE_HOME${JAVA_HOME}/jre export CLASSPATH.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export JAVA_PATH${JAVA_HOME}/bin:${JRE_HOME}/bin export PATH…

总结Rabbitmq的六种模式

RabbitMQ六种工作模式 RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。 RabbitMQ有六…

Spring最新核心高频面试题(持续更新)

1 什么是Spring框架 Spring框架是一个开源的Java应用程序开发框架,它提供了很多工具和功能,可以帮助开发者更快地构建企业级应用程序。通过使用Spring框架,开发者可以更加轻松地开发Java应用程序,并且可以更加灵活地组织和管理应…

强化学习(SQL)

SQL——soft Q-learning 这是一种在最大化期望累计奖励的基础上,最大化熵项的算法,即该算法的优化目标是累计奖励和熵(entropy)的和。 SQL的好处: ①探索性强:可以在多模态任务中找到最佳的方案&#xf…

【问题解决】删除node节点后如何把node节点重新加入

环境明细 docker版本: 25.0.3kubeadm 版本:v1.25.0 1 在master节点删除node节点 [rootk8s-master ~]# kubectl delete nodes k8s-node-02 node "k8s-node-02" deleted [rootk8s-master ~]# kubectl get nodes -o wide NAME STAT…

嵌入式学习-qt-Day2

嵌入式学习-qt-Day2 一、思维导图 二、作业 1.使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 2.将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账…