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

CANN / cann-recipes-infer: NPU DeepSeek-V3.2-Exp Ascend C 融合算子优化

NPU DeepSeek-V3.2-Exp Ascend C 融合算子优化【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer面向 DeepSeek-V3.2-Exp 架构本次发布两个全新的融合算子LightningIndexer(LI) 以及SparseFlashAttention(SFA)。其中LightningIndexer算子是本次 DeepSeek 新架构中最特别的部分之一用于对重要的上下文进行稀疏选择当前 Top-$k$ 计算已经融入LightningIndexer算子相较于 Top-$k$ 外置收益大约20%SparseFlashAttention则是针对稀疏 Attention 场景进行了特殊优化的 Attention 算子。A3 中的 Cube 核与 Vector 核数比为 $1:2$每1个 Cube 核与2个 Vector 核构成一个组核 (一个 AICore)其中一个组核的结构如下图所示其中 L1、L0A、L0B、L0C 为 Cube 核的片上 BufferUB 为 Vector 核的片上 Buffer。具体介绍可参考基本架构。在本篇技术报告中我们将对两个融合算子在 A3 上的具体优化进行细致地阐述包括具体的算子 Tiling 设计、Cube 核与 Vector 核间的流水优化、计算流程的实现优化、以及下一步即将开展的优化等内容同时将介绍当前融合算子在提升易用性上的进展。Highlights细致的算子 Tiling 及 Pipeline 设计发挥融合算子优势充分利用硬件特性基于 Ascend C API 高效实现聚合访存减少指令下发提高离散访存性能算子开发及调测的易用性提升LightningIndexerQuant量化支持Mat-Duce 算法充分利用 Cube 核OutlineNPU DeepSeek-V3.2-Exp Ascend C 融合算子优化HighlightsOutlineLightningIndexerLI 算子 Tiling 设计LI Pipeline 设计ReLU 随路实现Top-k 指令实现LI 量化支持Mat-Duce 算法SparseFlashAttentionSFA 算子 Tiling 设计SFA Pipeline 设计访存优化SFA Next Feature易用性提升TilingKey 模板化分核计算下沉LightningIndexerLightningIndexer基于一系列操作得到每一个 token 对应的 Top-$k$ 个位置。对于某个 token 对应的 Index Query $Q_{index}\in\R^{g\times d}$给定上下文 Index Key $K_{index}\in\R^{S_{k}\times d},W\in\R^{g\times 1}$其中 $g$ 为 GQA 对应的 group size$d$ 为每一个头的维度$S_{k}$ 是上下文的长度LightningIndexer的具体计算公式如下 $$ \text{Top-}k\left{[1]{1\times g}\left[(W[1]{1\times S_{k}})\odot\text{ReLU}\left(Q_{index}K_{index}^T\right)\right]\right} $$可拆分为如下计算流程计算矩阵乘法$S Q_{index}K_{index}^T$计算激活函数$S\text{ReLU}(S)$计算广播乘法$S_W(W[1]{1\times S{k}})\odot S$沿G轴进行Reduce操作$Score[1]_{1\times g} S_W$对 $Score$ 进行 $\text{Top-}k$ 计算即获取数值排序前 $k$ 个的结果并返回其对应的 Index在 Prefill 或开启 MTP 的 Decode 场景多个 token 对应的 $Q_{index}$ 会被合并统一计算本文后续部分不对单/多个 token 对应的 $Q_{index}$ 加以区分。实际开发中需要充分利用昇腾硬件的特征以实现更好的性能以下将详细介绍当前的解决方案及具体实现方式。LI 算子 Tiling 设计算子的 Tiling 设计决定了储存空间是否被充分利用进而影响整体的算力利用率以及算子性能。针对LightningIndexer本章分别阐述核间和核内的 Tiling 设计。由于片上 Buffer 空间有限任何计算本质上都需要进行切块因此需要确定一次迭代计算的基本块大小即核间的 Tiling 设计。当前LightningIndexer算子将基本块大小设置为$(512,512)$即一次迭代计算完成512行以减少右矩阵的重复搬运 (以$g64$为例一次会合并8个token统一计算)同时会完成 $S_{k}$ 方向上粒度为512的计算这个值的选取可以保证流水线头尾开销可控以及 Cube 核与 Vector 核之间同步开销可被计算掩盖。核内 Tiling 设计采用了如下方案L1 空间划分为如下部分$Q_{index}$ 矩阵常驻$512\times 128\times2\text{ Bytes}128\text{ KB}$L1层级基本块为 $(512,128)$在实际计算时可做更细致的搬运即一次只搬运$(256,128)$大小的数据到L1以降低搬运头开销$K_{index}$ 矩阵 3-Buffer 循环复用$3\times256\times 128\times2\text{ Bytes}192\text{ KB}$L1层级基本块为 $(256,128)$。L0AL0BL0C 使能 Double Buffer分别划分为$2\times32\text{ KB},2\times32\text{ KB},2\times64\text{ KB}$一次搬入 L0A 和 L0B 的矩阵块大小都为$(128,128)$这是一种对昇腾硬件较为亲和的设置可以提高算力利用率。这样的方式可以保证在计算过程中 $Q_{index}$ 只需要搬运一次并且降低 $K_{index}$ 矩阵的重复搬运次数假设 $Q_{index}$ 矩阵 L1 层级基本块大小为 $(128,128)$而行方向总的 token 数为 $S_q$那么 $K_{index}$ 矩阵需要重复搬运 $\lceil S_q/128\rceil$ 次选取基本块大小为 $(512,128)$ 可将重复搬运次数降低到 $\lceil S_q/512\rceil$。由于第一个计算过程矩阵乘的启动需要右矩阵的搬运为右矩阵分配多块 Buffer 可消除计算流程因为 Buffer 占用造成的阻塞所以为 $K_{index}$ 分配 3-Buffer 可以提升带宽爬坡期的搬运效率。LI Pipeline 设计LightningIndexer的计算流程只有两个阶段即矩阵乘和 ReLU 操作 ($C_1$) 以及后续的多个向量计算 ($V_1$)。为了防止多个阶段的串行执行需要提前下发 (Preload) 一次 $C_1$ 以实现流水的互相掩盖。ReLU 随路实现LightningIndexer首先需要进行矩阵乘法并对结果进行ReLU计算。由于矩阵乘法和 ReLU 计算分别发生在不同的计算单元朴素的实现需要将矩阵乘法的结果从 Cube 核搬运至 Vector 核进行。而昇腾NPU上 Cube 核的 FixP 组件提供随路 ReLU 能力即可以在矩阵乘法完成之后直接在数据搬运的过程中随路完成 ReLU 操作不需要显式进行 ReLU 计算。除 ReLU 之外FixP 组件还有更多强大功能具体可参考基础API: FixP相关。Top-k 指令实现LightningIndexer融合算子的核心是在长达数十万的序列中为每个 token 高效地筛选出分数最高的 $k$例如2048个索引。同时对于算子而言Top-$k$ 的计算必须是准确无误的不能采用近似算法求解。当前的实现方案基于昇腾支持的排序指令进行全量排序Top-$k$ 计算方案过程分为三步分组排序通过VBS32指令将每32个 token 按照其 $Score$ 进行稳定降序排列输出其排序向量以及对应索引向量直到将整个序列的 token 分组排序完毕。归并通过VMS4v2指令将至多4组可为2/3组长度为32、128、512的已排序向量进行归并直到合并后的向量长度达到2048。合并排列仍然按照其对应 $Score$ 进行稳定降序排列最终输出的向量长度为4组输入向量长度之和同时输出其对应索引向量。规约采用VMS4v2指令的耗尽模式 (当某个输入向量的可用数据已全部读取完毕排序指令立即暂停执行)将至多4组长度为2048已排序的向量进行归并。取出前 $k2048$ 个参数组成的向量与另外未参与合并排序的有序向量重复进行 Top-$k$ 计算直到将所有长度为2048的有序向量比较完毕得到最终所有向量中得分最高的2048个对应的 Index。假设上下文长度为 $S_k$ 分组排序与归并步骤的计算量为 $4S_k$。规约步骤的计算量无法精确评估采用正态分布结合蒙特卡洛法模拟结果显示第一次的计算量接近 $4k$ 从第二次开始由于已经有了 $k$ 个较大数的向量参与运算计算量开始大幅减少直到逼近耗尽极限 $k$ 。该部分计算量经过模拟分析后可表示为 $0.36S_k3.32k$ 。因此Top-$k$ 流程总计算量 $totalCount 4.36S_k 3.32k$。LI 量化支持当前LightningIndexer算子已支持 Per-Token-Head 量化 输入即输入的 $Q_{index}$ 和 $K_{index}$ 都被量化为 INT8 数据类型以此应对长序列场景下显存占用过大的问题。支持量化输入的LightningIndexerQuant对于某个 token 对应的 Index Query $Q_{index}^{INT8}\in\R^{g\times d}$ 及其反量化系数$Scale_{Q}\in\R^{g\times1}$给定上下文 Index Key $K_{index}^{INT8}\in\R^{S_{k}\times d}$ 及其反量化系数$Scale_{K}\in\R^{S_{k}\times1}$, $W\in\R^{g\times 1}$其中 $g$ 为 GQA 对应的 group size$d$ 为每一个头的维度$S_{k}$ 是上下文的长度LightningIndexerQuant的具体计算公式如下 $$ \text{Top-}k\left{[1]{1\times g}\left[(W[1]{1\times S_{k}})\odot\text{ReLU}\left(\left(Scale_QScale_K^T\right)\odot\left(Q_{index}^{INT8}{(K_{index}^{INT8})}^T\right)\right)\right]\right} $$Mat-Duce 算法LightningIndexerQuant算子采用了 Mat-Duce 算法利用数学变换调整计算逻辑用矩阵乘法实现规约计算。该算法充分利用 A3 芯片 Cube 核的随路能力将LightningIndexerQuant算子中的大部分计算都在 Cube 核内实现。由于 $Scale_Q,Scale_K\ge0$令 $\tilde{W} Scale_Q \odot W \in \mathbb{R}^{g\times1}$LightningIndexerQuant计算公式可等价变换为$$\text{Top-}k\left{\tilde{W}^T \text{ReLU}(Q_{index}^{INT8}(K_{index}^{INT8})^T) \odot Scale_K^T\right}.$$对应的具体计算流程为预处理在 UB 上计算 $\tilde{W} Scale_Q \odot W$CAST 到 FP16 写出到 GM;在 Cube 核内计算 $S^{INT32} Q_{index}^{INT8}(K_{index}^{INT8})^T$$S$ 数据类型为 INT32利用 FixP 的 DEQF16 指令计算 $S^{FP16}\text{FP16}(S^{INT32}/1024)$将 INT32 结果与 $1/1024$ 相乘并转化为 FP16 数据类型此处 $1/1024$ 可以防止数值溢出且不会影响最终 Top-$k$ 的结果继续利用 FixP 的随路 ReLU 功能计算 $S\text{ReLU}(S^{FP16})$ 并将结果搬运至 L1 以进行下一次矩阵乘法计算在 Cube 核内执行 $P\tilde{W}^TS$ 将结果写出到 GM 上。这一步骤同时完成了关于 $Scale_Q$ 的反量化、关于 $W$ 的行方向放缩以及不同头结果的求和操作将 $P$ 从 GM 读入到 Vector 核内并进行关于 $Scale_K$ 的反量化$Score P \odot Scale_K^T$在 Vector 核内对 $Score$ 计算 Top-$k$。计算流程如下图所示这一方案相比标准实现方案将大部分向量操作通过数学变换以 Cube 核实现 (步骤5)同时充分利用了 FixP 随路量化激活搬运 能力将量化矩阵乘法的结果从 INT32 数据类型转化为 FP16 数据类型 (步骤34) 得以进行第二次半精度的矩阵乘法操作显著提升了算子性能。SparseFlashAttention随着大模型上下文长度的增加Sparse Attention 的重要性与日俱增这一技术通过“只计算关键部分”大幅减少计算量然而会引入大量的离散访存造成数据搬运时间增加进而影响整体性能。Sparse Attention 计算可表示为$$ \text{softmax}(\frac{Q\tilde{K}^T}{\sqrt{d_k}})\tilde{V} $$ 其中 $\tilde{K},\tilde{V}$ 为基于某种选择算法 (如LightningIndexer) 得到的重要性较高的 Key 和 Value一般具有稀疏或分块稀疏的特征$d_k$ 为 $Q,\tilde{K}$ 每一个头的维度。本次公布的SparseFlashAttention是面向 Sparse Attention 的全新算子针对离散访存进行了指令缩减及搬运聚合的细致优化。SparseFlashAttention算子沿用 FlashAttention 的计算流程分为四个阶段$C_1$$QK^T$$V_1$online softmax$C_2$$PV$$V_2$rescaling $O$。SFA 算子 Tiling 设计SparseFlashAttention一次迭代计算的基本块大小为$(256,512)$。算子核内 Tiling 设计如下L1 空间划分为如下部分$Q/P$ 矩阵分时复用 ($P$矩阵是softmax计算的结果)$4\times128\times 288\times2\text{ Bytes}288\text{ KB}$即在一个 $C_1$ 或 $C_2$ 阶段中左矩阵分四次搬运到 L1 中最终在一次迭代内常驻于 L1其中 $Q$ 矩阵每次的搬运量大小为 $(128,288)$$P$ 矩阵每次的搬运量大小为 $(128,256)$$K/V$ 矩阵 3-Buffer 循环复用$3\times128\times 288\times2\text{ Bytes}216\text{ KB}$其中$K$矩阵每次的搬运大小为$(128,288)$$V$矩阵每次的搬运大小为$(256,128)$。L0AL0BL0C使能 Double Buffer分别划分为$2\times32\text{ KB},2\times32\text{ KB},2\times64\text{ KB}$在 $C_1$ 阶段一次搬入 L0A 和 L0B的矩阵块大小分别为 $(128,96),(96,128)$在 $C_2$ 阶段一次搬入 L0A 和 L0B 的矩阵块大小都为 $(128,128)$。SFA Pipeline 设计对于复杂的融合算子而言Cube 核和 Vector 核之间的高效协同是发挥硬件算力的核心挑战流水掩盖作为连接二者的核心调度机制其设计优劣直接决定了算子性能。由于沿用 AMLA 算法SparseFlashAttention除最终的归一化操作外只有三个计算阶段$C_1,V_1,C_2$。相较于LightningIndexer算子而言SparseFlashAttention算子的计算流程更为复杂依赖关系更多朴素的流水排布会导致计算过程中出现大量的空泡。如下图的上半部分所示由于计算流程中的不同阶段之间存在数据依赖不论是 Cube 流或 Vector 流上都出现了很多的空闲部分导致算力利用率较低。本算子采用 Preload 流水排布以消除依赖实现了除头尾以外的平台期部分 Cube 流完美掩盖 Vector 流效果如下图下半部分所示可以看到这种方式相较于朴素的流水排布有较大的性能收益。访存优化实际的访存行为可以分为两个步骤指令下发及数据搬运。对于非 Sparse 场景的 Attention 算子数据访存一般是连续的因此单次数据搬运耗时相较于指令下发耗时更长可实现连续的多次访存达到较高的访存带宽。然而对于 Sparse Attention 的离散访存而言单次访存的耗时大幅下降甚至可能小于指令下发的耗时这就会导致严重的指令下发阻塞如下图所示。Attention 计算从 Cube 核发起访存指令也由 Cube 核发射。基于 A3 芯片 Cube 核和 Vector 核数比为 $1:2$ 的特性利用 Vector 核发射访存指令将指令的下发效率提高一倍。另一方面单次访存的数据量本身也会影响实际达到的带宽而离散访存单次的访存量较小这会导致数据搬运本身的耗时高于预期。针对这一问题可以将离散的数据点两两聚合利用 srcGap 参数实现成对的数据访存提升访存带宽如图所示。SFA Next Feature后续将探索SparseFlashAttention算子的量化支持以应对长上下文场景下显存占用过大的挑战。易用性提升TilingKey 模板化TilingKey 是算子区分不同的实现而将代码进行区分的方法目标是以不同的分支处理不同的特性。然而 TilingKey 本身不易于记忆和理解因为它们通常是较长又没有明确含义的数字严重影响代码的可读性和可编程性。为了提高算子代码的可读性降低开发难度本次开源的两个全新算子均采用 Ascend C 的 Tiling 模板编程方法替代传统的 TilingKey 编程只需要定义模板参数及其对应的组合即可实现分支管理减少对 TilingKey 具体数值的依赖提高代码的管理效率。详细内容可参考Tiling模板编程。分核计算下沉Tiling 是算子执行前的预处理阶段在此阶段 Host 侧会计算 workspace 占用以及分核策略等算子执行需要的内容在单算子模式下可能会出现 Host Bound 的情况。通过静态图下沉技术我们规避了这种情况。然而对于 Attention 类算子而言实际输入的不同 Batch 对应的上下文长度可能不同因此 Tiling 中分核策略的计算对具体上下文长度 (actualSeqLengths) 存在值依赖这使得 Attention 类算子无法完全下沉到静态图执行导致整网产生过多小的静态子图引入大量静态子图调度开销同时进行分核计算时需要将对应的数据从 Device 侧向 Host 侧拷贝造成整网性能较差。针对这一问题Attention 类算子采用了 Tiling 下沉的解决方案将分核计算下沉到 Device 侧的 AICPU 进行。整网运行时分核计算依赖的数据就绪后即可启动且可以与算子执行流并行进行。然而对于分核计算依赖前序算子的情况这种方法依然无法避免执行断流。从具体使用的角度看这种处理方式引入了额外的 AICPU Tiling 逻辑在自定义算子流程中需要另外开发对应的 Tiling func并配合下沉图执行调度实现功能复杂、链条较长导致自定义开发和调测难度较高。本次发布的LightningIndexer及SparseFlashAttention算子进行了进一步的 Tiling 下沉优化将分核计算流程从 AICPU 下沉到 AICore 内部执行简化调用链条消除 Tiling 依赖前序算子引入的调度开销开发和调试流程得到了简化。【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关文章:

CANN / cann-recipes-infer: NPU DeepSeek-V3.2-Exp Ascend C 融合算子优化

NPU DeepSeek-V3.2-Exp Ascend C 融合算子优化 【免费下载链接】cann-recipes-infer 本项目针对LLM与多模态模型推理业务中的典型模型、加速算法,提供基于CANN平台的优化样例 项目地址: https://gitcode.com/cann/cann-recipes-infer 面向 DeepSeek-V3.2-Exp…...

Ubuntu 20.04 + ROS2 Foxy 环境下,手把手搞定 Swarm-SLAM 多机器人协同建图环境(附常见编译报错解决)

Ubuntu 20.04 ROS2 Foxy 环境下 Swarm-SLAM 多机器人协同建图实战指南 第一次接触多机器人协同SLAM时,我被Swarm-SLAM的分布式架构设计所吸引——它不需要中央服务器,每个机器人独立完成局部建图,再通过轻量级通信交换关键信息。这种设计理…...

给RK3568的Linux 4.19内核打RT-Preempt补丁,我踩过的那些坑都帮你填好了

给RK3568的Linux 4.19内核打RT-Preempt补丁:实战排坑全记录 在嵌入式开发领域,实时性往往是决定系统可靠性的关键因素。RK3568作为一款广泛应用于工业控制、边缘计算场景的ARM处理器,其Linux内核的实时性优化一直是开发者关注的焦点。本文将深…...

CANN/CATCCOS预提交代码检查指南

Pre-commit 代码检查配置说明 【免费下载链接】catccos CATCCOS昇腾计算-通信融合算子模板库,是一个聚焦于提供高性能计算通信融合类算子基础模板的代码库。 项目地址: https://gitcode.com/cann/catccos 本文档说明本次为 catccos 项目的 pre-commit 代码检…...

llocal框架:本地化AI应用开发实战与RAG实现指南

1. 项目概述:一个本地运行的AI应用框架 最近在折腾AI应用开发的朋友,估计都绕不开一个核心痛点:如何把那些强大的大语言模型(LLM)能力,低成本、低延迟、高隐私地集成到自己的项目里?是吭哧吭哧地…...

CANN Pi0.5昇腾训推实践

LeRobot 框架具身 VLA 模型昇腾训推实践 【免费下载链接】cann-recipes-embodied-intelligence 本项目针对具身智能业务中的典型模型、加速算法,提供基于CANN平台的优化样例 项目地址: https://gitcode.com/cann/cann-recipes-embodied-intelligence 下表展示…...

别再为‘Target uses ARM-Compiler which is not available’抓狂了!一份给STM32/Keil开发者的编译器环境修复指南

STM32开发者的Keil环境配置实战:从编译器缺失到团队协作标准化 当你从同事那里接手一个STM32项目,满心期待地点击"Rebuild All"按钮时,突然跳出的红色错误提示往往让人心头一紧。特别是当看到"Target uses ARM-Compiler whic…...

CANN多流分析模板

<network_or_case_name> 多流分析 【免费下载链接】cannbot-skills CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体&#xff0c;本仓库为其提供可复用的 Skills 模块。 项目地址: https://gitcode.com/cann/cannbot-skills 1. 分析范围 模型/网络&…...

CANN/runtime Profiling数据采集接口

&#xfeff;# 19-01 Profiling数据采集接口 【免费下载链接】runtime 本项目提供CANN运行时组件和维测功能组件。 项目地址: https://gitcode.com/cann/runtime 本章节描述 Profiling 数据采集的核心接口&#xff0c;用于性能采集的初始化、配置、启停控制。 aclError…...

复盘红日Vulnstack1:除了MSF和CS,我们还能用哪些“冷门”工具链完成内网横向?

红日Vulnstack1靶场实战&#xff1a;突破常规工具链的内网横向技术探索 当主流渗透工具遭遇严格监控时&#xff0c;如何构建替代性攻击链&#xff1f;红日安全团队的Vulnstack1靶场作为国内知名的内网渗透训练环境&#xff0c;常被用作测试Metasploit&#xff08;MSF&#xff0…...

cann/sip FFT逆短时傅里叶变换

Istft 【免费下载链接】sip 本项目是CANN提供的一款高效、可靠的高性能信号处理算子加速库&#xff0c;基于华为Ascend AI处理器&#xff0c;专门为信号处理领域而设计。 项目地址: https://gitcode.com/cann/sip 产品支持情况 产品是否支持Atlas 200I/500 A2 推理产品…...

拆解ADAS域控成本密码:聊聊MCU端AutoSAR CP软件如何从DV、产测到量产一步步省钱

ADAS域控成本优化实战&#xff1a;AutoSAR CP软件三阶段降本策略 当某德系车企要求其ADAS域控制器BOM成本降低15%时&#xff0c;作为Tier1供应商的我们面临一个关键抉择——硬件降配可能影响性能&#xff0c;而软件架构优化却能实现"隐形降本"。本文将揭示如何通过Au…...

3步解锁网易云音乐NCM加密:ncmdumpGUI本地转换完全指南

3步解锁网易云音乐NCM加密&#xff1a;ncmdumpGUI本地转换完全指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&…...

极简AI助手noclaw:C语言实现,内存仅324KB,支持工具调用与记忆

1. 项目概述&#xff1a;noclaw&#xff0c;一个极简主义的AI助手基础设施 如果你和我一样&#xff0c;对现在动辄几个GB内存、启动慢如蜗牛的AI应用感到厌倦&#xff0c;那么noclaw的出现&#xff0c;绝对会让你眼前一亮。这是一个用纯C语言编写的、完全自主的AI助手基础设施。…...

小红书下载神器 XHS-Downloader:完整技术架构与使用指南

小红书下载神器 XHS-Downloader&#xff1a;完整技术架构与使用指南 【免费下载链接】XHS-Downloader 小红书&#xff08;XiaoHongShu、RedNote&#xff09;链接提取/作品采集工具&#xff1a;提取账号发布、收藏、点赞、专辑作品链接&#xff1b;提取搜索结果作品、用户链接&a…...

CANN/HCCL AlltoAllV示例

集合通信 - AlltoAllV 【免费下载链接】hccl 集合通信库&#xff08;Huawei Collective Communication Library&#xff0c;简称HCCL&#xff09;是基于昇腾AI处理器的高性能集合通信库&#xff0c;为计算集群提供高性能、高可靠的通信方案 项目地址: https://gitcode.com/ca…...

利用GitHub Actions与Twitter API实现贡献图动态展示推文更新

1. 项目概述与核心价值最近在折腾个人主页和博客的访客统计时&#xff0c;发现了一个挺有意思的开源项目——tommyjepsen/twblocks。简单来说&#xff0c;这是一个能让你在GitHub个人主页的“小绿点”&#xff08;贡献图&#xff09;上&#xff0c;动态展示Twitter&#xff08;…...

99.手把手教你落地YOLOv5车辆检测,含COCO格式适配+全流程代码实操

摘要 YOLO(You Only Look Once)是一种基于回归的单阶段目标检测算法,以其极快的推理速度和良好的检测精度在工业界广泛应用。本文从零开始,系统讲解YOLOv5的核心原理、训练流程与部署方法。通过一个完整的车辆检测案例,覆盖数据准备、模型训练、推理优化、模型导出等全链…...

新手入门指南使用 curl 命令快速测试 Taotoken 大模型接口

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 新手入门指南&#xff1a;使用 curl 命令快速测试 Taotoken 大模型接口 基础教程类&#xff0c;针对没有复杂开发环境或希望快速验…...

基于AI智能体的Wazuh自主安全运营流水线构建与实战

1. 项目概述&#xff1a;从手动告警到自主SOC的进化如果你在运维一个安全运营中心&#xff08;SOC&#xff09;&#xff0c;每天面对成百上千条Wazuh告警&#xff0c;从海量噪音中筛选出真正的威胁&#xff0c;然后手动查询日志、关联上下文、编写响应计划&#xff0c;最后再执…...

有限单边响应游戏中的蒙特卡洛反事实遗憾最小化

1. 博弈论中的决策优化难题在有限单边响应游戏这类特殊博弈场景中&#xff0c;参与者常常面临决策优化的核心挑战。这类博弈的特点是其中一方&#xff08;响应方&#xff09;的策略空间有限&#xff0c;而另一方&#xff08;主导方&#xff09;的策略选择会直接影响响应方的收益…...

98.吃透YOLOv8架构(C2f+解耦头),手把手落地行人检测项目

摘要 YOLO(You Only Look Once)系列算法是目标检测领域最主流的实时检测框架。 本文以YOLOv8为基线,从算法核心原理、数据集构建、模型训练、推理优化到工程部署,提供一套完整可落地的技术方案。 全文包含一个端到端的行人检测案例,代码可直接运行,并深入剖析训练过程中…...

Mirror-SD技术:加速生成式AI推理的异构计算优化方案

1. 技术背景与核心挑战在生成式AI大模型推理领域&#xff0c;解码阶段的计算延迟一直是制约实际应用的关键瓶颈。传统自回归解码&#xff08;Autoregressive Decoding&#xff09;需要逐个生成token&#xff0c;这种串行特性导致即使使用高端GPU也常出现硬件利用率不足的情况。…...

拓扑数据分析与AI结合:从社交媒体数据中预测社会趋势演变

1. 项目概述&#xff1a;当拓扑学遇见社交媒体最近几年&#xff0c;我一直在琢磨一件事&#xff1a;我们每天在社交媒体上留下的海量数据&#xff0c;除了被平台用来推送广告&#xff0c;还能不能挖掘出更深层、更本质的社会规律&#xff1f;比如&#xff0c;能不能提前感知到某…...

CANN/AMCT恢复量化重训练模型

restore_quant_retrain_model 【免费下载链接】amct AMCT是CANN提供的昇腾AI处理器亲和的模型压缩工具仓。 项目地址: https://gitcode.com/cann/amct 产品支持情况 产品 是否支持 Ascend 950PR/Ascend 950DT √ Atlas A3 训练系列产品/Atlas A3 推理系列产品√ Atlas A…...

CANN图像算子双三次上采样反向

aclnnUpsampleBicubic2dBackward 【免费下载链接】ops-cv 本项目是CANN提供的图像处理、目标检测相关的算子库&#xff0c;实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-cv &#x1f4c4; 查看源码 产品支持情况 产品是否支持 Ascend 950PR/Asc…...

AI Agent时代,向量数据库的角色正在悄然重构

在构建复杂多步Agent工作流的生产环境中&#xff0c;我最近反复踩到一个坑&#xff1a;模型能生成规划&#xff0c;工具调用也顺畅&#xff0c;但执行几轮后决策就开始漂移&#xff0c;自我纠正能力迅速衰减。日志一查&#xff0c;问题出在检索层——它还是那个经典RAG的“一次…...

大模型对齐技术:从RLHF到DPO的演进与实践

1. 大模型对齐技术发展脉络大模型对齐&#xff08;Alignment&#xff09;技术是确保AI系统行为与人类价值观和意图保持一致的关键领域。过去几年里&#xff0c;我们见证了从基于强化学习的RLHF方法到更高效直接的DPO技术的演进过程。这种转变不仅仅是技术路线的优化&#xff0c…...

使用 Taotoken 后 API 调用延迟与稳定性在实际开发中的体感观察

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用 Taotoken 后 API 调用延迟与稳定性在实际开发中的体感观察 在将大模型能力集成到应用中的开发过程中&#xff0c;API 调用的响…...

extract-video-ppt:从视频中智能提取PPT内容的终极解决方案

extract-video-ppt&#xff1a;从视频中智能提取PPT内容的终极解决方案 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 在数字化学习与知识传播的时代&#xff0c;视频已成为信息传递…...