当前位置: 首页 > news >正文

w~大模型~合集30

我自己的原文哦~    https://blog.51cto.com/whaosoft/13284996

#VideoMamba

视频理解因大量时空冗余和复杂时空依赖,同时克服两个问题难度巨大,CNN 和 Transformer 及 Uniformer 都难以胜任,Mamba 是个好思路,让我们看看本文是如何创造视频理解的 VideoMamba。

视频理解的核心目标在于对时空表示的把握,这存在两个巨大挑战:短视频片段存在大量时空冗余和复杂的时空依赖关系。尽管曾经占主导地位的三维卷积神经网络 (CNN) 和视频 Transformer 通过利用局部卷积或长距离注意力有效地应对其中之一的挑战,但它们在同时解决这两个挑战方面存在不足。UniFormer 试图整合这两种方法的优势,但它在建模长视频方面存在困难。

S4、RWKV 和 RetNet 等低成本方案在自然语言处理领域的出现,为视觉模型开辟了新的途径。Mamba 凭借其选择性状态空间模型 (SSM) 脱颖而出,实现了在保持线性复杂性的同时促进长期动态建模的平衡。这种创新推动了它在视觉任务中的应用,正如 Vision Mamba 和 VMamba 所证实的那样,它们利用多方向 SSM 来增强二维图像处理。这些模型在性能上与基于注意力的架构相媲美,同时显著减少了内存使用量。

鉴于视频产生的序列本身更长,一个自然的问题是:Mamba 能否很好地用于视频理解?

受 Mamba 启发,本文引入了 VideoMamba 专为视频理解量身定制的纯 SSM (选择性状态空间模型)。VideoMamba 以 Vanilla ViT 的风格,将卷积和注意力的优势融合在一起。它提供一种线性复杂度的方法,用于动态时空背景建模,非常适合高分辨率的长视频。相关评估聚焦于 VideoMamba 的四个关键能力:

在视觉领域的可扩展性:本文对 VideoMamba 的可扩展性进行了检验,发现纯 Mamba 模型在不断扩展时往往容易过拟合,本文引入一种简单而有效的自蒸馏策略,使得随着模型和输入尺寸的增加,VideoMamba 能够在不需要大规模数据集预训练的情况下实现显著的性能增强。

对短期动作识别的敏感性:本文的分析扩展到评估 VideoMamba 准确区分短期动作的能力,特别是那些具有细微动作差异的动作,如打开和关闭。研究结果显示,VideoMamba 在现有基于注意力的模型上表现出了优异的性能。更重要的是,它还适用于掩码建模,进一步增强了其时间敏感性。

在长视频理解方面的优越性:本文评估了 VideoMamba 在解释长视频方面的能力。通过端到端训练,它展示了与传统基于特征的方法相比的显著优势。值得注意的是,VideoMamba 在 64 帧视频中的运行速度比 TimeSformer 快 6 倍,并且对 GPU 内存需求减少了 40 倍 (如图 1 所示)。

与其他模态的兼容性:最后,本文评估了 VideoMamba 与其他模态的适应性。在视频文本检索中的结果显示,与 ViT 相比,其性能得到了改善,特别是在具有复杂情景的长视频中。这凸显了其鲁棒性和多模态整合能力。

本文的深入实验揭示了 VideoMamba 在理解短期 (K400 和 SthSthV2) 和长期 (Breakfast,COIN 和 LVU) 视频内容方面的巨大潜力。鉴于其高效性和有效性,VideoMamba 注定将成为长视频理解领域的重要基石。所有代码和模型均已开源,以促进未来的研究努力。

  • 论文地址:https://arxiv.org/pdf/2403.06977.pdf
  • 项目地址:https://github.com/OpenGVLab/VideoMamba
  • 论文标题:VideoMamba: State Space Model for Efficient Video Understanding

方法介绍

下图 2a 显示了 Mamba 模块的细节。

时空扫描:为了将 B-Mamba 层应用于时空输入,本文图 4 中将原始的 2D 扫描扩展为不同的双向 3D 扫描:

(a) 空间优先,通过位置组织空间 token,然后逐帧堆叠它们;

(b) 时间优先,根据帧排列时间 token,然后沿空间维度堆叠;

(c) 时空混合,既有空间优先又有时间优先,其中 v1 执行其中的一半,v2 执行全部 (2 倍计算量)。

图 7a 中的实验表明,空间优先的双向扫描是最有效但最简单的。由于 Mamba 的线性复杂度,本文的 VideoMamba 能够高效地处理高分辨率的长视频。

对于 B-Mamba 层中的 SSM,本文采用与 Mamba 相同的默认超参数设置,将状态维度和扩展比例分别设置为 16 和 2。参照 ViT 的做法,本文调整了深度和嵌入维度,以创建与表 1 中相当大小的模型,包括 VideoMamba-Ti,VideoMamba-S 和 VideoMamba-M。然而实验中观察到较大的 VideoMamba 在实验中往往容易过拟合,导致像图 6a 所示的次优性能。这种过拟合问题不仅存在于本文提出的模型中,也存在于 VMamba 中,其中 VMamba-B 的最佳性能是在总训练周期的四分之三时达到的。为了对抗较大 Mamba 模型的过拟合问题,本文引入了一种有效的自蒸馏策略,该策略使用较小且训练良好的模型作为「教师」,来引导较大的「学生」模型的训练。如图 6a 所示的结果表明,这种策略导致了预期的更好的收敛性。

关于掩码策略,本文提出了不同的行掩码技术,如图 5 所示,专门针对 B-Mamba 块对连续 token 的偏好。

实验

表 2 展示了在 ImageNet-1K 数据集上的结果。值得注意的是,VideoMamba-M 在性能上显著优于其他各向同性架构,与 ConvNeXt-B 相比提高了 + 0.8%,与 DeiT-B 相比提高了 + 2.0%,同时使用的参数更少。VideoMamba-M 在针对增强性能采用分层特征的非各向同性主干结构中也表现出色。鉴于 Mamba 在处理长序列方面的效率,本文通过增加分辨率进一步提高了性能,仅使用 74M 参数就实现了 84.0% 的 top-1 准确率。

表 3 和表 4 列出了短期视频数据集上的结果。(a) 监督学习:与纯注意力方法相比,基于 SSM 的 VideoMamba-M 获得了明显的优势,在与场景相关的 K400 和与时间相关的 Sth-SthV2 数据集上分别比 ViViT-L 高出 + 2.0% 和 + 3.0%。这种改进伴随着显著降低的计算需求和更少的预训练数据。VideoMamba-M 的结果与 SOTA UniFormer 不相上下,后者在非各向同性结构中巧妙地将卷积与注意力进行了整合。(b) 自监督学习:在掩码预训练下,VideoMamba 的性能超越了以其精细动作技能而闻名的 VideoMAE。这一成就突显了本文基于纯 SSM 的模型在高效有效地理解短期视频方面的潜力,强调了它适用于监督学习和自监督学习范式的特点。

如图 1 所示,VideoMamba 的线性复杂度使其非常适合用于与长时长视频的端到端训练。表 6 和表 7 中的比较突显了 VideoMamba 在这些任务中相对于传统基于特征的方法的简单性和有效性。它带来了显著的性能提升,即使在模型尺寸较小的情况下也能实现 SOTA 结果。VideoMamba-Ti 相对于使用 Swin-B 特征的 ViS4mer 表现出了显著的 + 6.1% 的增长,并且相对于 Turbo 的多模态对齐方法也有 + 3.0% 的提升。值得注意的是,结果强调了针对长期任务的规模化模型和帧数的积极影响。在 LVU 提出的多样化且具有挑战性的九项任务中,本文采用端到端方式对 VideoMamba-Ti 进行微调,取得了与当前 SOTA 方法相当或优秀的结果。这些成果不仅突显了 VideoMamba 的有效性,也展示了它在未来长视频理解方面的巨大潜力。

如表 8 所示,在相同的预训练语料库和类似的训练策略下,VideoMamba 在零样本视频检索性能上优于基于 ViT 的 UMT。这突显了 Mamba 在处理多模态视频任务中与 ViT 相比具有可比较的效率和可扩展性。值得注意的是,对于具有更长视频长度 (例如 ANet 和 DiDeMo) 和更复杂场景 (例如 LSMDC) 的数据集,VideoMamba 表现出了显著的改进。这表明了 Mamba 在具有挑战性的多模态环境中,甚至在需求跨模态对齐的情况下的能力。

#StableDrag

去年 5 月,动动鼠标就能让图片变「活」得研究 DragGAN 吸引了 AI 圈的关注。通过拖拽,我们可以改变并合成自己想要的图像,比如下图中让一头狮子转头并张嘴。

实现这一效果的研究出自华人一作领衔的「Drag Your GAN」论文,于上个月放出并已被 SIGGRAPH 2023 会议接收。相关的项目在 GitHub 上已经积累了 34.5k 的 Star 量。拖拽P图技术又升级了:StableDrag更稳、更准,南大、腾讯联合打造

项目地址:https://github.com/XingangPan/DragGAN

之后,新加坡国立大学和字节跳动推出了类似的研究 ——DragDiffusion。他们利用大规模预训练扩散模型,极大提升了基于点的交互式编辑在现实世界场景中的适用性。效果如下动图所示:

尽管取得了很大的成功,但类似的拖拽方案存在两个主要缺陷,即点跟踪不准确和动作监督不完整,从而可能导致无法达到满意的拖拽效果。

为了克服这些缺陷,南京大学、腾讯的几位研究者提出了一种判别式点跟踪方法并针对动作监督采用了基于置信的潜在增强策略,构建了一个更加稳定和精确的拖拽编辑框架 ——StableDrag。

其中判别式点跟踪方法能够精确地定位更新的操纵点,提高长程操纵稳定性;基于置信的潜在增强策略能够在所有操纵步骤中,保证优化的潜在变量尽可能地高质量。

  • 论文标题:StableDrag: Stable Dragging for Point-based Image Editing
  • 论文地址:https://arxiv.org/pdf/2403.04437.pdf
  • 项目地址:https://stabledrag.github.io/

得益于这些独特的设计,研究者实例化了两种类型的图像编辑模型:StableDrag-GAN 和 StableDrag-Diff。这两个模型在 DragBench 上进行了广泛的定性和定量评估,结果都显示出更加稳定的拖拽效果。

从下面视频中,我们可以看到 StableDrag-GAN 的拖拽全过程。

视频看不了...

如下为 StableDrag-GAN 的更多拖拽示例。

方法介绍

如图 1 所示,由于不精确的点跟踪和不完整的动作监督,DragGAN 和 DragDiffusion 对图像的编辑质量不高。因此,在这项工作中,本文将注意力集中在当前的拖拽技术上,以实现更稳定和更精确的图像操作。.

拖拽 pipeline 如图 2 所示,包括判别点跟踪模块( Discriminative PT )和置信动作监督模块( Confident MS )。 

判别点跟踪

置信动作监督

本文提出了一种基于置信度的潜在增强策略,如图 2 所示。首先,本文引入跟踪得分最大值即 s_i,来表示当前的监督置信度,以及置信度分数在 step-1 产生增强策略的阈值。通常,当模型足够自信地识别当前状态时,本文会采用论文中等式(1)的原始动作监督。如果当前的置信度得分低于预定义的阈值,则采用初始模板进行监督。具体强化监督定义为:

实验结果

研究者基于 PyTorch 实现了 StableDrag-GAN 和 StableDrag-Diff,实验中使用了一块英伟达 V100 GPU。

下图 5 展示了 DragGAN 与 StableDrag-GAN、DragDiffusion 与 StableDrag-Diff、以及 FreeDrag-Diff 与 StableDrag-Diff 三组模型之间的定性比较。

可以看到,本文的 StableDrag 方法可以更精准地将操纵点移动到目标点,例如山峰、狮子下巴、小鹿额头和灯泡。同时,StableDrag 可以生成更高质量和更高保真度的编辑结果,比如保持手提包、眼镜、马和兵马俑的外观。

研究者在 DragBench 基准上对 StableDrag 方法进行了定量评估,该基准包含 205 个具有预定义拖拽点和掩码(mask)的样本。

如下表 1 所示,在 3 种不同的优化步骤设置下,StableDrag-Diff 始终能够优化 DragDiffusion。

这进一步表明:通过置信动作监督和判别式点跟踪,StableDrag 可以在编辑准确性和内容一致性方面实现有潜力的结果。 

除了定性和定量评估之外,为了验证本文方法的有效性并展开深入分析,研究者通过「基于 GAN 和扩散模型的定性可视化」以及「基于扩散模型的 DragBench 定量评估」,进行了详细的消融实验。

首先是置信动作监督。研究者首先进行了基于 StableDrag-GAN 的马编辑实验,如下图 6 所示,随着置信度得分逐渐降低,没有置信度动作监督模块的 StableDrag 编辑的图像质量较低。

其次是判别点跟踪。图 7 和表 2 评估了 StableDrag 和没有判别跟踪模型的 StableDrag。我们可以看到,没有判别跟踪模型的 StableDrag 可能会受到背景干扰点的误导,导致结果不准确。

最后是跟踪模块的实用性。该研究提出的点跟踪器在公式和实现上都很简洁。如表 3 所示训练跟踪器(大约仅 1 秒)花费的时间远少于拖拽过程。   

#SmartTrim

基于 Transformer 结构的视觉语言大模型(VLM)在各种下游的视觉语言任务上取得了巨大成功,但由于其较长的输入序列和较多的参数,导致其相应的计算开销地提升,阻碍了在实际环境中进一步部署。为了追求更为高效的推理速度,前人提出了一些针对 VLM 的加速方法,包括剪枝和蒸馏等,但是现有的这些方法大都采用静态架构,其针对不同输入实例采用同样的计算图进行推理,忽略了不同实例之间具有不同计算复杂性的事实:针对复杂的跨模态交互实例,自然需要更多计算才能完全理解图像和相关问题的复杂细节;相反,简单的实例则可以用更少的计算量解决。这也导致较高加速比下的 VLM 的性能严重下降。自适应剪枝让多模态大模型加速2-3倍

为了解决上述这些问题,哈工大联合度小满推出针对多模态模型的自适应剪枝算法 SmartTrim,论文已被自然语言处理顶级会议 COLING 24 接收。

前期探究和研究动机

本文首先针对 VLM 中每一层的 token 表示和 attention head 的冗余情况进行分析,如下图所示。我们有了以下发现:(1)无论是哪种模态的 token 或者 head,层内相似性始终很高,说明模型是存在显着冗余。(2)Token 的冗余度随着深度而逐渐增加。(3)不同实例之间的冗余程度差异较大,进一步说明依赖于输入的自适应剪枝对于 VLM 加速的重要性。

在基于 VQA 微调的 METER 的跨模态编码器中,层内不同 token(上)和 attention head(下)表示的相似性。

方法介绍

基于上述发现,本文提出针对 VLM 的自适应剪枝框架:SmartTrim,从 token 和 attention head 两方面同时对模型冗余部分进行剪枝。

SmartTrim 框架结构图

跨模态感知的 Token 修剪器:

文本和图像各自的 Token 序列首先经过各自编码器进行编码,对于得到的序列表示,经过基于 MLP 结构的跨模态感知 Token 修剪器识别对于当前层不重要的 Token:在识别过程中模型不仅考虑 token 在当前模态序列的重要性,同时还要引入其在跨模态交互中的重要性。最终 token 的重要性分数转化成一个 0/1 的二值 mask 用来去除冗余 token。

模态自适应的注意力头修剪器:

VLM 分别通过 MSA(multi-head self-attention module) 和 MCA (multi-head cross-attention module)捕获模态内和模态间交互。正如前文分析,注意力部分计算开销根据输入的复杂性而变化,导致注意力模块出现的冗余会产生较大的开销。为此,我们将模态自适应注意力头修剪器集成到注意力模块中。该修剪器用以衡量各个注意力头的显著性,根据此对冗余的注意力头做修剪。

模型训练

自蒸馏与课程训练策略:

我们还引入一种自蒸馏的训练策略来提高通过自适应剪枝得到的小模型:通过对齐剪枝后的小模型和全容量模型之间输出,使得剪枝模型的输出与全容量模型更为一致,进一步提高小模型的能力。另外我们利用课程学习的训练方式指导模型的训练,使模型稀疏度逐步减低到目标比例,从而保证了优化过程的稳定性。   

最终的模型训练目标为:

实验结果

我们基于 METER 和 BLIP 这两个 VLM 作为原始模型并在一系列下游 VL 任务上评估 SmartTrim 以及其他方法的性能和效率,如下表所示:我们的方法将原始模型加速了 2-3 倍,同时性能下降最小。

具有不同加速比下的 VLM 加速方法结果。

与前人方法相比,SmartTrim 不需要额外的预训练,而且还通过 token 和 head 两个方面提供了更细粒度地控制模型的计算开销,以更好地探索效率与性能之间的权衡,下面的帕累托图显示我们的方法在 1.5x 的加速比下甚至相比原始模型性能有所提升,而在高加速比下的相比其他加速方法具有显著优势。

不同 VLM 加速方法在 NLVR2 上的效率与性能权衡的帕累托前沿。

我们进一步展示了一些随着深度增加 SmartTrim 逐步裁剪不同模态的冗余 token 的例子:

Token 的逐步裁剪修剪过程。

上图 (a)-(c) 是由我们提出的跨模态感知 Token 修剪器获得的,可以看到针对不同的问题我们的修剪器网络可以合适地选择更为相关的 patch。(d) 为去掉跨模态信息指导的基线模型地输出,我们也可以观察到其只保留了图片的主体部分但与问题并不相关的 patch token,并最终产生错误的答案。

我们还统计了在 vqa 数据的测试集上我们的 SmartTrim 为不同实例分配的计算量情况,如下图所示。可以发现 SmartTrim 可以自适应地根据跨模态交互的复杂性分配不同的计算开销,为简单实例(图左)分配更少的计算,为困难实例(图右)分配更多计算。

VQA 上 SmartTrim 的 FLOPs 直方图。

论文提出的方法未来将结合到度小满轩辕大模型中,大模型项目地址:https://github.com/Duxiaoman-DI/XuanYuan

#Large World Models

突破性的百万级视频和语言世界模型

在探索如何让AI更好地理解世界方面,最近的一项突破性研究引起了广泛关注。来自加州大学伯克利分校的研究团队发布了“Large World Model, LWM”,能够同时处理百万级长度的视频和语言序列,实现了对复杂场景的深入理解。这一研究无疑为未来AI的发展开启了新的篇章。

论文地址:World Model on Million-Length Video And Language With RingAttention

博客地址:Large World Models

huggingface: LargeWorldModel (Large World Model)

在传统方法中,AI模型往往只能处理较短的文本或视频片段,缺乏对长时间复杂场景的理解能力。然而,现实世界中的许多场景,如长篇书籍、电影或电视剧,都包含了丰富的信息,需要更长的上下文来进行深入理解。为了应对这一挑战,LWM团队采用了环形注意力(RingAttention)技术,成功扩展了模型的上下文窗口,使其能够处理长达100万个令牌(1M tokens)的序列。例如实现超过 1 小时的问答视频:

图1.长视频理解。LWM 可以回答有关超过 1 小时的 YouTube 视频的问题。

超过 1M 上下文的事实检索:

图 2. 针检索任务。LWM 在 1M 上下文窗口内实现了高精度,并且性能优于 GPT-4V 和 Gemini Pro。.

图 3. 针检索任务。LWM 对于上下文窗口中不同的上下文大小和位置实现了高精度。

技术实现

为了训练和评估LWM,研究人员首先收集了一个包含各种视频和书籍的大型数据集。然后,他们逐步增加了训练的上下文长度,从4K tokens开始,逐步扩展到1M tokens。这一过程不仅有效降低了训练成本,还使模型能够逐步适应更长序列的学习。在训练过程中,研究人员还发现,混合不同长度的图像、视频和文本数据对于模型的多模态理解至关重要。具体包括:

模型训练分两个阶段:首先通过训练大型语言模型扩展上下文大小。然后进行视频和语言的联合训练。

Stage I: Learning Long-Context Language Models

扩展上下文:利用RingAttention技术,可以无近似地扩展上下文长度到数百万个token。同时,通过逐步增加训练序列长度,从32K tokens开始,逐步增加到1M tokens,以减少计算成本。此外,为了扩展位置编码以适应更长的序列,采用了简单的方法,即随上下文窗口大小增加而增加RoPE中的θ。

上下文扩展和视觉语言训练。使用 RingAttention 将书籍上的上下文大小从 4K 扩展到 1M,然后对长度为 32K 到 1M 的多种形式的视觉内容进行视觉语言训练。下面板显示了理解和响应有关复杂多模式世界的查询的交互功能。

训练步骤:首先从LLaMA-2 7B模型初始化,然后在5个阶段逐步增加上下文长度,分别是32K、128K、256K、512K和1M tokens。每个阶段都使用不同过滤版本的Books3数据集进行训练。随着上下文长度的增加,模型能够处理更多tokens。

任意对任意长序列预测。RingAttention 能够使用非常大的上下文窗口进行跨视频-文本、文本-视频、图像-文本、文本-图像、纯视频、纯图像和纯文本等多种格式的训练。请参阅LWM 论文了解关键功能,包括屏蔽序列打包和损失加权,它们可以实现有效的视频语言训练。

对话微调:为了学习长上下文的对话能力,构建了一个简单的问答数据集,将Books3数据集的文档分割成1000 token的块,然后利用短上下文语言模型为每个块生成一个问答对,最后将相邻的块连接起来构造一个长上下文的问答示例。在微调阶段,模型在UltraChat和自定义问答数据集上进行训练,比例为7:3。

语言评估结果:在单针检索任务中,1M上下文的模型可以在整个上下文中近乎完美地检索出随机分配给随机城市的数字。在多针检索任务中,模型在检索一个针时表现良好,在检索多个针时性能略有下降。在短上下文语言任务评估中,扩大上下文长度并没有降低性能。在对话评估中,增加对话交互能力可能会降低系统检索具体信息或“针”的精度。

Stage II: Learning Long-Context Vision-Language Models

架构修改:在第一阶段的基础上,对LWM和LWM-Chat进行修改,使其能够接受视觉输入。具体来说,使用预训练的VQGAN将256x256的输入图像转换为16x16的离散token,对视频进行逐帧的VQGAN编码并将编码连接起来。此外,引入了特殊的标记符号和来区分文本和视觉token,以及和来标记图像和视频帧的结束。

训练步骤:从LWM-Text-1M模型初始化,采用与第一阶段类似的逐步增加序列长度的训练方法,首先在1K tokens上训练,然后是8K tokens,最后是32K、128K和1M tokens。训练数据包括文本-图像对、文本-视频对以及下游任务的聊天数据,如文本-图像生成、图像理解、文本-视频生成和视频理解。在训练过程中,逐步增加下游任务的混合比例。

视觉-语言评估结果:在长视频理解方面,模型能够处理长达1小时的YouTube视频并准确回答问题,相较于现有模型具有明显优势。在图像理解和短视频理解方面,模型表现一般,但通过更严格的训练和更好的分词器,有潜力改进。在图像和视频生成方面,模型可以从文本生成图像和视频。Ablation研究表明,屏蔽序列填充对于图像理解等下游任务至关重要。

文本到图像。LWM 根据文本提示以自回归方式生成图像。

 文本到视频。LWM 根据文本提示以自回归方式生成视频。

第二阶段通过逐步增加序列长度并在大量文本-图像和文本-视频数据上训练,成功扩展了第一阶段的语言模型,使其具备视觉理解能力。这一阶段的模型可以处理长达1M tokens的多模态序列,并在长视频理解、图像理解和生成等方面展现出强大的能力。

技术细节(Further Details)

训练计算资源:模型使用TPUv4-1024进行训练,相当于450个A100 GPU,使用FSDP进行数据并行,并通过RingAttention支持大上下文。

训练损失曲线:图10和图11展示了第一阶段语言模型和第二阶段视觉-语言模型的训练损失曲线。可以看出,随着训练进行,损失持续下降。

训练超参数:附录F提供了详细的训练超参数,包括参数量、初始化模型、序列长度、RoPE参数、每批tokens数、总tokens数、训练步骤数、学习率计划、学习率预热步数、最大学习率和最小学习率、计算资源等。

推断扩展:实现了RingAttention用于解码,支持对长达数百万tokens的序列进行推断,需使用至少v4-128 TPU,并进行32路tensor并行和4路序列并行。

量化:文档指出,模型使用单精度进行推断,通过量化等技术可以进一步提高扩展性。

一些例子

基于图像的对话。

图 6. 图像理解。LWM 可以回答有关图像的问题。

超过 1 小时的 YouTube 视频视频聊天。

图 7. 长视频聊天。即使最先进的商业模型 GPT-4V 和 Gemini Pro 都失败了,LWM 仍能回答有关 1 小时长的 YouTube 视频的问题。每个示例的相关剪辑位于时间戳 9:56(顶部)和 6:49(底部)。

#xxx

#xxx
#xxx
#xxx
#xxx
#xxx
#xxx
#xxx

相关文章:

w~大模型~合集30

我自己的原文哦~ https://blog.51cto.com/whaosoft/13284996 #VideoMamba 视频理解因大量时空冗余和复杂时空依赖,同时克服两个问题难度巨大,CNN 和 Transformer 及 Uniformer 都难以胜任,Mamba 是个好思路,让我们看看本文是…...

基于单片机的仓库安防系统(论文+源码)

2.1 需求分析 仓库由于存有大量物品,因此对仓库的监控非常重要,目前仓库已经普遍装有安防系统,以保证仓库的安全,本次基于单片机的仓库安防系统设计,在功能上设计如下: 用户可通过IC卡进入仓库&#xff1…...

AndroidStudio查看Sqlite和SharedPreference

1.查看Sqlite 使用App Inspection,这是个好东西 打开方式:View → Tool Windows → App Inspection 界面如图: App inspection不但可以看Sqlite还可以抓包network和background task连抓包工具都省了。 非常好使 2.查看sharedPreference 使…...

仿 RabbitMQ 实现的简易消息队列

文章目录 项目介绍开放环境第三⽅库介绍ProtobufMuduo库 需求分析核⼼概念实现内容 消息队列系统整体框架服务端模块数据管理模块虚拟机数据管理模块交换路由模块消费者管理模块信道(通信通道)管理模块连接管理模块 客户端模块 公共模块日志类其他工具类…...

JavaScript基础知识及高频用法

目录 一、语言基础:构建代码逻辑的积木 二、核心概念:理解JavaScript的灵魂 三、高频用法:现代开发必备技巧 四、避坑指南:常见错误与调试 五、学习路线与资源推荐 从入门到实战,掌握现代Web开发基石 作为全球使…...

VUE项目中实现权限控制,菜单权限,按钮权限,接口权限,路由权限,操作权限,数据权限实现

VUE项目中实现权限控制,菜单权限,按钮权限,接口权限,路由权限,操作权限,数据权限实现 权限系统分类(RBAC)引言菜单权限按钮权限接口权限路由权限 菜单权限方案方案一:菜单…...

多机器人系统的大语言模型:综述

25年2月来自 Drexel 大学的论文“Large Language Models for Multi-Robot Systems: A Survey”。 大语言模型 (LLM) 的快速发展为多机器人系统 (MRS) 开辟新的可能性,从而增强通信、任务规划和人机交互。与传统的单机器人和多智体系统不同,MRS 带来独特…...

如何在 Java 应用中实现数据库的主从复制(读写分离)?请简要描述架构和关键代码实现?

在Java应用中实现数据库主从复制(读写分离) 一、架构描述 (一)整体架构 主库(Master) 负责处理所有的写操作(INSERT、UPDATE、DELETE等)。它是数据的源头,所有的数据变…...

Redis 数据类型 Hash 哈希

在 Redis 中,哈希类型是指值本⾝⼜是⼀个键值对结构,形如 key "key",value { { field1, value1 }, ..., {fieldN, valueN } },Redis String 和 Hash 类型⼆者的关系可以⽤下图来表⽰。 Hash 数据类型的特点 键值对集合…...

17.推荐系统的在线学习与实时更新

接下来就讲解推荐系统的在线学习与实时更新。推荐系统的在线学习和实时更新是为了使推荐系统能够动态地适应用户行为的变化,保持推荐结果的实时性和相关性。以下是详细的介绍和实现方法。 推荐系统的在线学习与实时更新 在线学习的概念 在线学习(Onli…...

网络安全检测思路

对于主机的安全检测,我们通常直接采用nmap或者类似软件进行扫描,然后针对主机操作系统及其 开放端口判断主机的安全程度,这当然是一种方法,但这种方法往往失之粗糙,我仔细考虑了一下,觉 得按下面的流程进行…...

老游戏回顾:SWRacer

竞速类游戏里,我很怀念它。 虽然已经25年过去了。 相比之下,别的游戏真的没法形容。 ---- 是LucasArts制作的一款赛车竞速游戏; 玩家要扮演一名银河旅行者参加各种赛车比赛,赢得奖金,在经历了八个不同星球上的24场…...

MySQL面试题合集

1.MySQL中的数据排序是怎么实现的? 回答重点 排序过程中,如果排序字段命中索引,则利用 索引排序。 反之,使用文件排序。 文件排序中,如果数据量少则在内存中排序, 具体是使用单路排序或者双路排序。 如果数据大则利用磁盘文件进行外部排序,一 般使用归并排序。 知识…...

如何在Java EE中使用标签库?

在Java EE(现在称为Jakarta EE)中使用标签库(Tag Library),主要是通过JSP标准标签库(JSTL)或自定义标签库来实现的。标签库允许在JSP页面中使用自定义的标签,从而简化页面逻辑、增强…...

第 12 天:行为树(Behavior Tree),让 AI 更智能!

🎯 目标: ✅ 理解 Unreal Engine 5 行为树(Behavior Tree) ✅ 创建行为树(BT)和黑板(Blackboard)管理 AI 状态 ✅ 使用任务(Task)让 AI 巡逻、追踪、攻击玩家…...

LabVIEW 用户界面设计基础原则

在设计LabVIEW VI的用户界面时,前面板的外观和布局至关重要。良好的设计不仅提升用户体验,还能提升界面的易用性和可操作性。以下是设计用户界面时的一些关键要点: 1. 前面板设计原则 交互性:组合相关的输入控件和显示控件&#x…...

自然语言处理NLP入门 -- 第三节词袋模型与 TF-IDF

目标 了解词袋模型(BoW)和 TF-IDF 的概念通过实际示例展示 BoW 和 TF-IDF 如何将文本转换为数值表示详细讲解 Scikit-learn 的实现方法通过代码示例加深理解归纳学习难点,并提供课后练习和讲解 3.1 词袋模型(Bag of Words, BoW&a…...

Flappy Bird开发学习记录

概述 为了了解一下Unity的开发过程,或者说感受?先搞简单的练练手。 工具 Unity:2022.3.51f1c1 visual studio 2022 开发过程 项目基本设置 新建2d项目,游戏画面设置为1080*1920(9:16)。 图片素材设…...

Visual Studio 使用 “Ctrl + /”键设置注释和取消注释

问题:在默认的Visual Studio中,选择单行代码后,按下Ctrl /键会将代码注释掉,但再次按下Ctrl /键时,会进行双重注释,这不是我们想要的。 实现效果:当按下Ctrl /键会将代码注释掉,…...

CTF-WEB: 利用Web消息造成DOM XSS

如果索引中有类似如下代码 <!-- Ads to be inserted here --> <div idads> </div> <script>window.addEventListener(message, function(e) {document.getElementById(ads).innerHTML e.data;}); </script>这行代码的作用是将接收到的消息内容…...

2025 西湖论剑wp

web Rank-l 打开题目环境&#xff1a; 发现一个输入框&#xff0c;看一下他是用上面语言写的 发现是python&#xff0c;很容易想到ssti 密码随便输&#xff0c;发现没有回显 但是输入其他字符会报错 确定为ssti注入 开始构造payload&#xff0c; {{(lipsum|attr(‘global…...

常见的排序算法:插入排序、选择排序、冒泡排序、快速排序

1、插入排序 步骤&#xff1a; 1.从第一个元素开始&#xff0c;该元素可以认为已经被排序 2.取下一个元素tem&#xff0c;从已排序的元素序列从后往前扫描 3.如果该元素大于tem&#xff0c;则将该元素移到下一位 4.重复步骤3&#xff0c;直到找到已排序元素中小于等于tem的元素…...

LVDS接口总结--(5)IDELAY3仿真

仿真参考资料如下&#xff1a; https://zhuanlan.zhihu.com/p/386057087 timescale 1 ns/1 ps module tb_idelay3_ctrl();parameter REF_CLK 2.5 ; // 400MHzparameter DIN_CLK 3.3 ; // 300MHzreg ref_clk ;reg …...

数据库的基本概念

在当今的信息时代&#xff0c;数据已成为企业乃至整个社会的重要资产。如何有效地存储、管理和利用这些数据成为了技术发展的关键领域之一。数据库系统作为数据管理的核心工具&#xff0c;在软件开发、数据分析等多个方面扮演着不可或缺的角色。本文将带你了解数据库的一些基本…...

Redis性能优化

1.是否使用复杂度过高的命令 首先&#xff0c;第一步&#xff0c;你需要去查看一下 Redis 的慢日志&#xff08;slowlog&#xff09;。 Redis 提供了慢日志命令的统计功能&#xff0c;它记录了有哪些命令在执行时耗时比较久。 查看 Redis 慢日志之前&#xff0c;你需要设置慢…...

CCF-CSP第34次认证第二题——矩阵重塑(其二)【需反复思考学习!!!】

第34次认证第二题——矩阵重塑&#xff08;其二&#xff09; 官网题目链接 时间限制&#xff1a; 1.0 秒 空间限制&#xff1a; 512 MiB 相关文件&#xff1a; 题目目录&#xff08;样例文件&#xff09; 题目背景 矩阵转置操作是将矩阵的行和列交换的过程。在转置过程中&…...

大模型DeepSeek-R1学习

学习路线 机器学习-> 深度学习-> 强化学习-> 深度强化学习 大模型演进分支 微调&#xff1a; SFT 监督学习蒸馏&#xff1a;把大模型作为导师训练小模型RLHF&#xff1a;基于人类反馈的强化学习 PPO 近端策略优化 油门 - 重要性采样 权重 * 打分刹车 - clip 修剪…...

Spring Cloud — 深入了解Eureka、Ribbon及Feign

Eureka 负责服务注册与发现&#xff1b;Ribbon负责负载均衡&#xff1b;Feign简化了Web服务客户端调用方式。这三个组件可以协同工作&#xff0c;共同构建稳定、高效的微服务架构。 1 Eureka 分布式系统的CAP定理&#xff1a; 一致性&#xff08;Consistency&#xff09;&am…...

19.4.9 数据库方式操作Excel

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 本节所说的操作Excel操作是讲如何把Excel作为数据库来操作。 通过COM来操作Excel操作&#xff0c;请参看第21.2节 在第19.3.4节【…...

《深度LSTM vs 普通LSTM:训练与效果的深度剖析》

在深度学习领域&#xff0c;长短期记忆网络&#xff08;LSTM&#xff09;以其出色的处理序列数据能力而备受瞩目。而深度LSTM作为LSTM的扩展形式&#xff0c;与普通LSTM在训练和效果上存在着一些显著的不同。 训练方面 参数数量与计算量&#xff1a;普通LSTM通常只有一层或较少…...

认识一下redis的分布式锁

Redis的分布式锁是一种通过Redis实现的分布式锁机制&#xff0c;用于在分布式系统中确保同一时刻只有一个客户端可以访问某个资源。它通常用于防止多个应用实例在同一时间执行某些特定操作&#xff0c;避免数据的不一致性或竞争条件。 实现分布式锁的基本思路&#xff1a; 1. …...

untiy3D为游戏物体制作简单的动画

1.创建一个物体挂载动画组件Animator 2.创建一个动画控制器 3.动画控制器挂载到Animator组件 4.创建动画窗口>动画 入口默认执行left 执行效果 20250212_151707 脚本控制动画 鼠标点击是切换到动画t using System.Collections; using System.Collections.Generic; usi…...

微服务与网关

什么是网关 背景 单体项目中,前端只用访问指定的一个端口8080,就可以得到任何想要的数据 微服务项目中,ip是不断变化的,端口是多个的 解决方案:网关 网关:就是网络的关口,负责请求的路由、转发、身份校验。 前段还是访问之前的端口8080即可 后端对于前端来说是透明的 网…...

ArcGIS基础知识之ArcMap基础设置——ArcMap选项:常规选项卡设置及作用

作为一名 GIS 从业者,ArcMap 是我们日常工作中不可或缺的工具。对于初学者来说,掌握 ArcMap 的基础设置是迈向 GIS 分析与制图的第一步。今天,就让我们一起深入了解 ArcMap 选项中常规选项卡的各个设置,帮助大家更好地使用这款强大的软件。 在 ArcMap 中,常规选项卡是用户…...

Ubuntu轻松部署ToolJet低代码开发平台结合内网穿透远程访问

文章目录 前言1.关于ToolJet2.Docker部署3.简单使用演示4.安装cpolar内网穿透5. 配置公网地址6. 配置固定公网地址 前言 本文主要介绍如何在本地Linux服务器使用Docker部署轻量级开源文件分享系统ToolJet&#xff0c;并结合cpolar内网穿透工具轻松实现跨网络环境远程访问与使用…...

[MySQL]5-MySQL扩展(分片)

随着数据量和用户量增加&#xff0c;MySQL会有读写负载限制。以下是部分解决方案 目录 功能拆分 使用读池拓展读&#xff08;较复杂&#xff09; 排队机制 &#x1f31f;分片拓展写 按业务或职责划分节点或集群 大数据集切分 分片键的选择 多个分片键 跨分片查询 资料…...

如何使用 DeepSeek 帮助自己的工作

Hi&#xff0c;我是布兰妮甜 &#xff01;在当今快速发展的技术领域&#xff0c;人工智能&#xff08;AI&#xff09;工具已经成为提高工作效率、促进创新的重要助手。DeepSeek作为一款先进的AI解决方案&#xff0c;为用户提供了强大的数据处理、分析以及预测能力&#xff0c;可…...

Redis缓存穿透、击穿和雪崩面试相关问题整理

在互联网公司的面试中&#xff0c;Redis 的缓存穿透、击穿和雪崩是高频考点&#xff0c;尤其在北京的头部互联网公司&#xff08;如字节、阿里、美团、快手等&#xff09;。以下是针对这三个问题的详细解析及常见面试题方向&#xff1a; 一、缓存穿透&#xff08;Cache Penetra…...

Flink之Watermark

Apache Flink 是一个分布式流处理框架&#xff0c;它非常擅长处理实时数据流。流处理中的一个关键挑战是事件时间的处理&#xff0c;因为在流式数据中&#xff0c;事件到达系统的顺序可能并不代表它们的实际发生时间。为了解决这一问题&#xff0c;Flink 引入了**Watermark&…...

vs构建网络安全系统 网络安全和网络搭建

网站的组成和搭建 网站由服务器&#xff0c;容器&#xff0c;脚本&#xff0c;数据库组成。 服务器和家庭电脑一样。 容器又为环境或服务&#xff1a;apache&#xff0c;lls&#xff0c;tomcat&#xff0c;nginx等 脚本&#xff1a;php&#xff0c;aspx&#xff0c;asp&#x…...

缓存穿透问题及解决方案

一、什么是缓存穿透&#xff1f; 在分布式系统中&#xff0c;缓存常常用于提高系统的性能&#xff0c;减轻数据库的压力。缓存穿透问题指的是请求的数据在缓存和数据库中都不存在&#xff0c;导致请求每次都直接查询数据库&#xff0c;无法从缓存中获取数据&#xff0c;从而绕…...

ElementUI el-popover弹框背景色设置

1.el-popover样式由于使用了 absolute 属性&#xff0c;导致脱离了节点&#xff0c;所以在父级元素使用class无法进行权重处理来修改其样式&#xff0c;解决方式如下&#xff1a;通过popper-class实现样式处理&#xff0c;避免全局样式污染 // html <el-popoverplacement&q…...

在 Mac ARM 架构上使用 nvm 安装 Node.js 版本 16.20.2

文章目录 1. 安装 nvm&#xff08;如果还没有安装的话&#xff09;2. 加载 nvm 配置3. 列出特定系列的 Node.js 版本&#xff08;远程&#xff09;&#xff1a;4. 安装 Node.js 16.20.25. 使用指定版本的 Node.js6. 验证安装 在 Mac ARM 架构上使用 nvm 安装 Node.js 版本 16.…...

spring集成activiti流程引擎(源码)

前言 activiti工作流引擎项目&#xff0c;企业erp、oa、hr、crm等企事业办公系统轻松落地&#xff0c;请假审批demo从流程绘制到审批结束实例。 源码获取&#xff1a;本文末个人名片直接获取。 一、项目形式 springbootvueactiviti集成了activiti在线编辑器&#xff0c;流行…...

VLLM历次会议(2024.4)

Prefix Caching。预先算好KV cache&#xff0c;遇见公共前缀&#xff0c;复用之&#xff0c;避免再计算一遍。 场景&#xff1a;1. 多轮对话。2.公共的system prompt。 Guided Decoding(格式化输出) 通过Outlines工具实现。 支持正则表达式、JSON格式等。 输入&#xff1a;…...

基于 Docker 搭建 Elasticsearch + Kibana 环境

一、Elasticsearch 1. 下载镜像 elasticsearch镜像不支持latest标签&#xff0c;必须指定版本号 % docker pull elasticsearch:8.17.2 2. 启动容器 参考官方文档 https://www.elastic.co/guide/en/elasticsearch/reference/7.5/docker.html % docker run -p 9200:9200 -p 9…...

在 ARM64 架构系统离线安装 Oracle Java 8 全流程指南

在 ARM64 架构系统离线安装 Oracle Java 8 全流程指南 文章目录 在 ARM64 架构系统离线安装 Oracle Java 8 全流程指南一、引言二、下载前的准备2.1 确认系统架构2.2 注册 Oracle 账号 三、从 Oracle 官方下载 Java 8 for ARM643.1 访问 Oracle Java 存档页面3.2 选择合适的版本…...

策略模式-小结

总结一下看到的策略模式&#xff1a; A:一个含有一个方法的接口 B:具体的实行方式行为1,2,3&#xff0c;实现上面的接口。 C:一个环境类&#xff08;或者上下文类&#xff09;&#xff0c;形式可以是&#xff1a;工厂模式&#xff0c;构造器注入模式&#xff0c;枚举模式。 …...

记一次Self XSS+CSRF组合利用

视频教程在我主页简介或专栏里 &#xff08;不懂都可以来问我 专栏找我哦&#xff09; 目录&#xff1a;  确认 XSS 漏洞 确认 CSRF 漏洞 这个漏洞是我在应用程序的订阅表单中发现的一个 XSS 漏洞&#xff0c;只能通过 POST 请求进行利用。通常情况下&#xff0c;基于 POST 的…...

VSCode + Continue 实现AI编程助理

安装VS Code 直接官网下载安装&#xff0c;反正是免费的。 安装VS插件Continue 直接在插件市场中搜索&#xff0c; Continue&#xff0c;第一个就是了。 配置Chat Model 点击Add Chat model后进行选择&#xff1a; 选择Ollama后&#xff0c;需要点击下面的config file : 由于…...