微软 CMU - Tag-LLM:将通用大语言模型改用于专业领域
文章目录
- 一、前言
- 二、主要内容
- 三、总结
🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/
一、前言
论文地址:https://arxiv.org/abs/2402.05140
Github 地址:https://github.com/sjunhongshen/Tag-LLM
大语言模型(Large Language Models,LLMs)在理解和生成自然语言方面展现出卓越的能力。然而,在预训练语料库中代表性不足的高度专业领域,例如物理和生物医学领域,LLMs 的能力可能会减弱。这项工作探讨了如何将通用 LLMs 改用于专门领域的有效任务求解器。研究者提出了一个新颖且与模型无关的框架,用于学习自定义输入标签(input tags)。这些标签被参数化为连续向量,附加到 LLM 的嵌入层,以调节 LLM。研究者设计了两种类型的输入标记:领域标签用于分隔专门的表示(例如,化学式)并提供领域相关的上下文;函数标签用于表示特定函数(例如,预测分子特性)并压缩函数求解指令。

研究者进而开发了一种三阶段协议,利用辅助数据和领域知识来学习这些标签。通过明确地将任务域与任务函数分开, Tag-LLM 能够通过不同输入标签的组合,对未见过的问题实现零样本泛化。此外,它在各种专业领域中的性能也有所提高,例如预测蛋白质或化学性质,以及建立药物与靶点相互作用模型。在这些任务上,它的性能优于为此类任务量身定制的专家模型。
二、主要内容
在 LLMs 领域中,一个长期存在的挑战是将最初设计用于一般用途的模型适应到专业领域并表现出色。感兴趣的领域通常涵盖高度专业化的学科,例如物理和生物医学。在这些领域中,数据与通常在自然语言处理中遇到的文本数据存在很大差异。为了弥补这一差距,Tag-LLM 框架旨在利用特定领域的输入标签,将通用 LLM 重新应用于专门的任务。这些标签被参数化为连续向量,并附加到 LLM 的嵌入层中,成为调节 LLM 功能以符合特定专业领域或任务要求的强大工具。

如上图所示:以蛋白质-药物结合亲和力预测任务为例,Tag-LLM 将领域标签 ⟨Protein⟩、⟨SMILES⟩ 和函数标签 ⟨Binding Affinity⟩ 注入输入,并映射到经过专门训练的嵌入。模型将最后一个隐藏状态传递到特定任务的头部,以生成所需的预测类型(例如,在本例中为标量结合亲和值)。
Tag-LLM 的设计和实现
Tag-LLM 将输入标签分为两类:领域标签和函数标签。领域标签用于给输入数据上下文化,向模型指明其处理的专业数据类型(例如化学式或蛋白质序列),而函数标签则指示模型进行具体任务,如预测分子特性或模拟药物与靶标的相互作用。这种分叉允许采用模块化方法来解决问题,通过部署各种输入标签组合,以 zero-shot 方式处理新的或未见过的任务。
为了学习这些标签,研究者开发了一个独特的三阶段协议,利用辅助数据集和领域知识逐步提高模型的理解能力和性能。在第一阶段中,通过使用域内数据进行 next-token prediction 任务来完善域标签。后续阶段涉及使用越来越专业化的面向任务的数据训练单个领域和跨领域的函数标签,以丰富模型解决不同领域复杂问题的能力。
经验结果与发现
实验结果表明,使用可学习的标签可以更细粒度地控制语言模型(LLM)。具体来说,使用实际文本(如 “Protein”)来条件化模型的效果在很大程度上取决于它在预训练语料库中的出现频率,但最终用户无法控制这一点。作者通过从目标领域的数据中显式学习标签嵌入来解决这个限制。实验还研究了标签长度对测试误差的影响。随着 p p p 值的增加,测试误差先减小后增大。这表明,虽然增加的自由度最初是有益的,但超过某个阈值可能会导致过拟合训练数据,从而阻碍测试时的性能。
经过定量评估,证明了 Tag-LLM 在多项任务中的有效性,包括八种语言的翻译、蛋白质特性预测和药物发现等科学工作。实验还证明了 Tag-LLM 方法可以有效地将 LLM 重新用于专业领域。例如,在多语言翻译任务中,使用领域标签表示不同的语言,并训练一个共享的函数标签 ⟨Translate⟩ 来编码翻译能力。实验结果验证了领域标签可以从数据中有效地提取领域信息,以及函数标签可以推广到未见过的领域和翻译对。值得注意的是,在制药领域的任务中,如药物组合预测和结合亲和力预测,Tag-LLM 取得了领先的结果,明显优于专用模型和其他重新利用 LLM 的方法。
Tag-LLM 采用模块化设计和系统化的训练协议,不仅提高了专项任务的性能,还提供了一个可扩展的框架,可以逐步添加新的标签。这种功能确保了 Tag-LLM 能够根据领域发展或面临新挑战时进行相应调整和扩展,具有实际落地应用价值。
总之,实验结果表明,Tag-LLM 方法在各种任务上的表现优于其他基线方法,证明了其有效性和实用性。
三、总结
Tag-LLM 可能是一个针对特定领域专业化 / {/} /微调大语言模型的好方法。

在这项工作中,研究者利用现有的 LLMs 来解决特定任务。开发了一个 LLM 标签系统,用于调节 LLM,并提出了一个学习标签的三阶段训练协议。实验结果表明,Tag-LLM 提高了 LLM 的预测质量,并允许对其行为进行更细粒度的控制。作者设想开源不同模型的学习标签可以帮助促进专业领域的研究。
基于 Tag-LLM 确定了几个未来发展方向。例如,在其他专业领域进一步验证 Tag-LLM,如基因功能预测(计算生物学)或求解偏微分方程(物理学)。用特定任务的输出头来增强函数标签的想法可以应用于各种预测问题。不过,在这项研究中,Tag-LLM 主要关注回归问题,而对分类和其他结构化预测问题的探索则留待今后研究。在计算效率方面,一个潜在的改进方法是大批量地训练标签,例如,将不同领域的数据串联在一起,而不是像论文里这样按顺序训练。最后,将 Tag-LLM 与其他领域适应范式(如上下文学习)相结合,也是一种值得探索的可能性。
📚️ 参考链接:
- Tag-LLM: Repurposing General-Purpose LLMs for Specialized Domains
- 沈向洋:致 AI 时代的我们 —— 请不要忽视写作的魅力
相关文章:
微软 CMU - Tag-LLM:将通用大语言模型改用于专业领域
文章目录 一、前言二、主要内容三、总结 🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 论文地址:https://arxiv.org/abs/2402.05140 Github 地址:https://github.com/sjunhongshen/Tag-LLM 大语言模型(…...
Kafka集群安装与部署
集群规划 准备工作 安装 安装包下载:链接:https://pan.baidu.com/s/1BtSiaf1ptLKdJiA36CyxJg?pwd6666 Kafka安装与配置 1、上传并解压安装包 tar -zxvf kafka_2.12-3.3.1.tgz -C /opt/moudle/2、修改解压后的文件名称 mv kafka_2.12-3.3.1/ kafka…...
C++初阶(十一) list
一、list的介绍及使用 1.1 list的介绍 list的文档介绍 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点…...
图像卷积、步长、填充、特征图、多通道卷积、权重共享、感受野、池化
图像卷积、步长、填充、特征图、多通道卷积、权重共享、感受野、池化 卷积神经网络的一些基本概念:图像卷积、步长、填充、特征图、多通道卷积、权重共享、感受野、池化 1.图像卷积、步长、填充 图像卷积:卷积核矩阵在一个原始图像矩阵上 “从上往下、…...
CMake进行C/C++与汇编混合编程
1. 前提 这篇文章记录一下怎么用CMake进行项目管理, 并用C/C和汇编进行混合编程, 为了使用这项技术, 必须在VS的环境中安装好cmake组件 由于大部分人不会使用C/C与汇编进行混合编程的情况。所以这篇文章并不适用于绝大部分人不会对其中具体细节进行过多叙述。只是做一些简单的…...
缓存预热!真香
预热一般指缓存预热,一般用在高并发系统中,为了提升系统在高并发情况下的稳定性的一种手段。 缓存预热是指在系统启动之前或系统达到高峰期之前,通过预先将常用数据加载到缓存中,以提高缓存命中率和系统性能的过程。缓存预热的目…...
VS中设置#define _CRT_SECURE_NO_WARNINGS的原因和设置方式
原因: 在编译老的用C语言的开源项目的时候,可能因为一些老的.c文件使用了strcpy,scanf等不安全的函数,而报警告和错误,而导致无法编译通过。 解决方案: 我们有两种解决方案: 1、在指定的源文件的开头定…...
【网站项目】155在线考试与学习交流网页平台
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板ÿ…...
解决IDEA的Project无法正常显示的问题
一、问题描述 打开IDEA,结果发现项目结构显示有问题: 二、解决办法 File -> Project Structure… -> Project Settings (选Modules),然后导入Module 结果: 补充: IDEA提示“The imported module settings a…...
CDF和PDF的比较
以下内容来自ChatGPT,科技改变生活 Cumulative Distribution Function (CDF)(累积分布函数)和 Probability Density Function (PDF)(概率密度函数)是统计学和概率论中两个重要的概念,用于描述随机变量的性…...
编译基本过程 预处理器
编译基本过程 源代码(main.c)->预处理器(cpp)->编译器(gcc/clang/msvc)->汇编器(as)->链接器(ld)->可执行文件(main.exe) 预处理器 C语言中预处理器:执行预处理命令(文件包含、宏替换、条件编译)处理注释(将所有注释替换为空格)处理续行符(将所有…...
模拟算法.
1.什么是模拟 在信息奥赛中,有一类问题是模拟一个游戏的对弈过程或者模拟一项任务的操作过程.比如乒乓球在比赛中模拟统计记分最终判断输赢的过程等等,这些问题通常很难通过建立数学模型用特定的算法来解决因为它没有一种固定的解法,需要深刻理解出题者对过程的解释一般只能采…...
ClickHouse--10--临时表、视图、向表中导入导出数据
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.临时表1.1 特征1.2 创建一个临时表 2.视图2.1 普通视图2.2 物化视图 3.向表中导入导出数据3.1 案例 1.临时表 1.1 特征 ClickHouse 支持临时表,临时表…...
Python一些可能用的到的函数系列124 GlobalFunc
说明 GlobalFunc是算网的下一代核心数据处理基础。 算网是一个分布式网络,为了能够实现真的分布式计算(加快大规模任务执行效率),以及能够在很长的时间内维护不同版本的计算方法,需要这样一个对象/服务来支撑。Globa…...
python中线程/线程池,进程/进程池的创建
创建子线程 # 创建子线程t1 threading.Thread(targetjob,args(1,))# 执行子线程t1.start()# 等待子线程执行print("waiting threading")t1.join()print("threading done")创建子进程 # 创建子进程p1 multiprocessing.Process(targetjob,args(1,),name&qu…...
【c++】vector的增删查改
1.先定义一个类对象vector 为了防止和库里面发生冲突,定义一个命名空间,将类对象放在命名空间 里面 #include<iostream> using namespace std; namespace zjw {class vector {public:private:}; }2.定义变量,需要一个迭代器ÿ…...
【研究生复试】计算机软件工程人工智能研究生复试——资料整理(速记版)——JAVA
1、JAVA 2、计算机网络 3、计算机体系结构 4、数据库 5、计算机租场原理 6、软件工程 7、大数据 8、英文 自我介绍 1. Java 1. 和 equals的区别 比较基本数据类型是比较的值,引用数据类型是比较两个是不是同一个对象,也就是引用是否指向同 一个对象&…...
JVM-JVM中对象的生命周期
申明:文章内容是本人学习极客时间课程所写,文字和图片基本来源于课程资料,在某些地方会插入一点自己的理解,未用于商业用途,侵删。 原资料地址:课程资料 对象的创建 常量池检查:检查new指令是否能在常量池…...
RegExp正则表达式左限定右限定左右限定,预查询,预查寻,断言 : (?<= , (?= , (?<! , (?!
RegExp正则表达式左限定右限定左右限定,预查询,预查寻,断言 : (?< , (? , (?<! , (?! 有好多种称呼 (?< , (? , (?<! , (?! 有好多种称呼 , 我称为: 左限定, 右限定, 左否定, 右否定 (?<左限定) (?右限定)(?<!左否定) (?!右限定) 再…...
相机图像质量研究(30)常见问题总结:图像处理对成像的影响--重影
系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...
给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...
