Transformer——Q149 推导弹性训练(Elastic Training)的动态缩放策略

深度学习之Encoder-Only原理与实战 【代码】深度学习之Encoder-Only原理与实战。 阅读详情

该问题归类到Transformer架构问题集——训练与优化——分布式训练。请参考LLM数学推导——Transformer架构问题集。

1. 问题背景

在深度学习领域,尤其是大语言模型(LLM)的训练过程中,计算资源的使用面临着诸多挑战。一方面,训练 LLM 需要庞大的计算资源,例如 GPT-3 的训练就消耗了大量的 GPU 资源,且训练周期漫长 。而在实际应用场景中,计算资源往往是有限且动态变化的,企业或研究机构很难长期维持固定规模的大规模计算集群来满足训练需求;另一方面,训练任务的需求也并非一成不变,在模型训练的不同阶段,对计算资源的需求差异显著,比如在模型预热阶段和收敛阶段,所需的计算力就有所不同。

传统的固定资源训练模式无法适应这种资源与需求的动态变化。当计算资源不足时,训练速度大幅降低,严重延长训练周期;而当资源过剩时,又会造成资源浪费,增加成本。为解决这些问题,弹性训练(Elastic Training)应运而生,其核心思想是根据训练任务的实时需求和可用计算资源,动态地调整参与训练的资源规模,而动态缩放策略则是实现弹性训练的关键,它旨在找到最优的资源调整方案,在保证训练效率和模型性能的同时,最大化资源利用率。

2. 技术原理或数学理论的解析

2.1 弹性训练基础概念

弹性训练打破了传统训练中资源固定的模式,允许在训练过程中动态地增加或减少计算节点(如 GPU、CPU 等)的数量。其实现依赖于分布式训练框架和资源管理系统的协同工作。在训练开始时,系统根据初始需求分配一定数量的计算节点;随着训练的进行,系统实时监控训练状态(如训练速度、任务队列长度等)和资源状态(如节点负载、可用资源数量等),依据预设的动态缩放策略,决定是否需要调整计算节点的数量。

2.2 动态缩放策略推导

2.2.1 目标函数设定

我们以最小化训练总成本为目标,训练总成本 C 由计算资源使用成本 C_{resource} 和训练时间成本 C_{time} 组成,即:

C = C_{resource} + C_{time}

计算资源使用成本 C_{resource} 与参与训练的计算节点数量 n 和使用时长 t 相关,假设每个节点的单位时间成本为 r,则:

C_{resource} = n \times r \times t

训练时间成本 C_{time} 与训练任务的紧急程度、延迟造成的损失等因素有关,为简化模型,我们假设它与训练总时长 T 成正比,比例系数为 \lambda,即:

C_{time} = \lambda \times T

2.2.2 训练时间模型

训练时间 T 与计算节点数量 n 以及训练任务的计算复杂度 S 相关。在理想情况下,训练时间与节点数量成反比(假设节点间通信开销可忽略),同时与计算复杂度成正比,可表示为:

T = \frac{S}{n \times p}

其中 p 为单个节点的计算性能。

2.2.3 动态缩放策略构建

将上述公式代入总成本函数 C 中,得到:

C = n \times r \times \frac{S}{n \times p} + \lambda \times \frac{S}{n \times p} = \frac{S \times r}{p} + \frac{\lambda \times S}{n \times p}

为找到总成本 C 最小时的计算节点数量 n,对 C 关于 n 求导,并令导数为 0:

\frac{dC}{dn} = -\frac{\lambda \times S}{n^2 \times p} = 0

求解可得,当 n = \sqrt{\frac{\lambda \times S}{r}} 时,总成本 C 取得最小值。但在实际情况中,节点数量 n 只能取正整数,且需要考虑节点间通信开销、任务调度延迟等因素。因此,我们需要建立更复杂的动态模型。

考虑节点间通信开销,设通信开销系数为 \mu,则训练时间公式调整为:

T = \frac{S}{n \times p} + \mu \times n

总成本函数变为:

C = n \times r \times (\frac{S}{n \times p} + \mu \times n) + \lambda \times (\frac{S}{n \times p} + \mu \times n)

C = \frac{S \times r}{p} + r \times \mu \times n^2 + \frac{\lambda \times S}{n \times p} + \lambda \times \mu \times n

对 C 关于 n 求导:

\frac{dC}{dn} = 2r \times \mu \times n - \frac{\lambda \times S}{n^2 \times p} + \lambda \times \mu = 0

通过数值方法(如牛顿迭代法等)求解上述方程,即可得到在考虑通信开销等因素下,使得总成本最小的最优计算节点数量 n,以此作为动态缩放策略的核心依据。在训练过程中,系统根据实时计算的 S(可通过任务队列长度、已完成任务量等估算)、\mu(可根据网络状态等动态调整) 等参数,不断调整计算节点数量,实现资源的动态优化配置。

3. 根因分析

3.1 传统训练模式的局限性

传统固定资源训练模式无法适应计算资源和训练需求的动态变化,根源在于其缺乏对资源和任务状态的实时感知与动态调整能力。在这种模式下,一旦确定了资源分配方案,在整个训练过程中就不再改变,无法根据实际情况进行灵活调整,导致资源浪费或训练效率低下。

3.2 弹性训练动态缩放的必要性

随着深度学习模型规模的不断扩大和应用场景的日益复杂,训练任务对计算资源的需求呈现出动态变化的特点。例如,在 LLM 训练的初期,模型参数更新频繁,需要大量的计算资源来加速训练;而在训练后期,模型逐渐收敛,计算需求相对降低。同时,计算资源的可用性也受到多种因素影响,如集群中其他任务的抢占、硬件故障等。因此,为了提高资源利用率、降低训练成本、缩短训练时间,弹性训练的动态缩放策略成为必然选择,它能够使训练过程更好地适应资源与需求的动态变化,实现资源的高效利用。

4. 在 LLM 中的使用示例

4.1 GPT 系列模型训练

在训练 GPT 系列模型时,训练初期,由于模型尚未收敛,需要大量的计算资源来快速更新参数。此时,弹性训练系统根据训练任务的计算复杂度(通过计算梯度更新的频率、数据处理量等指标估算)和可用资源情况,动态增加计算节点数量,如将 GPU 集群的节点数量从初始的 100 个扩展到 300 个,加快训练速度。随着训练的进行,当模型逐渐收敛,计算需求降低,系统监测到训练速度放缓且节点负载下降,便逐步减少节点数量,将节点数量缩减至 150 个,在保证训练继续进行的同时,减少资源浪费,降低计算成本。

4.2 BERT 模型微调

在对 BERT 模型进行微调时,针对不同规模的数据集和特定的应用场景,弹性训练同样发挥重要作用。例如,在处理大规模医疗文本数据对 BERT 进行微调时,训练开始阶段,系统根据数据量和任务紧急程度,分配较多的计算节点进行快速处理。当部分数据处理完成,剩余数据量减少,系统动态减少节点数量,将资源分配给其他训练任务,提高整体资源利用率。

4.3 实时对话模型训练

对于实时对话模型的训练,其训练需求会随着用户请求量的变化而动态改变。在用户使用高峰期,训练任务需要处理大量新数据,以更新模型适应用户的最新需求,此时弹性训练系统迅速增加计算节点,提升训练速度;而在用户使用低谷期,系统减少节点数量,节省资源。通过这种动态缩放策略,确保模型能够及时更新,同时避免资源闲置浪费。

5. 优缺点分析

5.1 优点

  • 高效利用资源:能够根据训练任务的实时需求和资源状态,动态调整计算节点数量,避免资源浪费,提高资源利用率。无论是在资源紧张的情况下充分挖掘资源潜力,还是在资源过剩时合理分配资源,都能实现资源的高效利用。
  • 降低成本:通过精准匹配资源需求和供给,减少不必要的资源占用,降低计算成本。对于企业和研究机构来说,能够在保证训练效果的同时,有效控制成本支出。
  • 提高训练灵活性:适应不同规模、不同阶段的训练任务,无论是大规模的模型预训练,还是小规模的模型微调,都能通过动态缩放策略优化资源配置,提高训练的灵活性和适应性。

5.2 缺点

  • 实现复杂度高:弹性训练的动态缩放策略涉及到对训练任务状态、资源状态的实时监控与分析,以及复杂的数学模型计算和决策,同时还需要与分布式训练框架、资源管理系统紧密配合,实现难度较大,对技术团队的要求较高。
  • 稳定性挑战:在动态调整计算节点数量的过程中,可能会引入任务迁移、数据同步等问题,影响训练的稳定性。例如,节点的增加或减少可能导致数据重新分配,若处理不当,会造成数据丢失或不一致,进而影响模型训练效果。
  • 策略优化困难:动态缩放策略中的参数(如通信开销系数、时间成本系数等)需要根据不同的训练任务和环境进行调整优化,而这些参数的优化过程较为复杂,需要大量的实验和经验积累,增加了策略优化的难度。

