微软 CMU - Tag-LLM:将通用大语言模型改用于专业领域

news2024/11/17 15:57:59

文章目录

  • 一、前言
  • 二、主要内容
  • 三、总结

🍉 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 时代的我们 —— 请不要忽视写作的魅力

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

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

相关文章

rediss集群 三主三从集群模式

三主三从集群模式 1)、新建redis集群目录:7001~7006工作目录【/app/soft/redis-cluster/目下】 2)、在7001~7006 目录下创建bin和conf 目录,然后将/app/soft/redis/bin目录下的文件分别拷贝到7001~7006 目录,然后在7001~7006 目…

C++ 动态规划 数位统计DP 计数问题

给定两个整数 a 和 b ,求 a 和 b 之间的所有数字中 0∼9 的出现次数。 例如,a1024,b1032 ,则 a 和 b 之间共有 9 个数如下: 1024 1025 1026 1027 1028 1029 1030 1031 1032 其中 0 出现 10 次,1 出现 10…

「数据结构」二叉搜索树1:实现BST

🎇个人主页:Ice_Sugar_7 🎇所属专栏:Java数据结构 🎇欢迎点赞收藏加关注哦! 实现BST 🍉二叉搜索树的性质🍉实现二叉搜索树🍌插入🍌查找🍌删除 &am…

codeforces 1400分

文章目录 1.[B. Phoenix and Beauty](https://codeforces.com/problemset/problem/1348/B)2.[C. Rotation Matching](https://codeforces.com/problemset/problem/1365/C)3.[C. Element Extermination](https://codeforces.com/problemset/problem/1375/C)4.[D. Epic Transform…

Mysql Day04

mysql体系结构 连接层服务层引擎层(索引)存储层 存储引擎 存储引擎是基于表建立的,默认是innoDB show create table tb; 查看当前数据库支持的存储引擎 show engines; InnoDB 特点 DML(数据增删改)遵循ACID模…

【STM32 HAL库实战】串口DMA + 空闲中断 实现不定长数据接收

本文目录 1、STM32CubeMX配置部分1.1 SYS配置如图1.2 RCC配置如图1.3 USART1配置NVIC SettingsDMA Settings 1.4 DMA配置 2、软件执行流程2.1 HAL_UARTEx_ReceiveToIdle_DMA()2.2 HAL_UART_IRQHandler(&huart1)2.3 HAL_UARTEx_RxEventCallback()2.4 HAL_UART_ErrorCallback…

接口测试类型分为哪些?

什么是接口(API) API全称Application Programming Interface,这里面我们其实不用去关注AP,只需要I上就可以。一个API就是一个Interface。我们无时不刻不在使用interfaces。我们乘坐电梯里面的按钮是一个interface。我们开车一个踩…

345. Reverse Vowels of a String(反转字符串中的元音字母)

题目描述 给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。 元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’,且可能以大小写两种形式出现不止一次。 问题分析 不要被题目迷惑了,题意是将元音字符提取出来…

Postgresql 的编译安装与包管理安装, 全发行版 Linux 通用

博客原文 文章目录 实验环境信息编译安装获取安装包环境依赖编译安装安装 contrib 下工具代码 创建用户创建数据目录设置开机自启动启动数据库常用运维操作 apt 安装更新源安装 postgresql开机自启修改配置修改密码 实验环境信息 Ubuntu 20.04Postgre 16.1 编译安装 获取安装…

Linux中常用的工具

软件安装 yum 软件包 在Linux中,软件包是一种预编译的程序集合,通常包含了用户需要的应用程序、库、文档和其他依赖项。 软件包管理工具是用于安装、更新和删除这些软件包的软件。常见的Linux软件包管理工具包括APT(Advanced Packaging To…

【c++入门】母牛生小牛

说明 有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛? 输入数据 只有一个整数N,独占一行。(1≤N≤50) 输出数据 对每组数据,输出一个整数(独占一行)…

python+django高校教务选课成绩系统v0143

系统主要实现了以下功能模块: 本课题使用Python语言进行开发。基于web,代码层面的操作主要在PyCharm中进行,将系统所使用到的表以及数据存储到MySQL数据库中 使用说明 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并…

如何从格式化的 U盘恢复不见的数据

格式化与使用任何容量有限的存储设备(例如 USB 闪存驱动器)密切相关。在大多数情况下,一次性删除所有内容比逐个删除文件更快、更方便。但是,如果您犯了错误并意外格式化了错误的驱动器怎么办?是否可以从格式化的闪存驱…

linux进程(进程地址空间)

目录 前言: 正文: 1.验证地址空间 2.地址空间是指物理空间吗 3.linux内核的地址空间 4进程访问地址 4.1早期程序寻址 4.2进程地址空间到物理内存的映射 4.3解释同一变量产生不同值 5虚拟地址空间的意义 5.1保护物理内存 5.2进程管理和内…

DolphinScheduler-3.2.0 集群搭建

本篇文章主要记录DolphinScheduler-3.2.0 集群部署流程。 注:参考文档: DolphinScheduler-3.2.0生产集群高可用搭建_dophinscheduler3.2.0 使用说明-CSDN博客文章浏览阅读1.1k次,点赞25次,收藏23次。DolphinScheduler-3.2.0生产…

VitePress-13- 配置-title的作用详解

作用描述 1、title 是当前站点的标题;2、默认值是 :VitePress;3、当使用默认主题时,会直接展示在 页面的【导航条】中;4、一个特殊的作用 : 会作为单个页面的默认标题后缀!除非又指定了【title…

[韩顺平]python笔记

AI工程师、运维工程师 python排名逐年上升,为什么? python对大数据分析、人工智能中关键的机器学习、深度学习都提供有力的支持Python支持最庞大的 代码库 ,功能超强 数据分析:numpy/pandas/os 机器学习:tensorflow/…

【算法与数据结构】42、LeetCode接雨水

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:   程序如下: 复杂度分析: 时间复杂度: O ( ) O() O()。空间复…

hook函数——useRef

useRef useRef 是一个 React Hook,它能帮助引用一个不需要渲染的值。也就是说useRef可以存储一个值,但是不被组件渲染,仅仅只是引用,主要包括两个方面,例如使用ref引用一个值,使用ref引用一个dom节点&…

「C++ 类和对象篇 10」初始化列表

目录 一、什么是初始化列表? 二、为什么需要初始化列表? 三、初始化列表怎么使用? 3.1 在构造函数中使用初始化列表 3.2 注意 3.3 结论 3.4 应用场景 四、初始化列表的初始化顺序 五、另一种初始化成员变量的方法 【总结】 一、什么是初始化…