GLA与KDA对比:门控线性注意力与Delta规则的长文本建模实战
聊到长文本建模GLAGated Linear Attention门控线性注意力和KDAKimiDeltaAttention一类基于Delta规则的线性注意力变体是我最近被问得最多的两个名字。如果你一直在用标准Softmax注意力又想知道线性注意力里这些新机制到底怎么选这篇就是给你写的。先说结论GLA和KDA都不是简单的“用核函数近似Softmax”那种老路子它们都把注意力变成了一个固定大小的递归状态真正做到了训练和推理都和序列长度解耦。但两者在“怎么更新状态”上走了完全不同的方向。GLA靠门控控制历史信息的遗忘和写入KDA靠误差信号驱动状态修正光这一点就决定了它们在效果、训练稳定性、并行效率上会有明显差异。下面我从算法机制、实测表现、训练踩坑、选型建议几个角度完整拆一遍这些经验都是我实际跑实验试出来的可以直接参考。1. GLA与KDA的出发点线性注意力的两条技术路线1.1 标准Softmax注意力在长文本场景的瓶颈要理解GLA和KDA为什么会出现得先回到标准注意力的痛点。给定长度为L的序列标准注意力的分数矩阵是QK^T形状是L×L。这个矩阵的时间和显存复杂度都是O(L^2)。L是2048的时候还好到8192、16384甚至更长时这个矩阵会急速膨胀显存很快就顶不住了。很多人以为长文本推理时最吃显存的是那个L×L分数矩阵实际上推理阶段更棘手的是KV Cache。每生成一个token都要把历史token的K和V全部存下来总大小同样是O(L^2)。L到了几十万级别就算用上极高显存的GPU也放不下。正是这两个O(L^2)让长文本变成了一个昂贵的游戏。GLA和KDA的共同点是把注意力重构成一个固定大小的递归状态比如d×d的矩阵。这样训练时不需要保存L×L分数矩阵推理时也不需要不断膨胀的KV Cache。不管序列多长显存占用都只看模型宽度这是它们能做超长文本的底层原因。1.2 线性注意力的两条解法核函数近似与状态更新早期线性注意力走的是核函数近似路线。把Softmax里的指数函数拆成两个特征映射的乘积然后通过结合律把K、V先累加成一个统计量再和Q相乘。这样确实避免了L×L矩阵但问题也明显指数函数被简单替换后模型很难做“精确查找”和“选择性记忆”长文本任务上容易变成“啥都记得但啥都记不牢”。GLA和KDA走的是另一条路不追求用核函数逼近Softmax而是直接把注意力定义成一个状态更新过程。每一时刻读入一个key和value更新一个状态矩阵然后用query从这个状态里取信息。它们更像一个可微分的记忆系统所以严格来说更像“状态空间注意力”。GLA和KDA的分歧在于记忆系统的工作方式GLA会给旧状态乘一个门控衰减系数再叠加新信息主动权在“遗忘”和“覆盖”KDA则计算当前状态对当前key的预测误差用这个误差去修正状态主动权在“纠错”。简单说GLA是“先忘一些再写新的”KDA是“看看错了多少再改”。2. 核心机制拆解门控状态与Delta规则差在哪2.1 GLA门控线性注意力状态如何更新GLA的更新公式用伪代码表示更清楚# 简化版 GLA 单层前向 # Q/K/V: [L, d]state: [d, d] state zeros(d, d) outputs zeros(L, d) for t in range(L): decay sigmoid(gate_logit[t]) # 门控值范围(0,1) state decay * state k[t] * v[t].T # 旧状态衰减 新关联写入 outputs[t] q[t] state # 用 query 从状态中读取这里decay是关键。它可以是标量、按维度向量甚至按元素的门控矩阵。实际实现中常用sigmoid把一个可学习参数映射到(0,1)然后用log-space参数化来提升数值稳定性。decay越接近1历史信息保留得越充分越接近0旧状态被快速清空。为什么门控重要因为真实文本里不同信息的重要程度是不同的。上一句话的主语可能需要记住很久而某个临时的语气词可能下一帧就该忘掉。如果像早期线性注意力那样简单累加KV外积状态会快速被无关信息污染模型就像一个人把每句话都记下来结果真正要回忆的时候全被噪音盖住了。GLA的门控等于给了模型一个可学习的“记忆策略”。我在实验里看过门控的可视化模型确实会学会在段落边界自动把衰减调低一些在句内则保持较高的保留度这种自适应的行为是它效果好过普通线性注意力的重要原因。2.2 KDA Delta规则注意力误差驱动更新KDA这个名字可以理解为一类基于Delta规则的注意力变体核心更新逻辑和GLA完全不同# 简化版 KDA 单层前向 state zeros(d, d) outputs zeros(L, d) for t in range(L): predict state k[t] # 当前状态对 v[t] 的预测 error v[t] - predict # 预测误差 state state beta[t] * outer(error, k[t]) # 按误差修正状态 outputs[t] q[t] statebeta[t]是学习率类似的控制项同样可以通过sigmoid约到(0,1)。这里的含义很直观状态矩阵相当于一个联想记忆给定key应该能回忆起对应的value。如果recall的结果和真实value有差距就沿着误差方向修正状态。这条更新规则的数学背景和Delta规则/LMS算法同源本质上是最小化“预测误差”的在线学习过程。KDA的优势也因此体现它对“精确记忆”更友好。当某些键值关联需要被稳定保存时状态会逐步收敛到正确映射而不是像累加型注意力那样不断被新信息稀释。但KDA也有代价。它的每一步更新都依赖当前状态和当前key的运算结果计算依赖链比较长不容易像GLA那样做高效并行。训练时的梯度传播也更复杂后面我会专门说这个问题。2.3 直观对比一个生活化的记忆模型类比用生活场景来类比。GLA像一个开会时做笔记的人他的策略是“旧笔记先打个折扣然后写新内容”。如果判断某段信息过时了就把对应的记忆浓度调低给新信息腾地方。这个“折扣”是可以学习的不同内容遗忘速度不一样。KDA像一个纠错练习本。它每写一条新记录都要检查一遍以前的记录能不能准确回答只要答错了就针对性修改旧记录直到新信息能被准确记住。它不急着覆盖旧内容而是反复修正状态。两种策略各有擅长。GLA更适合处理信息密度高、需要快速吸收大量新内容的场景KDA更适合那些对精确回忆要求高的任务比如事实性问答、键值排序、记忆检索。理解了这一点再看后面实验部分的差异就非常顺了。2.4 复杂度与并行性差异从理论上说GLA和KDA的单层计算复杂度都是O(L·d²)和长度线性相关状态大小都是d×d不随L增长。这比标准注意力的O(L²)要好很多。但并行性是两者的分水岭。GLA的decay对状态是逐元素缩放所以整个状态更新过程可以分块并行也就是chunk-wise并行。每个chunk先算内部的部分关联再做chunk间的衰减累积这个操作可以被矩阵乘法加速在GPU上非常友好。KDA的Delta更新存在一个顺序依赖第t步的error依赖第t步的状态而这个状态又依赖前面所有step的修正结果。虽然可以通过一些矩阵技巧部分并行但整体比GLA的chunk并行难得多。实际工程里KDA的训练吞吐很容易被这种串行性拖慢这也是我后面实验表格里吞吐差距的主要来源。3. 同任务实测长文本检索与困惑度对比3.1 实验配置为了公平对比我在模拟项目X里搭了一个小规模基座模型参数量约1亿模型宽度768层数12。两种注意力都替换进同样的Transformer骨架保持FFN、位置编码、训练超参完全一致。上下文长度从4k一直测到32k训练语料是一批自己拼接的长文本片段包含新闻报道、代码、多轮对话混合体。评测任务选了三个文本困惑度、键值检索命中率、长距离依赖复制准确率。困惑度看整体语言建模能力检索任务更贴近KDA擅长的精确记忆复制任务则考验模型能不能把几百token之前的内容原样搬回来。所有实验都在一块80GB显存的数据中心级GPU上完成训练使用混合精度。优化的目标不是追求某个绝对数字而是控制变量看两种注意力机制的相对差异。3.2 困惑度和检索命中率表现表格里我选了几组有代表性的结果评测指标GLAKDA困惑度(4k)14.214.8困惑度(16k)15.115.9键值检索命中率87.3%92.6%长距离复制准确率63.5%71.2%困惑度上GLA略胜尤其在16k这种偏长上下文下优势更明显。我猜测原因在于GLA的门控机制能动态调整信息保留范围语言建模这种任务需要同时利用近处语境和远处主题信息门控的软切换比KDA的纠错机制更灵活。键值检索和复制任务上KDA明显更强。这个不意外因为Delta规则本质就是一个按误差修正的联想记忆它天生更擅长把特定key对应到特定value。长距离复制任务里KDA能把更早的信息保留得更准确因为它的状态更新不会把老记忆稀释掉只会修正错误部分。3.3 显存占用与训练吞吐对比显存和吞吐的数据同样能说明问题配置(16k上下文)GLAKDA训练峰值显存31.8 GB35.2 GB训练吞吐(tokens/s)146k98k推理首token延迟121 ms168 ms两者对比标准注意力的O(L²)显存已经好很多但KDA的峰值显存更高主要来自Delta更新需要在反向传播时保存更多中间状态。吞吐差距更明显KDA慢了近50%核心原因就是前面说的串行依赖限制并行度。推理阶段GLA也更快因为chunk并行后计算更规整。如果做在线部署GLA的吞吐优势会被放大尤其batch size较大的场景下差距会更明显。3.4 不同精度下的行为差异我在实验里把训练精度从FP16切到BF16做过一组对比。GLA的两种精度表现很接近门控参数和状态衰减让训练过程足够稳定。KDA在FP16下出现了梯度方差偏大的问题loss曲线震荡明显换到BF16后明显缓解。原因不难理解KDA的error计算涉及到state和k的矩阵乘法FP16的尾数精度有限误差信号本身又会被反复反馈到state里。时间步越长数值噪声累积越明显。如果你决定用KDA这类机制我强烈建议状态矩阵用FP32累积或者用BF16而不要用FP16。4. 训练与推理实操必须注意的几个关键细节4.1 门控参数初始化与数值稳定性GLA的decay来自sigmoid如果bias初始化成0sigmoid输出就是0.5意味着任何旧信息每走一步就衰减一半。这个初始状态并不理想训练早期模型会严重偏向短期记忆长距离信息快速流失。我实际比较过几种初始化方式。把sigmoid bias初始化成负值比如-2到-4decay初始会接近0.12到0.02模型先学会“健忘”再慢慢学哪些该记住。这样训练更稳健长距离依赖的学习曲线也会更平滑。反过来如果bias初始化为正值decay接近1模型一开始几乎不遗忘状态矩阵会被大量无关信息占据训练很容易停滞。更稳妥的做法是直接在log空间定义衰减值。先定义一个可学习的log_decay参数范围限制在某个区间内再取exp得到真正的decay。这样一方面避免sigmoid梯度饱和另一方面可以给decay设定上界防止模型把所有历史都永久保留。4.2 KDA状态矩阵初始化与Beta学习率控制KDA的状态矩阵我通常初始化为0矩阵这符合“从一无所知开始纠错”的逻辑。但要注意如果beta初始值太大前几步的纠错幅度会很猛状态早期就振荡起来后面很难收敛。beta初始值建议控制在0.1以内甚至从0.01起步。更细一点beta不一定要用标量。可以做成按通道的向量某些通道的纠错更激进某些通道更保守。我在实验里发现按通道的beta在多样本文本上能提升几个点的检索准确率推测是不同特征维度需要不同更新强度的缘故。还有一点容易踩坑KDA的state如果不做任何约束经过大量step后特征值会慢慢膨胀最终导致输出数值过大。常规做法是在更新后对state做一次LayerNorm或者在loss里加一个对state范数的正则项。我两种都试过LayerNorm的效果更直接但要注意它可能削弱精确记忆能力范数正则更温和建议优先尝试。4.3 混合精度训练下的数值陷阱前面提过FP16下KDA状态累积误差问题这里展开。线性注意力都把信息压缩在d×d的state里这个矩阵会在时间步上反复累加或修正。在FP16下每次更新都会产生微小的舍入误差这些误差会随序列长度线性增长。到16k以上上下文时误差可能已经盖过真实信号。GLA因为有一个decay系数在不停压缩旧状态一定程度上相当于在自动清除累积误差所以FP16影响较小。KDA的delta修正没有这种指数级的遗忘机制误差更顽固。我最终的解决方案是KDA的所有state相关计算全部在FP32下完成只在最后的输出投影前转回FP16。显存多付出一点但训练loss稳定很多。另外梯度裁剪在KDA上几乎必不可少。Delta规则的error信号在部分难样本上梯度范数会突然增大我遇到过几次loss直接变NaN的情况。把全局梯度范数裁剪到1.0到3.0之间训练基本就稳了。4.4 Chunk并行与序列长度选择GLA支持chunk-wise并行但这不意味着chunk越大越好。我试过把chunk从64拉到256训练吞吐确实提升但loss收敛变差。原因是chunk内部的并行计算改变了状态更新的时序依赖相当于让模型在同一chunk内丢失了顺序信息。对语言建模这种强时序任务来说这个损失很致命。经验值是chunk大小设在64到128之间比较平衡。KDA如果也想做某种分块加速我建议用“分块递归”而不是“块内并行”。先把序列切成块块内用近似方式并行预测块间再做严格的顺序更新。这样吞吐只能比GLA差但至少比完全串行好一截。代码实现复杂不少工程上要自己权衡值不值。5. 常见问题排查训练崩了、显存爆了、效果反而差5.1 困惑度不降或Loss振荡如果你把模型从Softmax注意力换成GLA或KDA后loss迟迟不降先别怀疑模型结构大概率是初始化问题。GLA查decay的初始值KDA查beta初始值这两个参数直接决定状态更新初期的行为。把decay往小调、beta往小调通常有效。还有一种情况是Q和K的归一化被忽略了。线性注意力的状态更新对Q、K的尺度极其敏感如果K的范数整体偏大KDA的error信号会被单个异常token带偏。我在实现里总是对Q、K先做RMSNorm再进入注意力状态更新。这个操作对两种机制都有明显效果。5.2 显存占用比预期高按理论公式线性注意力的显存应该和L无关但实际训练时峰值显存还是随L增长。原因是QKV投影、FFN、输出层的中间激活仍然和L成正比。如果这个增长特别明显先看框架是否把注意力分数矩阵完整保存下来了。有些实现为了省事会在前向时保留完整的局部注意力矩阵这会让显存打回原形。另一个大头是反向传播时的中间梯度。KDA的误差链路更长需要保存更多中间状态所以显存就是比GLA高一截。如果显存告急可以把序列在时间维度上切段分段计算反向或者开启梯度检查点。实测下来KDA开启梯度检查点后显存下降明显代价是训练时间再涨一截。5.3 推理时状态矩阵数值爆炸推理阶段遇到输出分数突然变成几百甚至上千的多半是state积累了异常大值。GLA的decay如果被模型学到接近1长期不更新某些维度时state可能持续膨胀。处理办法是给decay设一个上界比如0.9999强制保留一点遗忘能力。KDA的问题是缺少固有遗忘如果序列中某个key反复出现且value误差始终不为0state会不断朝一个方向更新最后顶到数值上界。建议在KDA的更新公式里加入一个极小衰减项比如state (1-1e-4)state betaouter(error,k)或者对state做动态范数裁剪。我最后选了前者效果稳定且对精度几乎没有负面影响。5.4 长上下文效果反而不如短上下文如果你发现16k效果比4k还差不要立刻怪模型容量。先在短序列上检查门控和beta的分布。如果GLA的门控普遍偏向0说明模型根本不想记长期信息如果KDA的beta普遍很小说明模型几乎没有在修正状态。这类情况下加大门控或beta的正则强度反而有效。还有一种常见情况是位置编码没有适配。状态型注意力不像标准注意力那样天然包含位置信息如果只加绝对位置编码长序列上位置泛化很困难。我建议搭配旋转位置编码类的方法并且只对Q、K施加不对V施加。这样一个d×d的state里就不会混入位置噪声长文本效果会更稳。6. 选型建议与我的个人经验6.1 GLA适合什么场景如果你要处理的是通用长文本、训练资源有限且需要高吞吐GLA是第一选择。它在语言建模上的整体表现更好门控机制带来的动态遗忘能力让模型在多样化数据上都能自适应。工程上chunk并行友好训练和推理都能充分利用数据中心级GPU的算力。我特别推荐在混合专家模型或大规模基座模型里优先考虑GLA。因为拼接宽度的扩展对它的状态效率提升是线性友好的门控的按通道特性也和多种并行策略天然兼容。如果目标是半年内把模型推到超长上下文GLA的实际成本明显更低。6.2 KDA适合什么场景KDA的精确记忆特性决定它不是用来代替GLA的通用选择而是在特定任务上的加强版。需要键值关联、事实检索、排序比较、以及需要从长上下文里抽取准确信息的场景KDA值得试。如果评测指标里“copy准确率”“检索命中率”占大头KDA是更好的候选。代价也要说清楚训练吞吐低、显存偏高、数值稳定性难调。如果你没有充足的调参时间不太建议在核心基座模型上一上来就全量换KDA。我见过一些项目把KDA用在特定任务头的输入端效果不错工程上却需要两层精度转换细节很多。6.3 一种值得尝试的混合层设计我在模拟项目X上做过一个实验浅层用GLA做信息过滤和局部建模深层用KDA做精确记忆和长期关联。这个混合设计在困惑度上比纯GLA低0.3左右在键值检索上比纯KDA低0.8%左右但综合吞吐只比纯GLA慢10%。原因是浅层处理的是局部句法和语义门控的灵活性足够用深层负责把压缩信息转成可检索记忆Delta规则的纠错机制正好发力。两个机制在各自擅长的阶段工作比单一机制从头用到尾更合理。如果你的模型层数足够多这个方案非常值得参考。最后分享一个我踩过很多次坑之后留下来的习惯不管选GLA还是KDA先把状态矩阵的数值分布打印出来。每训练几百步看一次state的均值、方差、最大奇异值很多训练问题在指标崩之前就能从state分布里提前看到苗头。这个习惯救了我好几次也建议你试一试。

