Data-efficient Fine-tuning for LLM-based Recommendation

目录

  • Introduction

利用大型语言模型(LLM)进行推荐最近引起了相当大的关注,其中微调在 LLM 的适应中发挥着关键作用。然而,在快速扩展的推荐数据上微调LLMs的成本限制了其实际应用。为了应对这一挑战,小样本微调提供了一种很有前途的方法,可以使LLMs快速适应新的推荐数据。我们提出了基于 LLM 的高效推荐的 数据修剪任务,旨在识别为 LLM 的 小样本微调量身定制的代表性样本。虽然核心集选择与所提出的任务密切相关,但现有的核心集选择方法通常依赖于次优启发式指标,或者需要对大规模推荐数据进行成本高昂的优化。为了解决这些问题,我们在基于LLM的推荐背景下引入了数据修剪任务的两个主要目标:1)高精度旨在识别可以 带来高整体性能的有影响力的样本; 2)高效率强调了数据 修剪过程的低成本。为了实现这两个目标,我们提出了一种新颖的数据修剪方法,结合了两个分数,即影响力分数和努力分数,以有效地识别有影响力的样本。特别是, 引入影响分数来准确估计删除每个样本对整体性能的影响。为了实现数据修剪过程的低成本,我们采用 小型代理模型来代替 LLM 以获得影响力得分。考虑到替代模型和LLMs之间的潜在差距,我们进一步提出了一个努力分数,以优先考虑专门针对LLMs的一些 硬样本。我们在两个基于 LLM 的竞争性推荐模型上实例化了所提出的方法,并且三个真实世界数据集的实证结果验证了我们所提出方法的有效性。特别是,所提出的方法仅使用 2% 的样本就超越了全数据微调,减少了 97% 的时间成本。

Introduction

LLM 中编码的丰富的世界知识为高效微调提供了一种有前途的解决方案:少样本微调。之前的研究发现,LLM 有潜力通过对随机采样的少量数据进行微调来快速适应推荐任务 [3,4,32](图 1(a)),从而显着减少训练时间和计算成本。尽管其效率很高,但随机采样的数据可能缺乏足够的代表性,无法使法LLMs有效理解新项目和用户行为。为了解决这个问题,我们引入了数据修剪任务,以实现基于 LLM 的高效推荐,其目的是识别为 LLM 的小样本微调量身定制的代表性样本。与此数据修剪任务密切相关的文献是核心集选择[16]。它尝试从完整数据中选择一个较小但具有代表性的子集,旨在实现可比较的性能。现有的核心集选择方法通常分为两类2:1)启发式方法根据预定义的指标选择硬样本或多样化样本[36,39,53]。这种启发式方法不估计选择的样本对经验风险的影响,从而可能导致次优的核心集选择; 2)基于优化的方法主要考虑选择可以最小经验风险的子集。训练有素的 LLM 对完整数据进行研究。然而,由于复杂且成本高昂的双层优化,这些方法不适用于大规模推荐数据集,或者追求这两个目标面临两个挑战: • 为了实现高精度,必须测量离散优化问题[20]。更糟糕的是,无论是启发式的还是基于优化的方法都依赖于通过评估所有样本的一致性来训练良好的模型,成本高昂,因为它需要完整的数据来选择核心集,例如,计算预定义的分数。因此,直接应用这些方法是不可行的。

为了克服上述问题,我们总结了在基于LLM的推荐背景下数据修剪的两个主要目标:1)高准确性,重点是选择可以导致低经验风险的样本; 2)高效率,强调数据修剪过程的低成本,即消除训练有素的LLMs对完整数据的依赖。然而,实现这两个目标面临着两个挑战: • 为了实现高精度,必须衡量删除每个训练样本对经验风险的影响。然而,评估所有样本的影响是昂贵的,因为它需要对每个样本进行留一再训练[46]。为了实现高效率,一种可能的解决方案是训练用于样本选择的代理模型,例如使用小型传统推荐模型,与LLM相比,这可以大大减少GPU内存使用和训练时间(见图1( b))。然而,LLMs和代理模型之间存在差距,因为它们在学习用户行为方面的能力不同(参见图 3)。因此,替代模型选择的有影响力的样本可能会偏离LLMs的样本,从而可能损害 大模型的迁移性。
为了应对这些挑战,我们提出了一种新的数据修剪方法,以有效地识别有影响力的样本,以进行基于LLM的推荐器微调(简称为DEALRec)。 DEALRec 利用两个分数,即影响力分数和努力度分数来识别有影响力的样本。制定影响分数来估计删除每个训练样本对经验风险的影响。它是通过链规则二阶优化技术[28]扩展影响函数[18]来计算的。为了有效计算所有样本的影响力得分,DEALRec 采用了一种简单而有效的对称属性来加速计算,只需要对所有样本进行一次估计(参见第 3.1 节)。此后,DEALRec使用传统的推荐模型作为替代模型来获取影响力分数,并引入努力分数来缩小替代模型与LLM之间的差距。努力分数是通过计算样本损失的梯度范数获得的,直观地衡量LLMs适应特定样本的努力。通过用努力分数对影响力分数进行正则化,DEALRec 识别出具有影响力的样本,这些样本既包含完整数据的代表性,又包含对LLMs的重要性。我们在两个基于 LLM 的推荐模型上实例化 DEALRec,并在三个真实数据集上进行广泛的实验,验证了 DEALRec 在效率和准确性方面的优越性
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【深入理解计算机系统第3版】有符号数和无符号数转换以及移位运算练习题2.23

