Apollo:如何打造全球化的医疗AI,轻量级,重量级

Apollo:如何打造全球化的医疗AI,轻量级,重量级

    • 提出背景
    • 将多种语言的医学数据混合使用时,这些数据是互相帮助(互补)还是互相冲突的?
    • 训练
      • 训练小型模型的初衷
      • 训练方法
      • 训练设置
    • 效果
    • 代理调优(Proxy Tuning)

 


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

代码:https://github.com/FreedomIntelligence/Apollo

 

提出背景

在这里插入图片描述

1. 多语言覆盖和优化

  • Apollo:专门针对全球六种最广泛使用的语言进行优化,包括英语、汉语、印地语、西班牙语、法语和阿拉伯语。这种优化确保了模型能够更准确地理解和生成这些语言中的医学信息,尤其是在处理专业术语和地区特定的表达方式时。

  • 普通医学大模型:可能主要针对英语或其他单一语言进行优化,对于非英语的医学文献和信息处理可能不够精准,特别是在专业术语和表达习惯方面。

2. 数据隐私和安全性

  • Apollo:通过代理调优(Proxy Tuning)方法,可以在不直接处理敏感医疗数据的情况下提升模型的多语言医疗处理能力。这种方法有助于保护患者数据的隐私和安全。

  • 普通医学大模型:可能需要直接接触敏感的医疗数据来进行训练和优化,这在一定程度上增加了数据泄露和滥用的风险。

3. 地方性医疗知识的整合

  • Apollo:通过收集和整合多语言医疗数据,Apollo模型能够更好地融合不同地区的医疗实践和知识。这对于提供符合当地医疗需求和文化背景的建议和信息非常重要。

  • 普通医学大模型:可能缺乏足够的多语言和地区特定的医疗数据,导致在非主要语言或地区的医疗知识处理上存在不足。

4. 沟通效率和接受度

  • Apollo:通过对多种语言进行优化,Apollo能够提高医疗信息的沟通效率和患者的接受度。这在提供跨文化和跨语言的医疗服务时尤为重要。

  • 普通医学大模型:可能在跨语言沟通和文化适应性方面存在局限,影响医疗服务的有效性和患者满意度。

Apollo通过针对多语言覆盖、数据隐私保护、地方性知识整合和沟通效率的优化,解决了普通医学大模型在这些方面的问题和不足,提高了模型在全球多语言医疗信息处理方面的性能和适用性。

 

将多种语言的医学数据混合使用时,这些数据是互相帮助(互补)还是互相冲突的?

为了找出答案,我们做了两组实验:

  1. 单语言训练:我们分别用英语、中文、法语、西班牙语、阿拉伯语和印地语的医学数据训练模型,每种语言单独训练一个模型。

  2. 多语言训练:我们将上述六种语言的医学数据混合在一起,用这些混合数据训练另一个模型。

实验结果:

  • 单语言训练的模型在各自的语言上效果不错,但在处理其他语言时表现较差。
  • 多语言训练的模型则在所有语言上都表现出更好的平均性能,说明混合多种语言的医学数据对提高模型的整体表现是有帮助的。

结论:

  • 多语言医学数据对提高医疗LLMs的性能是有益的

    也就是说,将不同语言的医学知识结合起来,可以使模型更全面地理解和生成医学信息。

但也存在潜在风险:

  • 把不同语言的医学知识混合可能会导致一些信息冲突或混淆,这需要在未来的研究中进一步探索和解决。

混合多语言的医学数据对模型的性能有显著提升,但如何平衡和整合这些多样的信息,仍是我们接下来需要关注的问题。

  • 数据收集: 包括医学书籍、论文、百科全书、医患对话、考试和临床指南等多种形式,以及为增强模型的泛化能力,包括了部分数学和编码任务数据。

在这里插入图片描述

  • 数据处理: 通过将原始预训练语料重写为问答对,旨在不破坏原有模型能力的前提下,提高其医学能力。

    可以保留原有的知识格式和精确度,同时增加模型处理医学信息的能力。

训练

训练小型模型的初衷

  • 目的:Apollo项目设计小型模型,这样的模型可以在没有连接互联网的情况下,直接在医疗设备上使用。

    这对医生和医疗人员是非常有帮助的,因为它们能够即时处理和解析医疗信息,从而提高工作效率。

  • 优点:对于那些没有能力运行大型模型的研究人员,小型模型是理想的选择。

    它们不仅运行成本低,而且便于研究人员进行实验,探索新的研究方向。