6. 优化策略分析

6.1 智能监控与预测

引入人工智能技术,对训练任务的计算复杂度和资源状态进行智能监控与预测。例如,利用机器学习算法分析历史训练数据,预测未来训练任务的资源需求;通过实时监控网络状态、节点负载等指标,提前预判资源可用性,为动态缩放策略提供更准确的决策依据。

6.2 自适应参数调整

设计自适应的参数调整机制,根据训练过程中的实际情况动态调整策略中的参数。例如,通过强化学习算法,让系统在训练过程中不断学习和调整通信开销系数、时间成本系数等参数,以适应不同的训练环境和任务需求,提高策略的优化效果。

6.3 容错与稳定性增强

加强系统的容错设计,在节点动态调整过程中,采用数据冗余备份、一致性校验等技术,确保数据的完整性和一致性,提高训练的稳定性。同时,优化任务迁移和资源调度算法,减少节点调整对训练任务的影响,保证训练过程的连续性。

7. 代码示例(基于 PyTorch 和 Ray)

import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader, Dataset
import ray
from ray.train.torch import TorchTrainer
from ray.train import ScalingConfig

# 自定义数据集
class MyDataset(Dataset):
    def __init__(self, data, labels):
        self.data = data
        self.labels = labels

    def __len__(self):
        return len(self.data)

    def __getitem__(self, idx):
        return self.data[idx], self.labels[idx]

# 定义模型
class SimpleModel(nn.Module):
    def __init__(self):
        super(SimpleModel, self).__init__()
        self.fc1 = nn.Linear(10, 20)
        self.fc2 = nn.Linear(20, 2)

    def forward(self, x):
        x = torch.relu(self.fc1(x))
        return self.fc2(x)

# 训练函数
def train(config):
    model = SimpleModel()
    optimizer = optim.SGD(model.parameters(), lr=config["lr"])
    criterion = nn.CrossEntropyLoss()

    data = torch.randn(100, 10)
    labels = torch.randint(0, 2, (100,))
    dataset = MyDataset(data, labels)
    dataloader = DataLoader(dataset, batch_size=config["batch_size"])

    for epoch in range(config["epochs"]):
        for batch_data, batch_labels in dataloader:
            optimizer.zero_grad()
            outputs = model(batch_data)
            loss = criterion(outputs, batch_labels)
            loss.backward()
            optimizer.step()

    return model.state_dict()

if __name__ == "__main__":
    ray.init()

    # 初始缩放配置
    scaling_config = ScalingConfig(
        num_workers=2,  # 初始工作节点数量
        resources_per_worker={"CPU": 1}
    )

    trainer = TorchTrainer(
        train,
        train_loop_config={"lr": 0.01, "batch_size": 10, "epochs": 5},
        scaling_config=scaling_config
    )

    # 模拟动态调整
    for _ in range(3):
        # 根据训练情况动态调整节点数量(这里简单模拟增加节点)
        new_scaling_config = ScalingConfig(
            num_workers=scaling_config.num_workers + 1,
            resources_per_worker={"CPU": 1}
        )
        trainer.update_scaling_config(new_scaling_config)
        result = trainer.fit()

    ray.shutdown()

8. 代码解读

  • 数据和模型定义:首先自定义了数据集类MyDataset用于加载训练数据,接着定义了一个包含两个全连接层的简单神经网络模型SimpleModel。
  • 训练函数:train函数定义了具体的训练过程,包括模型初始化、优化器和损失函数设置,以及训练循环,在循环中完成前向传播、损失计算、反向传播和参数更新。
  • 弹性训练实现:利用 Ray 框架进行弹性训练的实现。通过ScalingConfig类设置初始的计算节点数量(num_workers)和每个节点的资源配置。在训练过程中,通过修改ScalingConfig中的num_workers参数,模拟动态调整计算节点数量的过程,并使用trainer.update_scaling_config方法应用新的缩放配置,实现弹性训练的动态缩放策略。

9. 总结

弹性训练的动态缩放策略是应对深度学习训练中资源与需求动态变化的有效解决方案。通过建立数学模型推导动态缩放策略,我们能够在理论上找到资源调整的最优方案,并结合实际情况进行优化。在 LLM 的训练中,弹性训练的动态缩放策略已展现出显著优势,能够提高资源利用率、降低成本、增强训练灵活性。