题目 考虑下面的C函数&#xff1a; int fun1(unsigned word) {return (int) ((word << 24) >> 24); }int fun2(unsigned word) {return ((int) word << 24) >> 24; } 假设一个采用补码运算的机器上以32位程序来执行这些函数。还假设有符号数值的右移…

代码审计-PHP原生开发篇SQL注入数据库监控正则搜索文件定位静态分析

文章目录 前言1、Bluecms-CNVD-1Day-常规注入审计分析2、emlog-CNVD-1Day-常规注入审计分析3、emlog-CNVD-1Day-2次注入审计分析 前言 挖掘技巧&#xff1a; -语句监控-数据库SQL监控排查可利用语句定向分析 -功能追踪-功能点文件SQL执行代码函数调用链追踪 -正则搜索-(update…

QT----opencv4.8.0编译cuda版本,QTcreater使用

目录 1 编译opencv4.8.02 验证能否加载GPU cuda12.1 opencv4.8.0 vs2019 cmake3.29 1 编译opencv4.8.0 打开cmake&#xff0c;选择opencv480路径&#xff0c;build路径随意 点击configure后&#xff0c;选择这些选项&#xff0c;opencv_word&#xff0c;cuda全选&#xff0c;…

工业组态 物联网组态 组态编辑器 web组态 组态插件 编辑器

体验地址&#xff1a;by组态[web组态插件] BY组态是一款非常优秀的纯前端的【web组态插件工具】&#xff0c;可无缝嵌入到vue项目&#xff0c;react项目等&#xff0c;由于是原生js开发&#xff0c;对于前端的集成没有框架的限制。同时由于BY组态只是一个插件&#xff0c;不能独…

【Linux】Ubuntu 文件权限管理

Linux 系统对文件的权限有着严格的控制&#xff0c;用于如果相对某个文件执行某种操作&#xff0c;必须具有对应的权限方可执行成功&#xff0c;这也是Linux有别于Windows的机制&#xff0c;也是基于这个权限机制&#xff0c;Linux可以有效防止病毒自我运行。因为运行的条件是必…

二十一、Rust 反射 获取类型

不同于 java 中的反射&#xff0c;Rust 没有提供以往意义上的运行时反射&#xff0c;取而代之的是 “编译期反射”&#xff0c;如 类型分析、类型转换、类型签名。但即便如此&#xff0c;也已经能对 Rust元编程 提供很多助力了。 这种操作&#xff0c;主要通过 Any 来实现&…

【接口】HTTP(1)|请求|响应

1、概念 Hyper Text Transfer Protocol&#xff08;超文本传输协议&#xff09;用于从万维网&#xff08;就是www&#xff09;服务器传输超文本到本地浏览器的传送协议。 HTTP协议是基于TCP的应用层协议&#xff0c;它不关心数据传输的细节&#xff0c;主要是用来规定客户端和…

详解python中的迭代

如果给定一个list或tuple&#xff0c;我们可以通过for循环来遍历这个list或tuple&#xff0c;这种遍历我们称为迭代&#xff08;Iteration&#xff09;。 在Python中&#xff0c;迭代是通过for ... in来完成的&#xff0c;而很多语言比如C语言&#xff0c;迭代list是通过下标完…

4月4号总结

java学习 一.接口 1.介绍 定义接口需要使用到关键字interface去定义接口。 格式如下&#xff1a; 类与接口的关系不是继承&#xff0c;而是实现&#xff0c;用关键字 implements &#xff0c;格式如下&#xff1a; 这个类去实现接口&#xff0c;其中的关系就相当于&#xf…