训练方法

  • 问答对重写:通常情况下,预训练是在大量的文本上进行,不特定于任何格式。

    Apollo项目采用的方法是将这些文本转化成问答对的形式,即针对文本段落产生相关的问题和答案。

    这样做的好处是,模型可以更好地学会在医疗领域内提供精确的信息。

  • 优先采样:这是一种数据选择方法,确保模型在训练过程中更多地关注某些数据。

    通过为不同的数据设置不同的优先级,模型能更有效地从重要的信息中学习。

训练设置

  • 数据项优先级:这里的“数据项优先级”指的是不同阶段数据在训练中的重要性。

    预训练阶段的数据项优先级较高(设置为16),表明在这个阶段,模型会更频繁地看到这些数据。

    而在指令调优阶段,优先级较低(设置为2),表示这些数据会比预训练数据更少地出现。

  • 批量大小:这决定了每次训练更新中使用多少数据样本。

    Apollo项目使用的是256,这是一个适中的批量大小,既不会消耗太多的计算资源,也能确保有效的梯度估计。

  • 学习率:学习率决定了每次模型更新时,参数变化的幅度。

    1e-4是一个较小的学习率,使得训练过程稳定,避免了过大的更新可能导致的训练不稳定。

  • 余弦调度器:这是一种调整学习率的策略,学习率会根据一个余弦函数随训练时间变化。

    预热率0.03意味着初始学习率会在训练初期逐渐增加,直到达到设定的学习率。

Apollo项目通过精心设计的训练策略,开发出了一个既节省计算资源又能有效处理多语言医疗信息的小型模型。

这个模型可以帮助医疗专业人员在各种环境中更好地利用人工智能,尤其是在资源受限的情况下。

效果

在这里插入图片描述

代理调优(Proxy Tuning)

代理调优是一种使用小型模型的输出来引导大型模型进行预测调整的技术,它能够在不直接更改大模型参数的情况下,提高大模型在特定任务上的表现。

这种方法利用了一个小型的模型作为代理,来引导大模型的输出,从而在特定任务上获得更好的性能。

如何工作:

  1. 小型模型的训练

    • 首先,我们会取一个小型模型(比如Apollo-2B),并且在特定任务的数据上进行微调。这个小型模型称为代理模型(Mtuned)。
    • 微调就是根据特定的任务(如中文医学问答)调整模型的参数,使其更好地处理与该任务相关的数据。
  2. 输出转移

    • 接着,我们运行这个已经微调好的小型模型(代理模型)和未经优化的大型模型(基础模型,比如Qwen-7B)在同样的任务数据上。
    • 我们不是直接复制小型模型的参数到大模型,而是将小型模型的输出(通常是类别的概率,即logits)用来影响大型模型的输出。
  3. 代理调优

    • 在代理调优的步骤中,我们不直接在大型模型上应用小型模型的参数,而是调整大型模型的输出,使其与小型模型的输出对齐。
    • 这可以通过对大型模型的输出施加一定的“偏移量”来实现,这个“偏移量”来源于小型模型的输出。这个过程不需要改变大型模型内部的参数。

优点

  • 资源高效:由于只有小型模型直接在特定任务上进行训练,这个过程节约了大量的计算资源。
  • 灵活性:如果需要适应新的任务或数据,只需重新调整小型模型,而大型模型可以保持不变。
  • 隐私和安全性:对于敏感数据,如医疗记录,代理调优避免了将这些数据直接用于大型模型的训练,减少了数据泄露的风险。

限制

  • 任务依赖性:代理调优对于小型模型能够有效捕捉的任务特性非常依赖。如果小型模型没有很好地学习到任务相关的特性,那么其对大型模型的引导效果可能就会受限。
  • 性能上限:大型模型的性能提升受限于小型模型的表现。如果小型模型在某个任务上的性能有限,那么大型模型通过代理调优得到的性能提升也会有限。

核心问题:是否可以通过代理调优(Proxy Tuning)来增强大型模型在处理多语言医疗数据时的能力?

 

  • 解法:使用代理调优来增强大型基础模型的多语言医疗能力。

    • 子解法1:使用小型预训练模型进行特定任务的微调。

      • 特征:小型模型如Apollo能够在计算资源有限的情况下针对特定任务进行快速有效的微调。
      • 之所以用这个子解法:因为小型模型更容易适应具有地方特色的医疗数据,可以快速适应并提供精准的输出。
    • 子解法2:大型基础模型应用小型模型的logit偏移量来调整预测分布。

      • 特征:大型模型如Qwen-7B拥有广泛的知识基础,但不一定针对特定的多语言医疗任务进行了优化。
      • 之所以用这个子解法:因为通过应用小型模型的知识,大型模型可以继承小型模型的专业性,而无需重复大量的参数微调。
    • 子解法3:在实际应用中测试多语言数据集。

      • 特征:多语言医疗数据集包含丰富的地区特定信息和医疗知识。
      • 之所以用这个子解法:通过在真实世界数据上验证模型的性能,可以评估多语言训练是否真正提高了模型的实际应用能力。

假设我们有一个大型的多语言医学问答模型,比如Qwen-7B。

这个模型非常强大,知识面广泛,但是它可能在针对特定语言的医学术语和地方性治疗方案上不够精确。

现在,我们想让Qwen-7B更好地服务于讲中文的医生和患者,尤其是在使用中医治疗方案方面。

  • 解法:通过代理调优增强Qwen-7B在中文医学数据上的性能。

    • 子解法1:微调小型模型

      • 特征:小型模型Apollo-2B可以快速地针对中医治疗方案的相关数据进行微调。
      • 之所以用此子解法:因为Apollo-2B更灵活,需要的计算资源少,能够快速适应特定类型的医学数据。
    • 子解法2:使用小型模型指导大型模型

      • 特征:Apollo-2B微调后在中医数据上的表现出色。
      • 之所以用此子解法:Qwen-7B可以通过学习Apollo-2B的预测分布(logit偏移量)来增强其在中医治疗方案上的性能,而不必直接在大量敏感的医疗数据上进行训练。
    • 子解法3:在真实世界数据上验证

      • 特征:真实的中文医学问答数据集包含多样化的中医治疗问题。
      • 之所以用此子解法:测试Qwen-7B在这些数据集上的表现,可以验证代理调优是否真的提高了模型的实用性和准确性。

我们可以得到一个在中文医学问答,特别是中医治疗知识方面表现优异的Qwen-7B模型。

这样一来,模型就能更好地服务于中文医疗领域的用户,例如推荐适当的中药或解释病症与中医理论之间的关系。

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

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

相关文章

Python实现一个简单的主机-路由器结构(计算机网络)

说明 本系统模拟实现了一个路由器与两个主机节点。该路由器将接收原始以太网帧,并像真正的路由器一样处理它们:将它们转发到正确的传出接口,处理以太网帧,处理 IPv4 分组,处理 ARP分组,处理 ICMP 分组&…

沉浸式感受旧时光,VR全景让游客都爱上老街区打卡地

近年来,随着城市建设的推进,很多老建筑以及周边的道路都发生了很大的变化,为了让更多的游客可以领略城市发展的进程以及旧时的人文风情,很多城市都会通过实地场景拍摄制作VR全景,将老街区、老建筑的真实场景进行虚拟再…

新型masked勒索病毒袭击工控行业

2019年10月9号总部设在荷兰海牙的欧洲刑警组织与国际刑警组织共同发布报告《2019互联网有组织犯罪威胁评估》,报告指出数据已成为网络犯罪分子的主机攻击目标,勒索软件仍是网络安全最大威胁,全球各界需要加强合作,联合打击网络犯罪…

【Vue3】路由的query参数和params参数

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

Python数据分析-pandas3

1.pandas的作用: numpy能够帮助我们处理数值,但是pandas除了处理数值之外(基于numpy),还能够帮助我们处理其他类型的数据。 2.pandas之Series创建: 3.pandas之Series切片和索引 4.缺失值处理 5.常用的统计…

【C语言刷题】——初识位操作符

