沉迷单车的追风少年
CSDN博客专家,CSDN商业化专家,官方内容合作伙伴,官方认证“人工智能领域优质创作者”,入选2023年中国开发者影响力年度榜单。
代表专栏《Diffusion Models与深度学习》、《手把手写深度学习》、《深度学习-计算机视觉》、《手把手写C++服务器》等。
展开
-
如何对Diffusion Models进行模型量化?
模型量化作为常用的模型小型化技术,在大语言模型、搜广推模型上取得了巨大的成功,但是在Diffusion Models为代表的视觉生成模型上尚处于探索阶段。在CVPR2023、ICLR 2023、ICML 2023、ICCV 2023上新上架了不少关于量化Diffusion Models的论文,这篇博客就一并总结相关的技术,希望能对读者们有所启发。原创 2024-01-16 10:45:26 · 1146 阅读 · 3 评论 -
ChatGPT等大模型的模型量化:平滑量化法
十亿级的模型、百亿级的模型、千亿级的模型量化难度完全不一样,而像chatgpt为代表的大模型,模型参数已经超过千亿。大模型往往同时是计算密集型+访存密集型的,如果想要做模型压缩,非常困难!这篇博客给大家介绍一下为什么大模型量化困难?大模型压缩过程中会遇到哪些挑战?以及如果解决这些困难?SmoothQuant,这是一种train-free、保持精度、通用的训练后量化(PTQ)解决方案,用于实现LLM的8位加权、8位激活(W8A8)量化。原创 2023-04-03 20:18:28 · 4904 阅读 · 20 评论 -
《机器学习系统:设计和实现》读后感和一些思考
编译器后端处于前端和硬件驱动层中间,主要负责计算图优化、算子选择和内存分配的任务。首先,需要根据硬件设备的特性将IR图进行等价图变换,以便在硬件上能够找到对应的执行算子,该过程是计算图优化的重要步骤之一。前端IR生成是解析用户代码,属于一个较高的抽象层次,隐藏一些底层运行的细节信息,此时无法直接对应硬件上的算子(算子是设备上的基本计算序列,例如MatMul、Convolution和ReLU等),需要将细节信息进行展开后,才能映射到目标硬件上的算子。原创 2023-02-15 11:15:40 · 928 阅读 · 21 评论 -
PaddleSlim 模型量化 源代码解读
paddleslim的中文资料非常丰富,在如何使用的教学上做的非常完善。但是源码解读资料却非常少,这篇博客结合源代码大家一起学习一下paddle静态离线量化的原理和方法。原创 2023-02-21 13:52:15 · 718 阅读 · 17 评论 -
OpenPPL PPQ量化(5):执行引擎 源码剖析
量化部分的精髓才刚刚开始,但是别急,咱先来点轻松的哈。这一讲看看执行引擎executor是如何实现的。虽然这部分和量化原理关系不大,但是学一学总没有坏处呀!感动哭了,PPQ的中文注释也写得太详细了吧原创 2023-02-12 11:30:03 · 849 阅读 · 18 评论 -
OpenPPL PPQ量化(4):计算图的切分和调度 源码剖析
上一篇博客讲了计算图的加载和预处理,真是费了不少劲啊……这一篇博客和大家一起学习PPQ精髓之一:计算图的分割与调度。第一讲就说过PPQ把计算图分成了三类:可量化、不可量化、争议区。计算图分割的目的就是把这三类区域分割出来;为了适应多平台,PPQ已经在计算图的调度上也分了很多种,我们一一道来。原创 2023-02-08 11:14:29 · 923 阅读 · 28 评论 -
OpenPPL PPQ量化(3):量化计算图的加载和预处理 源码剖析
上一篇博客从quantize_onnx_model()为切入点,详细剖析了量化一个onnx模型的流程。在设置QuantizationSettingFactory量化设置之后,首先要构建量化图、分割量化图。废了九牛二虎之力终于讲完了计算图的解析与预处理,可以类比AI编译器中的前端处理。但是最精彩的计算图切割和调度还没讲,咱们下期见!原创 2023-02-05 19:25:50 · 1192 阅读 · 19 评论 -
OpenPPL PPQ量化(2):离线静态量化 源码剖析
因为我们已经初始化了量化类,所以后面表示计算图不再使用ppq_ir,直接用quantizer._graph表示。所有对计算图执行的操作,最后都会返回BaseGraph类,这个类是PPQ内部专门为模型量化准备的计算图,除了保存一般计算图的必要信息之外,还存储了所有量化信息。最后注意这里如果不需要执行量化,我们用没有原始载入的计算图执行一遍推理,然后返回即可。好了继续回到我们的主逻辑中,最后一步是执行量化,返回量化后的量化计算图,搞定~此处加载的计算图是原始的,尚未被调度,也就是所有算子都被认为是可量化的。原创 2023-02-02 14:45:15 · 1286 阅读 · 42 评论 -
OpenPPL PPQ量化(1):原理介绍与实践尝鲜
这区域的算子被认为是可以量化的,它们是 input, conv, gemm 的延伸算子,PPQ 使用数值追踪技术标记这些算子,这些算子处理的运算一定是 input, conv, gemm 的计算结果。这区域的算子同时接收来自不可量化区以及可量化区的输入,所有争议区的算子延伸也是争议算子,量化这些算子是有风险的,PPQ 不能保证量化产生的影响。是 PPQ 量化执行的中枢,为模型算子分配特定的部署平台,并初始化量化设置,调用各种优化 Pass,完成量化联合定点、图融合及量化优化。原创 2023-01-29 20:11:38 · 1871 阅读 · 45 评论