然而,其实现复杂度高、稳定性挑战和策略优化困难等问题也不容忽视。通过采用智能监控与预测、自适应参数调整、容错与稳定性增强等优化策略,可以有效提升弹性训练的性能和实用性。随着深度学习技术的不断发展和计算资源环境的日益复杂,弹性训练的动态缩放策略将不断完善,为大规模模型训练提供更高效、灵活的解决方案。

深度学习之Seq2Seq原理与实战 【代码】深度学习之Seq2Seq原理与实战。 阅读详情

相关推荐

深度学习之TF-IDF原理与实战

【代码】深度学习之TF_IDF原理与实战。

yumiwangzi30的博客 171

深度学习0:数学知识:正态分布1

步骤内容结果1引入e−x2e^{-x^2}e−x2钟形曲线2算它的面积I∫−∞∞e−x2dxI∫−∞∞​e−x2dx3平方变成二重积分I2I^2I24换极坐标简化计算5算出I2πI^2 = \piI2πIπIπ​6代入σ\sigmaσ和μ\muμ做变量替换得到σ2πσ2π​7除以它归一化得到正态分布公式2π2π​不是随便写的,它来自高斯积分∫−∞∞e−x2。

tellmewhoisi的博客 178

深度学习之LoRA(低秩适配)原理与实战

【代码】深度学习之LoRA(低秩适配)原理与实战。

yumiwangzi30的博客 218

AlexNet技术剖析:2012年那场ImageNet比赛如何引爆深度学习

2012年,AlexNet在ImageNet竞赛中将图像识别错误率从26.2%降至15.3%,开启深度学习革命。其成功源于三大创新:ReLU激活函数缓解梯度消失、Dropout防止过拟合、GPU并行加速训练。结合大规模标注数据(ImageNet)与数据增强策略,AlexNet突破传统特征工程瓶颈,推动计算机视觉进入“

大雾的小屋的博客 339

深度学习之词袋(Bag-of-Words, BoW)原理与实战

【代码】深度学习之词袋(Bag-of-Words, BoW)原理与实战。

yumiwangzi30的博客 189

深度学习之LSTM原理与实战

【代码】深度学习之LSTM原理与实战。

yumiwangzi30的博客 117

计算机毕设:基于深度学习的狗狗品种图像分类

本课题研究基于深度学习的狗狗品种图像分类方法,面向 120 个犬种、20580 张图像构建细粒度分类模型。数据处理采用分层划分并固化清单,模型以 ImageNet 预训练网络做迁移学习,配合标签平滑与数据增强应对标注噪声,评估以 Macro-F1 为主指标并分析易混品种。系统使用 Python 与 Django 实现上传识别、批量识别、资料浏览与记录查询,验证了方法在实际使用场景中的可行性。

WEIXIN_JSJBSZDS的博客 268

【信息科学与工程学】计算机科学与自动化-——第十五篇云计算 11 算法篇

在百万级虚拟机、百万级租户的超大规模云环境中,核心算法挑战包括:挑战维度具体问题算法需求技术复杂度规模性​百万级对象并发管理分布式算法、分区算法极高(NP-hard问题)多租户​租户间隔离与资源共享公平性算法、隔离算法高(多目标优化)动态性​资源需求实时变化自适应算法、在线算法高(实时决策)异构性​硬件/负载/需求差异分类算法、匹配算法中高(多维度优化)经济性​资源利用率与成本平衡优化算法、博弈论算法高(多目标博弈)以下是按领域分类的详细算法列表:算法名称数学建模表达核心思想时间复杂度适用场景推理步骤首次适

weixin_49199313的博客 1394

基于深度学习的垃圾分类系统的设计与实现

本系统是一个基于 Flask Web 框架与 PyTorch 深度学习模型的垃圾分类智能识别平台。系统面向垃圾图像分类场景,能够对上传图片中的玻璃、纸张、纸板、塑料、金属、其他垃圾等六类垃圾进行自动识别与置信度评估,并提供识别历史、数据统计、模型在线训练与记录导出等完整功能。系统使用 TrashNet 公开垃圾分类数据集进行模型训练,管理员可手动发起模型训练,训练完成后自动加载新权重。启动服务不会自动训练。

aiyuanma_vip的博客 379

【信息科学与工程学】计算机科学与自动化——第六十六篇 算子篇 第一章 通用算子01 多模态数据(图形/图像/文本/语音)中推断人类内在状态、策略、动机和利益的算法算子知识库

