RLVR强化学习训练成本暴降98%!12种PEFT方法大PK,结果让人意外...

一、研究背景:当LoRA遇上强化学习,谁才是最强王者?

最近大语言模型(LLM)在数学推理等复杂任务上的表现越来越惊艳。特别是"基于可验证奖励的强化学习"(Reinforcement Learning with Verifiable Rewards,简称RLVR)这个训练范式,已经成为进一步提升模型推理能力的主流方法。简单来说,就是让模型做数学题,做对了给奖励,做错了不给,通过这种方式让模型越来越聪明。

但问题来了——强化学习训练特别"烧钱",需要海量算力。为了降低成本,研究者们通常会用参数高效微调(PEFT)方法,其中最流行的就是LoRA(低秩适应)。LoRA的核心思想很简单:不更新所有参数,只训练一小部分低秩矩阵,就能达到不错的效果。

但这里有个关键问题:大家默认用LoRA,真的是因为它最适合强化学习吗?

这篇论文的作者团队(来自浙江大学、香港科技大学、布朗大学等机构)就盯上了这个问题。他们发现,虽然LoRA的各种变体层出不穷,但在强化学习场景下,大家几乎都还在用最原始的标准LoRA。这太奇怪了——明明在监督学习场景下,DoRA、AdaLoRA等变体已经被证明比标准LoRA更强,为什么在强化学习中就没人系统研究过呢?

于是,作者们提出了核心研究问题:哪种参数高效方法最适合强化学习?

为了回答这个问题,他们构建了一个大规模评测基准,在DeepSeek-R1-Distill模型家族(1.5B和7B参数规模)上测试了超过12种PEFT方法,涵盖MATH-500、AIME24/25等数学推理任务。

论文的三大核心发现非常颠覆认知:

  1. 结构变体完胜标准LoRA:DoRA、MiSS、AdaLoRA这些结构变体的表现持续超越标准LoRA,DoRA甚至比全参数微调还要强!
  2. **SVD初始化会"翻车"**:PiSSA、MiLoRA这类基于奇异值分解(SVD)的初始化策略在强化学习中会彻底崩溃。作者通过频谱分析揭示了背后的机制:这些方法强制在主成分上更新,但强化学习偏偏需要在"非主成分"空间学习,两者根本不兼容。
  3. 参数压缩不是越狠越好:VeRA、Rank-1适配器这种极端压缩方法会严重限制模型的"可塑性",导致性能崩盘。强化学习需要一定的表达能力下限,压得太狠反而学不到东西。

二、相关工作:RLVR与PEFT的"前世今生"

RLVR:用验证器"调教"模型

传统的RLHF(基于人类反馈的强化学习)需要人工标注,成本高昂。而RLVR换了个思路:对于数学题、代码这类有确定答案的任务,直接用规则验证器(比如检查数学答案是否正确)给奖励。这种方法的核心算法是GRPO(组相对策略优化)。

GRPO的工作原理是:给模型一道题,让它生成多个答案(比如8个),然后用这一组答案的奖励来计算"优势值",判断哪些答案应该被强化,哪些应该被抑制。目标函数大概长这样:

后来还出现了DAPO、Dr. GRPO等改进版本,主要解决训练不稳定、样本效率低等问题。比如DAPO引入了"非对称裁剪"策略,让低概率的探索token更容易被提升;Dr. GRPO去掉了长度归一化,避免模型偏好"长而错"的答案。

PEFT家族:十八般武艺各显神通

PEFT方法可以分成几大类:

基线方法:全参数微调(性能上限)和标准LoRA(效率基线)。LoRA的核心公式是:

其中是冻结的预训练权重,和是低秩矩阵,是秩(通常远小于原始维度)。

结构变体:这类方法改变了LoRA的架构设计。比如DoRA把权重更新拆成"方向"和"幅度"两部分;AdaLoRA用类似SVD的结构动态调整秩;MiSS通过子网络选择来分配参数。

初始化策略:保留LoRA架构,但改变初始化方式。PiSSA和MiLoRA用SVD把分解,然后用主成分或次要成分初始化适配器;LoRA+给和设置不同的学习率。

极致压缩:为了省显存,LoRA-FA冻结只训练;VeRA更狠,连低秩矩阵都冻结,只训练缩放向量。

其他PEFT:比如LayerNorm Tuning只调归一化层参数;IA³通过逐元素乘法缩放激活值。

三、核心方法:如何"公平竞赛"这12种PEFT?

实验设计

为了确保评测的公平性和可靠性,作者们下了很大功夫:

模型选择:用DeepSeek-R1-Distill系列的1.5B和7B模型。这些模型已经经过监督微调(SFT),具备基础推理能力和标准输出格式(把推理过程放在<think>标签里,最终答案放在\boxed{}里)。

数据集:使用DAPO-Math-17k数据集(约17,400道高质量数学题),在AIME24/25、MATH-500、AMC等六个数学推理基准上评测。

训练配置:统一超参数——学习率1e-5、LoRA秩32、dropout 0.05。每道题生成8个答案,用DAPO算法训练。1.5B模型训练1024步(批次大小128),7B模型训练8192步(批次大小32)。

奖励机制:非常严格的二元奖励——答案完全正确得1分,否则0分。用latex2sympy和math_verify来验证数学等价性。

评测指标:为了应对AIME这类样本量小的基准的统计波动,采用Avg@k指标(k次生成的平均准确率)和Pass@1(k次生成中至少有一次正确)。

消融实验的"四个维度"

为了验证发现的稳健性,作者们做了非常全面的消融研究:

  1. 批次大小(32 vs 128):测试PEFT方法是否像SFT那样偏好小批次。
  2. 算法变体(GRPO、DAPO、Dr. GRPO):验证结论是否依赖特定算法。
  3. 学习率(1e-5、5e-6、1e-6):确认最优学习率范围。
  4. LoRA秩(1、8、16、32):探索秩与性能的关系。

四、实验效果:三大发现颠覆认知

发现1:LoRA已经"过时",结构变体才是王道

实验结果一出来就很震撼:标准LoRA(42.5%)全面落后于全参数微调(44.9%),而结构变体们则大放异彩:

  • DoRA:平均准确率46.6%,不仅超越LoRA,甚至比全参数微调还强!在AIME24上达到39.0%,在AMC上71.9%。
  • AdaLoRA:44.2%,稳定超越LoRA。
  • MiSS:43.4%,也比LoRA表现更好。

为什么会这样?作者认为,标准LoRA的低秩约束太"死板",无法应对强化学习中复杂的策略调整需求。而DoRA通过解耦幅度和方向,AdaLoRA通过自适应秩分配,MiSS通过参数分片,都提供了更灵活的优化空间,更符合RLVR的优化动态。

核心结论:别再无脑用标准LoRA了!在强化学习场景下,结构变体才是最优选择。

发现2:SVD初始化的"灾难性崩溃"

这个发现特别有意思。理论上,PiSSA和MiLoRA这类SVD初始化方法应该挺合理的:

  • PiSSA:用主成分(大奇异值)初始化,假设重要信息集中在主成分。
  • MiLoRA:反其道而行,用次要成分(小奇异值)初始化,认为这样能保留更多"新"信息。

结果呢?**PiSSA直接崩盘到0.2%准确率,MiLoRA也只有18.0%**。这是怎么回事?

作者做了深入的频谱分析(见图3)。关键发现是:强化学习更新主要发生在"非主成分"空间。最近的研究(Zhu et al., 2025)揭示,RLVR为了保护预训练模型的知识结构,会避开高曲率的主成分,在低曲率的非主成分子空间学习。

  • PiSSA为什么失败:它强制在主成分上更新,和RLVR的"非主成分偏好"直接冲突,导致训练崩溃。
  • MiLoRA为什么失败:虽然初始化在次要成分,但这些成分的奇异值太小(接近0),导致初始适配器几乎为零。没有足够的初始偏置,梯度会自动"滑向"主成分方向(因为梯度沿着最大方差方向),最终还是退化成主成分更新。

频谱分析图显示:MiLoRA最终的更新分布和PiSSA几乎一样,都在主成分上有明显尖峰,而全参数微调的更新是均匀分布在整个频谱上的。

核心结论:基于SVD的初始化策略不适合RLVR。如果想改进初始化,应该像LoRA+那样调整学习率动态,而不是玩SVD分解的花样。

发现3:参数压缩的"表达力地板"

很多人可能觉得,参数越少越好——既省显存又省算力。但实验揭示了一个残酷真相:强化学习对参数量有下限要求

对比一下不同方法的可训练参数比例:

  • 全参数:100%(准确率44.9%)
  • LoRA:1.55%(准确率42.5%)
  • MiSS:0.99%(准确率43.4%)——压缩到LoRA的2/3,性能反而略好
  • LoRA-FA:冻结一半参数(准确率43.0%)——还能接受
  • VeRA:0.0029%(准确率40.7%)——崩了
  • IA³:只调缩放向量(准确率22.3%)——崩得更厉害
  • LN Tuning:只调归一化层(准确率41.8%)——勉强能用但明显变弱
  • Rank-1 LoRA(准确率40.5%)——和基线模型一样,等于没训练

为什么会这样?作者解释说,强化学习的监督信号是稀疏的(只有0或1的奖励信号),不像监督学习有密集的token级别反馈。这种稀疏信号需要足够的参数空间来"承载"复杂的策略调整。极端压缩方法(如VeRA只训练缩放向量)创造了一个"信息瓶颈",严重限制了模型学习推理行为的能力。

核心结论:参数高效不等于参数越少越好。要在效率和表达力之间找平衡,别把模型"饿"得太厉害。

消融实验:结论稳如泰山

作者做的消融实验也很有料:

批次大小:和SFT不同,RLVR对批次大小不那么敏感。小批次(32)略好于大批次(128),但差距不大。这可能是因为强化学习的稀疏奖励不会像SFT的密集信号那样"撑爆"适配器容量。

算法变体:无论用GRPO、DAPO还是Dr. GRPO,结论都一致——说明PEFT方法的优劣是由"稀疏可验证奖励"这个根本特性决定的,而不是具体算法细节。

学习率:验证了之前的缩放律——最优学习率大约是。太大会不稳定,太小学不动。

LoRA秩:Rank=32 > Rank=16 > Rank=8 >> Rank=1。别信"Rank=1就够了"的鬼话,保持适中的秩(16-32)才是王道。

7B模型验证:结论可扩展

为了证明发现不是1.5B小模型的特殊现象,作者在7B模型上重复了实验。结果非常一致:

  • LoRA:54.8%
  • DoRA:55.0%
  • LoRA+:55.5%(最佳)
  • MiSS:53.4%

DoRA和LoRA+仍然稳定超越标准LoRA,说明结构优化和学习率调整的优势在大模型上依然有效

五、论文总结:给强化学习训练指一条明路

这篇论文做了一件非常扎实的工作:第一次系统评测了PEFT方法在强化学习中的表现。三大发现为我们指明了方向:

  1. 停用标准LoRA,改用结构变体:DoRA、MiSS、AdaLoRA在RLVR场景下明显更强,DoRA甚至能超越全参数微调。如果你还在用标准LoRA训练强化学习模型,那真的该升级工具箱了。
  2. 远离SVD初始化的坑:PiSSA和MiLoRA在强化学习中会翻车,原因是它们和RLVR的"非主成分更新"特性存在根本性冲突。如果想优化初始化,学LoRA+调学习率就好,别折腾SVD分解。
  3. 保持适度的参数量:极端压缩(VeRA、IA³、Rank-1)会让模型"饿"到学不动。强化学习的稀疏信号需要足够的表达能力,别为了省那点显存牺牲性能。

作者们还很诚实地指出了未来工作方向:迁移到更高性能的训练框架(如VeRL)、深入研究适配器动态的理论机制、扩展到多模态和长期训练场景、解决权重合并的数值稳定性问题等。

最后的最后,这篇论文给强化学习社区提供了一份"PEFT选型指南":如果你要训练数学推理、代码生成等基于验证器反馈的模型,DoRA是首选,LoRA+是备选,标准LoRA只能算"能用但不够好",而SVD初始化和极端压缩方法请直接避开。这份指南,值得每个做RLVR的研究者和工程师收藏!

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

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

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

相关文章

Z-Image-Turbo停止生成任务的方法:刷新页面即可中断

Z-Image-Turbo停止生成任务的方法&#xff1a;刷新页面即可中断 阿里通义Z-Image-Turbo WebUI图像快速生成模型 二次开发构建by科哥 运行截图 核心提示&#xff1a;在使用阿里通义Z-Image-Turbo WebUI进行AI图像生成时&#xff0c;若需立即终止正在执行的生成任务&#xff0c…

Z-Image-Turbo多风格测试:快速搭建评估环境

Z-Image-Turbo多风格测试&#xff1a;快速搭建评估环境 作为一名艺术指导&#xff0c;我经常需要评估不同AI工具在多种艺术风格下的表现。传统方法需要手动配置环境、安装依赖、调试参数&#xff0c;过程繁琐耗时。而Z-Image-Turbo的出现彻底改变了这一局面——这款由阿里巴巴通…

AI生成图像模糊?Z-Image-Turbo分辨率优化四步法

AI生成图像模糊&#xff1f;Z-Image-Turbo分辨率优化四步法 阿里通义Z-Image-Turbo WebUI图像快速生成模型 二次开发构建by科哥 在AI图像生成领域&#xff0c;分辨率不足导致的模糊问题是用户最常遇到的痛点之一。尽管阿里通义推出的 Z-Image-Turbo WebUI 模型以“快速生成”著…

工业自动化中的CRC校验实践指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个专为工业通信设计的CRC校验工具&#xff0c;重点支持Modbus RTU协议使用的CRC-16算法。功能要求&#xff1a;1&#xff09;模拟Modbus数据帧生成&#xff1b;2&#xff09…

MGeo模型在气象观测站地理位置归并中的应用

MGeo模型在气象观测站地理位置归并中的应用 引言&#xff1a;气象数据整合中的地址归一化挑战 在气象信息系统建设中&#xff0c;来自不同区域、不同时期的气象观测站数据往往存在严重的元数据不一致性。尤其在站点名称和地址描述上&#xff0c;同一物理站点可能因录入习惯、行…

政务数据整合实战:MGeo助力打通多部门地址信息孤岛

政务数据整合实战&#xff1a;MGeo助力打通多部门地址信息孤岛 在政务数据治理中&#xff0c;跨部门、跨系统的地址信息不一致是长期存在的“老大难”问题。公安、民政、税务、社保等系统各自维护独立的地址数据库&#xff0c;命名方式、层级结构、表述习惯差异巨大&#xff0…

Z-Image-Turbo艺术创作应用:油画风格山脉日出生成记

Z-Image-Turbo艺术创作应用&#xff1a;油画风格山脉日出生成记 项目背景与技术定位 在AI图像生成领域&#xff0c;快速、高质量的视觉内容创作正成为数字艺术和设计行业的核心需求。阿里通义实验室推出的 Z-Image-Turbo 模型&#xff0c;基于扩散机制实现了极高的推理效率&a…

企业级杀毒软件实战评测:十大品牌真实防护效果对比

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个企业杀毒软件评测平台&#xff0c;功能包括&#xff1a;1. 自动化测试框架模拟各类病毒攻击 2. 实时监控软件资源占用情况 3. 生成详细测试报告 4. 提供横向对比图表 5. 支…

Z-Image-Turbo星空延时摄影效果生成

Z-Image-Turbo星空延时摄影效果生成 阿里通义Z-Image-Turbo WebUI图像快速生成模型 二次开发构建by科哥 运行截图 本文属于「实践应用类」技术博客&#xff0c;聚焦于如何利用阿里通义Z-Image-Turbo WebUI进行星空延时摄影风格图像序列的批量生成与后期合成。我们将从实际需求…

python基于uni-app的在线购物平台系统的设计与实现django_jd46swe2

文章目录摘要关键词主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;摘要 基于Python的Django框架与uni-app跨平台开发技术&#xff0c;设计并实现了一个在…

边缘计算场景:轻量级MGeo模型的部署与优化

边缘计算场景&#xff1a;轻量级MGeo模型的部署与优化实践 为什么需要轻量级MGeo模型&#xff1f; 在物联网设备上实现地址识别功能时&#xff0c;我们常常面临资源受限的挑战。MGeo作为多模态地理语言模型&#xff0c;虽然在地理位置识别任务中表现出色&#xff0c;但其标准版…

零基础入门:用LangChain中文手册学AI开发

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个面向新手的LangChain学习助手&#xff0c;基于官方中文手册内容。助手应提供循序渐进的学习路径&#xff0c;从安装配置到简单应用开发。包含交互式代码示例&#xff0c;允…

Z-Image-Turbo高级功能解锁:批量生成与元数据导出

Z-Image-Turbo高级功能解锁&#xff1a;批量生成与元数据导出 引言&#xff1a;从基础使用到工程化落地 阿里通义Z-Image-Turbo WebUI图像快速生成模型&#xff0c;是由科哥基于通义实验室开源技术进行二次开发构建的高效AI图像生成工具。该系统在保留原始模型强大生成能力的基…

Z-Image-Turbo微观世界:细胞、分子尺度视觉想象

Z-Image-Turbo微观世界&#xff1a;细胞、分子尺度视觉想象 在人工智能生成图像技术飞速发展的今天&#xff0c;阿里通义实验室推出的 Z-Image-Turbo 模型以其高效的推理速度与高质量的图像生成能力脱颖而出。由开发者“科哥”基于该模型进行二次开发构建的 WebUI 版本&#x…

Z-Image-Turbo收藏夹功能增强用户体验

Z-Image-Turbo收藏夹功能增强用户体验 阿里通义Z-Image-Turbo WebUI图像快速生成模型 二次开发构建by科哥 运行截图 收藏夹功能&#xff1a;提升提示词复用效率的核心设计 在AI图像生成过程中&#xff0c;高质量提示词&#xff08;Prompt&#xff09;是决定输出效果的关键因…

CH340开发效率提升:传统vsAI代码生成对比

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 请分别用传统方式和AI生成方式创建CH340的串口通信代码&#xff0c;要求&#xff1a;1. 传统方式手动编写基础功能&#xff1b;2. AI方式生成增强功能版&#xff1b;3. 对比两份代…

大模型RAG“翻车“?原来是分块没做好!小白程序员必看的分块秘籍,让你的AI应用准确率飙升300%

如果你正在构建基于大语言模型&#xff08;LLMs&#xff09;的 AI 应用&#xff0c;那么用你的特定数据来“锚定”生成的文本响应&#xff0c;是获得准确答案的关键。检索增强生成&#xff08;RAG&#xff09; 将大语言模型与外部知识源&#xff08;如向量数据库&#xff09;连…

Z-Image-Turbo监控告警:异常状态自动通知配置

Z-Image-Turbo监控告警&#xff1a;异常状态自动通知配置 引言&#xff1a;AI图像生成服务的稳定性挑战 随着Z-Image-Turbo WebUI在实际业务场景中的广泛应用&#xff0c;其作为核心AI图像生成服务的稳定性变得至关重要。尽管该模型具备高效的推理能力与友好的用户界面&#xf…

实战记录:如何用预装镜像1小时完成动漫头像生成器POC

实战记录&#xff1a;如何用预装镜像1小时完成动漫头像生成器POC 作为一名经常需要快速验证AI解决方案的技术顾问&#xff0c;我最近遇到了一个典型场景&#xff1a;客户要求在24小时内演示动漫头像生成器的可行性。面对这种紧急需求&#xff0c;从零搭建环境显然不现实。幸运…

成本对比:自建GPU环境vs云端预置方案

成本对比&#xff1a;自建GPU环境vs云端预置方案 作为一位技术主管&#xff0c;当你面临AI基础设施投资决策时&#xff0c;最核心的问题往往是&#xff1a;自建GPU环境还是采用云端预置方案更划算&#xff1f; 这个问题没有标准答案&#xff0c;需要根据项目周期、团队规模和技…