相关新闻

3GPP TR 38.901:5G毫米波信道建模核心标准解析

3GPP TR 38.901:5G毫米波信道建模核心标准解析

简介:本资源为3GPP官方技术报告TR 38.901第14版(v14.3.0,2017年12月发布)的完整中文可读文档,面向5G无线通信系统研发工程师、信道建模研究人员及高校通信专业高年级学生。该报告系统定义了0.5–100 GHz频段&#xff0…

2026/10/17 8:48:26 阅读更多 →
工程BOM、制造BOM、采购BOM:三套BOM的差异与协同落地方法

工程BOM、制造BOM、采购BOM:三套BOM的差异与协同落地方法

前阵子处理完一批呆滞料,我翻来覆去核对三个系统里的三张BOM,发现同一款产品的物料数量差了一大截。设计部说图纸上就是一套电源模块加一套传动模块;工艺部说车间里必须把电源模块拆成控制板、线束和充电接口;采购部拿着外购件清单…

2026/10/17 8:48:25 阅读更多 →
Qt实时波形绘制:QCustomPlot高性能实践与数据管道设计

Qt实时波形绘制:QCustomPlot高性能实践与数据管道设计

简介:本资源是一套基于Qt5与QCustomPlot开发的轻量级实时波形绘制控件,专为Qt初学者及嵌入式上位机开发人员设计,有效降低实时曲线显示界面的实现门槛。资源包共15个文件,含4个核心cpp源码、3个头文件(含qcustomplot.h…

2026/10/17 8:48:25 阅读更多 →

最新新闻

macOS上用Docker部署nginx+php:从零搭建容器化开发环境

macOS上用Docker部署nginx+php:从零搭建容器化开发环境

你在macOS上装过nginx和php吗?如果装过,大概率体会过那种“装起来半小时、调起来一晚上”的滋味。今天这篇我就带你完整走一遍macOS上安装Docker,然后在Docker里部署一套nginxphp环境的过程,整个过程不追求什么高大上的编排技巧&a…

2026/10/17 9:26:37 阅读更多 →
XSS跨站脚本攻击详解:原理、类型与防御实战指南

XSS跨站脚本攻击详解:原理、类型与防御实战指南

聊起 XSS 跨站脚本攻击,很多刚入行的朋友第一反应是“这不就是往页面里插一段 JS 嘛,有什么好学的?”但真在安全圈跑过几次攻防演练、帮人排查过线上漏洞就知道,这三个字母背后藏着一整套关于输入、输出、信任边界和浏览器安全模型…

2026/10/17 9:26:37 阅读更多 →
企业智能体数据库连接方案:稳、准、久的四维选型指南

企业智能体数据库连接方案:稳、准、久的四维选型指南

1. 企业智能体连接数据库:不是“连上就行”,而是“连得稳、查得准、跑得久”“企业智能体连接数据库方案对比分析”——这标题里藏着三个关键动作:连接、对比、分析。它不是教你怎么在Python里写一行pymysql.connect(),也不是告诉…

2026/10/17 9:26:37 阅读更多 →
批量SHP与TXT互转:Python工具的实现与避坑指南

批量SHP与TXT互转:Python工具的实现与避坑指南

简介:这份工具包是面向自然资源、测绘及地理信息处理人员的批量矢量数据转换工具,核心功能是将标准矢量文件批量转为文本格式,切实解决建设用地报批、设施农用地上图、卫片处理等实际业务中,矢量几何与属性数据不方便直接参与文本…

2026/10/17 9:26:37 阅读更多 →
C++ Win32双缓存乒乓球游戏:人机对战与UDP联机实现

C++ Win32双缓存乒乓球游戏:人机对战与UDP联机实现

简介:这是一款基于C开发的桌面级乒乓球对战游戏,面向编程初学者与图形界面实践者,聚焦双缓存绘图优化、人机AI逻辑与本地PVP交互等核心知识点,适用于课程设计、算法可视化及Win32游戏开发入门学习。资源包共52个文件,涵…

2026/10/17 9:26:37 阅读更多 →
SQL注入入门:union联合注入从原理到实战全解析

SQL注入入门:union联合注入从原理到实战全解析

1. 从第一关说起:为什么union联合注入是理解SQL注入的最佳入口很多人学SQL注入,一上来就被各种报错注入、布尔盲注、时间盲注绕晕了。我带了不下二十个新人,发现一个规律:凡是第一关没吃透的,后面越学越虚。第一关看着…

2026/10/17 9:25:37 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →