大连理工大学信息检索研究室展开了面向生物医学领域大模型的研究,并在wisemodel.cn社区发布初版中英双语生物医学大模型——太一(Taiyi),旨在探索大模型在生物医学领域中双语自然语言处理多任务的能力。
项目地址:https://github.com/DUTIR-BioNLP/Taiyi-LLM
随着深度学习技术的迅速发展,类ChatGPT这样的大语言模型在自然语言处理领域已经取得了显著的进展。面向生物医学领域,大语言模型有助于提升医生与患者之间的沟通,提供有用的医学信息,并在辅助诊疗、生物医学知识发现、药物研发、个性化医疗方案等方面具有巨大潜力。然而,在人工智能社区中,已有的开源生物医学大模型相对较少,且大多主要专注于单语(中文或英语)的医疗问答对话。因此,本项目展开了面向生物医学领域大模型的研究,并发布初版中英双语生物医学大模型——太一(Taiyi),旨在探索大模型在生物医学领域中双语自然语言处理多任务的能力。
“太一”大模型
“太一”大模型通过问答对话形式与用户进行交互,可完成病情咨询、疾病预防、药物咨询等多种丰富生物医学主题相关任务,有助于更有效地管理生物医学信息,提高医疗决策的质量,提升生物医学教育的效果等,为智慧医疗领域带来了很多的可能性。
“太一”大模型独具三大特点:
丰富的生物医学训练资源
面向生物医学领域,本项目收集整理了丰富的中英双语生物医学自然语言处理(BioNLP)训练语料,总共包含38个中文数据集,覆盖10种BioNLP中文任务;102个英文数据集,覆盖12种BioNLP英文任务。本项目根据任务类型,设计制定任务数据统一格式,对数据集进行了统一格式转换。
出色的中英双语BioNLP多任务能力
通过丰富的中英双语任务指令数据(超过100W条样本)进行大模型指令微调,使模型具备了出色的中英双语生物医学智能问答、医患对话、报告生成、信息抽取、机器翻译、标题生成、文本分类等多种BioNLP能力。
优秀的泛化能力
除了生物医学领域,模型仍具备通用领域对话能力,并通过设计指令模板多样性,使模型具备了较优秀的指令理解能力,在同类任务的不同场景下具有较好的泛化能力,并激发了模型一定的零样本学习能力。
为了促进生物医学领域NLP发展,本项目开源了中英双语BioNLP数据集整理信息、“太一”大模型权重、模型推理使用脚本,并搭建了Demo,具体信息见项目GitHub地址。
“太一”大模型整体框架图:
训练数据
为了充分利用现存生物医学自然语言处理数据集,本项目收集了现存140个中英双语数据集,其中中文数据集38个,覆盖10种BioNLP任务;英文数据集102个,覆盖12种BioNLP任务,数据集总览图如下图所示:
本项目整理了每个数据集的任务类型、数据规模、任务简介和数据相关链接,具体信息见GitHub项目。为了后续进行指令数据转换,本项目借鉴了BigBio项目,在其基础上根据任务类型设计制定了数据的统一格式,并将数据处理成制定的统一格式。然后根据数据集质量筛选和过滤后,在数据统一格式基础上,借鉴PromptCBLUE项目设计了多种指令模版并进行指令数据转换。此外,为了保留通用领域的对话能力和增强模型的推理能力,本项目还加入了通用领域的对话和思维链数据,最终用于大模型训练的指令数据简表统计如下表:
模型训练和使用
基座介绍:当前版本的“太一”是基于Qwen-7B-base通过指令微调得到。通义千问-7B(Qwen-7B)是阿里云研发的通义千问大模型系列的70亿参数规模的模型,在超过2万亿tokens数据进行预训练,包含高质量中、英、多语言、代码、数学等数据,涵盖通用及专业领域的训练语料。
本项目在6张Nvidia A40 48 GB显卡上使用Qlora进行指令微调测试。训练代码在Firefly项目的基础上进行了修改。在使用方面,本项目提供两个用于对话的测试代码。可使用GitHub项目中的dialogue_one_trun.py程序进行单轮问答对话测试,或者使用dialogue_multi_trun.py中的示例代码进行多轮对话问答测试。
样例展示
下面将选取一些“太一”的主要功能进行展示:
智能问答
生物医学智能问答旨在通过问答形式帮助用户获取有关生物医学领域的答案和信息。有助于更有效地管理生物医学信息,提高医疗决策的质量,提升生物医学教育的效果。
医学对话
“太一”大模型可模拟医学专家与用户进行自然语言对话。这种对话可以涵盖病情咨询、疾病预防、药物咨询等各种生物医学主题。
医疗报告生成
医疗报告自动生成旨在对问诊过程中进行信息的总结,依据病人自述和医患对话, 生成具有规定格式的医疗报告。这项任务可以帮助医生更有效地处理大量的医疗信息,并为患者提供准确的诊断和治疗建议。
命名实体识别
生物医学命名实体识别旨在从文本中识别出预定义的生物医学实体。这些实体可以包括疾病、药物、基因、蛋白质等生物医学概念。
关系抽取
生物医学关系抽取旨在从文本中自动提取出生物医学实体对之间的关系或关联,例如蛋白质与基因之间的相互作用、药物与疾病之间的治疗关系等。
事件抽取
生物医学事件抽取任务的目标是从非结构化的海量生物医学文献中抽取结构化的生物医学事件,挖掘文献中所描述的生物实体,以及生物医学事件之间的细粒度关系。
机器翻译
机器翻译可将生物医学文本从一种自然语言转换成另一种自然语言。该任务可以帮助人们将各种医疗问题与建议、疾病名称与症状等信息进行中英文互译。
标题生成
标题生成旨在对输入的生物医学文本段落,生成具有概括性的文章标题。
文本分类
生物医学文本分类旨在将生物医学文本自动分类到预定义的类别标签中,以帮助医疗专业人员、研究人员和机构更好地管理和分析医疗信息。
文本相关性判断
文本相关性判断旨在确定两段医疗文本之间的关联程度或相似性。这种任务通常涉及文本匹配、相似性度量和语义理解,可用于各种应用,如医疗信息检索、文档匹配。
总结
“太一”项目致力探索大模型在生物医学领域的中英双语自然语言处理多任务的能力。与现存的生物医学领域大模型侧重于单语医疗问答对话任务不同,“太一”不仅在双语对话问答方面表现出色,还利用丰富的高质量人工标注生物医学数据集进行指令微调,挖掘了大模型在生物医学领域的多任务潜力。这使得“太一”在处理现实生物医学复杂场景任务时更有通用性,并为智慧医疗领域的发展带来了更多可能性。
尽管“太一”在多项BioNLP任务上展示了优良的性能,但一些复杂任务(如医疗报告生成、事件抽取等)效果还有很大提升空间。此外,目前“太一”大模型仍存在大模型的一些常见缺点,例如误解、幻觉、信息有限性、偏见、多轮长对话能力较不稳定、话题转换能力弱等。在未来的工作中,本项目也将在增量预训练、强化学习性能增强、可解释性、安全性等方面进一步深入研究,以提升“太一”的能力。近期,我们正在整理完善指令数据资源和“太一”大模型技术手稿,也将这些资源陆续发布。
发团队
“太一”由大连理工大学信息检索研究室(DUTIR)开发完成。
指导教师:罗凌、杨志豪、王健、孙媛媛、林鸿飞
学生成员:宁金忠、赵颖闻、丁泽源、陈鹏、付伟茹、韩钦宇、徐广涛、邱云志、潘丁豪、李记如、汪志军、李浩、凤文铎、涂森博、刘宇奇
致谢
本项目的工作受到以下开源项目与技术的启发和帮助,在此对相关项目和研究开发人员表示感谢,包括但不限于:
文章来自微信公众号 “大连理工大学信息检索研究室”,作者 DUTIR研究室
【开源免费】DeepBI是一款AI原生的数据分析平台。DeepBI充分利用大语言模型的能力来探索、查询、可视化和共享来自任何数据源的数据。用户可以使用DeepBI洞察数据并做出数据驱动的决策。
项目地址:https://github.com/DeepInsight-AI/DeepBI?tab=readme-ov-file
本地安装:https://www.deepbi.com/
【开源免费】airda(Air Data Agent)是面向数据分析的AI智能体,能够理解数据开发和数据分析需求、根据用户需要让数据可视化。
项目地址:https://github.com/hitsz-ids/airda
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI
【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。
项目地址:https://github.com/InternLM/xtuner
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0