垂直领域大模型搭建训练指南,ChemLLM论文介绍

ChemLLM论文介绍,垂直领域模型搭建训练指南(ChemLLM: A Chemical Large Language Model)

返回论文目录

1.论文简介

论文是上海人工智能实验室的工作,想训练一个化学垂直领域的对话大模型,然而现有的化学数据往往是结构性的,所以这里论文提出了一套垂直领域数据制作和训练方法,为社区制作专有领域模型提供参考。ChemLLM在化学的三个主要任务上都超过了GPT-3.5,并且超过了GPT-3.5,在其中两个任务上都超过了GPT-4。值得注意的是,ChemLLM对相关的数学和物理任务也显示出了特殊的适应性,尽管它主要接受了以化学为中心的语料库的训练。

2.介绍

此前,存在3个挑战:

  1. 原化学的表达是SMILES,不适合自然语言处理。
  2. 大部分的化学信息和知识都存储在结构化的数据库中
  3. 化学数据和任务非常多样化,这使得为化学LLM设计一个统一的训练管道变得困难

作者通过开发一个合成化学指令调优数据集ChemData来解决这些挑战,该数据集利用一种基于模板的指令构建方法,可以将结构化的化学数据转换为适合于训练llm的自然对话形式。并进一步训练了一个化学专业模型ChemLLM,ChemLLM是基于大规模化学语料训练的,包括来自丰富模板合成的各种化学指令数据,如化学名称转换、分子性质预测、分子生成、分子标题、反应条件预测、反应产物预测等。论文还提出了一个两阶段的指令调整管道来适应ChemLLM:通用语料库和化学领域知识训练。这种训练管道保留了ChemLLM在一般情况下的能力,并使消融实验能够比较第二阶段的化学语料库训练对模型的影响。

作者进行了3方面的评估:

  1. 化学专业领域能力
  2. 通用领域语言模型能力
  3. 多语言能力的评估

3.ChemData

本节介绍ChemData,这是一个为化学语言模型(llm)精心定制的创新的指令调优数据集。化学数据已经被精心设计为包含三个基本类别:分子、反应和特定领域的任务。总的来说,这些类别封装了化学研究的基本组成部分,为推进该领域提供了一个全面的资源。在即将到来的小节中,我们将深入研究不同的数据来源,概述每个类别中的具体任务,并描述为组装这个数据集所进行的细致过程。通过这一详细的描述,我们的目的是清楚地概述化学数据的来源,相应的任务,以及教学构建的方式,以及它将彻底改变化学llm的培训的潜力。

3.1原始数据的收集

收集了来自大量互联网来源的化学数据。如下图所示,该数据包含了广泛的化学领域知识,与三个主要的任务类别相一致:分子、反应和结构域任务。
在这里插入图片描述

3.2指令构建
由于化学语言模型(llm)对分子的独特表示和数据库的性质,其高度结构化的训练提出了重大挑战。为了克服这些障碍,需要一种创新的策略,将这种结构化的、特定于领域的数据转换为一种更有利于LLM训练的格式。我们引入了一种新的管道,将这种形式化的化学数据转换为可访问的自然语言格式,以确保重要的化学信息的保存。我们的方法利用了一个“种子模板”。它实现了一个“戏剧和剧本和剧作家”的策略来创建单回合和多回合的对话场景,显著提高了训练数据集的多样性。虽然这个管道在设计时考虑到了化学数据,但它的基本原理是通用的。它们可以应用于其他科学领域,标志着LLM研究跨越广泛的科学学科的一个新阶段的开始。

将结构化的化学数据转换为适合于训练llm的指令调优数据涉及到解决两个关键挑战:

  1. 模板的多样性
  2. 在问答对中包含化学逻辑和推理

对于挑战1 ,通过下面种子模板的方式解决。种子模板的生成和使用方式如下图所示,其中借助GPT4生成大量问答模板(这里都是单轮对话场景数据模板),在模板中把结构化数据进行随机填充,以此得到大量多样性良好的自然语言数据。
在这里插入图片描述

在不同任务中,作者的处理细节不同。
分子任务中,首先,从数据库中提取结构化数据,如“IUPAC name,common name,SMILES”。然后,我们将这些数据字段组织成针对特定任务的问答格式。例如,“IUPAC name”可能是问题,“SMILES”作为答案。这对初始对构成了我们的种子模板的基础。为了加强这一点,我们让ChatGPT来解释最初的问题和答案,生成了40个不同的模板,反映了现实世界和学术文本的多样性。
反应任务中,在化学反应数据输入领域,关键领域表现出高度的均匀性,包括反应物、产物、产率和反应条件。其中,反应条件数据的特点是其格式不同和存在缺失值。为了解决这个问题,我们设计了一个专门的反应条件模板,以适应缺失的值,便于将这些数据转换为标准化的自然语言描述。随后,我们使用种子模板方法,我们为各种预测目标制作了不同的模板,从而能够构建目标指令。
领域任务中,在领域任务指令的构建中,我们的方法主要结合了“扮演剧作家”的指导技术,将广泛的领域文献文本和研究主题转化为建设性的、多回合的对话数据,旨在促进实质性的讨论。然后,我们聚合了来自ChemXiv、列表文本化学和维基百科化学门户的特定领域的教科书数据,以为特定领域的多回合对话合成主题。

为了解决第二个挑战,通过构建多回合对话来增强指令调优数据的上下文丰富性和逻辑一致性。
我们坚持综合多回合对话数据的三个指导原则:内容的专业性和准确性,讨论对中心主题的针对性,以及随着领域主题的展开而扩大内容和深化对话的范围。我们的目标是模拟专家之间典型的动态交流和深入讨论,从而细化模型在专门领域问题上进行推理、对话和分析的能力。

