BioMistral 7B——医疗领域的新方法,专为医疗领域设计的大规模语言模型

news2024/11/26 0:41:38

1. 概述

自然语言处理领域正在以惊人的速度发展,ChatGPT 和 Vicuna 等大型语言模型正在从根本上改变我们与计算机交互的方式。从简单的文本理解到复杂的问题解决,这些先进的模型展示了类似人类的推理能力。

特别是,BLOOM 和 LLaMA 等开源模式在医疗保健领域日益受到关注,为该领域的创新提供了新的可能性。然而,将这些技术引入医疗保健领域也带来了独特的挑战和机遇。有许多问题需要解决,包括数据隐私问题和采用开源模式的障碍。

为了应对这些挑战,本文介绍了 BioMistral 7B。BioMistral 7B 扩展了开源大规模语言模型在医学领域的潜力,并展示了其应对更广泛用例的能力。bioMistral 7B 扩展了开源大规模语言模型在医学领域的潜力,并展示了其应对更广泛使用情况的能力。

此外,该倡议还根据 Apache 2.0 许可在HuggingFace 和 GitHub 上提供了数据集、多语言基准、预处理脚本和模型。这项研究有望成为未来医疗技术的创新举措。
论文地址:https://arxiv.org/pdf/2402.10373.pdf

2. BioMistral 模块

首先,让我们来谈谈研究前的数据集。PMC开放存取子集是一个全面但可免费访问的医学研究文章集合,我们参考了之前成功的研究,如PMC-LaMA、PubMedBERT和SciFive,选择了一个专门适用于生物医学领域的子集。.这些研究表明,医学应用中的语言建模有了很大改进。本文的重点是获得商业使用许可的子集,包括各种知识共享许可(CC0、CC BY、CC BY-SA、CC BY-ND)下的文档。该子集保证了模型输出的可重用性,甚至可用于商业目的。

此外,还从经过预处理的 PubM Central 语料库中精心挑选了约 3 亿个词库和 147 万份文档。该数据集主要由英文文档组成,但也包括荷兰语、德语和法语等其他九种语言的文档。我们的方法侧重于多语种数据集,优先处理非英语文档,并建立一个多样化、有代表性的训练数据集,以实现 3 亿个词库的目标。然后,我们使用 Mistral 标记化器对原始文本文档进行标记化和规范化预处理。

接下来,让我们谈谈模型适应性:BioMistral 7B 的开发使用 Mistral 7B Instruct v0.1 作为基础模型,该模型专为纳入引导提示和微调数据集有限的各种任务而设计这一选择强调了该模型与特定指导一起工作的能力,以及灵活适应不同类型任务的能力。优化过程还采用了高效的 AdamW 优化器和余弦调度器,可随着时间的推移调整学习率。该模型的架构保留了从 Mistral 继承而来的转换器架构的标准功能,如分组查询关注、滑动窗口关注和滚动缓冲缓存。这些选择都是为了确保高吞吐量和高精确度。此外,为了提高预训练的效率,还引入了标记化后分组方法。这种方法能有效聚合标有标记符号的可变大小序列,标记符号表示序列的结束,从而无需填充即可填充模型的 2,048 个标记符号序列。这一独创性大大减少了序列的数量,从而缩短了训练时间。

接下来,我们将引入一种创新方法来整合不同的预训练模型,以进一步推动生物医学领域的先进水平。传统上,我们通常为每个特定应用使用不同的模型,但这会增加复杂性和成本。根据最新的研究趋势,我们采用SLERP、TIES 和 DARE 等先进的模型合并技术,合并模型之间的参数,以提高性能并增强在领域外的通用能力。

在生物医学领域,将通用领域模型与特定领域模型合并对于提高适应性和准确性特别有用。这种方法可以增强专用模型的能力,使其应用范围更广。此外,它还探索了新的推理可能性,并力求超越传统模型的性能。

最后是量化技术。它使大规模语言模型能够应用于更广泛的设备,从而促进其广泛应用。内存使用量的减少使较小的设备也能运行大型语言模型,从而提高了该技术的可及性。本文介绍了两种先进的量化方法:激活感知权重量化(AWQ)和 BitsandBytes(BnB)。AWQ 通过避免对基本权重进行量化,转而采用权重重要性,从而将模型的性能下降降到最低。AWQ 通过避免基本权重量化,而采用权重重要性量化,从而最大限度地降低了模型的性能,在保持准确性的同时有效地缩小了模型规模。另一方面,BnB 量化通过为整个模型分配 4 或 8 位的统一精度,实现了简洁性和统一性。这种方法降低了量化过程的复杂性,使在更多设备上运行大型语言模型成为现实。

2.评估协议 - 英语医学推理任务基准

为了评估 BioMistral 7B 模型的性能,该模型重点测试了 10 个英语问答(QA)任务,这些任务选自四个关键医学语料库,涵盖了遗传学、解剖学和临床病例等多个医学专业。它们涵盖了医学专业人员日常遇到的真实场景、医学院入学考试的形式以及基于 PubMed 内容的理解测试。这些数据集总结了医疗专业人员遇到的真实场景、医学院入学考试的形式以及基于 PubMed 内容的理解测试。下表总结了这些数据集。

MMLU(Hendrycks 等人,2021 年)是 57 个科目的试题集,我们选择了与医学和临床知识相关的六个科目。由于 MMLU缺乏训练数据,我们使用 MedQA 进行微调,并用 MMLU 评估泛化性能。

MedQA(Jin等人,2020年)包含以USMLE格式呈现的各种医学知识问题。训练集由 10,178 个样本组成,测试集由 1,273 个问题组成,分为四问和五问两种形式。MedMCQA(Pal 等人,2022 年)包含超过 193K 个问题,这些问题来自印度医学入学考试,涵盖 21 个医学科目、2,400 个医疗保健主题。MedMCQA(Pal 等人,2022 年)包含超过 193K 道来自印度医学入学考试的题目,涵盖 21 个医学科目、2400 个医疗保健主题、183K 个训练样本和 4183 道验证题。由于无法获得测试集答案密钥,因此使用验证集进行评估,并使用超参数调整将训练集拆分成新的 146K 和 37K 样本。

PubMedQA(Jin等人,2019)包含211K个人工生成的多选题样本和1,000个专家标签样本,模型以给定的PubMed摘要和相关问题为上下文,根据 “是”、"否 "和 "也许 "的设置进行评估,推断预测 “是”、"否 "和 “也许”。‘,并根据所需的设置对预测’是’、'否’和’可能’的推论进行评估。微调是在 211K 个人工标记样本上进行的,验证是在 500 个专家样本上进行的,用 BigBio(Fries 等,2022 年)、Chen 等(2023 年)、Singhal 等(2023a)进行了性能测量。根据协议在 500 个测试样本中进行了评估。

3.评估协议 - 多语言评估

对 BioMistral 7B 模型的全面评估旨在关注其在英语和多种语言中的表现。迄今为止,生物医学语言模型已在英语、中文、法语和西班牙语等语言中得到广泛验证。然而,它们在其他语言中的表现尚未得到充分评估。造成这种情况的原因是,除英语外,缺乏其他语言的生物医学相关任务。

为了解决这个问题,我们使用 GPT-3.5 Turbo 通过 OpenAI API 进行自动翻译,用西班牙语、德语、葡萄牙语、俄语、法语、阿拉伯语和中文七种不同语言进行了基准测试。自动翻译当然会带来挑战,但最近的技术进步已显著提高了这些工具的准确性,从而实现了高效的多语言评估。

多语种评估方法的设计类似于用英语进行的三枪情景模拟。问题、选项和上下文都经过翻译,同时保留了用于少数人射击训练的示例。这样就可以在考虑到每种语言的文化和语言特点的同时,测试模型的理解力和适应性。

4.评价规程–应用教学提示

BioMistral 7B 模型评估严格遵守基于 GPT-4 医学评估官方指南(Nori 等人,2023a)的教学提示。这确保了每个问答(QA)任务都以多选题(MCQA)的形式呈现,选项从 A 到 D 或从 A 到 E。有关教学提示的详细列表,请参阅本文附录。

在推理过程中,模型会根据给定的输入提示预测下一个标记,并为词库中的每个标记生成一个概率。为了提高预测的准确性,词典的范围被缩小到只包括与答案选项(在本例中为选项字母)相对应的标记。这种方法降低了模型产生不相关词库或不准确信息(错觉)的风险,使预测结果更加可靠。

5. 评估协议 - 监督微调 (SFT)

监督微调(SFT)是对注释数据进行微调的重要过程,目的是使模型适应特定任务。SFT 已应用于开源模型。所使用的训练集是根据预定义标准选择的。

然而,传统的 SFT 方法往往需要大量资源,这是一个挑战。为了解决这个问题,我们引入了 QLoRa 微调方法和 8 位量化技术。这些方法具有成本效益,使 SFT 流程更加可行。此外,改进后的批量处理方法缩短了微调所需的时间。这些策略在有效地最大限度提高 BioMistral 7B 的性能方面发挥了重要作用,并使其更能适应特定任务。

6.实验结果

为了测试 BioMistral 7B 模型的能力,我们首先考察了它在少量学习情况下的性能。在评估中,我们从每个数据集的训练集中随机抽取三个样本,进行了三次情境学习。结果如下表所示。

结果非常乐观,BioMistral 7B 在十项任务中的八项都优于现有的 Mistral 7B Instruct 模型,有力地证明了其适应特定领域的有效性。特别是,在这个三次学习场景中,它在所有任务中的表现都优于其他开源生物医学基线模型。

在 MedQA 中,BioMistral 7B 比 MediTron-7B 和 MedAlpaca 7B 有明显改善;在 MMLU 中,BioMistral 7B 明显优于现有的生物医学大规模语言模型;同样,在 MedMCQA 中,BioMistral 7B 比其他模型有明显改善。同样,在 MedMCQA 中,BioMistral 7B 也显示出与其他模型相比的显著进步。另一方面,在 PubMedQA 中,由于类不平衡可能导致的幻觉,性能有所下降。

虽然 GPT-3.5 Turbo 是整个三次学习场景中的最佳模型,但 BioMistral 7B 凭借其领域自适应能力和在少量学习场景中的出色表现,展示了人工智能在生物医学应用中的新可能性。这些结果为人工智能技术在生物医学应用中的未来发展方向提供了重要启示。

然后,对照几个基准模型对 BioMistral 7B 的微调性能进行评估;BioMistral 模型和相关基准模型的性能如下表所示。

总体而言,SFT 进一步提高了模型在几乎所有数据集上的性能。对模型的比较显示出与 "少镜头-上下文学习 "评估类似的趋势,BioMistral 7B 在十项任务中有七项优于 Mistral 7B Instruct,并在所有任务中优于其他开源生物医学基线。在 PubMedQA 中,BioMistral 7B 也有明显进步。

7.总结

近年来,大规模语言模型呈现出显著的多样性,并在医学和医疗保健等特定领域提供了潜在的应用。尽管有各种针对医疗保健的开源大规模语言模型,但将通用大规模语言模型应用于医疗保健领域仍面临巨大挑战。

本文提出了生物医学领域专用的开源大规模语言模型BioMistral 7B,利用在 PubMed Central 进一步预训练的底层模型 Mistral,展示了医学领域专用大规模语言模型的新可能性。.该模型基于 PubMed Central 的高质量资源,是 Mistral 7B Instruct 的进一步演化,采用了量化和模型集成等技术。因此,与现有的开源 7B 模型相比,BioMistral 7B 在多语种医学评估基准中取得了卓越的性能。

