反向传播与梯度下降:大模型训练的核心发动机
写这篇的时候我先说个背景去年我带团队做一次模型尝试性的从头预训练模型规模不大但卡在损失曲线死活降不下去。模型喜欢“复读机”一样输出重复文本梯度方向明明看着对就是不收敛。排查到最后问题不在数据不在模型结构而在我们对反向传播里每一步梯度的理解和处理方式上。说实话大模型时代的很多问题追到根上都会落到反向传播和梯度下降这两个最基础的机制上。这篇我就把这两个东西拆开结合实际训练中的现象讲透。先对齐一个共识所谓大模型不管是参数规模上千亿的LLM还是百万级别的图像模型本质都是“超级大的多层函数”。训练它就是在给这个函数找一组最优参数。而找最优参数最核心的手段就是反向传播算梯度梯度下降做更新。这两个机制不是并列关系而是递进关系前者负责“算出往哪个方向走”后者负责“迈出这一步”。1. 我为什么还在强调“反向传播梯度下降”才是大模型的发动机现在很多谈大模型训练的人开口就是分布式、混合精度、数据并行、流水线并行最多再聊几句学习率调度器和Adam优化器。这些当然重要但都属于“工程层”的东西。真正决定模型能不能学出来的依然是Backpropagation和Gradient Descent这套数学内核。1.1 大模型训练的本质一个“猜测-反馈-修正”的闭环你把大模型想象成一个超大型的猜谜游戏玩家。模型拿到一句话的前半段猜后半个词猜完拿到标准答案算一下自己猜错多少损失然后根据错误程度回头修正自己内部几百上千亿个权重让下一次猜得更准。这套流程里最关键的“修正”动作就依赖于两个东西模型内部每一层、每一个权重到底对“猜错”这件事各自承担了多少责任——这是反向传播要解决的。明确了责任之后每个权重具体要往哪个方向调、调多大——这是梯度下降要解决的。没有21算出来的责任无法落地没有12不知道往哪个方向走。二者缺一不可。1.2 为什么不能用“暴力的随机试探”代替反向传播有朋友可能问既然目标是调低损失我为什么不直接随机改权重看哪个方向损失下降了就往哪走理论上可以但现实中完全行不通。假设模型有700亿个参数LLaMA-65B就是这个量级每次试一个方向哪怕只试一轮需要的计算量也超出物理学极限。更麻烦的是参数空间是高维的随机试探的步长和方向都不可控极高概率从一个差不多的位置瞬间掉进更差的区域。反向传播的高明之处在于它用微积分中的链式法则在“一次前向计算”的基础上再做一次后向计算就能精确得到每一个参数对损失函数的梯度。也就是一次性获得所有参数的正确修正方向。我自己的体会是理解不了这一点就理解不了为什么大模型训练非得用GPU集群不可。因为你每算一步梯度都意味着要同时对几亿到几千亿个参数做一次偏导计算这个计算量是“并行化”才能吃得下的。反向传播天然就能拆成矩阵乘法和逐元素运算和GPU核心架构是绝配。这也是它成为大模型唯一可行训练机制的根本原因。2. 反向传播底层拆解从链式法则到计算图的完整链路反向传播的英文是Backpropagation说白了就是“误差反向传播”的缩写。它的数学根基非常简单复合函数求导的链式法则。但这个“简单”在物理意义上极其深刻。我带着大家走一遍。2.1 用一道小学数学题理解链式法则假设我们有函数z f(g(x))举例说明更直观。令g(x) x²f(u) 3u 1那么 z 3x² 1。如果我想求 z 对 x 的导数 dz/dx最直接的办法是把 z 的公设展开再求导得到 6x。但实际上的神经网络层与层之间没法这样整体展开因为每一层的函数形式都不同且中间变量有几百上千个。链式法则告诉我们原始的导数可以拆成两项相乘dz/dx (dz/du) * (du/dx)代入这里就是dz/dx 3 * 2x 6x结果完全一致。但它的价值在于你不需要知道整个复合函数的完整解析式只需要把“中间变量导数”和“外层导数”分别算出来再相乘就行。2.2 计算图反向传播落地的骨架实际操作中神经网络不会有人工手拆每一层的导数。所有深度学习框架PyTorch、TensorFlow、JAX都会在做前向计算的时候自动记录一张“计算图”。计算图上的每个节点是一个中间张量比如某一层的输出、激活后的结果、损失值等每条边记录这个节点是怎么由上游节点计算来的。前向传播时从输入一路算到损失 L。反向传播时从损失 L 出发沿计算图“逆向”逐节点计算梯度。注意一个关键细节反向传播里每个节点的梯度几乎都可以用“上游传下来的梯度(∂L/∂output)”乘以“当前节点对输入的局部导数(∂output/∂input)”得到的然后继续往前传。这是逐层递推的信息流方向与前向完全相反因此称之为“反向传播”。2.3 一个三层的极简示例手算完整梯度为了把抽象的东西落到地面我假设一个三层网络忽略偏置项便于手算实际中偏置项逻辑完全一样W1输入层到隐藏层的权重假设输入维度2隐藏层维度2激活函数ReLUW2隐藏层到输出层权重隐藏层维度2输出维度1损失函数均方误差MSE先定义符号x [x1, x2]h_pre W1·xh_act ReLU(h_pre)y_pred W2·h_actL (y_true - y_pred)²前向过程就是算出 h_pre1、h_pre2用ReLU过滤掉负数得到 h_act1、h_act2加权求和得到 y_pred和真实标签比较算出损失 L反向过程是关键。从 L 开始往前推求 dL/dy_pred 2 * (y_pred - y_true)。标记为 grad_y。这是出口处的梯度。求 dL/d(W2)。依据链式法则dL/dW2 grad_y * h_act^T。这就是所有矩阵权重梯度计算的通用范式上层梯度矩阵 × 本层输入矩阵的转置。求 dL/dh_act。这是反向传播里最容易错的一步。因为 h_act 影响 y_pred而 y_pred 影响 L所以 dL/dh_act W2^T · grad_y。这里权重矩阵转置的重要性体现出来了。求 dL/dh_pre。需要穿透过ReLU激活函数如果某个 h_pre 小于0则该节点的梯度直接置0如果大于0梯度不变。也就是 mask 操作。求 dL/dW1。dL/dW1 dL/dh_pre · x^T。然后拿到 W1、W2 各自的梯度就可以做梯度下降更新了。这段流程我在早期实现反向传播时反复手算过。相信我真正动手推一步比看十篇讲反向传播的文章都管用。我后来带新人的时候也总是让他们先手动推这个三层小网而不是一上来就调Adam optimizer。2.4 深入理解“梯度逐层传递”时的信息衰减在大规模模型里梯度从输出层一路传回输入层信息会逐层衰减尤其是网络很深的时候。这背后有个关键原因每一层梯度都会与权重矩阵的奇异值/谱范数发生乘性关系。通俗点说假设你有100层网络每层乘以一个0.8左右的缩放系数100层之后信号会衰减到约0.8的100次方小到可以直接忽略。这就是“梯度消失”的底因。反向传播刚提出来时这个问题很严重网络只要超过十几层就很难训练。后来ReLU激活函数、残差连接ResNet、归一化层LayerNorm/BatchNorm这些机制本质上都是为了对抗“梯度在反向传播过程中蒸发”的问题。大模型时代的Transformer结构之所以能用几百层甚至上千层堆叠很大程度就是因为有残差连接它给反向传播的梯度开了一条“高速通道”每一层都能直接拿到输出端的梯度信号而不用依赖一层层权重矩阵连乘的衰减路径。明白了这一点你再看任何大模型结构图核心逻辑一下就成了。3. 梯度下降从理论到实践学习率、动量与优化器选择有了梯度怎么用这一步就是梯度下降Gradient Descent的地盘。现实中没有谁会做纯BGD每次用全量数据算梯度但所有优化器的根基都是同一个更新公式W_new W_old - learning_rate × gradient3.1 学习率到底在控制什么步长为什么那么敏感学习率(learning rate)是梯度下降里最高频的旋钮。它的物理含义是“每一步沿梯度方向走多远”。设太大步子迈太大参数会在山谷两侧来回弹跳损失曲线震荡明显甚至直接发散到NaN。设太小前进太慢训练可能要几百个epoch才见成效浪费大量算力。标准的做法是设一个合理的初始值比如1e-3到3e-4再配一个Warmup和Decay策略。大模型训练通常都会用余弦退火Cosine Annealing或者线性衰减配合前面的Warmup期。我见过太多人把学习率调成常数跑到底结果前期损失降得很猛后期陷入局部震荡模型性能上不去。后来改成带Warmup的余弦退火同样的算力评估指标稳定提升一截。学习率策略不是锦上添花很多时候它就占训练效果的半壁江山。3.2 三种主流梯度下降变体的对比BGD、SGD、Mini-batch GD实现层面梯度下降有几种工程变体变体每次计算梯度的数据量优点缺点使用场景BGD批量全量训练集梯度方向准确稳定计算量大更新慢无法在线学习小数据集SGD随机单个样本更新快随机性带来一定逃离局部极小能力噪声大梯度方向波动明显小规模实验Mini-batch GD一批样本如64/128/512等兼顾稳定性与计算效率能并行需要调节batch size大模型训练主流方案对于大模型来说Mini-batch GD几乎是一切训练的底座配合Data Parallel或者ZeRO策略可以把一份数据切成多个mini-batch分发到不同设备上同时算梯度再汇总更新。3.3 动量机制给梯度下降装上“惯性”纯SGD的问题非常明显遇到“之字形”的陡峭损失面时梯度方向经常来回摇摆每一步都会浪费很大一部分更新幅度。解决思路来自物理直觉——动量Momentum。动量方法维护一个速度变量v每次更新时把历史梯度方向“积累”下来v_new momentum × v_old learning_rate × gradientW_new W_old - v_new这里的momentum通常取0.9或0.99。历史梯度的惯性会让更新方向保持一致性震荡方向上自然抵消而持续一致的方向会越来越快。我实测对比过相同条件下带0.9动量的训练通常比纯SGD收敛快很多而且稳定性更好。3.4 自适应学习率家族RMSProp、AdaGrad到Adam更进一步如果不同参数需要的学习率不一样怎么办自适应学习率方法应运而生。核心思想是对更新频繁、梯度幅值大的参数降低它的学习率对更新缓慢的参数提高它的学习率。Adam是这一家族的集大成者。它同时维护一阶动量梯度均值和二阶动量梯度平方的滑动平均实现每个参数独立的学习率调节。大模型训练里默认优化器基本都是Adam或其变体AdamW。AdamW相比Adam关键区别在于权重衰减Weight Decay和解耦处理方式能显著改善大模型的泛化性和训练稳定性。职业建议如果你在训练一个全新的模型从AdamW开始基本没错。如果模型反复出现不收敛问题先别急着换优化器先检查学习率和数据预处理优化器往往是最后才动的变量。4. 大模型训练中最常见的梯度问题现象、原因和排查链路反向传播和梯度下降在实际大模型训练现场给人留下的最深刻印象不是数学的优美而是各种莫名其妙的训练事故。下面我列出三个最常踩的坑每个都给出完整的排查链路。4.1 梯度爆炸损失直接变成NaN的排查全过程现象训练到某一步之后损失突然从1.2跳成NaN之后什么都学不了了。排查路线我一般按这个顺序走先检查输入数据。是否有NaN或Inf进入模型。用一段脚本扫描数据集的统计信息看是否存在极值或缺失值。检查梯度范数(log_grad_norm)。在每次训练迭代里记录梯度的全局范数。如果发现梯度范数在几万甚至几百万级别那基本可以锁定是梯度爆炸。分析模型结构。最常见原因是深层网络里权重初始化不当或者残差连接/归一化位置不对导致信号在反向传播中被层层放大。干预手段。一是梯度裁剪Gradient Clipping把全局梯度范数限制在某个阈值如1.0以内二是调整初始化比如用Xavier或He正态初始化三是检查学习率是否太大尝试降一个量级。我遇到过最隐蔽的一次梯度爆炸原因是损失函数里weight decay设置成了0.1而模型参数本身数值范围很大导致decay项梯度巨大直接把其他梯度盖过去了。排查了很久才发现是超参组合问题。最后把weight decay降到0.01问题立刻消失。4.2 梯度消失深层网络“学不动”的经典死法现象训练早期损失下降非常快到了某个阶段后彻底停滞无论怎么调学习率都无济于事。排查链路观察各层梯度的分布。用小脚本打印每一层梯度的均值与标准差如果从输出层到输入层梯度范数呈现指数级衰减那就是梯度消失。检查激活函数。如果模型里用的是Sigmoid或Tanh且网络很深几乎必然出现这个问题。换成ReLU或GELUTransformer默认用GELU会有很大改善。检查残差连接和归一化。现代大模型里残差连接是关键。如果残差连接被错误移除或者放在了不恰当的位置即使有LayerNorm深度一上来也会出问题。一个实用小技巧观察输入层的梯度是否在数值上显著小于输出层。拿两个张量比较一下大小就知道严重程度。4.3 损失函数无法下降没有理论缺陷但就是不动最令人抓狂的不是爆掉而是“死水微澜”损失一直在0.5左右来回波动怎么调都下去。这种问题不像梯度爆炸那样有明显信号需要系统性排查学习率太小或warmup过长。训练前1000步基本还在warmup期此时损失不动是正常的。但过了warmup还没动就该考虑其他原因。数据流管道有没有出问题。shuffle是否正确、标签是否对齐数据增强是否破坏了语义。模型容量是否不足。用一个更小的数据集做Overfit测试如果模型在一个样本上看几次就能把损失降到极小那说明数据流和模型实现没问题问题在数据规模或数据质量。优化器参数是否异常。比如Adam的epsilon设得太大会卡住更新betas设错会导致二阶动量异常。我把这个“小数据集过度拟合测试”列为优先级最高的通用排查手段因为它能快速切断“模型问题”和“数据问题”两条路。我处理过无数次类似疑难杂症最后都是靠这个手段定位到真正短板的。5. 从梯度到极致大模型训练中那些容易被忽略的“收尾工程”等反向传播和梯度下降终于把模型训练带动起来了不代表训练过程就万事大吉。接下来还有几件“收尾工程”看似属于工程细节实际上直接决定模型最终能用与否。5.1 梯度累积与有效batch size的计算陷阱在大模型场景里受限于显存我们经常无法直接用很大的batch size。常见的做法是梯度累积算几次前向和反向把梯度累加后再更新一次权重。但这里有个大坑反向传播算梯度时损失是标准化的平均值还是总和如果你按“平均值”计算那么梯度累积时也必须配套把累积梯度除以累积步数否则等价于放大了学习率。很多初学者在这里栽过跟头——训练了几天最后发现有效学习率被放大了N倍模型行为完全不可控。我通常会在训练脚本里明确打印出每N步实际更新时用到的“梯度均值”和“等效batch size”每次调参都先确认这两对数字一致再做实验。这个习惯帮我避开了大量后期返工。5.2 混合精度与梯度缩放GradScaler现在训练大模型几乎没有人会用纯FP32跑到底。混合精度训练FP16/BF16是标配。但它有两个反直觉的副作用FP16能表示的范围比FP32窄很多梯度一旦超过65504FP16的最大值就变成Inf前向传播还没事反向传播一算梯度就爆炸。小于约6e-8的梯度值在FP16下会直接“下溢”成0导致梯度消失更新被迫停止。为此PyTorch等框架提供了GradScaler机制在反向传播前把损失乘以一个缩放系数比如1024把梯度整体放大到FP16安全范围内更新前再除以缩小。实际训练中这个scaling动态调整的过程非常敏感。如果你发现损失突然异常升高或者梯度范数变成NaN第一反应应该是检查GradScaler的状态而不要直接去调模型结构。5.3 检查“梯度范数”这条生命线的经验阈值最后分享一个我自己定下来的“生命线检查清单”梯度范数为NaN或Inf基本是训练配置问题先降学习率、开裁剪、查GradScaler。梯度范数所有层都趋近于0大概率模型没有学习能力查初始化、激活函数、归一化位置。梯度范数波动极大考虑增加BN/LN稳定性或调低学习率看动量是否能起到缓和作用。前几层梯度明显远小于后几层优先考虑残差连接是否生效、是否有额外的权重衰减导致输入层被惩罚过重。这些阈值我一般没有绝对数字因为我发现它们和模型规模、数据量强相关。关键是关注相对变化趋势而不是绝对值。每次训练启动后先盯几百步的梯度走势确认站稳了再放给集群跑。6. 为什么说反向传播实践本身正在成为“进大模型的门票”写到最后我想再提一个观察。现在的大模型开源生态越来越完善网上有大量“一键训练”“一键微调”的脚本很多人直接把别人的配置拿过来改改就跑根本不用手写反向传播。但这并不意味着反向传播和梯度下降的理解可以偷懒。因为模型一旦出现异常你能依赖的只有自己对梯度机制的理解。业界的面试题越来越偏向“反向传播的数值计算细节”实际项目里的调试问题也几乎都绕不开梯度。哪怕你用LoRA做微调不修改根本的反向传播算法但需要理解为什么低秩适配器能通过控制梯度秩来加速训练、减少显存这依旧回到对梯度传播方式的理解上。如果你是认真想要进入大模型领域的人我给的建议是找一个极小的数据集亲自用PyTorch实现一次从零到一的训练流程把反向传播的自动梯度张量运算路径打印出来观察每一步梯度的形状、数值、分布变化。这个动作的价值远大于把某个现成大模型部署上云。最后再分享一个我个人常做的小事有次模型训练异常我故意“作死”写了个带Bug的反向传播实现然后对比自动求导结果观察它的梯度差异——我发现梯度偏了0.1%左右损失曲线虽然能下降但最终性能和正规实现差了一大截。这个实验让我彻底明白了“梯度计算精度”对上游模型质量的影响究竟有多大。希望读到这里的你也能找时间做一次类似的实验花不了多少时间但对大模型训练的理解会直接上一个台阶。

