摘要
当前一代大型语言模型 (LLM) 通常是为广泛的通用应用而设计的,而特定领域的 LLM,尤其是在医学等垂直领域,仍然相对稀缺。特别是,由于医学知识的复杂性和高质量数据的可用性有限,为医学领域开发高效和实用的 LLM 具有挑战性。为了弥合这一差距,我们推出了百川-M1,这是一系列专门针对医疗应用优化的大型语言模型。与简单地在现有模型上继续预训练或将后训练应用于一般基础模型的传统方法不同,百川-M1 是从零开始训练的,专注于增强医疗能力。我们的模型在 20 万亿个token上进行训练,并结合了一系列有效的训练方法,这些方法在一般能力和医学专业知识之间取得了平衡。因此,百川-M1 不仅在数学和编码等通用领域表现出色,而且在专业医学领域也表现出色。我们有开源的百川-M1-14B,这是我们模型的迷你版本,可以通过以下链接访问。
-
https://github.com/baichuan-inc/Baichuan-M1-14B
-
https://hf.co/baichuan-inc/Baichuan-M1-14B-Base
-
https://hf.co/baichuan-inc/Baichuan-M1-14B-Instruct
-
https://arxiv.org/abs/2502.12671
核心速览
研究背景
-
研究问题
:这篇文章要解决的问题是如何有效地开发和优化大型语言模型(LLMs)在医学领域的应用。尽管LLMs在通用领域取得了显著的成功,但在医学领域,由于其复杂性和数据稀缺性,LLMs的应用仍然不足。
-
研究难点
:该问题的研究难点包括:医学知识的复杂性和高度专业化、高质量医学数据的获取难度、以及在保持通用能力的同时增强医学专业知识。
-
相关工作
:该问题的研究相关工作包括对通用LLMs进行医学数据微调或应用迁移学习方法,但这些方法通常无法充分捕捉医学知识的深度和特异性。
研究方法
这篇论文提出了Baichuan-M1,一系列专门为医学应用优化的大型语言模型。具体来说,
-
从头训练:Baichuan-M1是从头开始训练的,而不是在现有模型上进行继续预训练或后训练。这种方法使模型能够专注于提升医学能力。
-
数据集构建:模型在20万亿个token的数据上进行训练,包括通用数据(如代码和书籍)和医学相关数据(如临床数据和患者信息)。数据集通过多维质量评估和采样策略进行优化,确保数据的高质量。
合成数据:为了增强模型的医学推理能力,研究者设计了高质量的合成数据。合成数据包括百科全书、教科书、指南、真实世界患者案例和知识图谱等。
百科全书、教科书和指南。这些资料包含用自然语言表述的广泛医学知识。按照Abdin等人(2024年)的做法,我们构建了问答对来增强我们模型的医学知识。具体来说,我们首先将长文档(可能包含数百万个标记)分割成较短的小块(数千个标记),并执行一轮额外的过滤,重点筛选“知识丰富”的内容。这一步利用了语言模型来剔除没有展示特定医学知识点的块。随后,我们使用以下精细化的流程进行数据合成:
-
知识点提取:模型从文档中提取医学知识点(科学事实)。
-
问题生成:对于每个知识点,模型生成一道考试题,可以是选择题或简答题。
-
不参考原文的答题生成:对于每个生成的问题,模型在不参考原文的情况下提供答案,并着重生成长链式思维(CoT)推理。这一步保留了大型语言模型(LLM)的输出模式和完整的CoT结构,有助于学生模型的学习。
-
参考原文的答题修订:由于最初生成的答案可能不正确,我们进行一个修订步骤,模型根据原文对其答案进行修正。
通过结合这些步骤,我们获得了涵盖广泛医学主题的准确问答对,并附有与模型学习过程一致的全面CoT推理。我们还关注长尾医学知识,包括生物医学统计、数值问题、罕见疾病和特殊人群。
真实世界患者病例。真实世界的患者笔记是模型学习临床实践和医学领域专业知识的宝贵资源。然而,患者笔记通常省略了医生的详细推理过程,仅记录最终决定,如诊断、治疗和检查。为了解决这一限制,我们提出以下流程,基于真实案例重构专家级别的推理过程:
-
临床决策提取:模型识别患者整个过程中的关键临床决策,从初步诊断到预后预测。
-
决策证据提取:对于每个临床决策,模型提取所有相关证据,包括支持该决策的正反两方面表现。
-
专家推理模拟:使用提取的证据,模型模拟医学专家的推理过程,特别强调评估替代方案,如鉴别诊断和治疗选择。
-
整合与转换:模型整合上述组成部分,转换原始笔记(部分)。特别是证据)转换成合适的格式,并编织出一个全面的推理过程,反映出医学专家完整的思维过程。
知识图谱。对于知识图谱中的每个实体,我们使用Markdown模板将相关知识转换成自然语言。基于此,我们按照Maini等人(2024年)的方法生成多种格式的数据,以使模型接触到多样的知识表示。值得注意的是,在问答对生成过程中,我们充分利用了知识图谱的结构,并提出“实体作为答案”的合成策略。与陈等人(2024d年)类似,我们鼓励模型通过将实体锚定作为答案而不是包含在问题中,来生成逆向推理问题。例如,对于一个疾病实体,我们鼓励提出像“以下哪种疾病可能导致……症状?”这样的问题,而不是“……疾病的典型症状是什么?”此外,知识图谱中丰富的关系常常将相似的实体聚集在一起,需要仔细区分。因此,我们将这些相似实体作为多项选择题的选项,并生成关注它们之间微妙差异的问题,例如“以下哪种维生素仅由动物来源提供?”
学术文章。学术文章涵盖了医学领域的尖端进展,其特点是严谨的推理和正式的语气。为了提升模型的科学推理能力,我们从这些文章中提取关键证据和结论。并利用最先进的模型来生成它们之间的详细分析桥梁。这种方法使学习模型能够学习和内化科学推理过程,提高其参与结构化推理的能力。
在线客户问答。在线客户问答数据在模型训练中也起着关键作用。客户问题通常包含非标准术语和权威来源可能忽略的边界案例。然而,即使是由医生撰写的在线论坛上的答案,也存在着使用非正式语言和过于简略的问题。因此,我们首先要求模型自己回答问题,然后通过参考原始答案来修改其答案,以实现准确性和全面性之间的平衡。
合成数据还会经过严格的质量检查,以符合医学价值奖励模型的要求。合格的数据直接用作训练数据,而不合格的数据则根据奖励模型的反馈进行修改,直到达到令人满意的质量标准。
4.模型架构:模型的架构类似于Llama和其他流行模型,包括基于rmsnorm的预归一化、使用SwishGlu的FFN层和旋转位置嵌入。此外,模型还采用了滑动窗口注意力机制,以提高短上下文任务的性能。
5. 训练过程:训练过程分为三个阶段,采用课程学习的方法。第一阶段选择相对容易的数据,第二阶段逐渐增加难度和医学数据的比例,第三阶段引入最复杂和应用特定的数据。
实验设计
-
数据收集
:医学数据主要来自网络语料库和手动策划的权威来源。网络语料库通过小模型进行分类和过滤,确保数据分布平衡。手动策划的来源包括医学学术论文、真实世界医学案例、医学教科书等。
-
数据质量过滤
:设计了一个医学质量得分和医学价值得分,使用小模型对所有医学数据进行评分,并根据这些得分进行采样,显著提高数据质量。
-
合成数据生成
:利用最先进的LLMs生成大规模合成数据,并通过医学价值奖励模型进行严格的质量检查。
-
模型训练
:使用AdamW优化器进行训练,参数β1和β2分别设置为0.9和0.95,应用权重衰减和梯度范数裁剪。训练过程中采用自适应梯度截断策略,以提高早期训练的稳定性。
结果与分析
-
基准测试:在多个开源和私有数据集上进行评估,涵盖医学基础知识、医学考试和医学实践三个层次。Baichuan-M1在医学领域的表现超过了Qwen2.5-72B-Instruct,但在与Claude-3.5-Sonnet3和GPT-4o4的比较中仍有差距。
-
代码和数学能力:Baichuan-M1-14B-Base在代码生成和数学问题上也表现出色,超过了Qwen2.5系列模型。
-
消融实验:通过对1.5B参数的模型进行消融实验,验证了滑动窗口注意力和自适应梯度截断策略的有效性。
总体结论
这篇论文通过从头训练和专门设计的训练方法,成功开发出Baichuan-M1系列模型,显著提升了其在医学领域的应用能力。Baichuan-M1不仅在通用任务上表现出色,还在医学诊断、研究和治疗建议等专业化任务上展示了高水平的性能。该模型的开源为研究社区提供了重要资源,推动了医学LLMs的进一步发展。未来的工作可以进一步探索在罕见病诊断和实际临床咨询中的应用。
论文评价
优点与创新
-
专用模型设计
:Baichuan-M1是针对医学应用专门优化的大型语言模型,不同于传统方法仅通过在现有模型上继续预训练或应用后训练来提升性能。
-
大规模数据训练
:模型在20万亿个令牌上进行训练,结合了通用能力和医学专业知识,确保了在数学、编程和医学专业领域的强大表现。
-
合成数据策略
:开发了高质量的合成数据策略,生成了超过1000亿个高质量的医学推理令牌,显著提升了模型的推理能力和问题解决技能。
-
增强的Transformer架构
:采用了一种在效率和效果之间取得平衡的增强Transformer架构。
-
精细化的训练过程
:引入了一个逐步精炼模型医学能力的训练过程,确保其在医学领域和通用领域的持续改进。
-
多语言数据集
:构建了一个包含20万亿个令牌的多语言通用数据集,覆盖了全球30种主流语言。
-
数据去重和上采样策略
:实施了全局去重和数据上采样策略,显著提高了数据质量和模型的有效训练容量。
-
多维数据质量评估和采样策略
:利用小模型进行多维质量评估,并设计了适当的采样策略,确保高质量数据的充分利用。
-
数据分类和比例优化
:将数据分类为27个主要类别,并通过大规模数据比例实验优化了预训练数据的比例分布。
不足与反思
-
继续预训练还是从头开始训练
:尽管从头开始训练在提高垂直能力方面更有效,但在保持通用能力方面可能存在挑战。未来的研究应进一步探讨这一有趣且重要的任务。
-
罕见疾病诊断和实际临床咨询
:尽管Baichuan-M1在医学领域取得了显著进展,但在罕见疾病诊断和实际临床咨询方面仍有改进空间。模型的持续进化有望提高AI驱动的医疗决策的准确性和潜力,从而推动医疗保健技术的发展。
关键问题及回答
问题1:Baichuan-M1在数据集构建方面有哪些独特的策略?
-
全球去重和上采样策略:首先,使用全球去重技术来筛选高质量的数据,记录每个文档的去重次数。然后,基于文档去重次数进行有控制的向上采样,确保高质量数据的比例更高。实验表明,这种策略比单纯的全局去重效果更好。
-
多维数据质量评估和采样策略:利用多个小模型对数据集进行多维质量评估,包括因果评分、教育评分、推理密度和知识密度等。根据评估结果,采用适当的向上采样策略,确保模型在训练过程中接触到多样化的数据。
-
数据分类和比例优化:将数据分为27个主要类别,并根据领域代表性进行下采样和上采样,确保数据集的平衡和信息丰富性。
-
合成数据:生成了超过1000亿个高质量的医学推理令牌,涵盖百科全书、教科书、指南、真实世界患者案例和知识图谱等。合成数据经过严格的过滤和质量检查,确保其准确性和覆盖范围。
-
数据拼接:优化了数据拼接方案,最小化长序列的截断,以提高模型的整体性能和长上下文理解能力。
问题2:Baichuan-M1的模型架构有哪些创新之处?
-
滑动窗口注意力机制:为了提高短上下文任务的性能,模型采用了滑动窗口注意力机制。与传统的全局注意力相比,滑动窗口注意力在短上下文中表现出更好的性能。
-
自适应梯度截断策略:在早期训练阶段,模型采用了自适应梯度截断策略,以消除大梯度对训练稳定性的影响。该策略通过计算当前梯度的范数,并在超过阈值时进行截断,从而提高训练的稳定性。
-
多语言和医疗词汇的专门化:模型在预训练阶段使用了通用的词汇表,并单独训练了一个针对多语言和医疗术语的词汇表,以实现通用词汇效率和医疗内容粒度的平衡。
-
长上下文能力的提升:通过在注意力机制中使用时间短期卷积操作,模型增强了其上下文学习能力,这对于处理复杂的医学知识和长序列数据至关重要。
问题3:Baichuan-M1在训练过程中采用了哪些策略来确保数据的高质量?
-
数据分类和过滤:通过网络语料库的小模型对数据进行分类和过滤,确保数据分布的平衡。对于医学数据,通过手动策划的权威来源进行收集和过滤,确保数据的权威性和准确性。
-
数据质量评分和采样:设计了一个医学质量得分和医学价值得分,使用小模型对所有医学数据进行评分。根据这些得分进行采样,确保高质量数据的比例更高。
-
合成数据生成:利用最先进的LLMs生成大规模合成数据,并通过医学价值奖励模型进行严格的质量检查。合成数据包括百科全书、教科书、指南、真实世界患者案例和知识图谱等。
-
自适应梯度截断:在早期训练阶段,采用自适应梯度截断策略,以提高早期训练的稳定性。该策略通过计算当前梯度的范数,并在超过阈值时进行截断,从而消除大梯度对训练稳定性的影响。
-
多阶段训练过程:训练过程分为三个阶段,采用课程学习的方法。第一阶段选择相对容易的数据,第二阶段逐渐增加难度和医学数据的比例,第三阶段引入最复杂和应用特定的数据。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。