Data-efficient Fine-tuning for LLM-based Recommendation

news2024/11/18 18:31:41

目录

  • 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.coloradmin.cn/o/1570923.html

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

相关文章

RabbitMQ3.13.x之十_流过滤的内部结构设计与实现

RabbitMQ3.13.x之十_流过滤的内部结构设计与实现 文章目录 RabbitMQ3.13.x之十_流过滤的内部结构设计与实现1. 概念1. 消息发布2. 消息消费 2. 流的结构1. 在代理端进行过滤2. 客户端筛选3. JavaAPI示例4. 流过滤配置5. AMQP上的流过滤6. 总结 3. 相关链接 1. 概念 流过滤的思…

linux练习-交互式传参

在shell脚本中,read 向用户显示一行文本并接受用户输入 #!/bin/bash read -p 依次输入你的姓名、年龄、家乡 name age home echo 我是$name,年龄$age,我来自$home

C++数据结构与算法——二叉树公共祖先问题

C第二阶段——数据结构和算法,之前学过一点点数据结构,当时是基于Python来学习的,现在基于C查漏补缺,尤其是树的部分。这一部分计划一个月,主要利用代码随想录来学习,刷题使用力扣网站,不定时更…

优衣库门店可视化与顾客拜访数据分组-Python数据分析项目

文章目录 项目背景1 引言2 数据说明 一、数据导入及预处理1 数据导入2 数据观察2.1 查看数据形状2.2 检查缺失值2.3 有无重复值 3 数据预处理3.1 获取详细地址3.2 批量获取经纬度3.2.1 安装geopy包3.2.2 批量获取经纬度 二、优衣库门店可视化1 数据获取1.1 读取地点数据1.2 筛选…

c语言数据结构(10)——冒泡排序、快速排序

欢迎来到博主的专栏——C语言数据结构 博主ID:代码小豪 文章目录 冒泡排序冒泡排序的代码及原理快速排序快速排序的代码和原理快速排序的其他排序方法非递归的快速排序 冒泡排序 相信冒泡排序是绝大多数计科学子接触的第一个排序算法。作为最简单、最容易理解的排序…

创新性的智慧公厕技术研发与应用

智慧公厕,作为城市基础设施的重要组成部分,扮演着提供舒适便捷卫生服务的角色。智慧公厕源头实力厂家广州中期科技有限公司,通过技术创新与应用升级,打造标杆性的智慧公厕整体解决方案。通过创新性的技术应用,智慧公厕…

字节新作:图像生成质量超越DiT

🌟每日更新最新高质量论文,关注我,时刻关注最新大模型进展。🌟 📌 元数据概览: 标题:Visual Autoregressive Modeling: Scalable Image Generation via Next-Scale Prediction作者&#xff1a…

Jupyter IPython帮助文档及其魔法命令

1.IPython 的帮助文档 使用 help() 使用 ? 使用 ?? tab 自动补全 shift tab 查看参数和函数说明 2.运行外部 Python 文件 使用下面命令运行外部 Python 文件(默认是当前目录,也可以使用绝对路径) %run *.py …

数据湖概述:大数据演进阶段-数据湖

文章目录 一. 大数据发展过程1. 离线大数据平台2. Lambda架构:速度层批层3. Kappa架构:流批一体4. 大数据架构痛点总结 二. 数据湖助力于解决数据仓库痛点问题1. 数据湖特点2. 开源数据湖的架构 三. 数据湖和数据仓库理念的对比1. 数据湖和数据仓库对比2…

LeetCode 热题 100 | 贪心算法

目录 1 121. 买卖股票的最佳时机 2 55. 跳跃游戏 3 45. 跳跃游戏 II 4 763. 划分字母区间 菜鸟做题,语言是 C 1 121. 买卖股票的最佳时机 解题思路: 维护一个变量 max_pricemax_price 用于存储排在 i 天之后的股票最高价格第 i 天的最高利润 …

Day5-Hive的结构和优化、数据文件存储格式

Hive 窗口函数 案例 需求:连续三天登陆的用户数据 步骤: -- 建表 create table logins (username string,log_date string ) row format delimited fields terminated by ; -- 加载数据 load data local inpath /opt/hive_data/login into table log…

armlinux-外部中断

s3c2440的中断框图 如果我们单纯配置一个按键的外部中断,就不存在子中断与优先级的问题。 由于是按键的外部中断,通过引脚的高低电平来触发。所以我们要先配置引脚的功能。 我们使用按键1,终端源为EINT8,对应引脚GPG0 通过用户手…

Stable diffusion 加载扩展列表报错解决方法

项目场景: 在使用Stable diffusion webui时,使用扩展列表出现错误 问题描述 点击loadfrom后,出现加载扩展列表报错 原因分析: 下载的扩展的时候,都是github 的url,需要科学上网,如果不能科学…

深澜计费管理系统 任意文件读取漏洞复现

0x01 产品简介 深澜计费管理系统是是一套完善的领先的具有复杂生物型特征的弹性认证计费系统。系统主要由 AAA 认证计费平台、系统运营维护管理平台、用户及策略管理平台、用户自助服务平台、智能客户端模块、消息推送模块、数据统计模块组成。目前在全球为超过 2500 家客户提…

MicroPython 树莓派 RP2 入门教程

系列文章目录 前言 Raspberry Pi Pico 开发板(图片来源:Raspberry Pi 基金会)。 以下是 Raspberry Pi RP2xxx 板的快速参考资料。如果您是第一次使用该开发板,了解微控制器的概况可能会对您有所帮助: 一、关于 RP2xxx…

【项目实战】——商品管理的制作完整代码

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

数据结构:详解【树和二叉树】

1. 树的概念及结构(了解) 1.1 树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝…

Vue项目登录页实现获取短信验证码的功能

之前我们写过不需要调后端接口就获取验证码的方法,具体看《无需后端接口,用原生js轻松实现验证码》这个文章。现在我们管理后台有个需求,就是登录页面需要获取验证码,用户可以输入验证码后进行登录。效果如下,当我点击获取验证码后能获取短信验证码: 这里在用户点击获取…

Cortex-M7 异常处理与返回

1 前言 当CM3开始响应一个中断时,会在它小小的体内奔涌起三股暗流:  入栈: 把8个寄存器的值压入栈;  取向量:从向量表中找出对应的服务程序入口地址;  选择堆栈指针MSP/PSP,更新堆栈指针…

LeetCode 19.删除链表的倒数第N个结点

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5] 示例 2: 输入:head [1], n 1 输出:[] 示例 3&#x…