2023/10/11 18:20:51
DragGAN 概述#DragGAN 来自于 SIGGraph 2023 接收的论文《Drag Your GAN: Interactive Point-based Manipulation on the Generative Image Manifold》。该模型可以以一张原始图片和用户交互(点)作为输入,在用户引导下修改图片: DragGAN 的全流程包含一个基于 Generator 的前向操作和反向传播过程。本文主要介绍对 Generator模型部分前向操作的适配的全部过程。 模型移植#推理代码定位与模型导出#适配的模型代码使用 XingangPan/DragGAN: Offi ...
2023/09/18 19:10:12
1. TPU软件与硬件架构#完整的TPU推理应用是通过软硬件相互配合完成的,如下图所示: 软件方面,Host端实现了libsophon、驱动两个软件包。驱动负责对实际的Host与设备基础通信和资源管理机制的抽象,提供了基础的功能接口。对于TPU推理来说,libsophon提供了具体的功能,其中BMLib(libbmlib.so)实现对驱动接口封装,提供兼容保证,简化调用流程,提升编程的效率和可移植性,TPU-RUNTIME(libbmrt.so)提供了模型(bmodel)的加载、管理与执行等功能。 硬件方面,TPU内部主要由MCU、GDMA、TIU三个engine来完成工作的。 MCU在BM1 ...
2023/09/18 18:52:30
1. 背景介绍#在2023年7月时我们已通过静态设计方案完成了ChatGLM2-6B在BM1684X单处理器上的部署工作,量化模式F16,模型大小12GB,平均速度约为3 token/s (ChatGLM2-6B流程解析与TPU-MLIR部署)。为了进一步提升模型的推理效率与降低存储空间,我们对模型进行了INT8量化部署。 2. 量化方案#首先TPU-MLIR原有的INT8量化方案并不适合直接应用于LLM。主要是因为无论PTQ的校准或者QAT的训练对于LLM来说成本过高,对LLM的一轮PTQ的校准可能就需要1-2天时间;另外就是量化带来的误差在LLM上无法收敛,最终会导致模型精度大量 ...
2023/08/18 12:47:40
背景介绍#TPU-MLIR编译器可以将在gpu等平台上运行的深度学习模型转换成算能处理器上运行的bmodel模型。本文介绍如何使用TPU-MLIR将在gpu上运行的stable diffusion的模型移植到算能处理器,并介绍其部署的方法。 由于stable diffusion包含多个版本,我们这里以stable diffusion 1.5版本为例。 stable diffusion模型介绍#stable diffusion 由3个部分组成,分别是text_encoder、unet和vae。其中3个部分方便使用的模型是:CLIP_ViT, Latent Diffusion Models和Aut ...
2023/08/18 12:42:40
背景介绍#TPU-MLIR编译器可以将机器学习模型转换成算能处理器上运行的bmodel模型。由于浮点数的计算需要消耗更多的计算资源和存储空间,实际应用中往往采用量化后的模型(也称定点模型)进行推理。相比于浮点数模型,量化模型的推理精度会有一定程度的损失。当精度损失较大时,需要搜索模型中对精度影响较大的层,即敏感层,将其改回浮点类型,生成混精度模型进行推理。 以mobilenet-v2网络为例,使用ILSVRC-2012数据验证集的5万张图片验证浮点数模型和量化模型(表格中分别记为FLOAT和INT8)的精度,INT8模型的Top1精度降低了3.2%,Top5精度降低了2%。 Type T ...