- 博客(162)
- 资源 (8)
- 收藏
- 关注
原创 大模型-internvl高通qnn运行源码解读
模型链接:https://huggingface.co/OpenGVLab/InternVL2-2B论文官方简要说明 https://internvl.github.io/blog/2024-07-02-InternVL-2.0中文解读 https://zhuanlan.zhihu.com/p/702946079在线demo https://internvl.opengvlab.com/
2025-07-03 18:57:46
987
原创 大模型-分布式论文一瞥
在满足90%的SLO达成率的情况下,单个A100 GPU的最大可实现吞吐量,受到TTFT和TPOT要求中较严格要求的限制,约为。
2025-07-01 19:32:31
675
原创 大模型-分布式推理简介
模型推理中的分布式并行技术,是指将一个大模型的推理过程拆解到多个设备或计算节点上运行,以达到提升吞吐、加速响应、突破单卡显存限制等目的。
2025-06-30 16:20:43
1261
原创 大模型-FlashAttention 算法分析
首先,我们将输入序列的查询(Query)矩阵Q、键(Key)矩阵的转置K^T和值(Value)矩阵V分别进行分块。Q分为Tr个块,每个块的大小为(Br, d),其中Br是块的长度,d是向量的维度。K^T分为Tc个块,每个块的大小为(d, Bc)。V分为Tc个块,每个块的大小为(Bc, d)。前两小节是伪代码的11, 12 的计算定义计算的背景。f(x)的计算,可以构造。
2025-06-25 20:33:48
981
原创 大模型-高通qnn基础
提供较低级别、高度可定制的统一API,通过单独的库加速所有AI加速器核心上的AI模型, 可以直接用于针对特定的加速器核心或从流行的运行时(包括Qualcomm Neural Processing SDK、TensorFlow Lite和ONNX运行时)委派工作负载。一个支持异构计算、系统级配置的一体化SDK,旨在将AI工作负载引导到我们平台上的所有加速器核心。为开发人员提供灵活性,包括核心间协作支持和其他高级功能。是一个为训练好的神经网络模型提供高级量化和压缩技术的库。
2025-06-25 19:50:09
919
原创 大模型-attention汇总解析之-NSA
被选中的块会进行拼接操作。它处理的是输入序列的局部上下文,通过滑动窗口的方式对序列进行处理,捕捉局部上下文信息,防止局部模式干扰其他分支学习,增强模型对长序列的适应性。基于网格的外循环,由于不同查询块的内循环长度(与所选块的数量n成正比)几乎相同,将output和Grid Loop放入Triton的网格调度器中,以简化和优化内核。压缩的目的是减少计算量,用更紧凑的表示来替代原始的kv对。可训练的架构: NSA采用可训练的算子,能够在训练过程中动态学习最优的稀疏模式,从而在保持模型性能的同时,降低训练成本。
2025-05-30 18:30:23
951
原创 大模型-attention汇总解析之-MLA
先看下初始的MLA的一般性公式:我们一般会缓存的是投影后的k_i, v_i而不是投影前的x_i, c_i ,根据 MLA 的这个做法,通过不同的投影矩阵再次让所有的 K、V Head 都变得各不相同,那么 KV Cache 的大小就恢复成跟 MHA 一样大了,因为需要存下每一个k_i, v_i,这显然违背了减少kv cache的本意。MLA算法作者发现,可以结合 Dot-Attention 的矩阵运算的具体形式,通过一个简单但不失巧妙的恒等变换来实现输入的低秩压缩。
2025-05-30 18:22:49
439
原创 大模型-attention汇总解析之-GQA
MHA把一个注意力计算拆成多个注意力头,每个注意力头使用独立的Q、K、V进行计算,需要把K、V都存储下来,KV Cache中每个token需要缓存的参数量为2n*h_d*h_l。从上面的图可以看出,MHA是一个attention 头有自己独立的kv cache 缓存,这样子的计算效果是最好的,同时kv cache 也是最完善的,意味着也是最占用内存的。GQA:将所有的Q头分成g组,同一组的Q头共享一个K头和一个V头,因此KV Cache中每个token需要缓存的参数量为2n_g_d_h_l。
2025-05-30 18:16:49
382
原创 大模型-attention汇总解析之-MQA
ttention”,是减少 KV Cache 的一次的一种大胆尝试,首次提出自《Fast Transformer Decoding: One Write-Head is All You Need》, 在2019 年减少 KV Cache 就已经是研究人员非常关注的一个课题了。一般的multi head attention 的qkv的头的数量都一样,而multi query attention的q的头数量保持不变,k,v的头数量都变为1。
2025-05-30 18:13:04
196
原创 大模型-attention汇总解析之-MHA
这里我们只考虑了主流的自回归 LLM 所用的 Causal Attention,因此在 token by token 递归生成时,新预测出来的第 i+1个 token,并不会影响到已经算好的 前面的i个K, V的值,因此这部分K, V结果我们可以缓存下来供后续生成调用,避免不必要的重复计算,这就是所谓的 KV Cache。下面是kv cache的示意图。在实践中,为了减少计算复杂度和内存占用,通常会设置 ,其中 d 是模型的维度,h 是缩放因子(也称为头数,即多头注意力中的头的数量)。
2025-05-30 18:10:31
472
原创 大模型-高通平台性能测试示例-2
在QNN中,可以使用(genis-t2t-run)和这两个工具来进行推理的性能分析。支持在QNX操作系统或Android操作系统上进行性能分析。:提供基本的性能数据,如运行时间、资源消耗等。:提供更详细的性能数据,可能包括各个操作的执行时间、资源使用情况等。:是指在性能分析的同时进行代码质量检查,以发现潜在的问题。:是指跟踪和分析神经网络中各个操作的性能,以优化网络结构或参数。
2025-05-28 20:01:28
456
原创 大模型-高通性能测试工具介绍-1
支持QDSP6、HVX、HMX加载, NPU, CPU等核心指标测试。在SA8295 (nt2.x)上无法分析系统DDR带宽。获取cDSP的基本配置(时钟、缓存未命中大小等)支持QDSP6、HVX、HMX加载。在SA8295上无法分析cDSP。在SA8295上无法分析cDSP。无法查看cDSP上每个线程状态。无法查看cDSP上每个线程状态。官网没找到,需要问高通的要。主要测试GPU, CPU。无法监控VTCM大小。
2025-05-28 19:48:10
307
原创 Prompt compress 技术探究-LLMLingua2
LLMLingua2 https://arxiv.org/pdf/2403.12968是LLMLingua的改进版本。我们知道LLMLingua需要用小模型压缩,模型太小不一定能保证性能,模型太大耗费时间又太长。这个方法理论上可以,但实际上不是很方便用。很难选择到合适的小模型。小模型压缩后的prompt在不同系列的大模型不一定能识别的准。信息熵不一定是最好的压缩度量指标,比如胡乱的语句信息熵很高,但是确是无效错误的信息,通用模型压缩效果肯定不如专门训练的压缩模型效果好。
2025-05-04 18:31:04
1061
原创 Prompt compress 技术探究-LLMLingua
这里以微软的一篇发表在2023EMNLP 顶级期刊研究论文,介绍下prompt compress技术。就信息熵角度来说,困惑度 (PPL) 较低的标记对语言模型的整体熵增益贡献较小,删除困惑度较低的词条,对LLM理解上下文的影响相对较小, 基于这个理论指导,这篇论文进行了尝试。大型语言模型 (LLM) 因其强大的性能而被广泛应用于各种领域。随着思路链 (CoT) 提示和语境学习 (ICL) 等技术的进步,输入到 LLM 的提示越来越长,甚至超过数万个 token。
2025-05-04 18:23:30
1063
原创 在android 系统上qnn sdk转换,运行模型,精度调优示例总结
前面讲了如何配置qnn sdk的环境,这一篇总结下qnn 实际转换一个onnx 模型,并运行的实现步骤。设备:1. ubuntu22.04 的Linux 服务器。2. 一台android手机。
2025-04-28 17:24:11
1318
原创 基于medusa范式的大模型并行解码推理加速初探
树注意力机制:树注意力机制通过树状结构来组织所有候选的token。每个token只能看到自己当前路径上的prefix(前缀),确保每条路径互不干扰。掩码(Masking):通过掩码技术实现每个token只能看到自己当前路径上的prefix,从而确保每条路径互不干扰。Medusa模型:Medusa模型引入了树注意力机制,通过这种方式,Medusa只需要对这些候选进行一次forward pass(前向传播)就能对所有路径并行地实现验证(verify)。
2025-04-19 12:51:31
786
原创 Speculative decoding投机解码原理思考与解决
投机解码的核心动机是:在生成任务中,总有简单和复杂的子任务,对于一些较为简单的任务,解码过程存在可以节约资源的环节,使用大模型进行每轮一个token的自回归解码存在资源上的浪费;换句话说,简单的子任务只需要用参数量较小的模型来生成也能取得与使用大模型生成相当的效果,亦或是用大模型在每轮迭代进行多个token的并行解码也依然能保持生成质量。基于此,投机解码采用一种draft-then-verify(起草+验证)的机制来实现这一过程。
2025-04-19 12:42:59
1195
原创 简要记录java 锁
线程执行到monitorenter指令时,将会尝试获取对象所对应的monitor的所有权,即尝试获得对象的锁。Java 1.6为了减少获得锁和释放锁带来的性能消耗,引入了“偏向锁”和“轻量级锁”,在Java SE 1.6中,锁一共有4种状态,级别从低到高依次是:无锁状态、偏向锁状态、轻量级锁状态和重量级锁状态,这几个状态会随着竞争情况逐渐升级。其是由一个同步状态+FIFO的同步队列组成,提供了同步队列、独占式同步状态获取与释放、共享式同步状态获取与释放以及超时获取同步状态等同步器的核心数据结构与模板方法。
2023-06-30 11:11:30
175
原创 android 系统rc添加 shell运行脚本
py-faster-rcnn在测试模型的时候,可以选择使用cpu mode或者gpu mode,但是如果使用该框架训练自己的模型,就只能使用gpu了。应该是作者考虑训练速度的原因,对roi_pooling_layer和smooth_L1_loss_layer只使用和提供了gpu版本的代码.这两个文件在py-fast-rcnn/caffe-fast-rcnn/src/caffe/layer
2022-11-09 11:58:57
1630
vc6.0的filetool.dll
2013-08-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人