Aquila-Med LLM:开创性的全流程开源医疗语言模型

​论文链接:https://arxiv.org/pdf/2406.12182

开源链接:https://huggingface.co/BAAI/AquilaMed-RL

http://open.flopsera.com/flopsera-open/details/AquilaMed_SFT

http://open.flopsera.com/flopsera-open/details/AquilaMed_DPO

近年来,闭源大语言模型(LLMs)和开源社区在通用领域取得了显著进展,甚至在某些方面超越了人类。然而,在专业领域,特别是医学领域,语言模型的表现仍然不足。为了支持语言模型在行业领域的发展,智源研究院提出了IndustryCorpus行业数据集,并在今年的智源大会上发布了1.0版本,其中就包含了医疗模型的训练数据,同时也提出了从通用模型到行业模型的训练范式。为了验证我们的训练范式和数据集的有效性,智源研究院基于上述数据和范式训练了Aquila-Med,一种基于Aquila的大规模双语医疗语言模型,也是第一个全流程开源持续预训练、监督微调(SFT)以及强化学习(RLHF)技术的医疗语言模型。

IndustryCorpus行业数据集链接:

http://open.flopsera.com/flopsera-open/details/BAAI-IndustryCorpus

一、简介

Aquila-Med是智源研究院针对医疗领域复杂性提出的解决方案,通过构建大规模的中英双语医疗数据集进行持续预训练,并开发高质量的SFT和DPO数据集,以提升模型在单轮、多轮对话以及医疗选择题中的表现。目前,智源研究院开源了Aquila-Med的模型权重,数据集和整个训练过程,旨在为研究社区提供有价值的资源。

二、方法

Aquila-Med的训练分为三个阶段:持续预训练、监督微调(SFT)和从人类反馈中强化学习(RLHF)。每个阶段都包括数据构建和模型训练的详细过程。

2.1 持续预训练

2.1.1 数据收集与去污染

为了构建持续预训练数据集Aquila-Med-cpt,智源从大规模通用预训练数据库中收集医学相关语料,包括从通用预训练语料库中提取医学相关的内容,并采用基于规则和大模型的语料质量过滤技术。

2.1.2 训练策略

持续预训练分为两个阶段。阶段一使用规则过滤的医学领域数据和一定比例的通用数据进行训练,数据量约为60B tokens。阶段二使用LLM质量模型过滤的高质量医学领域数据和开源医学SFT合成数据,数据量约为20B tokens。

2.1.3 训练细节

我们基于Aquila-7B模型进行训练,该模型具有70亿参数,最大长度为4096。第一阶段使用3*8 NVIDIA A100-40G GPU,batch size为768,学习率为1e-4,训练一个epoch。第二阶段保持其他设置不变,将batch size减少到384,学习率减少到1e-5,训练一个epoch。

2.2 监督微调(SFT)

为了提高语言模型的自然对话能力,首先进行监督微调(SFT),使预训练的LLM适应聊天风格的数据。SFT数据集包括多种问题类型,如医疗考试选择题、单轮疾病诊断、多轮健康咨询等。

2.2.1 数据构建

SFT数据集来自六个公开可用的数据集,包括Chinese Medical Dialogue Data、Huatuo26M、MedDialog、ChatMed Consult Dataset、CMB-exam和ChatDoctor。我们采用Deita方法 [1] 对数据进行自动过滤,确保从大量数据中筛选出高质量单轮数据。同时在Deita的基础上创新性地使用Context Relevance来筛选高质量多轮对话数据。

2.2.2 训练细节

Aquila-Med训练过程的超参数包括序列长度为2048,batch size为128,峰值学习率为2e-6,使用cosine learning rate scheduler。我们使用8个NVIDIA Tesla A100 GPU进行训练,AdamW优化器,bf16精度和ZeRO-3,并保留10%的训练集用于验证。

2.2.3 数据集统计

通过以上数据过滤方法,我们选择了320,000个高质量的SFT医疗数据集,其中中文和英文的比例为86%:14%。数据集包括单轮中文医疗对话、单轮英文医疗对话、多轮中文医疗对话和医疗主题知识选择题。

2.3 强化学习(RLHF)

在SFT阶段后使用RLHF算法(DPO) [2] 进一步增强模型的能力。为了确保模型输出与人类偏好一致,同时保证模型在预训练和SFT阶段获得的基础能力,我们构建了主观偏好数据和客观偏好数据。

2.3.1 数据构建

我们构建了12,727个DPO偏好对,其中包括9,019个主观数据和3,708个客观数据样本。主观偏好数据通过GPT-4生成和评估,客观偏好数据通过已知的正确答案构建。

2.3.2 训练细节