Python 使用matplotlib创建各种静态、动态、交互式和3D图表的功能

在Python中&#xff0c;你可以使用各种库来创建和显示图表。其中&#xff0c;最常用的库之一是matplotlib&#xff0c;它提供了创建各种静态、动态、交互式和3D图表的功能。另一个流行的库是seaborn&#xff0c;它基于matplotlib&#xff0c;并提供了更高级别的界面&#xff0c…

基于Socket简单的UDP网络程序 vs 简单的TCP网络程序

⭐小白苦学IT的博客主页 ⭐初学者必看&#xff1a;Linux操作系统入门 ⭐代码仓库&#xff1a;Linux代码仓库 ❤关注我一起讨论和学习Linux系统 1.前言 网络编程前言 网络编程是连接数字世界的桥梁&#xff0c;它让计算机之间能够交流信息&#xff0c;为我们的生活和工作带来便利…

蓝桥杯python组真题练习1

目录 1.单词分析 2.成绩统计 3.门牌制作 4.卡片 5.跑步训练 6.蛇形填数 7.时间显示 1.单词分析 1.单词分析 - 蓝桥云课 (lanqiao.cn) s list(input()) maxx 0 for i in s:num s.count(i)if num>maxx:sm imaxx numif num maxx:if ord(sm)>ord(i):sm i print…

【华为OD机试】数据单元的变化替换(JavaPythonC++JS实现)

本文收录于专栏:算法之翼 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目二.解题思路三.题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码四.代码讲解(Ja…

RabbitMQ3.x之八_RabbitMQ中数据文件和目录位置

RabbitMQ3.x之_RabbitMQ中数据文件和目录位置 文章目录 RabbitMQ3.x之_RabbitMQ中数据文件和目录位置1. 概述2. 覆盖位置1. 路径和目录名称限制2.所需的文件和目录权限 3. 环境变量4. Linux、macOS、BSD上的默认位置5. Windows上的默认位置6. 通用二进制构建默认值 1. 概述 每…

Mysql 高性能的sql优化方案和建议

优化MySQL的性能是一项复杂而关键的任务&#xff0c;它可以通过多种方式来实现。下面是一些SQL优化的方案和建议&#xff1a; 索引优化&#xff1a; 确保经常查询的列都有索引。但不要过度索引&#xff0c;因为它可能会增加写入操作的开销。使用组合索引来覆盖多个查询条件。…

考研经验与科目学习建议

前言 24考研刚刚结束&#xff0c;成功上岸&#xff0c;回想起刚开始的时候的迷茫&#xff0c;加上因为迷茫而被卖书的坑的几百块钱。感慨万千&#xff0c;所以决定写下这篇文章。回想当时&#xff0c;因为笔者零基础&#xff0c;加上作为一名专升本的学生&#xff0c;惶恐因为…

代码随想录算法训练营第35天|435. 无重叠区间|763.划分字母区间|56. 合并区间

代码随想录算法训练营第35天|435. 无重叠区间|763.划分字母区间|56. 合并区间 详细布置 今天的三道题目&#xff0c;都算是 重叠区间 问题&#xff0c;大家可以好好感受一下。 都属于那种看起来好复杂&#xff0c;但一看贪心解法&#xff0c;惊呼&#xff1a;这么巧妙&#x…

【R语言实战】——Logistic回归模型

&#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#xff0c;参与研究经费10w、40w级横向 文…

如何锁定鼠标光标在水平、垂直或45度对角线模式下移动 - 鼠标水平垂直移动锁定器简易教程

在我们进行精细工作例如如创建图标和图形设计时&#xff0c;通常需要我们对鼠标移动进行精确控制。一旦向左或向右轻微移动&#xff0c;都可能导致设计出错。若出现不必要的错误&#xff0c;我们极有可能不得不重新开始&#xff0c;这会令人感到非常沮丧。这种情况下&#xff0…

SAP ERP实施有几个阶段?工博科技带来SAP系统实施项目全流程介绍

根据SAP实施方法论&#xff0c;SAP系统实施流程一共分为五个主要项目阶段&#xff1a;项目准备、蓝图设计、系统实现、上线准备、上线后支持。在项目启动前&#xff0c;双方必须对项目实施过程中各阶段所涉及的任务与交付件以及项目完成标志达成共识&#xff0c;各阶段项目交付…