展望未来,该公司计划进行人工评估,以进一步深化 BioMistral 7B 的生成质量。公司还表示,正在计划利用监督微调和直接优化偏好等技术,扩展模型的多语言能力和聊天功能。

希望 BioMistral 7B 能够拓展人工智能技术在医疗领域的潜力,进一步提高其准确性和可靠性,从而为解决现实世界的医疗问题做出贡献。

此外,本文还公布了数据集、多语言评估基准、脚本和实验中获得的所有模型。

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

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

相关文章

html多节点生成图片并导出zip包

html多节点生成图片并导出zip包 背景 在做项目时遇到一个要将html节点展示的图片列表统一导出为zip包的需求。 难点 将html节点生成图片将多张图片加入zip包中,然后下载 解决html生成图片问题 参考html截图的思路使用 pnpm add html-to-image如何将图片资源生成z…

python:__class_getitem__使用以及cached_property源码分析

python:__class_getitem__使用以及cached_property源码分析 1 前言 Python中如何模拟泛型类型? 当使用类型标注时,使用 Python 的方括号标记来形参化一个 generic type 往往会很有用处。 例如,list[int] 这样的标注可以被用来表…

【openlayers系统学习】1.1渲染GeoJSON,添加link交互

一、渲染GeoJSON 在进入编辑之前,我们将看一下使用矢量源和图层进行基本要素渲染。Workshop在 data​ 目录中包含一个 countries.json​ GeoJSON文件。我们首先加载该数据并将其渲染在地图上。 首先,编辑 index.html​ 以便向地图添加深色背景&#xf…

开源RAG,本地mac启动 dify源码服务

一、Dify文档 参考官方文档来操作,基本没太大的问题。一些细节,我在本篇文章中补充了出来。 这篇文章主要讲以源码的方式启动后端服务,前端服务使用容器启动。 dify 文档地址 欢迎使用 Dify | 中文 | Dify Dify 本地源码部署文档&#xff…

Redis系统架构中各个处理模块是干什么的?no.19

Redis 系统架构 通过前面的学习,相信你已经掌握了 Redis 的原理、数据类型及访问协议等内容。本课时,我将进一步分析 Redis 的系统架构,重点讲解 Redis 系统架构的事件处理机制、数据管理、功能扩展、系统扩展等内容。 事件处理机制 Redis…

Linxu 系统中 修改 docker 镜像存放目录 修改docker默认路径。亲测有效。