我们在8个NVIDIA Tesla A100 GPU上训练模型,设置学习率为2e-7,batch size为64,并使用cosine learning rate scheduler进行优化。

三、评估

我们在多个开源中英医疗基准测试上评估了模型的性能,包括单轮对话、多轮对话和医疗选择题。

3.1 医疗知识基准

我们从MMLU和C-Eval基准中提取了医疗相关的问题,并利用CMB-Exam、MedQA、MedMCQA和PubMedQA测试集评估模型的医疗知识水平。

3.2 医疗对话基准

我们评估了模型解决实际患者问题的能力,涵盖单轮对话场景如Huatuo MedicalQA和多轮对话场景如CMtMedQA和CMB-Clin。

四、实验结果

4.1 持续预训练的结果

实验结果表明,Aquila-Med在多个基准测试上表现良好,特别是在MMLU上的表现显著提升。

4.2 模型对齐的结果

在对齐效果方法,我们从医学主题问题和医生-患者咨询两个方面进行评估。结果显示,Aquila-Med-Chat在指令跟随能力方面表现出色,Aquila-Med-Chat (RL)在C-Eval上以及单轮多轮对话能力的表现尤为突出。

五、结论

本文提出了Aquila-Med,这是一种双语医疗LLM,旨在通过持续预训练、SFT和RLHF应对医学领域的挑战。我们的数据集构建和训练过程显著提升了模型处理单轮和多轮医疗咨询以及医疗选择题的能力。Aquila-Med在多个基准测试上的强大表现验证了方法的有效性。通过开源数据集和训练过程,智源希望推动医疗LLM的发展,为研究社区提供更多支持。后续我们会持续进行数据和模型迭代,研究更高效的数据策略,在更多的基础模型进行验证,请持续关注我们的发布。

Reference:

[1] Liu W, Zeng W, He K, et al. What makes good data for alignment? a comprehensive study of automatic data selection in instruction tuning[J]. arXiv preprint arXiv:2312.15685, 2023.

[2] Rafailov R, Sharma A, Mitchell E, et al. Direct preference optimization: Your language model is secretly a reward model[J]. Advances in Neural Information Processing Systems, 2024, 36.

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

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

相关文章

微服务改造启动多个 SpringBoot 的陷阱与解决方案

在系统运行了一段时间后,业务量上升后,生产上发现java应用内存占用过高,服务器总共64G,发现每个SpringBoot占用近12G的内存,我们项目采用微服务架构,有多个springboot应用。 一下子内存就不够用了&#xf…

番外篇 | YOLOv8算法解析和实战应用:车辆检测 + 车辆追踪 + 行驶速度计算

前言:Hello大家好,我是小哥谈。YOLOv8是ultralytics公司在2023年1月10号开源的,是YOLOv5的下一个重大更新版本,目前支持图像分类、物体检测和实例分割任务,在还没有开源时就收到了用户的广泛关注。它是一个SOTA模型,建立在以前YOLO版本的成功基础上,并引入了新的功能和改…

【Research】Model Stealing

What is Model Stealing? Extract an approximation that of the target model that “closely matches” the original Accuracy? Fidelity? Funtional equivalence? Threat Models API Access Model extraction using: Prediction Vectors Labels Only Model Access …

2024头歌数据库期末综合(部分题)

目录 第7关:数据查询三 任务描述 知识补充 答案 第8关:数据查询四 任务描述 知识补充 答案 本篇博客声明:所有题的答案不在一起,可以去作者博客专栏寻找其它文章。 第7关:数据查询三 任务描述 本关任务&#x…

[C++][数据结构][B-树][下]详细讲解

目录 1.B-树的实现1.B-树的结点设计2.插入key的过程3.B-树的插入实现4.B-树的简单验证5.B-树的性能分析6.B树的删除 2.B树3.B*树4.B-树总结5.B-树的应用0.B树可以在内存中做内查找吗?1.索引2.MYSQL索引简介1.MyISAM2.InnoDB 3.B树做主键索引相比B树的优势 1.B-树的实…

Mybatis-Plus多种批量插入方案对比

背景 六月某日上线了一个日报表任务,因是第一次上线,故需要为历史所有日期都初始化一次报表数据 在执行过程中发现新增特别的慢:插入十万条左右的数据,SQL执行耗费高达三分多钟 因很早就听闻过mybatis-plus的[伪]批量新增的问题&…

BL104应用在智慧零售多协议采集监控远程实时查看

在智慧零售领域,如今的市场竞争日益激烈,传统的零售模式已经难以满足消费者对服务和体验的高需求。智能化技术的引入,尤其是基于物联网的解决方案,成为提升零售业务效率和服务质量的关键。钡铼BL104 Modbus转MQTT网关作为一种先进…