【C语言刷题】——初识位操作符 位操作符介绍题一、 不创建临时变量(第三个变量),实现两个数的交换(1)法一(2)法二 题二、 求一个数存储在内存中的二进制中“一”的个数(1&#xff0…

phpcms上传漏洞

原始漏洞 漏洞原理:我们上传一个zip的压缩包,它会解压然后删除其中不是.jpg .gig .png的文件 function check_dir($dir):这是一个PHP函数的定义,它接受一个参数 $dir,代表要检查的目录路径。 $handle opendir($dir)…

【React】Vite创建React+TS项目

前提条件 有node环境,且node版本>18.0.0 创建项目 npm create vitelatest1.起项目名 2.选择框架 3.选择语言 TypeScript SWC 是指 Vite 使用 SWC(Speedy Web Compiler)作为 TypeScript 的编译器。 SWC 是一个针对 JavaScript 和 Ty…

客服销冠偷偷用的提效神器!无广很实用

近期发现我的同事每天上班必登录的一款软件——客服宝聊天助手,用过才发现:真客服办公的提效神器!感兴趣的小伙伴请往下看~一、客服宝的简介:客服宝聊天助手,是一款跨平台快捷回复工具。自带多种功能,有效帮…

Python接口自动化测试post请求和get请求,获取请求返回值

引言 我们在做python接口自动化测试时,接口的请求方法有get,post等;get和post请求传参,和获取接口响应数据的方法; 请求接口为Post时,传参方法 我们在使用python中requests库做接口测试时,在做post接口测试…

C语言练习题【复试准备】

1、BoBo教KiKi字符常量或字符变量表示的字符在内存中以ASCII码形式存储。BoBo出了一个问题给KiKi,转换以下ASCII码为对应字符并输出他们。 //73,32,99,97,110,32,100,111,32,105,116,33 int main() {int arr[] {73,32,99,97,110,32,100,111,32,105,116,33};int i …

备战2024年汉字小达人活动:历年区级样题练习和解析(续)

今天我们继续来看汉字小达人活动的区级样题。区级样题是中文自修杂志社(主办方)发布的试题,主要是给学校老师选拔参考使用的,据了解,很多学校老师是直接用这个样卷在学校组织选拔,选拔成绩突出的同学报给主…

Pytorch学习 day10(L1Loss、MSELoss、交叉熵Loss、反向传播)

Loss loss的作用如下: 计算实际输出和真实值之间的差距为我们更新模型提供一定的依据(反向传播) L1Loss 绝对值损失函数:在每一个batch_size内,求每个输入x和标签y的差的绝对值,最后返回他们平均值 M…

Kafka配置SASL_PLAINTEXT权限。常用操作命令,创建用户,topic授权

查看已经创建的topic ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --list 创建topic 创建分区和副本数为1的topic ./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --topic acltest --partitions 1 --replication-factor 1 创建kafka用户 …

HTML静态网页成品作业(HTML+CSS+JS)——迪士尼公主介绍(6个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,使用Javacsript代码,共有6个页面。 二、作品演示 三、代码…

基于单片机的酒精浓度测试仪

摘 要 现如今,人们对生活的态度和生活方式变得不同,,不仅私家车成为了人们最普遍的交通工具,大多数人都有自己的私家车,而且人们对酒精的消耗量也越来越大,这些就导致酒后驾车行为越来越普遍,酒后驾车意外越来越频繁&…

【深度学习笔记】10_10 束搜索beam-search

注:本文为《动手学深度学习》开源内容,部分标注了个人理解,仅为个人学习记录,无抄袭搬运意图 10.10 束搜索 上一节介绍了如何训练输入和输出均为不定长序列的编码器—解码器。本节我们介绍如何使用编码器—解码器来预测不定长的序…

3dmax2020模型显示黑白不稳定---模大狮模型网

如果在3ds Max 2020中显示的模型出现黑白不稳定的情况,可能有几个常见原因和解决方法: 显卡驱动问题: 首先检查你的显卡驱动程序是否是最新版本。过时或不兼容的显卡驱动可能导致显示问题。建议更新到最新的显卡驱动程序,并确保其…

YOLOv9(3):YOLOv9损失(Loss)计算

1. 写在前面 YOLOv9的Loss计算与YOLOv8如出一辙,仅存在略微的差异。多说一句,数据的预处理和导入方式都是一样的。因此如果你已经对YOLOv8了解的比较透彻,那么对于YOLOv9你也只是需要多关注网络结构就可以。 YOLOv9本身也是Anchor-Free的&a…

编译esp32s3的ncnn,并运行mnist 手写数字识别

东哥科技,专注科技研发,wx交流:dg_i688 我的项目代码 https://github.com/cdmstrong/ncnn_on_esp32s3 下载ncnn git clone https://github.com/Tencent/ncnn.git安装idf 环境 这里直接按官网的可执行文件来就好了,直接安装完…