医院信息化-6 大模型与医疗

之前写了一系列跟医疗信息化相关的内容,其中有提到人工智能,但是写的都是原先的一些AI算法基础上的医疗应用。现在大模型出现的涌现推理能力确实让人惊讶,并且出现可商用化的可能性,因此最近一年关于大模型在医疗的应用也开始出现,本章就大模型的一些基本原理、如何微调一个大模型以及大模型与医疗说一下自己的看法,可能存在不准确的地方,望能指出,谢谢。

1 大模型介绍

大多数人对大模型的了解只是知道ChatGPT-3、ChatGPT-3.5、ChatGPT-4、文心一言3.5等大模型,并且其功能就是能够聊天对话。其实大模型不是一个,哪怕是ChatGPT-3也存在多个大模型,如果你有用过ChatGPT的API,你就会了解到ChatGPT的API就有很多个。这时候会存在疑惑就是这些大模型都是干什么的?下面通过大模型分类和国内外一些常见大模型让你认识一下大模型一些基本内容。

1.1 大模型分类

其实当时OpenAI在训练ChatGPT-3时,训练了4个大模型,分别是ada、babbage、curie、davinci,其最大区别就是参数量不同。然后你还发现OpenAI还有DALL·E、Whisper等其它大模型,这时候开始你就要了解不同大模型的作用。很多人喜欢分为以下2类:

  • 通用语言大模型:主要处理文本的大模型,像ChatGPT-3、3.5、4、Whisper等属于这类类别,这种类别的大模型一般用于处理对话、文本、翻译、语音等。
  • 多模态大模型:多模态大模型简单理解就是能够处理更为复杂的图片、视频的大模型,而OpenAI的DALL·E就是属于多模态大模型,它是基于ChatGPT-3基础上训练出来的。(这里要解释一下,多模态相对于文本来说要复杂的多,现在很多多模态大模型的做法就是让图片也能够变成类似文本的向量化,然后采用文本大模型来做图片特征训练,如DALL·E和visualGLM都采用类似做法)

如果按照更为细致的功能划分,可以分为:

  • 文本大模型:处理文本的,如ChatGPT-3、3.5、4。
  • 语音大模型:处理语音的,如Whisper大模型
  • 文本向量大模型:处理文本向量化,如Embedding大模型
  • 审查大模型:处理违规的输入,如Moderation大模型
  • 图像大模型:处理图片的,如DALL·E大模型

当然还有很多不同的大模型,这里之所以先了解不同大模型,就是为了让你知道大模型并不是单单只有一种。这里还需要注意一个词“通用”,后续在微调的时候你会知道为什么叫通用大模型。

1.2 国外大模型

我们知道最近一年发布的很多大模型,但是其实很多大同小异,你无需知道太多,只需要通过Hugging face和LMSYS等排行榜,就能够知道哪些大模型。这里简单列举一些国外大模型

大模型是否开源文本/多模态公司/组织
ChatGPT文本OpenAI(微软投资)
Claude文本Anthropic(谷歌投资)
LlaMA文本Meta
DALL·E多模态OpenAI(微软投资)
MiniGPT多模态沙特的大学研究院

1.3 国内大模型

国内在国外某些大模型开源之后,迅速涌现出估计超过100个的大模型,但同样的,有的要么其实只是利用开源微调,有的要么效果其实不佳,国内大模型总结一下就是大厂的基本都差不多,相对于ChatGPT还是有些差距,但是由于涉及中文问题,有时候你可能还是需要利用国内模型可能会取得更好效果(只是因为国内大模型可能有更好更多的中文训练数据,但其大模型推理能力还是没有ChatGPT强)。

大模型是否开源文本/多模态公司/组织
文心一言文本百度
通义千问文本阿里
混元文本腾讯
百川文本百川
ChatGLM文本清华大学
visualGLM多模态清华大学

国内目前闭源的多模态大模型可能还处于科研阶段,不适合真正商用。

1.4 医疗相关的开源大模型

我们知道,上面列举的大模型其实都是通用大模型,如果我们要在实际某些行业中使用,需要经过微调。那么有哪些开源的医疗大模型,

  • ChatMed:一个基于LlaMA-7b大模型,并且使用“中文医疗在线问诊数据集”进行微调训练的医疗知识与回答医学咨询
  • XrayGLM:一个基于VisualGLM-6B大模型,并且使用“MIMIC-CXR数据集和OpenI数据集”进行微调训练的X光影像智能诊断报告

2 大模型原理