编号领域算法/方法算子名称算子的数学方程式/表达复杂度 (示例)关联知识11量子场论正则量子化产生/湮灭算符对易关系: [â_p, â†_q] = δ⁽³⁾(p​ - q)应用于态空间,计算复杂度取决于截断福克空间,粒子数表象,二次量子化12统计力学蒙特卡洛模拟马尔可夫链转移算子T(s → s‘) :满足细致平衡条件 π(s)T(s→s’)=π(s‘)T(s’→s)收敛到平衡分布需 ~O(τ), τ为相关时间细致平衡,Metropolis-Hastings准则,重要性采样13电磁学边界元法单层势/双层势算子

weixin_49199313的博客 306

【信息科学与工程学】【通信工程】第二百零三篇 112G/224G/448G SerDes技术 中的数学物理02

(对HgTe/CdTe量子阱):H(k)=ϵ(k)I+(M(k)Ak−​​Ak+​−M(k)​)⊗s0​+bulk inversion asymmetry terms,其中k±​=kx​±iky​,M(k)=M−Bk2,s0​为自旋单位矩阵。当Leff​=t时,τB​≈t/vg​≈0.1ps, 估算κL​(t)≈κL,bulk​⋅(τU​+τB​τB​​), 若τU​≈10ps, 则κL​≈10W/(m⋅K)。:Ti(ΦM​=4.3eV) 与单层MoS2​(χS​=4.0eV, Eg​=1.8eV)接触。

weixin_49199313的博客 150

【人工智能驱动的电催化研究-01】人工智能是什么?AI、机器学习、深度学习和神经网络之间有什么区别?

介绍人工智能、机器学习、神经网络和深度学习的基本概念及相互关系。围绕催化剂性能预测,解释样本、特征、标签、模型、参数、训练、预测与验证的含义。结合二硫化钼边缘位点与析氢活性的研究案例,说明科学问题如何指导特征选择。利用真实文献中的析氢数据,通过手算和Python实践,对比人工规则与均值模型,理解参数学习和误差评价。强调数据学习不保证预测更优,相关性不能直接证明反应机理,文献数据还须核查实验条件与适用范围,为后续编程、数学和电催化机器学习课程建立基础。

2402_84593233的博客 748

【信息科学与工程学】计算机科学与自动化——第三篇 计算理论基础05 计算数论01

车联网(IoV)算法是支撑智能交通系统高效、安全运行的核心技术,涵盖通信调度、路径规划、数据处理、决策控制等多个维度。

weixin_49199313的博客 1296

深度学习34:卷积神经网络:池化层(基本概念和代码)

除了 Max 池化(计算窗口内的最大值),还有 Average 池化(平均池化,计算窗口内的平均值)等。一般会将池化的大小窗口和步幅设置为相同的值,比如 2×2 的窗口大小,步幅会设置为 2。池化同样也可以设置填充。3.池化的另一个特点是对微小偏差具有鲁棒性,数据发生微小偏差时,池化可能会返回相同的结果。例如,数据在宽度方向上偏离 1 个元素,返回的结果不变。1.池化层缩小长、宽方向上的空间来进行降维,能够缩减模型的大小并提高计算速度。2.和卷积层不同,池化层没有要学习的参数,并且。

tellmewhoisi的博客 198

【信息科学与工程学】【数据科学】第十八篇 数值分析 系列二 数值算法设计01

编号类型领域问题问题的数学分析及数值分析算法逐步推理思考的数学表达式参数列表及参数的边界范围及条件及常数关联知识1数值积分数值逼近计算定积分 I=∫ab​f(x)dx的近似值。数学分析:将积分区间等分,利用插值多项式近似被积函数,构造机械求积公式。数值分析:Newton-Cotes公式是等距节点的插值型求积公式。高阶公式(n≥8)因Cotes系数有正负,数值不稳定。偶阶公式(如Simpson)具有n+1次代数精度。为提高精度,常采用复化求积法(将区间细分后应用低阶公式)。

weixin_49199313的博客 156

Android音频子系统分析-car_audio_configuration.xml

先附上一个例子,再逐一解释。概括来说,该文件描述了车里有哪些区域,每个区域划分了多少组,每个组包含了哪些设备,每个设备接收哪些类型的音频流。

不定时记录分享一些有用没用的东西 988

深度学习中检测、识别、感知区别