4.两阶段指令微调管道

为了提高语言模型在专业领域的熟练程度,采用了一种新颖的两阶段指令调优管道,如下图所示。从一个InternLM2-base-7B开始,在第一阶段使用一些开源的通用数据集进行训练,第二阶段,使用通用+化学领域数据进行训练。
在这里插入图片描述

其他训练的重点:
1.LORA,这个工作微调时使用了Lora微调,从以往的经验来看,全量微调>Lora微调。所以,是否是因为训练数据比较大的缘故,lora微调能够更稳定,所以采用了这个。参数如下: a rank of 8, a scale factor of 16.0, and a dropout rate of 0.1。
2.AdamW优化器,初始学习速率为5.0×10−5,β1为0.99,β2为0.999,ϵ为1.0×10−8。
3.16个A100,两个机器,每个上8个gpu,在slurm集群上训练。
4.NEFTune,使用NEFTune加入数据噪声,防止过拟合。
3.损失函数,采用自监督的自回归交叉熵函数,即常规的生成模型损失函数,最大化预测词在真实下一个词上的概率。
在这里插入图片描述

5.ChemLLM表现

1.化学方面
使用论文中提出的ChemBench,包括下面三个任务。
在这里插入图片描述

2.通用方面
使用多学科MMLU和数学GSM8K。
在这里插入图片描述

3.中文方面
使用论文中提出的Chinese ChemQA 和Chinese M&H ChemTest数据集。
在这里插入图片描述

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

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

相关文章

Nodejs基于vue的个性化服装衣服穿搭搭配系统sprinboot+django+php

本个性化服装搭配系统主要根据用户数据信息,推荐一些适合的搭配穿搭,同时,用户也可自己扫描上传自身衣物以及输入存放位置,搭配后存储到“我的搭配”中,以便下次挑选,既可以节省搭配时间,也方便…

【MySQL】MySQL复合查询--多表查询自连接子查询

文章目录 1.基本查询回顾2.多表查询3.自连接4.子查询 4.1单行子查询4.2多行子查询4.3多列子查询4.4在from子句中使用子查询4.5合并查询 4.5.1 union4.5.2 union all 1.基本查询回顾 表的内容如下: mysql> select * from emp; ----------------------------…

Opencv实战(5)平滑处理与常见函数

平滑处理 Opencv实战: Opencv(1)读取与图像操作 Opencv(2)绘图与图像操作 Opencv(3)详解霍夫变换 Opencv(4)详解轮廓 文章目录 平滑处理1.均值滤波2.方框滤波3.高斯滤波4.中值滤波5.双边滤波 常见函数(1).createTrackbar()(2).SetMouseCallback() 图像的平滑处理是…

[element]element-ui框架下载

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐如果觉得文章写的不错,欢迎点个关注一键三连😉有写的不好的地方也欢迎指正,一同进步😁…

2024腾讯云服务器优惠价格表又降价了,给同行干emo了

腾讯云优惠活动2024新春采购节活动上线,云服务器价格已经出来了,云服务器61元一年起,配置和价格基本上和上个月没什么变化,但是新增了8888元代金券和会员续费优惠,腾讯云百科txybk.com整理腾讯云最新优惠活动云服务器配…

常用sql语句及其优化

文章目录 介绍常用sql语句1. 数据查询1.1 SELECT 语句1.2 DISTINCT 关键字1.3 WHERE 子句1.4 ORDER BY 子句1.5 LIMIT 关键字 2. 数据更新2.1 INSERT INTO 语句2.2 UPDATE 语句2.3 DELETE FROM 语句 3. 数据管理3.1 CREATE TABLE 语句3.2 ALTER TABLE 语句3.3 DROP TABLE 语句 …

Python进阶学习:Pandas--将一种的数据类型转换为另一种类型(astype())

Python进阶学习:Pandas–将一种的数据类型转换为另一种类型(astype()) 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&…

android零基础入门,零基础入门android

工欲行其事,必先利其器 1.B4A B4A是Android的基础版,这是一种可简化编程的Android的应用程序开发工具。这是一个IDE,可以允许开发者使用Basic语言来创建Android移动应用。Basic语言是一种过程化编程语言,因为其简单易学&#xff…

linux系统如何安装nginx

首先下载nginx安装包 wget -c http://nginx.org/download/nginx-1.23.1.tar.gz然后解压安装包 tar -zxvf nginx-1.23.1.tar.gz如果服务器没有wget,可以安装一下,有的话可以跳过 yum install -y wget 然后安装相关依赖 yum install -y gcc-c zlib zl…

分布式调度平台XXL-JOB

相对来说,xxl-job中心式的调度平台轻量级,开箱即用,操作简易,上手快,与SpringBoot有非常好的集成,而且监控界面就集成在调度中心,界面又简洁,对于企业维护起来成本不高,还…

PRL算法调控

伴随汽车电子技术发展,传统轮式车辆制动系统的气体或液体传输管路长,阀类原件多原有的真空助力系统无法兼顾车辆的再生制动功能,而再生制动功能是混合动力车辆是混动车辆最主要的市场优势之一,真空助力器逐渐被eBooster 所取代。针…

C++条件变量

概述 条件变量的使用&#xff0c;其实是一种多线程通知模式&#xff0c;当线程一使用完数据后&#xff0c;通过条件变量通知其他线程&#xff0c;C11后开始支持。 说明 条件变量必须配合mutex使用&#xff0c;确保并发访问的排他性 std::unique_lock<std::mutex> loc…