Linux常用命令(17)—pastesortcomm命令(有相关截图)

写在前面: 最近在学习Linux命令,记录一下学习Linux常用命令的过程,方便以后复习。仅供参考,若有不当的地方,恳请指正。如果对你有帮助,欢迎点赞,关注,收藏,评论&#xf…

STM32单片机USART串口打印和收发数据

文章目录 1. 串口通信 1.1 串口初始化 1.2 库函数 2. 串口打印 2.1 Serial.c 2.2 Serial.h 2.3 main.c 3. 串口收发数据 3.1 Serial.c 3.2 Serial.h 3.3 main.c 1. 串口通信 对于串口通信的详细解析可以看下面这篇文章 STM32单片机USART串口详解-CSDN博客 STM32单片…

JDK18特性

JDK18特性 一、JAVA18概述 Java 18 在 2022 年 3 月 22 日正式发布,Java 18 不是一个长期支持版本,这次更新共带来 9 个新功能。 https://openjdk.org/projects/jdk/18/ 二、具体新特性 1. 默认UTF-8字符编码 JDK 一直都是支持 UTF-8 字符编码,这次是把 UTF-8 设置为了默…

基于SpringBoot+Vue在线考试报名系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,…

c++编译器优化不显示拷贝构造函数

一.错误情景&#xff08;无法打印拷贝函数&#xff09; #include<iostream> using namespace std;class person { public:person(){cout << "person默认构造函数调用" << endl;}person(int age){cout << "有参构造函数调用" <…

网络编程之XDP技术的基础eBPF

一、XDP和TC的技术支撑 在前面分析了XDP和TC技术&#xff0c;从它们的细节里可以看出&#xff0c;它们都在调用eBPF的钩子函数。那么eBPF是什么呢&#xff1f;在2021年曾经写过一篇《eBPF介绍》的初级文章&#xff0c;对eBPF做了一个入门级的普及。但是未曾在技术层面上进行展…

解决双击bootstrap.bat没有生成b2.exe文件

双击bootstrap.bat但是并没有没有生成b2.exe文件&#xff0c;会报如下错误&#xff1a; "cl" 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。D:\cppsoft\boost_1_85_0\tools\build\src\engine>dir *.exe 驱动器 D 中的卷是 Data 卷的序列号是…

【机器学习 复习】第11章 神经网络与深度学习(重中之重)

一、概念 1.神经元模型 &#xff08;1&#xff09;神经网络的基本组成单位 &#xff08;2&#xff09;生物上&#xff0c;每个神经元通过树突接受来自其他被激活神经元的信息&#xff0c;通过轴突释放出来的化学递质改变当前神经元内的电位。当神经元内的电位累计到一个水平时…

广东省建筑施工安管人员考核报名流程及照片处理方法

广东省建筑施工企业安管人员考核工作现已全面启动&#xff0c;这对于提升建筑行业的安全生产管理水平至关重要。为了确保广大考生能够顺利报名并参与考核&#xff0c;本文精心梳理了考核报名流程&#xff0c;并提供了证件照的规范处理方法。同时&#xff0c;针对证件照这一关键…

嵌入式通信协议-----UART协议详解(基于智芯Z20k11X)

目录 一、简介 1.概念 2.结构 3.特点 4.优缺点 二、协议帧组成 1.起始位 2.数据位 3.奇偶校验位 4.停止位 三、UART通信过程 四、USART与UART区别 五、代码实现 1.硬件框图 2.软件实现 一、简介 1.概念 USART&#xff08;Universal Synchronous Asynchronous R…

数字营销新玩法:拓新与裂变的完美结合

在当今这个飞速发展的数字化时代&#xff0c;数字营销已经成为了企业发展中至关重要的一环。拓新&#xff0c;简单来说就是不断去开拓新的客户群体&#xff0c;让更多的人了解并接触到我们的产品或服务。要做到这一点&#xff0c;那可得充分利用各种线上渠道。像热闹非凡的社交…

ffmpeg音视频开发从入门到精通——ffmpeg实现音频抽取

文章目录 FFmpeg 实现音频流抽取1. 包含FFmpeg头文件与命名空间声明2. 主函数与参数处理3. 打开输入文件4. 获取文件信息5. 查找音频流6. 分配输出文件上下文7. 猜测输出文件格式8. 创建新的音频流9. 打开输出文件10. 写入文件头信息11. 读取并写入音频数据12. 写入文件尾部信息…

vue实现的商品列表网页

一、商品列表效果如下 二、代码&#xff1b; vue实现的商品列表网页 &#xff0c; 图片在vue项目的Public文件夹里的 imgs中 <template><div class"common-layout"><!-- el-container:外层容器。 当子元素中包含 <el-header> 或 <el-foo…