项目识别(Recognition)、检测(Detection)与感知(Perception)的核心区别在于任务目标与输出信息。识别仅关注“是什么”(类别/身份),不关心位置;检测需定位“在哪里”,输出带坐标的目标框;感知则是系统级综合,融合多传感器数据,输出环境的三维状态、语义与动态信息,包含检测、识别等子任务。典型应用如自动驾驶中,感知系统通过检测行人、识别车牌、融合激光雷达数据,构建完整的环境认知。

呆萌很的博客 322

使用STM32制作简易数字时钟

连接LED数码管的电源和地线到STM32单片机的对应引脚,将数码管的A、B、C、D引脚连接到STM32单片机的I/O口引脚。通过编写和调试这个项目,可以熟悉STM32单片机的GPIO口和定时器的使用,以及数字显示的控制。步骤六:测试和调试 通过观察数码管的显示,可以验证时钟功能是否正常工作。步骤四:编写代码 在主程序中,我们将使用定时器中断来控制时钟的运行,并使用GPIO口控制LED数码管的显示。步骤五:编译和下载 编译代码并下载到STM32单片机中,通过调试器和串口监视器进行调试和查看输出结果。

qq_67153941的博客 1302

证件阅读机如何用多光谱光学成像、端到端深度学习 OCR 与 MRZ 解析、13.56MHz 射频芯片认证三层能力,把单证核验压缩到 1–2 秒

"说走就走"的外国游客多了,酒店前台的压力也就跟着一起"入境"了。复印件在红外图里会丢掉层次,屏幕翻拍件在紫外图里会暴露像素网格和屏幕的摩尔纹,PS 改过的资料页在红外和可见光的交叉比对下常常"对不上"。客人只觉得"这家酒店办入住挺快",前台只觉得"今天没被催",店长只觉得"这个月没收到整改通知"。三只眼睛和一个 AI 大脑在 1–2 秒里跑完的一整套核验,被压缩成了体验里那句轻飘飘的"好的,您的房卡"。有意思的是,真正在缓解这个压力的,不是多招几个前台,而是柜台上多了一台巴掌大的小设备——证件阅读机。

智能图像识别 328

Android Profiler 帧率优化实战与性能调优

本文详细介绍了使用Android Profiler进行帧率优化与性能调优的实战方法。通过分析主线程状态、FPS曲线和渲染阶段耗时,精准定位卡顿根源,并提供减少过度绘制、优化绘制命令及改善资源使用的具体策略。文章结合电商、游戏等真实案例,帮助开发者有效解决卡顿问题,提升应用流畅度。

palm99的专栏 536

SPICE框架:自博弈提升大语言模型推理能力

自博弈训练是提升大语言模型推理能力的前沿技术,其核心思想是通过模型自我对话实现持续迭代优化。SPICE框架创新性地采用文档驱动的自博弈机制,结合思维链提示和迭代式上下文扩展,显著提升模型在数学证明、逻辑推理等复杂任务中的表现。该技术在代码生成、金融分析等工程场景中展现出23%-41%的性能提升,其关键技术包括多样性控制、质量过滤和记忆管理。随着与RLAIF等强化学习方法的结合,这种训练范式正在推动大模型向更接近人类思维方式的推理能力进化。

weixin_28686771的博客 400

深度学习0:数学知识:正态分布2(积分,幂函数积分公式)

积分符号∫(\int∫= 把无数个极窄的小矩形面积(高度×dx(\times dx×dx))“拼接”起来。dx(dxdx= 无穷小的宽度。定积分的结果= 曲线下方的总面积(一个具体的数字)。不定积分= 寻找求导前的那个原函数。这就是“积分求面积”最朴素的意思!

tellmewhoisi的博客 199

验证码破解2.0:Python+CV大模型搞定滑块/点选验证

核心创新:基于YOLOv8+SAM CV大模型的端到端验证码破解方案,无需人工设计特征,适配多种验证码类型;核心价值高成功率:滑块验证≥95%,点选验证≥90%,远超传统CV方案;低延迟:单验证码破解≤2秒,满足高并发采集需求;行为模拟:生成符合人类操作的轨迹,绕过行为检测;易扩展:统一架构支持新增验证码类型,仅需少量标注数据微调;技术要点采用YOLOv8实现快速目标检测,SAM实现像素级分割;生成物理规律的人类轨迹,模拟真实操作行为;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1261
上一篇: Transformer——Q148 验证异步训练(Async Training)的收敛条件
下一篇: Transformer——Q150 分析联邦学习中的差分隐私(DP)噪声注入量
墨顿
博客等级 码龄22年 1346粉丝 193原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨顿

唵嘛呢叭咪吽

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值