1、关闭docker 服务 systemctl stop docker 2、创建新的存放路径(-p 父级目录不存在一起创建) mkdir /home/service/docker -p 3、移动默认路径中的镜像文件到新目录 mv /var/lib/docker/* /home/service/docker/ 4、修改docker.service 将新的路…

实操专区-第14周-课堂练习专区-饼图和圆环图、玫瑰图

实操专区-第14周-课堂练习专区-饼图和圆环图、玫瑰图 下载安装ECharts,完成如下样式图形。 代码和截图上传 基本要求:下图3选1,完成代码和截图 完成 3.1.3.13 饼图和圆环图、玫瑰图 中的任务点 基本要求:3个选一个完成&#xff0c…

全网最简洁Java实现多线程安全的令牌桶限流算法

在许多应用中,我们需要限制某些操作的频率,例如,限制API调用的速率,防止系统被过度使用,这种需求就需要一个限流算法来满足 令牌桶算法是一种常用的限流算法 它的基本思想是:系统以恒定的速率向桶中添加令…

Isaac Sim仿真平台学习(1)认识Isaac Sim

0.前言 上一个教程中我们下载好了Isaac Sim,这一章我们将来简单了解一下Isaac Sim平台。 isaac Sim仿真平台安装-CSDN博客 1.Isaac Sim是啥? What Is Isaac Sim? — Omniverse IsaacSim latest documentation Isaac Sim是NVDIA Omniverse平台的机器…

基础3 探索JAVA图形编程桌面:逻辑图形组件实现

在一个宽敞明亮的培训教室里,阳光透过窗户柔和地洒在地上,教室里摆放着整齐的桌椅。卧龙站在讲台上,面带微笑,手里拿着激光笔,他的眼神中充满了热情和期待。他的声音清晰而洪亮,传遍了整个教室:…

深度学习-Softmax回归+损失函数+图像分类数据集

目录 Softmax回归回归 VS 分类Kaggle上的分类问题 从回归到多类分类回归分类从回归到多类分类-均方损失从回归到多类分类-无校验比例从回归到多类分类-校验比例 Softmax和交叉熵损失总结损失函数均方损失绝对值损失函数鲁棒损失 图像分类数据集通过框架中内置函数将FashionMNIS…

前端请求超时截断,axios timeout设置未生效情况记录

问题描述 前端请求超时截断,axios timeout设置未生效情况记录 timeout设置方式: 表现(前端超过5min报错500,直接访问接口超过5min能够正常响应): 问题原因 上面的配置设置时间为1000min,明显…

Servlet的response对象

目录 HTTP响应报文协议 reponse继承体系 reponse的方法 响应行 public void setStatus(int sc) 响应头 public void setHeader(String name, String value) 响应体 public java.io.PrintWriter getWriter() public ServletOutputStream getOutputStream() 请求重定…

P2P服务端模型配合 Tool.net P2pServerAsync 类使用

Tool.Net 支持的 P2P 服务器模型实例 说明服务器部分相关代码相关调用实例Tcp版本Udp版本 最后附一张思维图 说明 当前文章,仅是Tool.Net 开源库的一个缩影。本次更新V5.0版本以上提供支持。可以提供简单实现P2P功能用于业务开发。 服务器部分相关代码 完整代码&…

基于Docker部署GitLab环境搭建

文件在D:\E\学习文档子目录压缩\专项进阶,如ngnix,webservice,linux,redis等\docker 建议虚拟机内存2G以上 1.下载镜像文件 docker pull beginor/gitlab-ce:11.0.1-ce.0 注意:一定要配置阿里云的加速镜像 创建GitLab 的配置 (etc) 、 日志 (log) 、数…

MQTT 异常断开(一)

分析问题总结: 前提:MQTT是基于TCP层再次封装,MQTT是不关心TCP层的实现与传输,但是如果TCP链路出现异常(丢失TCP ACK,网络延时TCP ACK等)一定会导致MQTT断开连接。 MQTT代理服务器存在如下问题&…

服务器没有图形界面没有显示器怎么办

可以用vnc。 vnc是开元的。什么是vnc? 使用vnc 下载vnc和vncserver命令。 每生成一个图形界面就叫做开启session会话。 vnc相关命令: start a new session: vncserver。 如果没有会话,一般从:1开始 端口5901 vncserver :2 #指定会话为:2 端…

如何让社区版IDEA变得好用

如何让社区版IDEA变得好用 背景 收费版的idea功能非常强大,但是费用高。社区版的免费,但是功能被阉割了。如何才能让社区版Idea变得好用,就需要各种插件支持了。经过全局配置编码,maven,jdk版本,在加上各…

MSI U盘重装系统

MSI U盘重装系统 1. 准备一块U盘 首先需要将U盘格式化,这个格式化并不是在文件管理中将U盘里面的所有东西都删干净就可以了,需要在磁盘管理中,将这块U盘格式化,如果这块U盘有分区的话,那将所有的分区都格式化并且删除…

大模型最新黑书:大模型应用解决方案: 基于GPT-3、ChatGPT、GPT-4等Transformer架构的自然语言处理 PDF

今天给大家推荐一本丹尼斯罗斯曼(Denis Rothman)编写的关于大语言模型&#xff08;LLM&#xff09;权威教程<<大模型应用解决方案> 基于GPT-3、ChatGPT、GPT-4等Transformer架构的自然语言处理>&#xff01;Google工程总监Antonio Gulli作序&#xff0c;这含金量不…