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

XAttention

XAttention: Block Sparse Attention with Antidiagonal Scoring

  • 革新Transformer推理的高效注意力机制
  • 资源​​
    ​​论文链接​​:XAttention: Block Sparse Attention with Antidiagonal Scoring
    ​​代码开源​​:GitHub仓库

XAttention是韩松团队提出的一种创新的块稀疏注意力机制,旨在解决传统Transformer模型在处理长上下文时面临的计算效率瓶颈问题。该论文通过引入反斜对角线评分(antidiagonal scoring)方法,实现了在不牺牲模型性能的前提下显著加速Transformer推理过程,特别是在多模态任务中表现出色。本文将详细介绍XAttention的核心思想、技术实现、实验验证及其在长上下文Transformer模型(LCTMs)中的应用价值。

1 研究背景与动机

随着大语言模型(LLMs)和多模态模型的快速发展,长上下文Transformer模型(LCTMs)已成为处理超长序列数据的关键工具,尤其是在视频理解、视频生成等需要处理极长信息序列的任务中。然而,传统注意力机制因其二次计算复杂度(O(n²))成为模型扩展的主要瓶颈,这使得处理长序列变得极其昂贵。

当前主流的解决方案是采用块稀疏注意力(block sparse attention)机制,它通过仅计算注意力图中关键区域的值来减少计算量。然而,现有方法在平衡准确性和效率方面面临重大挑战,主要问题在于块重要性测量的高成本往往抵消了通过稀疏性获得的计算收益。具体表现为:

  1. 重要性测量开销大:现有方法如Token池化或垂直斜杠检测需要大量计算资源
  2. 模式捕捉不完整:统一稀疏模式难以适应不同注意力头的异质性需求
  3. 精度-效率权衡:激进稀疏化常导致性能显著下降

针对这些问题,XAttention提出了反斜对角线评分这一创新方法,通过轻量级且高效的重要性评估机制,实现了更优的稀疏模式选择,从而在保持模型精度的同时大幅提升计算效率。

XAttention 的目的

XAttention 的核心目标是 在Transformer模型中实现高效的长序列注意力计算,通过 块稀疏化(Block Sparsification)减少计算量,同时 尽可能保留重要的注意力模式。其关键思想是:

  1. 降低计算复杂度

    • 传统注意力计算复杂度为 (O(N^2))(N 是序列长度),而 XAttention 通过稀疏化将其降低到接近 (O(N^{1.5})) 或更低。
    • 适用于 长序列任务(如 128K+ tokens 的文本、视频帧序列等)。
  2. 保持关键注意力模式

    • 使用 反斜对角线评分(Antidiagonal Scoring) 识别重要的注意力块,避免盲目稀疏化导致的性能下降。
  3. 即插即用

    • 无需修改模型架构或重新训练,可直接应用于现有的 Transformer 模型(如 BERT、GPT、ViT 等)。

2 XAttention核心方法

XAttention框架包含三个关键组件:基于反斜对角线的块重要性预测、阈值块选择算法和动态最小阈值预测机制。这些组件共同工作,实现了高效且精确的稀疏注意力计算。

2.1 反斜对角线评分机制

  • 关键思想:通过计算注意力块内反对角线(从左下到右上)元素的和作为块重要性代理,高效识别关键注意力区域。
    • 数学表达:对 B × B B \times B B×B的块,以步长 S S S采样反对角线元素,求和得分:
      Score = ∑ i + j = k A i , j ( k ∈ 反对角线索引 ) \text{Score} = \sum_{i+j=k} A_{i,j} \quad (k \in \text{反对角线索引}) Score=i+j=kAi,j(k反对角线索引)
    • 优势
      • 信息保留:每个token至少贡献一个反对角线和,避免局部采样偏差。
      • 模式覆盖:反对角线天然相交于垂直/斜线依赖模式(常见于视频、文本长程关联)。

XAttention的核心创新在于发现注意力矩阵中反斜对角线值之和(从左下到右上)可以作为块重要性的强有力代理指标。这一洞察源于两个关键观察:

具体实现上,对于大小为S×S的每个注意力块,XAttention以步长S选择反斜对角线上的元素,并计算这些元素的和作为该块的重要性分数。这种方法相比传统池化方法具有明显优势:

  • 避免仅依赖平均值或求和池化导致的预测不准确
  • 能有效捕捉块中少数但显著的垂直或斜杠模式
  • 计算开销极低,适合实际部署

2.2 阈值块选择算法

基于反斜对角线评分,XAttention设计了高效的稀疏注意力块选择算法。该算法流程如下:

  1. 对每个S×S注意力块计算反斜对角线元素和
  2. 应用softmax函数对这些和进行归一化,得到概率分布
  3. 使用find-blocks函数识别累积概率超过预定义阈值τ的最小块集

数学表达式为:
B ∗ = a r g m i n ∣ B ∣ s . t . Σ ( i , j ) ∈ B s o f t m a x ( Σ k + l = i + j A k , l ) > τ B* = argmin|B| s.t. Σ_{(i,j)∈B} softmax(Σ_{k+l=i+j} A_{k,l}) > τ B=argminBs.t.Σ(i,j)Bsoftmax(Σk+l=i+jAk,l)>τ

其中A是注意力图,B是选中的块集合。这一过程确保只保留信息量最大的注意力块,同时尽可能减少计算量。

2.3 动态阈值预测

考虑到不同注意力头表现出不同的稀疏模式和重要性,XAttention进一步提出了动态规划方法来自适应确定每个注意力头的最优阈值。该方法:

  1. 构建动态规划表,记录不同阈值调整下的性能
  2. 通过递推关系优化各头的阈值选择
  3. 逐步调整阈值(每次减少10%),平衡准确性与计算效率

动态阈值预测虽非强制组件,但能进一步优化XAttention的稀疏性,特别是在处理异质性强的多模态数据时效果显著。

3 实验验证与结果

XAttention在多个长上下文基准测试上进行了全面评估,涵盖语言理解、视频理解和视频生成任务,证明了其广泛适用性和高效性。

实验设置

研究团队选择了三个领域的代表性模型进行评估:

  1. 自然语言处理:使用Llama-3.1-8B-Instruct模型
  2. 视频理解:采用Qwen2-VL-7B-Instruct模型
  3. 视频生成:基于HunyuanVideo模型

对于语言任务,特别应用了精确阈值预测方法以优化计算效率与准确率的权衡。

主要结果

XAttention在各项任务中均取得了显著成果:

  1. 计算加速:在注意力计算中实现了高达13.5倍的加速
  2. 性能保持:与全注意力机制相比,在RULER、LongBench(语言)、VideoMME(视频理解)和VBench(视频生成)等基准测试上保持相当准确度
  3. 多模态优势:特别适合视频等长序列多模态任务,因其能有效捕捉时空依赖关系

对比分析

相比其他高效注意力方法,XAttention展现出独特优势:

  1. 与稀疏注意力对比:传统稀疏注意力(如MoA)使用统一稀疏模式,而XAttention通过反斜对角线评分实现更精细的重要性感知稀疏
  2. 与量化方法对比:8比特量化Attention(如SageAttention)虽能加速但不解决稀疏性问题,XAttention则可与之互补结合
  3. 与传统方法对比:相比位置插值等外推技术(如CoCA),XAttention直接从注意力计算层面优化,无需微调

4 技术优势与应用前景

XAttention的创新设计和出色表现使其在多个方面具有显著优势和应用潜力。

核心优势

  1. 即插即用:无需修改模型架构或重新训练,可直接应用于现有Transformer模型
  2. 计算高效:反斜对角线评分极其轻量,几乎不引入额外开销
  3. 通用性强:适用于文本、视频等多种模态和任务类型
  4. 精度保留:通过智能块选择,稀疏化几乎不影响模型性能

应用场景

场景输入序列长度(N)受益点
长文本建模1K–128K tokens降低内存占用,加速推理
视频理解(帧序列)500–10K 帧捕捉关键时空注意力
多模态交互混合文本+图像高效跨模态注意力计算
实时推理(如 LLMs)可变长度减少延迟,提升吞吐量

未来方向

基于XAttention的研究成果,未来可能的发展方向包括:

  1. 与量化技术结合:如SageAttention的8比特量化,进一步加速计算
  2. 动态稀疏模式:借鉴MoA的混合稀疏思想,适应不同注意力头特性
  3. 硬件协同设计:针对反斜对角线评分优化硬件加速器
  4. 跨模态扩展:探索在音频、3D点云等更多模态中的应用

结论

XAttention通过创新的反斜对角线评分机制,为Transformer模型的长上下文处理提供了一种高效且精确的解决方案。其核心价值在于:

  1. 揭示了注意力矩阵中反斜对角线模式与块重要性的深刻关联
  2. 设计了计算高效的块重要性评估和选择算法
  3. 实现了计算加速与性能保持的最佳平衡

这项研究不仅解决了实际部署中的关键瓶颈问题,也为未来高效注意力机制的设计提供了新思路。随着多模态AI应用的不断扩展,XAttention这类技术将在实现可扩展、高效的长上下文模型部署中发挥越来越重要的作用。

XAttention的开源实现和详细技术细节可通过原论文获取,研究团队已展示了其在多种实际场景中的应用潜力,为AI社区提供了宝贵的工具和见解。这项工作的影响预计将超越单纯的速度提升,可能重塑我们对高效注意力机制设计的认知和方法。

**论文《XAttention: Block Sparse Attention with Antidiagonal Scoring》**是2025年由MIT-IBM Watson AI Lab、清华大学等机构联合提出的创新性研究,旨在解决长上下文Transformer模型(LCTMs)中注意力机制二次计算复杂度的瓶颈问题。以下是核心内容总结:


XAttention 实现过程示例

我们通过一个 完整的例子 来展示 XAttention 的工作流程,包括:

  1. 注意力矩阵分块
  2. 反斜对角线评分
  3. 阈值块选择
  4. 稀疏注意力计算

举例说明 XAttention实现过程

1. 输入数据

假设我们有一个 4×4 的注意力矩阵 A(序列长度 N=4),并设定:

  • 块大小 B=2
  • 阈值 τ=0.5(仅保留评分 ≥ 0.5 的块)

注意力矩阵 A

A = [[0.1, 0.3, 0.2, 0.4],[0.2, 0.5, 0.1, 0.3],[0.4, 0.1, 0.6, 0.2],[0.3, 0.2, 0.4, 0.5]
]

2. 分块(Block Splitting)

A 划分为 2×2 的块(共 4 块):

  • 块 B₁ (0,0) = A[0:2, 0:2]
    [[0.1, 0.3], [0.2, 0.5]]
  • 块 B₂ (0,1) = A[0:2, 2:4]
    [[0.2, 0.4], [0.1, 0.3]]
  • 块 B₃ (1,0) = A[2:4, 0:2]
    [[0.4, 0.1], [0.3, 0.2]]
  • 块 B₄ (1,1) = A[2:4, 2:4]
    [[0.6, 0.2], [0.4, 0.5]]

3. 反斜对角线评分(Antidiagonal Scoring)

对每个块计算 反斜对角线元素之和(即 B[k][l] 满足 k + l = B-1):

  • B₁0.3 (k=0, l=1) + 0.2 (k=1, l=0) = 0.5
  • B₂0.4 (k=0, l=1) + 0.1 (k=1, l=0) = 0.5
  • B₃0.1 (k=0, l=1) + 0.3 (k=1, l=0) = 0.4
  • B₄0.2 (k=0, l=1) + 0.4 (k=1, l=0) = 0.6

评分结果

评分
B₁0.5
B₂0.5
B₃0.4
B₄0.6

4. 阈值块选择(Threshold-based Block Selection)

设定 阈值 τ=0.5,仅保留 评分 ≥ 0.5 的块:

  • 保留:B₁ (0.5), B₂ (0.5), B₄ (0.6)
  • 丢弃:B₃ (0.4)

最终选中的块

  • B₁, B₂, B₄

5. 稀疏注意力计算(Sparse Attention)

仅计算 被选中块 的注意力值,其余位置置 0:

A_sparse = [[0.1, 0.3, 0.2, 0.4],  ← B₁ (保留)[0.2, 0.5, 0.1, 0.3],  ← B₂ (保留)[0.4, 0.1, 0.6, 0.2],  ← B₃ (丢弃,但 B₄ 保留)[0.3, 0.2, 0.4, 0.5]   ← B₄ (保留)
]

由于 B₃ 被丢弃,其对应的 A[2:4, 0:2] 会被 置零(或 mask 掉):

A_final = [[0.1, 0.3, 0.2, 0.4],[0.2, 0.5, 0.1, 0.3],[0.0, 0.0, 0.6, 0.2],  # B₃ 被丢弃[0.0, 0.0, 0.4, 0.5]
]

但实际实现中,我们 只计算选中的块,而不会显式存储零值,以节省计算量。


6. 动态阈值调整(可选)

XAttention 还可以 动态调整阈值,例如:

  • 初始阈值 τ=0.5 → 保留 3/4 块(75% 稀疏)
  • 调整 τ=0.6 → 仅保留 B₄(25% 稀疏)

这种方法可以 平衡计算速度与精度,适用于不同任务需求。


7. Stribe

总结

XAttention 的完整流程:

  1. 分块:将 N×N 注意力矩阵划分为 B×B 的块。
  2. 评分:计算每个块的反斜对角线元素和。
  3. 选择:保留评分 ≥ 阈值 τ 的块。
  4. 计算:仅计算选中块的注意力值,其余部分忽略。

优势
计算高效:仅需 O(S) 计算评分(S 是块大小)。
模式捕捉强:反斜对角线能有效检测局部依赖。
即插即用:无需修改模型架构,可直接用于现有 Transformer。

适用场景

  • 长文本处理(如 128K+ tokens)
  • 视频理解(长序列时空建模)
  • 多模态任务(高效跨模态交互)

代码实现(简化版)

import torchdef xattention(A, B=2, tau=0.5):N = A.shape[0]A_sparse = torch.zeros_like(A)for i in range(0, N, B):for j in range(0, N, B):block = A[i:i+B, j:j+B]# 反斜对角线评分score = sum(block[k, B-1-k] for k in range(B))# 保留高评分块if score >= tau:A_sparse[i:i+B, j:j+B] = blockreturn A_sparse

这样,XAttention 就能在 保持模型性能的同时大幅减少计算量,适用于大规模 Transformer 推理加速!


import torchdef xattention(A, B=2, tau=0.5):"""XAttention 的简化实现参数:A: 原始注意力矩阵 (N x N)B: 块大小 (默认2)tau: 重要性阈值 (默认0.5)返回:稀疏化后的注意力矩阵"""N = A.shape[0]  # 获取序列长度A_sparse = torch.zeros_like(A)  # 初始化全零稀疏矩阵# 遍历所有块for i in range(0, N, B):  # 行方向步长Bfor j in range(0, N, B):  # 列方向步长B# 1. 提取当前块block = A[i:i+B, j:j+B]# 2. 计算反斜对角线评分# 反斜对角线元素满足 k + l = B-1score = sum(block[k, B-1-k] for k in range(B))# 3. 阈值筛选if score >= tau:# 保留重要块A_sparse[i:i+B, j:j+B] = block# 不满足条件的块保持为0(自动稀疏化)return A_sparse# 示例用法
if __name__ == "__main__":# 创建示例注意力矩阵A = torch.tensor([[0.1, 0.3, 0.2, 0.4],[0.2, 0.5, 0.1, 0.3],[0.4, 0.1, 0.6, 0.2],[0.3, 0.2, 0.4, 0.5]])print("原始注意力矩阵:")print(A)# 应用XAttentionsparse_A = xattention(A, B=2, tau=0.5)print("\n稀疏化后的矩阵:")print(sparse_A)

关键代码注释说明:

  1. 输入输出

    • 输入:原始注意力矩阵 A (N×N)
    • 输出:经过稀疏化的注意力矩阵 A_sparse
  2. 分块处理

    • 双重循环 for i in range(0, N, B) 实现网格状分块
    • block = A[i:i+B, j:j+B] 提取当前块
  3. 反斜对角线评分

    • block[k, B-1-k] 精准定位反斜对角线元素
    • sum() 计算这些元素的和作为评分
  4. 阈值筛选

    • if score >= tau 实现重要性筛选
    • 仅保留重要块,其余位置自动置零
  5. 稀疏存储优化

    • 实际应用中可用稀疏矩阵格式(如CSR)存储非零块
    • 这里用全零矩阵简化演示
  6. 可调参数

    • B 控制块大小(典型值16-64)
    • tau 控制稀疏度(需实验调整)

输出示例:

原始注意力矩阵:
tensor([[0.1, 0.3, 0.2, 0.4],[0.2, 0.5, 0.1, 0.3],[0.4, 0.1, 0.6, 0.2],[0.3, 0.2, 0.4, 0.5]])稀疏化后的矩阵:
tensor([[0.1, 0.3, 0.2, 0.4],[0.2, 0.5, 0.1, 0.3],[0.0, 0.0, 0.6, 0.2],[0.0, 0.0, 0.4, 0.5]])

这个实现展示了XAttention的核心思想,实际工程实现会进一步优化:

  1. 使用并行计算加速块处理
  2. 采用内存紧凑的稀疏存储格式
  3. 加入动态阈值调整策略

XAttention 的输入和输出

输入(Input)
  1. 注意力权重矩阵 A(形状 [N, N]

    • 由 Query 和 Key 计算得到的原始注意力矩阵(通常经过 Softmax 归一化)。
    • 示例(N=4):
      A = [[0.1, 0.3, 0.2, 0.4],[0.2, 0.5, 0.1, 0.3],[0.4, 0.1, 0.6, 0.2],[0.3, 0.2, 0.4, 0.5]
      ]
      
  2. 块大小 B(可选,默认 16-64)

    • 控制分块粒度,影响计算效率和稀疏性。
  3. 阈值 τ(可选,默认 0.5)

    • 决定哪些块被保留(评分 ≥ τ 的块会被计算,其余置零或跳过)。

输出(Output)
  1. 稀疏化的注意力矩阵 A_sparse(形状 [N, N]

    • 仅保留重要块的计算结果,其余位置置零(或直接忽略以节省内存)。
    • 示例(B=2, τ=0.5):
      A_sparse = [[0.1, 0.3, 0.2, 0.4],  # 块 B₁ (评分=0.5) 保留[0.2, 0.5, 0.1, 0.3],  # 块 B₂ (评分=0.5) 保留[0.0, 0.0, 0.6, 0.2],  # 块 B₃ (评分=0.4) 丢弃[0.0, 0.0, 0.4, 0.5]   # 块 B₄ (评分=0.6) 保留
      ]
      
  2. 实际应用中的优化

    • 在真实实现中,A_sparse 可能以 稀疏矩阵格式(如 CSR) 存储,仅保存非零块的位置和值。
    • 计算注意力输出时,直接跳过零块,减少 FLOPs。


总结

维度说明
目的通过块稀疏化加速注意力计算,同时保留关键模式。
输入原始注意力矩阵 A + 可选的块大小 B 和阈值 τ
输出稀疏化的注意力矩阵(非重要块置零或忽略)。
优势计算高效、即插即用、适合长序列任务。

XAttention 的最终效果是 用更少的计算量逼近完整注意力的性能,这对部署大规模 Transformer 模型至关重要!

相关文章:

XAttention

XAttention: Block Sparse Attention with Antidiagonal Scoring 革新Transformer推理的高效注意力机制资源​​ ​​论文链接​​:XAttention: Block Sparse Attention with Antidiagonal Scoring ​​代码开源​​:GitHub仓库 XAttention是韩松团队提…...

07.Python代码NumPy-排序sort,argsort,lexsort

07.Python代码NumPy-排序sort,argsort,lexsort 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是NumPy的使用语法。前后每一小节的内容是存在的有:学习and理解的关联性,希望…...

无人机飞控运行在stm32上的RTOS实时操作系统上,而不是linux这种非实时操作系统的必要性

飞控程序需要运行在STM32等微控制器(MCU)的实时操作系统(RTOS)而非Linux等非实时操作系统(如通用Linux内核),主要原因在于实时性、资源占用、硬件适配性以及系统可靠性等方面的实质性差异。以下…...

Leetcode - 周赛446

目录 一、3522. 执行指令后的得分二、3523. 非递减数组的最大长度三、3524. 求出数组的 X 值 I四、3525. 求出数组的 X 值 II 一、3522. 执行指令后的得分 题目链接 本题就是一道模拟题,代码如下: class Solution {public long calculateScore(String…...

Linux——系统安全及应用

目录 一:账号安全控制 1,基本安全措施 系统账号清理 密码安全控制 命令历史,自动注销 2,用户切换与提权 su命令的用法 PAM认证 3,sudo命令——提升执行权限 在配置文件/etc/sudoers中添加授权 通过sudo执行…...

随机面试--<二>

编译安装软件的流程 1-安装所需源代码 2-配置安装环境 3-进行相关设置 4-编译 5-安装 nginx安装新模块的流程 1-准备与原nginx版本相同的源码包,准备模块安装包 2-准备编译安装环境 3-配置参数 来源于nginx -V配置原模块 以及--add-module 增加模块 4-mak…...

LeetCode面试经典 150 题(Java题解)

一、数组、字符串 1、合并两个有序数组 从后往前比较,这样就不需要使用额外的空间 class Solution {public void merge(int[] nums1, int m, int[] nums2, int n) {int l mn-1, i m-1, j n-1;while(i > 0 && j > 0){if(nums1[i] > nums2[j])…...

【技术追踪】Differential Transformer(ICLR-2025)

Differential Transformer:大语言模型新架构, 提出了 differential attention mechanism,Transformer 又多了一个小 trick~ 论文:Differential Transformer 代码:https://github.com/microsoft/unilm/tree/master/Diff…...

报告系统状态的连续日期 mysql + pandas(连续值判断)

本题用到知识点:row_number(), union, date_sub(), to_timedelta()…… 目录 思路 pandas Mysql 思路 链接:报告系统状态的连续日期 思路: 判断连续性常用的一个方法,增量相同的两个列的差值是固定的。 让日期与行号 * 天数…...

【C++类和数据抽象】类的作用域

目录 一、类的作用域基本概念 1.1 什么是类的作用域 1.2 作用域层次体系 1.3 类作用域的特点 1.4 基本访问规则 二、访问控制三剑客 2.1 public:开放接口 2.2 private:数据封装 2.3 protected:继承通道 2.4 跨作用域访问示例 三…...

【区块链技术解析】从原理到实践的全链路指南

目录 前言:技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块技术选型对比 二、实战演示环境配置要求核心代码实现(10个案例)案例1:创建简单区块链案例2:工作…...

LangGraph(一)——QuickStart样例中的第一步

目录 1. LangGraph简介2. 使用uv初始化项目3. 官网QuickStart——第一步:构建一个ChatBot(仅关注Graph的构建即可)3.1 配置大模型API_KEY3.2 初始化StateGraph3.3 添加chatbot node3.4 添加edges3.5 可视化StateGraph3.6 构建聊天循环 参考 1. LangGraph简介 LangGr…...

spring security +kotlin 实现oauth2.0 认证

基于OAuth 2.0的认证功能实现(Kotlin Spring Security) 以下是使用 AbstractAuthenticationProcessingFilter、AuthenticationProvider、AbstractAuthenticationToken 和 AuthenticationSuccessHandler 实现 OAuth 2.0 认证的完整代码设计。 1. 自定义…...

服务器监控软件推荐

以下是几款常用的服务器监控软件推荐,涵盖开源和商业方案,适用于不同规模和需求: 一、开源免费方案 Prometheus Grafana 特点:时序数据库 可视化仪表盘,支持多维度监控和告警。适用场景:云原生、Kubernet…...

在kali中安装AntSword(蚁剑)

步骤一、下载压缩包 源码:https://github.com/AntSwordProject/antSword,下载压缩包。 加载器:https://github.com/AntSwordProject/AntSword-Loader,根据系统选择压缩包(kali选择AntSword-Loader-v4.0.3-linux-x64&…...

【论文速递】2025年06周 (Robotics/Embodied AI/LLM)

目录 SMOLLM2:当Smol变得大 - 以数据为中心的小语言模型英文摘要中文摘要 OmniHuman-1:重新考虑一阶段的人类动画模型的扩展英文摘要中文摘要 S1:简单的测试时间缩放英文摘要中文摘要 直接对齐算法间的差异日渐模糊英文摘要中文摘要 VideoJAM…...

相机标定(输出相机内参和畸变参数)

相机标定 这里我用笔记本电脑自带的摄像头进行相机标定 仅作示例,实际工程中要用对应的摄像头进行标定 同时代码也要相应的修改,不过修改的主要是相机的初始化 粗略的说就是打开相机那部分要修改(依据实际情况相应修改) 最终的结果…...

Linux-编辑器的使用

实验三 Linux编辑器的使用 一、实验目的 学习使用vi编辑器建立、编辑和保存文本文件。 二、实验内容 1.进入和退出vi。 2.Vi不同工作模式的切换。 3.文本文件基本编辑(光标移动、文本输入、复制、移动、删除、查找、替换)。 4.文本文件的保存和备份。…...

Android开发中的复制和粘贴

Android 提供了一个强大的基于剪贴板的框架,用于复制和粘贴。它支持简单和复杂的数据类型,包括文本字符串、复杂数据结构、文本和二进制流数据,以及应用资源。简单的文本数据直接存储在剪贴板中,而复杂的数据则存储为引用&#xf…...

使用 inobounce 解决 iOS 皮筋效果导致的无法下拉刷新

使用 inobounce 解决 iOS 皮筋效果导致的无法下拉刷新 在移动端 H5 页面开发中,iOS 设备的“皮筋效果”(Rubber Band Effect)是一个常见的挑战。当用户在页面顶部下拉或底部上拉时,iOS 会触发整个页面的回弹效果,这不…...

特征选择与类不平衡处理

特征选择与类不平衡处理技术 一、特征选择方法 1. 过滤法(Filter Methods) 原理: 基于统计学方法或特征本身的分布特性独立于模型进行特征筛选,通过计算特征与目标变量的相关性或特征的发散性进行排序选择。 典型方法&#xf…...

24、ASP.NET⻚⾯之间传递值的⼏种⽅式

1. QueryString(查询字符串) 描述:通过 URL 参数传递数据,例如 Page2.aspx?id123。 适用场景:简单、非敏感数据,页面跳转时使用。 2. Session(会话) 描述:在服务器端…...

【扩展卡尔曼滤波器实际运用案例】

扩展卡尔曼滤波器 算法描述实际案例 算法描述 考虑离散时间非线性动态系统 { x k 1 f k ( x k , w k ) z k h k ( x k , v k ) \left\{\begin{matrix} x_{k1}f_{k}(x_k,w_k)\\ z_{k}h_{k}(x_k,v_k) \end{matrix}\right. {xk1​fk​(xk​,wk​)zk​hk​(xk​,vk​)​ 其中是…...

Centos9 安装 nginx 及配置

1. 安装nginx 安装依赖软件,安装之前可以看一下是否已经安装过以下软件,dnf list installed | grep zlib dnf install gcc-c dnf install zlib dnf install pcre pcre-devel dnf install openssl openssl-devel下载nginx,这里是下载到opt文…...

总结设计测试用例的万能公式

现在有⼀款产品,要求我们对“⻔锁”设计测试⽤例,假如你是测试⼈员,你会怎么设计呢? 1 常规思考逆向思维发散性思维 设计测试⽤例的原则⼆: 1.测试⽤例的编写不仅应当根据有效和预料到的输⼊情况,⽽且也…...

Android RK356X TVSettings USB调试开关

Android RK356X TVSettings USB调试开关 平台概述操作-打开USB调试实现源码补充说明 平台 RK3568 Android 11 概述 RK3568 是瑞芯微(Rockchip)推出的一款高性能处理器,支持 USB OTG(On-The-Go)和 USB Host 功能。US…...

python生成动态库在c++中调用

一.Windows下生成动态库.pyd 在setup.py的同目录下使用python setup.py build_ext --inplace 二.在vscode的c中使用.pyd文件(动态库) 1)配置python的环境 python -c "import sys; print(sys.executable)" #确定python安装位置 2…...

大模型数据味蕾论

大模型数据味蕾论 大模型的成长路径:从婴儿到专家预训练数据的"四维口味"模型从文本到模型:数据处理的关键步骤"大模型数据味蕾论"结语 AI大模型就像一位厨师,预训练数据就是这位厨师的味蕾。 没有经过训练的味蕾&#x…...

网络编程4

day4 一、Modbus 1.分类 (1).Modbus RTU: 运行在串口上的协议,采用二进制表现形式以及紧凑型数据结构,通信效率高,应用广泛。(2).Modbus ASCII: 运行在串口上的协议,采用ASCII码传输,并且利用特殊字符作为其字节的开始…...

neo4j-community-3.5.5-unix.tar.gz安装

从官网找了下包,哎,奈何访问不了github,那就找镜像吧,哎,也是不通。 # docker search neo4j Error response from daemon: Get "https://index.docker.io/v1/search?qneo4j&n25": dial tcp 202.160.128.40:443: i…...

高防IP能抵御哪些类型的网络攻击?

高防IP(High Defense IP)是一种专门针对网络攻击设计的防护服务,主要通过流量清洗、协议分析、行为检测等技术抵御多种网络攻击。以下是其能防御的主要攻击类型及原理: ​​一、常见防御的攻击类型​​ ​​DDoS攻击(分…...

动态监控进程

1.介绍: top和ps命令很相似,它们都是用来显示正在执行的进程,top和ps最大的不同之处,在于top在执行中可以更新正在执行的进程. 2.基本语法: top [选项] 选项说明 ⭐️僵死进程:内存没有释放,但是进程已经停止工作了,需要及时清理 交互操作说明 应用案…...

你学会了些什么220622?--搭建UI自动化

jenkins访问地址:http://192.168.82.129:8080/ 账号密码:admin/a123456a ***** 什么是UI自动化** 使用工具或者脚本对需要测试的软件的前端界面在预设的条件下,在已有的测试数据下运行系统或者应用程序,并获取其前端页面UI显示的…...

深入理解自监督学习(Self-Supervised Learning):理论与实践

📌 友情提示: 本文内容由银河易创AI(https://ai.eaigx.com)创作平台的gpt-4o-mini模型生成,旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证,建议读者通过官方文档或实践进一步确认其准…...

时序逻辑入门指南:LTL、CTL与PTL的概念介绍与应用场景

引言 在计算机科学和形式化方法中,**时序逻辑(Temporal Logic)**是描述系统动态行为的核心工具,它允许我们形式化地表达“时间”相关的性质,例如“某事件最终会发生”或“系统始终满足安全条件”。其中,LTL(线性时序逻辑)、**CTL(计算树逻辑)和PTL(命题时序逻辑)*…...

Spring Boot 整合 JavaFX 核心知识点详解

1. 架构设计与集成模式 1.1 Spring Boot 与 JavaFX 的分层架构设计 Spring Boot 与 JavaFX 的整合需要精心设计的分层架构,以充分利用两个框架的优势。 标准分层架构 ┌────────────────────────────────────────────────…...

进程与线程:02 多进程图像

多进程图像的起源与核心地位 上节课我们开启了对操作系统核心概念——多进程图像的学习,探讨了其产生的原因。操作系统的核心职责之一是管理CPU,CPU作为实现取指执行的硬件自动化部件,只有执行取指操作(即取出并执行程序指令 &am…...

基于SIMMECHANICS的单自由度磁悬浮隔振器PID控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 单自由度磁悬浮减振器工作原理简介 4.2 SIMMECHANICS工具箱 5.完整工程文件 1.课题概述 基于SIMMECHANICS的单自由度磁悬浮隔振器PID控制系统simulink建模与仿真。其中,SIMMECHANICS是M…...

FreeRTOS互斥信号量解决优先级翻转实战教程

FreeRTOS互斥信号量解决优先级翻转实战教程 大家好!今天我们来深入探讨FreeRTOS中的优先级翻转问题,并通过互斥信号量来解决这个问题。上一篇文章我们已经了解了优先级翻转的现象,今天我们将动手实践,通过代码对比来直观感受互斥…...

Spark-SQL 四(实验)

用idea实验hive的常用代码 将数据放到项目的目录下 代码实现 运行结果: 实验 统计有效数据条数及用户数量最多的前二十个地址 将数据放到Spark-SQL/input目录下 代码实现: 运行结果:...

前端技术未来的发展趋势分析

以下是关于前端技术未来发展趋势的深度分析,结合行业动态和技术演进方向,从多个维度展开: 一、核心发展趋势 1. 框架融合与性能极致化 趋势:React/Vue/Solid 等框架在编译时优化(如React Forget编译器)和…...

字节扣子空间开启内测!附免费邀请码!

3月初,当Manus作为首个通用智能体横空出世时,整个科技圈都沸腾了。 当时我就预言过:这种创新产品要真正普及,还得看大厂动作(毕竟创业公司的资源有限啊)。 这不,字节跳动最近就悄悄放出了大招—…...

高并发场景下的淘宝 API 开发实践:商品数据实时采集与性能优化

在电商行业竞争激烈的当下,实时获取海量商品数据成为企业把握市场动态、制定精准策略的关键。然而,高并发场景下对淘宝 API 的调用极易引发性能瓶颈与稳定性问题。本文将围绕高并发场景下淘宝 API 开发,深入讲解商品数据实时采集的技术要点&a…...

如何将Qt程序打包成应用程序?

1、使用release模式,编译项目 2、新建一个文件夹(不要有中文路径),将刚才编译生成的可执行文件(.exe)放入新建的文件夹下。 可执行文件通常生成在项目目录下的构建文件夹中,如 build-项目名-套…...

AI重塑网络安全:机遇与威胁并存的“双刃剑”时代

一、引言 人工智能(AI)技术的迅猛发展,正在深刻改变网络安全行业的格局。从ChatGPT生成钓鱼邮件到AI驱动的漏洞挖掘,从零信任架构的普及到安全大模型的实战应用,AI既是攻击者的“新武器”,也是防御者的“新…...

c++基础·列表初始化

目录 一、列表初始化的核心优势 二、基础数据类型与数组初始化 1. 基础类型初始化 2. 数组初始化 三、类与结构体初始化 1. 构造函数匹配规则 2. 注意事项 四、标准容器初始化 五、聚合类型(Aggregate Types)初始化 1. 聚合类型定义 2. 初始化…...

颠覆传统!毫秒级响应的跨平台文件同步革命,远程访问如本地操作般丝滑

文章目录 前言1. 安装Docker2. Go File使用演示3. 安装cpolar内网穿透4. 配置Go File公网地址5. 配置Go File固定公网地址 前言 在这个信息爆炸的时代,谁不曾遭遇过类似的窘境呢?试想,当你正于办公室中埋首案牍时,手机突然弹出一…...

目标检测中的损失函数(二) | BIoU RIoU α-IoU

BIoU来自发表在2018年CVPR上的文章:《Improving Object Localization With Fitness NMS and Bounded IoU Loss》 论文针对现有目标检测方法只关注“足够好”的定位,而非“最优”的框,提出了一种考虑定位质量的NMS策略和BIoU loss。 这里不赘…...

RS232 串行通信:C++ 实现指南

文章目录 一、RS232 简介1. 电气特性2. 传输速率3. 传输距离 二、在 C 中实现 RS232 通信1. Windows 平台(1)打开串行端口(2)配置串行通信参数(3)发送数据(4)接收数据(5&…...

电控---SWD协议

SWD协议是烧录调试常用的协议,本文对SWD协议进行了,覆盖物理层、协议层、寄存器结构、信号时序、安全特性、实际应用及最新发展趋势的讲解。 一、物理层架构与信号特性 1. 引脚定义与电气规范 核心引脚: SWDIO(双向数据线&…...