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可以有效防止病毒自我运行。因为运行的条件是必…

【接口】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…

基于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…

考研经验与科目学习建议

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

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

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

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

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

微信小程序 python+django口腔牙科问诊系统 springboot设计与实现_1171u

口腔助手”小程序主要有管理员&#xff0c;医生和用户三个功能模块。以下将对这三个功能的作用进行详细的剖析。 本文通过采用B/S架构&#xff0c;uniapp框架、MySQL数据库&#xff0c;结合国内“口腔助手”管理现状&#xff0c;开发了一个基于微信小程序的“口腔助手”小程序。…

TCP客户端及服务器端开发实践

一、TCP客户端及服务器端开发实践 1、TCP网络应用程序开发分类 ① TCP客户端应用程序开发 ② TCP服务器端应用程序开发 客户端程序是指运行在用户设备上的程序&#xff0c;服务端程序是指运行在服务器设备上的程序&#xff0c;专门为客户端提供数据服务。那如何记忆呢&…

软考--软件设计师(软件工程总结1)

目录 1.定义 2.软件生存周期 3.软件过程&#xff08;即软件开发中遵循的一系列可预测的步骤&#xff09; ​编辑4.软件开发模型 5.需求分析&#xff08;软件需求分析&#xff0c;系统需求分析或需求分析工程&#xff09; 6. 需求工程 7.系统设计 8.系统测试 1.定义 软件…

【开发环境】Mac 安装 Visual Studio Code ( VSCode 简介 | 下载 VSCode | 安装 VSCode | 安装中文语言包 )

文章目录 一、Visual Studio Code 简介二、MAC 安装 Visual Studio Code1、下载 Visual Studio Code2、安装 Visual Studio Code3、安装中文语言包4、编辑 html 并运行 一、Visual Studio Code 简介 Visual Studio Code 简称 VSCode , 是 微软 开发的一款 轻量级 / 跨平台 的代…

腾讯云服务器4核8g配置好不好?用它干啥使?

腾讯云4核8G服务器多少钱&#xff1f;腾讯云4核8G轻量应用服务器12M带宽租用价格646元15个月&#xff0c;活动页面 txybk.com/go/txy 活动链接打开如下图所示&#xff1a; 腾讯云4核8G服务器优惠价格 这台4核8G服务器是轻量应用服务器&#xff0c;详细配置为&#xff1a;轻量4核…

【Pt】马灯贴图绘制过程 05-铁丝与渲染出图

目录 效果 步骤 一、基本材质 二、浮尘 三、渲染 效果 步骤 一、基本材质 CtrlAlt鼠标右键选中指定的纹理集 在智能材质中将“Iron Forged Old”加入图层 将智能材质“Iron Forged Old”文件夹打开&#xff0c;将图层“Base”和“Edge”的基本颜色改暗一点 二、浮尘 新…

746.Leetcode 使用最小花费爬楼梯

746.Leetcode 使用最小花费爬楼梯 给你一个整数数组 cost &#xff0c;其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用&#xff0c;即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯…