LEARNING DYNAMICS OF LLM FINETUNING【论文阅读笔记】
LEARNING DYNAMICS OF LLM FINETUNING
一句话总结
作者将LLM的学习动力机制拆解成AKG三项,并分别观察了SFT和DPO训练过程中正梯度信号和负梯度信号的变化及其带来的影响,并得到以下结论:
- SFT通过梯度相似性间接提升无关回答置信度;
- DPO负梯度回传会引发confidence(softmax score) 向模型训练前confidence最高的token聚集:DPO中正样本与 负样本之间的margin虽然在增大,但正样本的confidence的上涨幅度却没有训练前模型最中意的答案的confidence涨得快。
吐槽一下,这篇非常不适合LLM伴读和粗读,因为符号多,符号的描述写的很松散,图表的讲解非常碎(一张图的解释可能会横跨两个subsection),我开始用LLM伴读给我弄的非常混乱,自己粗读发现跳过一两段可能一个符号什么意思就不知道了。最后老老实实一行一行读。虽然作者的工作非常详实,但是……只能说这种写法不坑老实人吧。
↓↓↓这里先补充一下Learning Dynamic的分析逻辑↓↓
学习动力机制(Learning Dynamic)指什么?
Learning Dynamic,简单来说,就是研究每次模型经过一个batch的数据训练后,参数发生了变化,这个变化如何影响模型的表现。具体来说,哪些方面变好了?哪些方面变差了?
用来描述哪些方面变好,哪些方面变差的工具就是先做一个观察数据集,这个数据集是静态的。
观察一个batch的训练后,观察数据集里的<哪些样本>的预测结果有<什么样>的变化,就是研究Learning Dynamic。
为了衔接论文里的公式,这里把上面学习动力机制研究的公式写出来
第一步:定义,参数更新对特定样本的输出的影响
f ( x ; θ ) = π ( z ( x ; θ ) ) f(x;θ)=π(z(x;θ)) f(x;θ)=π(z(x;θ)) π π π是最后一层的softmax函数, x o x_o xo指的是观察集的样本。
—>参数更新 Δ θ Δθ Δθ 会导致输入 x x x的输出变化是
Δ f ( x o ; θ ) ≈ ∇ θ f ( x o ; θ ) ⋅ Δ θ Δf(x_o;θ)≈∇_θf(x_o;θ)⋅Δθ Δf(xo;θ)≈∇θf(xo;θ)⋅Δθ
第二步:展开 第一项
∇ θ f ( x o ; θ ) = ∂ π ( z ( x o ; θ ) ) ∂ z ⏟ softmax雅可比 J π ( z ) ⋅ ∇ θ z ( x o ; θ ) ⏟ logits的梯度 \nabla_\theta f(x_o;\theta) = \underbrace{\frac{\partial \pi(z(x_o;\theta))}{\partial z}}_{\text{softmax雅可比 } J_\pi(z)} \cdot \underbrace{\nabla_\theta z(x_o;\theta)}_{\text{logits的梯度}} ∇θf(xo;θ)=softmax雅可比 Jπ(z) ∂z∂π(z(xo;θ))⋅logits的梯度 ∇θz(xo;θ)
第三步: Δ θ Δθ Δθ 把梯度替换成 当批次样本 { x 1 , . . . , x i , . . . x n } \{x_1,...,x_i,...x_n\} {x1,...,xi,...xn} 带来的梯度
把 Δ θ Δθ Δθ 替换成 Δ θ = − η ∇ θ L ( θ ) Δθ=−η∇ _{θ}L(θ) Δθ=−η∇θL(θ) 即学习率乘以梯度
∇ θ L ( θ ) = 1 n ∑ i = 1 n ( π ( z ( x i ; θ ) ) − y i ) ⊤ ⋅ ∇ θ z ( x i ; θ ) ⏟ 通过链式法则: ∂ L ∂ z ⋅ ∂ z ∂ θ \nabla_\theta L(\theta) = \frac{1}{n} \sum_{i=1}^n \underbrace{\left( \pi(z(x_i;\theta)) - y_i \right)^\top \cdot \nabla_\theta z(x_i;\theta)}_{\text{通过链式法则:} \frac{\partial L}{\partial z} \cdot \frac{\partial z}{\partial \theta}} ∇θL(θ)=n1i=1∑n通过链式法则:∂z∂L⋅∂θ∂z (π(z(xi;θ))−yi)⊤⋅∇θz(xi;θ)
第四步:两个展开式带回源式
Δ f ( x ; θ ) ≈ − η n ∑ i = 1 n [ J π ( z ( x ; θ ) ) ⋅ ∇ θ z ( x ; θ ) ] ⋅ [ ( π ( z ( x i ; θ ) ) − y i ) ⊤ ⋅ ∇ θ z ( x i ; θ ) ] \Delta f(x;\theta) \approx -\frac{\eta}{n} \sum_{i=1}^n \left[ J_\pi(z(x;\theta)) \cdot \nabla_\theta z(x;\theta) \right] \cdot \left[ \left( \pi(z(x_i;\theta)) - y_i \right)^\top \cdot \nabla_\theta z(x_i;\theta) \right] Δf(x;θ)≈−nηi=1∑n[Jπ(z(x;θ))⋅∇θz(x;θ)]⋅[(π(z(xi;θ))−yi)⊤⋅∇θz(xi;θ)]
第五步:把gradient乘积写成NTK项
Δ f ( x ; θ ) ≈ − η n J π ( z ( x ; θ ) ) ∑ i = 1 n ⟨ ∇ θ z ( x ; θ ) , ∇ θ z ( x i ; θ ) ⟩ ⏟ NTK项 K ( x , x i ) ⋅ ( π ( z ( x i ; θ ) ) − y i ) Δf(x;θ) ≈ -\frac{η}{n} J_π(z(x;θ)) \sum_{i=1}^n \underbrace{\left\langle \nabla_θ z(x;θ), \nabla_θ z(x_i;θ) \right\rangle}_{\text{NTK项 } \mathbf{K}(x, x_i)} \cdot \left( π(z(x_i;θ)) - y_i \right) Δf(x;θ)≈−nηJπ(z(x;θ))i=1∑nNTK项 K(x,xi) ⟨∇θz(x;θ),∇θz(xi;θ)⟩⋅(π(z(xi;θ))−yi)
最终
Δ f ( x o ; θ ) ≈ − η n ⋅ J π ( z ( x o ; θ ) ) ⏟ softmax非线性效应 ⋅ ∑ i = 1 n K ( x o , x i ) ⏟ 样本相关性 ⋅ ( π ( z ( x i ; θ ) ) − y i ) ⏟ 训练样本误差 \Delta f(x_o;\theta) \approx -\frac{\eta}{n} \cdot \underbrace{J_\pi(z(x_o;\theta))}_{\text{softmax非线性效应}} \cdot \sum_{i=1}^n \underbrace{\mathbf{K}(x_o, x_i)}_{\text{样本相关性}} \cdot \underbrace{\left( \pi(z(x_i;\theta)) - y_i \right)}_{\text{训练样本误差}} Δf(xo;θ)≈−nη⋅softmax非线性效应 Jπ(z(xo;θ))⋅i=1∑n样本相关性 K(xo,xi)⋅训练样本误差 (π(z(xi;θ))−yi)
最终这个式子里面的第一项、第二项和第三项分别对应了文章公式3的 AKG。
其中K的部分,代表了在函数空间中的样本相关性(不是两个样本乍看之下像不像,而是通过梯度核(NTK)映射之后像不像。文章在分析SFT时会一直用这个角度
G是训练样本误差带来的影响,这个在DPO分析中还会被拆成正负两项(因为DPO用的是margin)
关键细节与结论
1. G项给SFT带来的是训练Token的confidence上升
这里的confidence指的是Token的输出概率(softmax之后的score)
看上图中左侧第一张图,灰色是本步骤之前的这个样本的词表上的所有Score的曲线。蓝色就是这一步训练之后,词表上所有词的Score的变化。
这是很符合直觉的,也是论文的前菜.(但是这张图特别不好,把后面要说的东西的分析也放这儿了,看着很乱。大概是因为投稿篇幅的关系,作者压进来了)
2. SFT中 出现在训练集里的y,会在挂羊头卖狗肉的情况下也很自信
文中figure3的这张图,展示的是
π ( y u + ∣ x u ) π(y_{u^+}|x_u) π(yu+∣xu) -虚线, π ( y j ∣ x u ) π(y_{j}|x_u) π(yj∣xu)-蓝色线, 和 π ( y t e s t + ∣ x u ) π(y_{test^+}|x_u) π(ytest+∣xu)-橙色线 在训练过程中的变化。( π π π是softmax函数,这三条线都对应的是模型分)
其中 π ( y u + ∣ x u ) π(y_{u^+}|x_u) π(yu+∣xu) 就是训练集中样本A 对应的答案A的概率;
π ( y j ∣ x u ) π(y_{j}|x_u) π(yj∣xu)是训练集中样本A作为context(或者说prompt),后面接样本B的正确答案y_j的时候的score
π ( y t e s t + ∣ x u ) π(y_{test^+}|x_u) π(ytest+∣xu) 是训练集中样本A作为context,后面接测试集中某个样本的正确答案的时候的score。
如果按照我们的希望🔽
给定样本A的prompt,样本B的正确答案作为output的时候,这个答案是错的,他的confidence不应该上涨。
但在作者的实验记录下,这一数值上涨了。这就是作者认为SFT中一部分幻觉的来源
3. K项给SFT带来的是意思相近和格式相近的答案的confidence的上升
作者在分析的时候使用的是DPO数据集(Antropic-HH 和UltraFeedback),尽管他在训练SFT的时候仅适用了 DPO数据集中的prefer样本 y u + y_{u^+} yu+,但在分析中他同时分析了less prefer(负样本) y u − y_{u^-} yu−。
下图中, y u + y_{u^+} yu+ 是DPO样本集中<正样本>
y u − y_{u^-} yu− 是DPO样本集中<负样本>
y g p t s + y_{gpts^+} ygpts+ 是用GPT针对DPO样本集中<正样本>做的同意改写样本
y g p t s − y_{gpts^-} ygpts− 是用GPT针对DPO样本集中<负样本>做的同意改写样本
y h u m y_{hum} yhum 是随机的一个句子(跟训练样本无关)
y j ≠ u + y_{{j≠u}^+} yj=u+ 是训练集中另一个样本的<正样本>
y t e s t + y_{{test}^+} ytest+ 是测试集中某个样本的<正样本>
y r n d y_{{rnd}} yrnd 是随机英文词组成的字符串(连句子都不是)
基于以上符号意义,观察上图,蓝色部分confidence上涨,橙色就是下降。上图中左侧多个列都显示,每训练25步 [ x u ; y u ] [x_u;y_u] [xu;yu]就观察一次,发现一些语义或者格式相似( y g p t s + y_{gpts^+} ygpts+)的样本的confidence也上涨了。
同时乱序的字符串( y h u m y_{hum} yhum和 y r n d y_{rnd} yrnd)训练的时候,其他有正常语义的答案的confidence都会降低。因为,用K来衡量的距离跟这些乱序的答案的距离是很大的,Learning Dynamic的角度上看这些confidence也确实应该下降。
》最炸裂的其实是这个图的最后一列 DPO这列,这列引入的是下面一个结论
4. DPO中的负梯度会给所有未被训练的答案打负分
作者实验中发现,如果下图左1所示,在用DPO训练很多个epoch的过程中,根据训练样本正确答案改写的正样本 y g p t s + y_{gpts^+} ygpts+ (语义相同)和 y g p t f + y_{gptf^+} ygptf+ (格式相同)的confidence都在持续下降。
这是与我们的直觉相反的。
同时,上图左2显示,不仅DPO中正样本的改写样本的confidence在持续下滑,负样本的confidence也在持续下滑(仔细看数轴,这组斜率更大)
看上图的左4,在训练中的正样本和负样本的confidence的变化是:正样本的confidence先上涨后下滑,到第四个epoch,连正样本的confidence都比训练前要低了;而负样本的confidence全程咔咔下跌。
那正负样本的confidence都跌了,谁涨了呢?(毕竟是用softmax转换过的score,有人跌就有人涨)
答:看第左5,图中的黑线是模型在DPO之前(如果按照RL的说法,可以说是reference model)最prefer的答案的概率。
整个训练过程,reference model中概率最高的token的概率涨的最猛,比训练的正样本y还猛。
5. 这种错位的虹吸效应的源头是DPO的负梯度影响
文中的大部分拆解都沿用了经典的拆分方案。DPO上做了一个变化,把G分成了正负两部分。
这里有个比较讨厌的东西 χ u − χ^-_u χu− 这个符号其实是附录中下面高亮部分的意思,就是 x u x_u xu是一样的,y不一样。这么表示其实有点讨厌,一来是符号不在公式附近(在附录B),二来这么写其实挺容易让人误解的。
前面这种奇怪的现象主要来自于负梯度的回传,也就是 G − G^- G−的部分。
在附录中,作者还展示了reference model对 y u + y_{u^+} yu+分布形状不同的时候 ,DPO的负梯度带来的影响差别。
上面这个分析有个需要注意的点,就是这个DPO是off-policy的(虽然我们说DPO的时候通常就是off-policy的),即完全是静态的样本集,正样本和负样本都不是通过play逐步变化的。
那如果是on-policy的,也就是随着模型训练,概率分布有变化的时候(或者 y u + = y u ∗ y_{u^+}=y_{u^*} yu+=yu∗ 或 y u − = y u ∗ y_{u^-}=y_{u^*} yu−=yu∗ , u ∗ u^* u∗指的就是reference model最中意的答案。)负梯度带来的影响是什么样的?
灰线是训练前,蓝线是训练后
看图的第三行,在原先分布是有几个特殊token的概率较高的情况下, y u − y_{u^-} yu−直接作用到reference模型概率最高的token上时,其他概率相对较高的token的概率被直接抬起来很多。
看图的第四行,在原先分布是有几个特殊token的概率较高的情况下, y u − y_{u^-} yu−直接作用到reference模型概率很低的token时,原先概率最高的token的概率被大大提升了。而不是所有概率高的token的概率都提升了,而是效用集中到一个token上。
相关文章:
LEARNING DYNAMICS OF LLM FINETUNING【论文阅读笔记】
LEARNING DYNAMICS OF LLM FINETUNING 一句话总结 作者将LLM的学习动力机制拆解成AKG三项,并分别观察了SFT和DPO训练过程中正梯度信号和负梯度信号的变化及其带来的影响,并得到以下结论: SFT通过梯度相似性间接提升无关…...
【射频仿真学习笔记】变压器参数的Mathematica计算以及ADS仿真建模
变压器模型理论分析 对于任意的无源电路或者等效电路,当画完原理图后,能否认为已经知道其中的两个节点?vin和vout之间的明确解析解 是否存在一个通用的算法,将这里的所有元素都变成了符号,使得这个算法本身就是一个函…...
改善 Maven 的依赖性
大家好,这里是架构资源栈!点击上方关注,添加“星标”,一起学习大厂前沿架构! 建议使用mvn dependency:analyze命令来摆脱已声明但未使用的依赖项: 还有另一个用例, mvn dependency:analyze 它可…...
循环神经网络 - LSTM 网络的各种变体
前面的博文中,我们了解和学习了长短期记忆网络,本文我们来学习LSTM 网络的各种变体。 目前主流的 LSTM 网络用三个门来动态地控制内部状态应该遗忘多少历史信息,输入多少新信息,以及输出多少信息.我们可以对门控机制进行改进并获…...
LangGraph 概述
LangGraph 介绍 LangGraph 是 LangChain 框架的扩展,专为创建基于大型语言模型(LLMs)的有状态、多角色应用而设计。它提供了一个灵活的架构,用于构建复杂的多步骤 LLM 应用,其中状态管理和流程控制至关重要。 为什么…...
Linux系统06---信号
目录 信号 1.1 进程间通信方式 1.2 信号的概念 1.3 查看信号 1.4 信号的产生 1.5 信号的处理 信号的 API 函数 2.1 函数名:kill() 2.2 函数名:raise() 2.3 函数名:alarm() 2.4 函数名:pause() 2.5…...
Java 程序调试与生产问题排查工具Arthas
好的,以下是修改后的博客内容,将公司信息替换为通用的占位符: 深入探索 Arthas:Java 程序调试与生产问题排查的利器 在 Java 开发中,调试和诊断问题往往是一个复杂且耗时的过程。Arthas(Alibaba Java Dia…...
PH热榜 | 2025-04-11
1. Voicenotes Pages 标语:如果出版的感觉像是在和朋友聊天呢? 介绍:Voicenotes Pages 是一个极其简单的发布创意和故事的方式。它就像是一个简易的博客或播客,但更容易上手。你只需录制内容,点击发布,就…...
从三围学校项目看:中建海龙智能建造的崛起与突破
在建筑行业迈向智能化、数字化的浪潮里,中建海龙科技有限公司(以下简称“中建海龙”)从中脱颖而出,成为推动智能建造发展的重要力量。凭借深厚的技术积累、创新的理念以及先进的实践,中建海龙正引领着建筑行业的变革&a…...
aviator 自定义表达式
引入依赖 如果你使用的是 Maven 项目,在 pom.xml 中添加以下依赖: <dependency><groupId>com.googlecode.aviator</groupId><artifactId>aviator</artifactId><version>5.3.2</version> </dependency>…...
电商中的购物车(redis的hash类型操作)
购物车样式 ①、创建service-cart模块 spring:profiles:active: devserver:port: 8513 spring:application:name: service-cartcloud:nacos:discovery:server-addr: localhost:8848data:redis:host: localhostport: 6379启动类 SpringBootApplication(excludeDataSourceAutoC…...
Ubuntu 系统错误日志常见问题
一、Ubuntu 系统日志文件位置 1. 核心系统日志 日志文件用途说明/var/log/syslog所有系统级别的日志(包括内核、服务等)/var/log/kern.log内核相关的详细日志(如硬件驱动问题)/var/log/auth.log用户认证日志(SSH登录、sudo权限等)/var/log/dpkg.log软件包安装/卸载日志/…...
《Uniapp-Vue 3-TS 实战开发》TypeScript 泛型详解
泛型(Generics)是 TypeScript 中非常重要的特性,它允许我们创建可重用的组件,这些组件可以支持多种类型,而不会丢失类型安全性。 一、泛型基础 1. 基本概念 泛型允许我们在定义函数、接口或类时不预先指定具体类型,而是在使用时再指定类型。 // 不使用泛型 function …...
mysql 删除表等待
今天有个表加字段,语句是先删除,后重新建,表没有数据 ,但是删除一个表的时候,语句drop table 提示超时 show processlist 后,等待类型是 Waiting for table metadata lock 取消重试几次后仍然是如此…...
如何深入理解protobuf
Protocol Buffers(protobuf)是一种轻便高效的结构化数据存储格式,用于数据序列化和反序列化,具有语言无关、平台无关、可扩展性强等特点,能有效提高数据存储和传输的效率。 一.协议的设计 我们在介绍protobuf之前我们…...
《分布式软总线牵手云服务,拓展应用新维度》
分布式软总线与云服务的融合,正掀起一场前所未有的变革,重塑着我们工作、生活和交互的方式。二者的结合,犹如天作之合,不仅打破了设备与数据之间的壁垒,更开启了一系列令人瞩目的全新应用场景。 分布式软总线…...
ReentrantLock 实现公平锁和非公平锁的原理!
🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支持一下,感谢🤗! 🌟了解 ThreadLocal请看: ThreadLocal有趣讲解,小白也能听懂ÿ…...
算法训练之动态规划(四)——简单多状态问题
♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…...
【JavaScript】错误处理与调试
个人主页:Guiat 归属专栏:HTML CSS JavaScript 文章目录 1. JavaScript 错误处理基础1.1 错误类型1.2 try...catch 语句 2. 错误抛出与自定义错误2.1 throw 语句2.2 自定义错误类型 3. 异步错误处理3.1 Promise 错误处理3.2 async/await 错误处理 4. 调试…...
MySQL 管理与配置:查看端口、修改密码与数据存储位置
1.MySQL查看端口号 show global variables like port; 2.MySQL修改密码 grant all privileges on *.* to root% identified by 你的mysql密码 with grant option;flush privileges; 3.查询 MySQL 数据库的数据存储目录 MySQL 的所有数据库文件、表数据、索引、日志文件等都存…...
(四十二)Dart 中的接口与抽象类
Dart 中的接口与抽象类 Dart 的接口特性 在 Dart 中,接口的实现方式与 Java 有所不同。Dart 没有专门的 interface 关键字来定义接口,而是通过普通类或抽象类来实现接口的功能。以下是 Dart 接口的主要特点: 普通类或抽象类都可以作为接口 …...
Java习题:合并两个有序数组
文章目录 前言一、题目描述二、方法2.1 方法一2.2 方法二 前言 虽然这个题目很简单,但是在使用java语言实现的过程中,存在多种方法这是很有意思的一道题,所以小编在这里写下它的各种方法加深javase语法的学习。 提示:以下是本篇文…...
spm12_fMRI 2*4混合方差分析 Flexible factorial 对比矩阵
实验设计:2*4被试内设计 分析模型:spm 二阶分析中的 Flexible factorial 问题:Flexible factorial交互作用对比矩阵如何编写? 老师:deepseek老师【大神们看看这个矩阵是否可以如下编写?】 以下是来自de…...
力扣第272场周赛
周赛链接:竞赛 - 力扣(LeetCode)全球极客挚爱的技术成长平台 这场周赛是在课堂上模拟的, 总体来说比较简单, 但不幸被老师压力了。以下分享一下我的解题思路 如果你每天没有时间刷题的话, 可以看一下我写的东西, 我尽量讲解的通俗一些, 不会…...
【5】深入学习npm-Nodejs开发入门
深入学习npm npm详解npm的组成-registrynpm的组成-websitenpm的组成-clinpm-confignpm-initnpm-installnpm-startnpm-uninstallnpm-version其他命令 再谈registrypackage.json配置基本结构必填字段可选字段依赖管理其他配置完整配置 node_modules其他 npm详解 我们在前面安装N…...
2025.04.05 广东汕尾两日游记
2025.04.05 广东汕尾两日游记 文章目录 2025.04.05 广东汕尾两日游记一、前言二、我的两日游行程1、行程2、这两天吃喝玩乐的地方 三、其他1、汕尾两日游小结2、汕尾前十景点(1)玄武山旅游区(2)红海湾遮浪旅游区(3&…...
【数学建模】(智能优化算法)鲸鱼优化算法(Whale Optimization Algorithm)详解与应用
鲸鱼优化算法(Whale Optimization Algorithm)详解与应用 文章目录 鲸鱼优化算法(Whale Optimization Algorithm)详解与应用1. 引言2. 算法原理2.1 生物学基础2.2 数学模型[^3]1. 包围猎物阶段2. 气泡网攻击(螺旋更新)3. 随机搜索猎物(全局探索…...
11-Java并发编程终极指南:ThreadLocal与并发设计模式实战
Java并发编程终极指南:ThreadLocal与并发设计模式实战 一、ThreadLocal核心原理剖析 1. 线程本地存储实现机制 #mermaid-svg-EX865K5oO873R6OO {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-EX865K5o…...
数据库数据恢复——sql server数据库被加密怎么恢复数据?
SQL server数据库数据故障: SQL server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。 数据库备份被加密,文件名字被篡改。 SQL server数据库数据恢复过程: 1、将所有数据库做完整只读备份。后续所有数据恢…...
0501路由-react-仿低代码平台项目
文章目录 1 react路由1.1 核心库:React Router安装 1.2 基本路由配置路由入口组件定义路由 1.3 导航方式使用 <Link> 组件编程式导航 1.4 动态路由参数定义参数获取参数 1.5 嵌套路由父路由配置子路由占位符 1.6 重定向与404页面重定向404页面 1.7 路由守卫&a…...
C++二分查找
一、模板①:向下取整(mid (l r) >> 1) while (l < r) {int mid l r >> 1; // 等价于 (l r) / 2(向下取整)if (check(mid)) r mid; // 保留左半区else l mid 1; // 舍弃左半区 } 适用场…...
c++将jpg转换为灰度图
c将jpg转换为灰度图 step1:添加依赖 下载这两个文件,放在cpp同一目录下,编译生成 https://github.com/nothings/stb/blob/master/stb_image_write.h https://github.com/nothings/stb/blob/master/stb_image.hstep2:C:\Users\wangrusheng\source\repos…...
react/vue中前端多图片展示页面优化图片加载速度的五种方案
需求背景 在多项目中 例如官网项目中 会出现很多大图片显示的情况 这个时候就会出现图片过大 公司带宽不够之类导致页面加载速度过慢及页面出现后图片仍然占位但并未加载出来 或者因为网络问题导致图片区域黑块等等场景 这个时候我们就要对图片和当前场景进行优化 方案定…...
第二届电气技术与自动化工程国际学术会议 (ETAE 2025)
重要信息 2025年4月25-27日 中国广州 官网: http://www.icetae.com/ 部分 征稿主题 Track 1:电气工程 输配电、电磁兼容、高电压和绝缘技术、电气工程、电气测量、电力电子及其应用、机电一体化、电路与系统、电能质量和电磁兼容性、电力系统及其自…...
Windows 图形显示驱动开发-WDDM 2.0功能_上下文监视
功能概述 上下文监视机制是GPU与CPU协同计算的核心同步技术,通过受监视围栏(Monitored Fence)实现跨硬件单元的高效协调。其核心目标是解决以下场景的同步需求: GPU引擎间同步:例如在多渲染管线中,后处理…...
YOLOv12即插即用---PPA
1.模块介绍 多分支特征提取:PPA 模块采用局部卷积、全局卷积和串行卷积三种并行分支,从多个尺度和层次提取特征,有效保留小目标在多次下采样过程中的关键信息。 特征融合与注意力增强:在特征提取后,PPA 模块引入高效的通道注意力和空间注意力机制,实现自适应特征增强,…...
MySql主从相关概念
想象一下,你的业务飞速增长,用户请求如潮水般涌来,突然数据库主库宕机,数据丢失,服务瘫痪——这简直是开发者的噩梦!MySQL主从复制就像一张安全网,通过主库写、从库读的协作模式,不仅…...
精品推荐-最新大模型MCP核心架构及最佳实践资料合集(18份).zip
精品推荐-最新大模型MCP核心架构及最佳实践资料合集,共18份。 1、2025年程序员必学技能:大模型MCP核心技术.pdf 2、MCP 架构设计剖析:从 Service Mesh 演进到 Agentic Mesh.pdf 3、MCP 架构设计深度剖析:使用 Spring AI MCP 四步…...
Qt模型-视图架构
引言 在GUI开发中,数据与界面的同步一直是核心挑战。传统方法将数据存储在界面组件内部容器中,容易引发数据冗余和同步问题。Qt的模型-视图(Model-View)架构通过解耦数据与界面,提供了更优雅的解决方案。本文将深入剖…...
Transformers 是工具箱,BERT 是工具。
Transformers 是工具箱,BERT 是工具。 🔍 详细解释: 名称作用比喻理解举例🤖 transformers(库)一个框架,提供很多 NLP 模型的“使用方式”,包括文本分类、问答、摘要等相当于一个“…...
AI应用企业研发方案
一、引言 在当今数字化时代,人工智能(AI)技术正以前所未有的速度融入各个行业,推动着企业的创新与变革。对于医药流通行业批发公司而言,面对日益激烈的市场竞争和不断变化的客户需求,借助AI技术提升企业的…...
Python实例题:Python实现iavaweb项目远端自动化更新部署
目录 Python实例题 题目 题目分析 需求理解 关键知识点 实现思路分析 代码实现 代码解释 execute_remote_command 函数: deploy_java_web_project 函数: 主程序: 运行思路 结束语 Python实例题 题目 Python实现iavaweb项目远端…...
NO.90十六届蓝桥杯备战|动态规划-区间DP|回文字串|Treats for the Cows|石子合并|248(C++)
区间dp也是线性dp的⼀种,它⽤区间的左右端点来描述状态,通过⼩区间的解来推导出⼤区间的解。因此,区间DP的核⼼思想是将⼤区间划分为⼩区间,它的状态转移⽅程通常依赖于区间的划分点。 常⽤的划分点的⽅式有两个: 基于…...
无人机在极端环境材料的选择
一、材料选择与优化 1. 耐低温/高温复合材料 碳纤维增强聚合物(CFRP):具备高强度、低膨胀系数特性,适用于极寒(-40℃)和高温(50℃)环境,减少因温度变化导致的结构变形。…...
视觉目标检测大模型GAIA
中国科学院自动化研究所智能感知与计算研究中心携手华为等领军企业,共同推出面向产业应用的视觉目标检测全流程解决方案——GAIA智能检测平台。该研究成果已获CVPR 2021会议收录(论文链接: 论文地址:https://arxiv.org/pdf/2106.…...
【数据分析实战】使用 Matplotlib 绘制折线图
1、简述 在日常的数据分析、科研报告、项目可视化展示中,折线图是一种非常常见且直观的数据可视化方式。本文将带你快速上手 Matplotlib,并通过几个实际例子掌握折线图的绘制方法。 Matplotlib 是 Python 中最常用的数据可视化库之一,它能够…...
[原创](现代Delphi 12指南): 设置、运行和调试你的第一个macOS应用程序.
[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、C …...
第一个Qt开发的OpenCV程序
OpenCV计算机视觉开发实践:基于Qt C - 商品搜索 - 京东 下载安装Qt:https://download.qt.io/archive/qt/5.14/5.14.2/qt-opensource-windows-x86-5.14.2.exe 下载安装OpenCV:https://opencv.org/releases/ 下载安装CMake:Downl…...
APCC:CloudberryDB和Greenplum数据库的管理利器
在大数据时代,企业数据量激增,数据库的运维复杂度与日俱增。如何高效管理数据库集群、快速定位问题并保障系统稳定性,成为企业IT团队的核心挑战。Analytical Processing Central Console(APCC) 应运而生——这是一款专…...
3D打印革新制造范式:CASAIM 3D打印解决方案
在传统制造面临定制化需求激增与供应链效率瓶颈的双重挑战下,3D打印技术正以颠覆性姿态重塑产业格局。CASAIM深耕工业级3D打印领域十余年,以材料科学、工艺控制与数字化设计的深度融合,为航空航天、汽车制造、医疗器械等高精尖行业提供从原型…...