相关新闻

Docker容器化部署i茅台自动预约:定时任务与多账号管理实践

Docker容器化部署i茅台自动预约:定时任务与多账号管理实践

简介:这是一套面向茅台抢购场景的i茅台App自动预约工具,适合具备一定技术基础、希望免去每日手动操作的用户。项目以Java后端与Vue前端构建,通过Docker一键部署即可在支持容器化的平台上快速运行,实现每日定时自动完成预约流程&am…

2026/10/11 6:32:34 阅读更多 →
华为云AgentArts打造金融信贷智能体:从编排到合规实践

华为云AgentArts打造金融信贷智能体:从编排到合规实践

1. 先聊清楚:金融信贷场景为什么需要 AI 智能体 1.1 传统信贷业务流程里的“自动化断层” 做金融科技的同行应该都有同感:信贷业务的前端咨询和材料审核,长期以来是个“吃力不讨好”的环节。银行或助贷平台的客服要面对大量重复问题——利率…

2026/10/11 2:21:09 阅读更多 →
微信小程序+SSM教学辅助系统:毕业设计源码与论文完整资源包实战指南

微信小程序+SSM教学辅助系统:毕业设计源码与论文完整资源包实战指南

简介:这份资源是面向计算机相关专业学生与个人开发者的教学辅助微信小程序完整项目包,适用于毕业设计、期末大作业及SSM框架实战练习。项目以微信小程序为前端,后端采用Spring、SpringMVC与MyBatis整合的SSM框架,覆盖用户请求处理…

2026/10/11 8:26:19 阅读更多 →

最新新闻

YOLOv8果蔬识别实战:数据、部署与可视化三大硬骨头

YOLOv8果蔬识别实战:数据、部署与可视化三大硬骨头

简介:本资源是一套基于YOLOv8实现的果蔬识别系统完整项目,专为计算机相关专业学生完成期末大作业、课程设计或毕业设计提供高分参考方案。项目经导师指导与助教审定,评审得分98分,源码全部本地编译通过、严格调试可直接运行&#…

2026/10/11 11:46:15 阅读更多 →
Devin来了,TaoToken帮你重新理解AI软件工程师时代的编程职业

Devin来了,TaoToken帮你重新理解AI软件工程师时代的编程职业

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

2026/10/11 11:46:15 阅读更多 →
基于YOLOv8的商场货架商品陈列识别系统实战

基于YOLOv8的商场货架商品陈列识别系统实战

简介:这份资源是面向计算机、人工智能、通信工程、自动化等专业学生与教师的YOLOv8目标检测实战项目,聚焦商场货架商品陈列识别场景,可用于毕业设计、课程设计、大作业或项目立项演示,也适合具备一定基础的学习者进阶练手。压缩包…

2026/10/11 11:46:15 阅读更多 →
CT岩心裂缝语义分割实战:从数据预处理到U-Net训练避坑指南

CT岩心裂缝语义分割实战:从数据预处理到U-Net训练避坑指南

简介:面向Python计算机视觉与地质图像分析领域的课程设计、期末大作业场景,这份资源围绕岩石裂缝与CT岩心裂缝的语义分割问题,提供了一套可运行的Python源码及配套数据集。语义分割需对图像逐像素分类,项目涉及PIL、OpenCV、Tenso…

2026/10/11 11:46:15 阅读更多 →
VitePress 自定义主题实战指南:从零构建 Theme、Layout 与运行时 API

VitePress 自定义主题实战指南:从零构建 Theme、Layout 与运行时 API

AI 技能人工智能 【免费下载链接】skills Anthony Fus curated collection of agent skills. 项目地址: https://gitcode.com/gh_mirrors/skills11/skills 点击查看 免费下载 当 VitePress 默认主题的导航、侧边栏、首页版式无法满足项目需要时,不必修改…

2026/10/11 11:46:15 阅读更多 →
第三方软件测评:独立视角下的软件质量保障

第三方软件测评:独立视角下的软件质量保障

最近接手了一个很有意思的项目,是以第三方视角给一套企业级管理软件做全面测评。这个项目让我不得不重新思考一个老问题:为什么软件行业需要"裁判员"?我们常说"既当运动员又当裁判员"是比赛的大忌,但放到软件…

2026/10/11 11:45:15 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练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/10 10:38:42 阅读更多 →