关于大模型的训练和原理,网上有很多教程和原理说明,这里不会讲数学公式,这里只是让你了解大模型的底层概念,让你能更好的了解大模型。

2.1 输入层+隐藏层+输出层

我们知道AI的算法有很多,但是大模型普遍使用的就是深度学习中的神经网络。如下图:
在这里插入图片描述
神经网络有3个层级,输入层+隐藏层+输出层,数据通过输入层一直到输出层,就会输出结果
输入层:会有输入的特征+权重参数+偏移量参数,一开始的权重参数和偏移量参数都是随机的。
隐藏层:可以多层,每层使用不一样的激活函数对输入层的数据进行计算。
输出层:有一个输出函数,根据你想要的结果可能是个回归、二分类、多分类的结果选择不同输出函数。

2.2 正向传播

正向传播就是从输入层开始,一直通过隐藏层的激活函数计算,最后使用输出层的输出函数计算,得到输出结果。
损失函数:评判预测的准确性。将输出结果真实结果通过损失函数评断其准确性,通过计算样本的准确率。

2.3 反向传播

反向传播的作用就是调整权重参数和偏移参数,提高其准确率,那么应该如何提高呢。通过反向传播。这里举一个简单例子,比如通过计算输出结果真实结果之间的方差,方差越小说明输出结果越准确。那么怎么通过反向传播调整参数呢?
首先我们可以采用一个损失函数如下图:
在这里插入图片描述
因为我们开始的权重参数和偏移量参数都是随机的,那么这时候通过损失函数计算会得到一个点,这点应该在上图中的某个点。我们要调整的就是不断的往下走,找到损失函数的最底部的那个点,那个点代表输出结果真实结果最接近的。
当我们第一次正向传播后,得到一个点,这时候就需要做梯度下降算法。
梯度下降算法:就是不断地让你计算得到的点慢慢往下移动,这样输出结果真实结果就越来越接近,那么得到的模型就越来越准确。
求导:求导的作用就是通过计算某个点的斜率,通过这个斜率,你就可以让你的开始计算的那个点往下移动某个变量(一般通过学习率+某个函数)。采用移动后的点,再次正向传播,再次计算一个新的输出结果,再次通过损失函数计算准确度,然后再次梯度下降算法反向传播,这样不断的循环(这时候设置循环次数或者训练次数)计算,得到越来越准确的模型。

2.3 向量计算

上面只是简单说了一下正向传播和反向传播过程,但是其实真实情况是输入特征、权重参数都是一个很大的向量(如ChatGPT说有1750亿个参数,说的就是这些入参的个数)。通过向量并行计算,这样就更快的计算出结果。

2.4 其它内容

  • 函数选择:里面的损失函数、激活函数、输出函数可能会根据不同场景或者不同大模型,他们会选择不同的函数,只有通过实践可以得出那个函数更加适合。
  • 训练次数:训练次数这个具体看情况,训练次数越多会越消耗资源,但是训练次数不够,可能模型准确性不高。因此这个也是通过实践做调整。
  • 模型推理:我们利用的就是大模型的推理能力,但是大模型的推理能力是一个黑盒或者是一个对于人来说比较难理解的推理。虽然中间隐藏层可以输出中间结果,但是其结果对于人来说可能比较难以理解,这就是为什么大家很担心AI会不受控制的原因,因为其推理能力是一个新的人的推理能力。

3 大模型微调原理

大模型有一个修饰词“通用”,所谓的通用,其实就是推理能力。通过一个简单例子来举例:比如你在建筑行业学习到项目管理的通用能力,但是如果让你去做另外一个行业的管理,虽然有通用项目管理能力,但是由于对那个具体行业的业务不了解,中途会做出一些不在正确的管理,这时候需要你不断学习某个行业的业务再结合你原先的项目管理通用能力,这样你就能很好的管理新的行业。那么大模型微调就是通过你要做的具体场景的数据集输入,加上微调方法,再次训练大模型,让其推理能力来掌握你具体场景。所以微调就是:数据集+微调方法+工具,对大模型进行新的训练,以适合你所需的场景。因此对于大模型的再次训练,其重要的就是数据集和微调方法,可能需要不同调整或增加数据集,然后采用不同微调方法做实践,得出一个更加准确的模型。

3.1 微调方法

目前微调的方法有很多种,不同的微调方法有不同的场景,你需要了解这些微调方法的基本原理和其使用场景,这样你在做选择时,可以知道你应该选择哪些方法。

  • 全量微调(Fine-Tuning):全量微调就是对大模型的全量参数进行微调,该方法等同于你需要很大的训练计算。这个方法目前已经基本上不怎么使用。
  • 高效微调(PEFT):高效微调就是通过各种方法(包括旁路、Embedding层)的方式,对大模型进行微调,这样做的好处是不需要全量参数,计算量会减少很多。其中包括:LoRA、Prefix Tuning、Prompt Tuning、P-Tuning v2等。这是目前采用较多的微调方式。
  • RLHF(强化学习):基于强化学习的方式微调大模型,这个是OpenAI提出来的新的微调模式。也是较为流行的微调方式,目前微软研究院的DeepSpeed Chat的RLHF训练系统最稳定。

3.2 LangChain

随着大模型在不同行业的应用,慢慢地摸索出一套比较通用的应用流程和工具,LangChain就是规范化这个流程,并且里面集成各个流程所需的工具。以下是LangChain的6个模块
Models:大语言模型
Prompts:内置Prompts模板,也就是优化提示语
Chains:思维链,拆分复杂任务
Agents:利用本地工具
Memory:存储交互的内容,用于更好的交互
Index:本地文件交互索引

4 大模型在医疗的应用

医疗中喜欢分为诊前、诊中、诊后、科研等不同过程,这里就不具体区分,而是列举一些详细的应用场景:

  • 医疗对话:比如互联医院的导诊功能;AI医疗咨询等功能场景。ChatMed就是这类产品。
  • 医疗诊断:比如CDSS,无论是区域医疗的CDSS或者医院的CDSS,一般包括知识库、智能诊断、单病种质控等功能,其中智能诊断和单病种质控是大模型应用重点。
  • 医疗影像:通过大模型对医疗影像出智能诊断报告,比如XrayGLM就是这类产品;但是目前看通过大模型还没有超越原先已经有的AI模型,因为这一块目前已经很成熟。
  • 个性化医疗:比如临床路径,通过大模型对患者制定特别的治疗方案,做到千人千面。
  • 疾病预测:医疗大模型可以通过学习临床数据和生化指标,识别出患病风险高的个体,并进行早期干预和预防。
  • 药物研究:使用大模型预测新药物的疗效和副作用,提升药物研发过程;模拟药物代谢途径,优化药物的剂量和给药方式,提高药物的疗效和安全性

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

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

相关文章

使用ffmpeg实现视频旋转并保持清晰度不变

1 原始视频信息 通过ffmpeg -i命令查看视频基本信息 ffmpeg -i source.mp4 ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 project)configuration: --enable-gpl --enable-…

智能三维数据虚拟现实电子沙盘

一、概述 易图讯科技(www.3dgis.top)以大数据、云计算、虚拟现实、物联网、AI等先进技术为支撑,支持高清卫星影像、DEM高程数据、矢量数据、无人机倾斜摄像、BIM模型、点云、城市白模、等高线、标高点等数据融合和切换,智能三维数…

python作业题百度网盘,python作业答案怎么查

大家好,小编来为大家解答以下问题,python作业题百度网盘,python作业答案怎么查,今天让我们一起来看看吧! 1 以下代码的输出结果为: alist [1, 2, 3, 4] print(alist.reverse()) print(alist) A.[4, 3, 2, …

根据DCT特征训练CNN

记录一次改代码的挣扎经历: 看了几篇关于DCT频域的深度模型文献,尤其是21年FcaNet:基于DCT 的attention model,咱就是说想试试将我模型的输入改为分组的DCT系数,然后就开始下面的波折了。 第一次尝试&#xf…

在Centos7中利用Shell脚本:实现MySQL的数据备份

目录 自动化备份MySQL 一.备份数据库脚本 1.创建备份目录 2.创建脚本文件 3.新建配置文件(连接数据库的配置文件) 4.给文件权限(mysql_backup.sh) ​编辑 5.执行命令 (mysql_backup.sh) ​编辑 二.数据库通过备份恢复 1.创建脚…

多维时序 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测

多维时序 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测 目录 多维时序 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现SSA-BiLSTM麻雀算法优化…

k8s的二进制部署: 源码包部署

服务器IP软件包k8s--master0120.0.0.61kube-aplserver,kube-controer-manager,kube-scheduler,etcdk8s--master0220.0.0.62kube-controer-manager,kube-schedulernode节点0120.0.0.62kubelet,kube-proxy,et…

第九部分 图论

目录 例 相关概念 握手定理 例1 图的度数列 例 无向图的连通性 无向图的连通度 例2 例3 有向图D如图所示,求 A, A2, A3, A4,并回答诸问题: 中间有几章这里没有写,感兴趣可以自己去学,组合数学跟高中差不多&#xff0c…

目标检测-Two Stage-SPP Net

文章目录 前言一、SPP Net 的网络结构和流程二、SPP的创新点总结 前言 SPP Net:Spatial Pyramid Pooling Net(空间金字塔池化网络) SPP-Net是出自何凯明教授于2015年发表在IEEE上的论文-《Spatial Pyramid Pooling in Deep ConvolutionalNetw…

设计模式(4)--对象行为(5)--中介者

1. 意图 用一个中介对象来封装一系列的对象交互。 中介者使各对象不需要显式地相互引用,从而使其耦合松散, 而且可以独立地改变它们之间的交互。 2. 四种角色 抽象中介者(Mediator)、具体中介者(Concrete Mediator)、抽象同事(Colleague)、 具体同事(Co…

https密钥认证、上传镜像实验

一、第一台主机通过https密钥对认证 1、安装docker服务 (1)安装环境依赖包 yum -y install yum-utils device-mapper-persistent-data lvm2 (2)设置阿里云镜像源 yum-config-manager --add-repo http://mirrors.aliyun.com/do…

时序预测 | Matlab实现SSA-CNN-LSTM麻雀算法优化卷积长短期记忆神经网络时间序列预测

时序预测 | Matlab实现SSA-CNN-LSTM麻雀算法优化卷积长短期记忆神经网络时间序列预测 目录 时序预测 | Matlab实现SSA-CNN-LSTM麻雀算法优化卷积长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现SSA-CNN-LSTM麻雀算法优化卷积长短…

中伟视界:燃气站的烟火、安全帽、抽烟、打电话检测等AI算法的工作原理详解

人工智能(AI)技术在各行各业中的应用越来越广泛,燃气站的安全管理也在逐步引入AI算法。本文将详细介绍AI算法在燃气站安全管理中的应用,包括烟火检测、安全帽识别、抽烟、打电话检测等方面的工作原理。 烟火检测是燃气站安全管理中…

Java之网络编程

一、什么是网络编程 在网络通信协议下,不同计算机上运行的程序,可以进行数据传输 二、常见的网络架构 1、B/S :Browser/Server 只需要一个浏览器,用户通过不同的网址,客户访问不同的服务器。 例如:京东&am…

redis,memcached,nginx网络组件,网络编程——reactor的应用

目录 目标网络编程关注的问题连接的建立连接的断开消息的到达消息发送完毕 网络 IO 职责检测 IO检测 io剖析 操作 IO 阻塞IO 和 非阻塞IOIO 多路复用epoll结构以及接口 reactor编程连接建立连接断开数据到达数据发送完毕 reactor 应用:后续补充源码解析单 reacrtor多…

JVM高频面试题(2023最新版)

JVM面试题 1、JVM内存区域 Jvm包含两个子系统和两个组件。 1.1子系统 Class loader(类加载器):根据给定的全限定名类名(java.lang.object)来装载class文件到Runtime data area(运行时数据区)…

flask文件夹列表改进版--Bug追踪

把当前文件夹下的所有文件夹和文件列出来,允许点击返回上层目录,允许点击文件夹进入下级目录并显示此文件夹内容 允许点击文件进行下载 from flask import Flask, render_template, send_file, request, redirect, url_for import osapp Flask(__name_…

阿里云自建官方Docker仓库镜像提交拉取方法

文章目录 发布镜像到DockerHub发布镜像到自建Docker仓库(Harbor)修改配置文件在Linux服务器中登录Docker打TAGPUSH提交镜像PULL拉取镜像 发布镜像到阿里云容器服务在Linux服务器中登录DockerPUSH提交镜像PULL拉取镜像 发布镜像到DockerHub 本地我们镜像命名可能会不规范&#…

SpringCloud 整合 Canal+RabbitMQ+Redis 实现数据监听

1Canal介绍 Canal 指的是阿里巴巴开源的数据同步工具,用于数据库的实时增量数据订阅和消费。它可以针对 MySQL、MariaDB、Percona、阿里云RDS、Gtid模式下的异构数据同步等情况进行实时增量数据同步。 当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.…

【面试】Java中的多种设计模式(十种主要设计模式)

Java中的多种设计模式(十种主要设计模式) 文章概述 设计模式是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。它是软件工程中常见问题的解决方案的一种描述或模板。设计模式可以提供一种通用的、可重用的解决方案,帮助开发…