当前位置: 首页 > news >正文

表示微调(ReFT)

1 介绍

为什么使用 ReFT?

  • 参数更少:与像 LoRA 这样的 PEFT 方法相比,ReFT 只干预表示的一小部分,并使用远少于可训练参数。内存使用和计算资源大幅减少,从而降低了时间消耗。例如,使用 ReFT 进行指令微调只需 1,000 个示例,262K 个参数,且在不到 18 分钟内完成。
  • 灵活性:ReFT 与 Hugging Face 上的每个语言模型一起工作。它附带一个库 PyReFT,其接口类似于 PEFT 库,因此您可以轻松地在 PEFT 和 ReFT 之间切换。
  • 性能:ReFT 可以启用与传统或基于 PEFT 的微调方法相似或更好的性能。

ReFT 与 PeFT 有何不同?

PEFT 方法如 LoRA 专注于减少可训练参数的数量,并更新模型权重的一小部分以适应模型。在 PEFT 中,变化是在序列中单个标记的表示上进行的。

ReFT 受到对可解释性研究的影响,该研究在时间上重复使用表示,并直接编辑其中的一小部分。它使用编码在这样表示中的强大语义信息来调整模型。

PEFT方法,例如,LoRA、DoRA和prefix-tuning,侧重于修改模型的权重或引入额外的权重矩阵。而ReFT方法不直接修改模型的权重;它们会干预模型在向前传递期间计算的隐藏表示、

  • 干预目标
    PEFT方法,例如,LoRA、DoRA和prefix-tuning,侧重于修改模型的权重或引入额外的权重矩阵。而ReFT方法不直接修改模型的权重;它们会干预模型在向前传递期间计算的隐藏表示。
  • 适应机制
    像LoRA和DoRA这样的PEFT方法学习权重更新或模型权重矩阵的低秩近似值。然后在推理期间将这些权重更新合并到基本模型的权重中,从而不会产生额外的计算开销。ReFT方法学习干预,在推理过程中在特定层和位置操纵模型的表示。此干预过程会产生一些计算开销,但可以实现更有效的适应。
  • 动机
    PEFT方法的主要动机是对参数有效适应的需求,减少了调优大型语言模型的计算成本和内存需求。另一方面,ReFT方法受到最近语言模型可解释性研究的启发,该研究表明,在这些模型学习的表示中编码了丰富的语义信息。ReFT的目标是利用和利用这些编码的知识来更有效地适应模型。

ReFT 是如何工作的?

ReFT 改变模型在正向传播过程中内部表示或隐藏状态(数字向量)。这些是针对特定任务的改变,是对表示的干预。

设置 ReFT 配置

现在我们可以通过详细说明我们想要学习的干预措施来设置 ReFT 配置。您会看到设置 ReFT 配置与 PEFT 配置非常相似。在这个演示中,我们将仅编辑第 15 层,并将低秩维度设置为 4。

# get reft model
reft_config = pyreft.ReftConfig(representations={"layer": 15,"component": "block_output","low_rank_dimension": 4,"intervention": pyreft.LoreftIntervention(embed_dim=model.config.hidden_size,low_rank_dimension=4)} ) 
reft_model = pyreft.get_reft_model(model, reft_config)
reft_model.set_device("cuda")
reft_model.print_trainable_parameters()

您会注意到可训练的参数非常少,仅占模型总参数数量的 0.0004%。

由于 ReFT 训练器期望数据以特定格式,我们将使用 PyReft 库中的 make_last_position_supervised_data_module() 函数来准备数据。

在实施 ReFT 时需要考虑的事项

就像在 PEFT 或其他微调方法中一样,在 ReFT 中找到正确的超参数设置对于获得良好的性能至关重要:

  • 层:在演示中,我简单地选择了第 15 层进行干预。
    论文建议从所有层开始,然后有系统地减少干预层的数量。
  • 位置:该论文还发现,在多个标记处进行干预比关注单个标记位置(例如,第一个或最后一个位置)可以获得更高的性能。
  • 排名:论文建议从低于 32 的排名开始,例如排名 4。
  • 共享权重:跨层共享权重可以允许层间改进。
  • 经典神经网络训练超参数:再次提醒一下,学习率、预热比例、权重衰减等因素确实起着作用,但与 ReFT 中其他基本因素相比,其影响程度要小一个数量级。
http://www.dtcms.com/a/516835.html

相关文章:

  • Redis黑马 day01
  • 如何实现两台虚拟机之间的时间同步
  • 数据库接口之防止sql注入
  • Linux下搭建Activemq的Master-Slave(共享文件模式)
  • 做网站一定需要自己买主机吗wordpress 三款站群插件之比较
  • 数据结构——拓扑排序
  • 常用网站png手机商城官方网站
  • 网站开发的经验技巧网站建设实训该写哪些内容
  • 响应式网站开发 三合一建站做网站推广一般多少钱
  • P1041题解
  • 大语言模型本地部署之转录文本总结
  • 北京建设信源官方网站wordpress如何修改logo
  • 网站在那里备案做网站的属于什么行业
  • Matalb处理arxml 连线问题存储问题。
  • iOS 26 App 查看电池寿命技巧,多工具组合实践指南
  • 孝感 网站建设公众号运营总结
  • 国内高校网站建设的调查wordpress设置略缩图外链图片
  • ITSM 目前成熟度如何?为什么中小型企业总卡在半途,以及R²AIN SUITE如何让企业突围
  • 响应式购物网站设计青岛手机网站建设报价
  • AI驱动的测试:Cypress的cy.prompt功能实践
  • SpringMVC—概述 入门程序 入门程序的工作流程 bean加载控制 Apifox工具的下载
  • 网站返回404北京网站模板
  • Profinet转TCP/IP协议中枢:构建PLC与打标卡无缝通讯的底层架构
  • Clang编译器详解:搞懂Clang编译器的前世今生和实际应用(交叉编译和静态分析)
  • 这个百度的网站怎么做的广西南宁市有公司网站设计
  • 查网站跳出率自己做手机网站
  • 钉钉云打印钉钉智能云打印
  • 网站建设招聘要求云服务器建网站
  • 17zwd一起做网站官网用html做的美食网站
  • 针对汽车远程无钥匙进入系统的新型重放同步攻击的缓解策略