自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

转载 招聘啦!寻找热爱AI的你!

2024-04-01 14:56:54 27

原创 投机采样(Speculative Sampling)加速大模型推理

1. 引言随着全球对大模型持续的高度关注,国外的OpenAI、Google以及国内的百度、阿里等都在大模型领域中不断地探索前进。由于模型的参数量和计算量的不断增大,大模型的推理部署成本也“水涨船高”,对模型推理的优化成为研究热点。基于Transformer Decoder的大(语言)模型在进行推理时,不同于训练过程,推理时我们并不能知道下一个字是什么,只能进行串行的预测,将预测到的下一个词,连同之...

2024-01-04 16:15:33 1292

原创 SmoothQuant+:可以用于大语言模型的 4-bit 量化算法

‍‍‍‍LLMs 在各种任务上展现出令人惊叹的能力,但是庞大的模型尺寸和对算力的巨大需求对模型的部署也提出了挑战。目前 4-bit 的 PTQ 权重量化在 LLMs 上已经取得了一些成绩,相对 FP16 内存占用减少近 75%,但是在精度上仍有较大的损失。我们在论文《SmoothQuant+:Smooth LLM Weight Quantization and Acceleration in 4-...

2023-12-22 19:05:14 1619

原创 浅谈大模型生成测试用例

引言大语言模型(LLM)在自然语言处理中表现出了卓越的性能,包括问答、翻译、文本生成并且能够处理大规模数据集,并为通用人工智能开辟了新的可能性。在代码生成领域,LLM已被用于各种编码的相关任务,包括代码生成、代码评审以及单元测试等任务。本文以LLM生成单元测试用例为切入点,对LLM生成测试用例的有效性和方法进行了简要探讨。一、LLM生成测试用例的有效性1.1 大模型:提升软件测试效率的前沿创新软件...

2023-12-19 19:24:16 2380

原创 图文多模态大模型综述

自去年底ChatGPT发布后,大模型技术呈井喷式发展态势,学术界和工业界几乎每天都在刷新各个方向的SOTA榜单。随着大模型技术的发展,人们逐渐意识到多模态将是大模型发展的必经之路。其中,图文多模态大模型是一种结合了图像和文本两种模态信息的深度学习模型,本文将重点回顾这一领域的关键进展。纵观多模态大模型的技术演进,也完全遵循了预训练-微调的整体方案。根据预训练模型中图文模态的交互方式,主要分为以下两...

2023-11-10 17:45:01 999

转载 LLM推理优化综述

1 摘要自 OpenAI 发布 ChatGPT 以来,基于 Transformer 架构的大语言模型 (LLM) 在全球范围内引发了深度的技术关注,并取得了令人瞩目的成就。其强大的理解和生成能力,正在深刻改变我们对人工智能的认知和应用。然而大语言模型的推理应用成本过高,高昂的成本大大阻碍了技术落地。因此,大语言模型的推理性能优化成为业界研究的热点。大语言模型推理面临计算资源的巨大需求和计算效率的挑...

2023-09-19 18:29:50 1192

原创 vLLM 实战

引言随着人工智能技术的飞速发展,以及今年以来 ChatGPT 的爆火,大语言模型 (Large Language Model, LLM) 受到越来越多的关注。为了实现 LLM 部署时的推理优化,全球各地有众多团队做出了各种优化框架。本文以加州大学伯克利分校开发的 vLLM 框架为例,进行实战探索。1. 整体介绍根据公开文档中的实验结果, vLLM 吞吐量比 Hugging Face Transfo...

2023-08-28 14:36:31 1732 2

原创 大语言模型微调实践——LoRA 微调细节

1. 引言近年来人工智能领域不断进步,大语言模型的崛起引领了自然语言处理的革命。这些参数量巨大的预训练模型,凭借其在大规模数据上学习到的丰富语言表示,为我们带来了前所未有的文本理解和生成能力。然而,要使这些通用模型在特定任务上发挥出色,还需借助微调技术。大语言模型的微调技术已经成为自然语言处理领域的一个焦点,其不断的演化和创新正引领着我们进入一个更加精细、个性化的文本处理时代。在本文中,我们将选取...

2023-08-21 12:06:08 4240

转载 LSQ 的低比特量化之路

LSQ 是一种有效的低比特量化算法对于深度神经网络,模型的权重一般都用浮点数表示,如 32-bit 浮点数(float32)。推理的时候,如果也采用这种数值类型,会消耗较大的内存空间和计算资源。在不影响模型准确率的情况下,模型采用其他简单数值类型,能显著缩小对计算资源的需求和推理时延,这对于资源受限设备来说尤其重要。从量化的比特数来区分,常用的量化技术有 8-bit 量化( INT8 量化)、4-...

2023-07-19 18:42:22 401

原创 大模型推理性能优化之KV Cache解读

0. 引言做大模型性能优化的一定对KV Cache不陌生,那么我们对这个技术了解到什么程度呢?请尝试回答如下问题:KV Cache节省了Self-Attention层中哪部分的计算?KV Cache对MLP层的计算量有影响吗?KV Cache对block间的数据传输量有影响吗?本文打算剖析该技术并给出上面问题的答案。1. KV Cache是啥大模型推理性能优化的一个常用技术是KV Cache,该技...

2023-05-23 16:43:18 4405 1

原创 ESL设计概述

‍‍‍‍前言  随着芯片面临着应用场景丰富多变、集成功能模块越来越多、片内通信及模块间接口越来越复杂、设计规模越来越大以及PPA要求越来越高的需求,芯片设计方法面临越来越大的挑战。架构的合理性、完备性和一致性很大程度上决定了芯片设计的成败。基于同样的IP及工艺制程,不同架构实现相同功能所需的资源开销及性能差距很大。因此,芯片设计的第一环节——系统架构设计及其仿真优化,变得越来越重要,是后续一切硬件...

2023-05-04 14:47:33 1992

转载 全局变量在LLVM编译器后端中的实现

和局部变量相比,全局变量是指在函数外部声明的变量,也叫外部变量。程序/模块中的函数均可以访问它,所以其作用域是全局的,通常存放在数据区。全局变量在LLVM IR中的表示如下:@global_variable = global i32 0该语句是定义一个i32类型的全局变量 @global_variable,并且将其初始化为0。在LLVM IR中,所有的全局变量的名称都需要用@开头。1. 全局变量的...

2023-04-26 15:30:42 246

转载 基于TVM的NLP-BERT模型编译及优化实践

0.引言TVM是一种从端到端的深度学习编译框架,用于优化深度学习模型在CPU、GPU、ARM等任意目标环境下的推理运行速度,相对于TensorFlow、MXNet、Caffe 和 PyTorch等深度学习框架有以下优点:更适合嵌入式场景;支持客户端-服务器的RPC调用;能通过优化提升模型的Inference性能;容易部署,支持多种语言:JS, Java, Python, C++语言;支持多种模型格...

2023-04-21 11:03:20 290

原创 LLVM编译器后端比较功能的添加

1.动机从机器层面上来看,控制流类的跳转指令分为无条件跳转和有条件跳转,无条件跳转 JMP,有条件跳转 JEQ、JNE、JLT、JGT、JLE、JGE,这部分指令是需要通过检查 condition code (SW 寄存器)来决定跳转条件;J 类型指令依赖的 condition code 是通过比较指令(比如 CMP)的结果来设置的。如下图所示,JNE跳转指令通过检查SW寄存器的状态以决定是否发生...

2023-04-19 17:15:12 312

原创 论文解读 | 解耦知识蒸馏

10 年来,DNN 的变革给计算机视觉领域带来了重大发展,促成了各种实时任务的繁荣,如图像分类、目标检测、语义分割等。然而强大的网络通常得益于大的网络容量,这通常以大量的计算和存储为代价,是工业应用所不喜欢的。在工业应用中,广泛采用的是轻量的模型。知识蒸馏是减小这种代价的一个有效方法,它可以把重型模型的知识迁移到轻型模型上,从而提高轻型模型的性能。知识蒸馏的概念最初是 Hinton 在论文 “Di...

2023-04-14 14:39:34 281

转载 Adlik如何实现与燧原芯片的对接?

引言Adlik 1.0 版本,加入了与燧原科技合作的成果,增加了对燧原 i20 芯片的支持,该芯片是燧原科技发布的基于邃思 2.5 芯片打造的面向数据中心的第二代人工智能推理加速卡,具有高性能高能效、模型覆盖面广、易部署易运维等特点,可广泛应用于计算机视觉、语音识别与合成、自然语言处理、搜索与推荐等推理场景。该芯片使用推理引擎TopsInference为深度学习应用提供低延迟、高吞吐率的推理部署。...

2023-03-28 18:21:44 175

转载 Adlik 支持基于云燧i20的 AI推理服务部署,共建AI生态链

近日,中兴通讯开源的Adlik深度学习推理工具链新增对人工智能推理加速卡云燧i20的支持,可实现基于云燧i20的高效AI模型部署,提供高性能的云端推理服务。Adlik是由中兴通讯在Linux基金会人工智能&数据基金会(LF AI & Data)发起的开源项目,旨在提升深度学习、机器学习等模型在各种硬件平台下的推理效率,助力人工智能在云、边、端等多种场景快速落地。对异构硬件的推理支持...

2023-03-28 18:21:44 196

转载 论文解读 | 自动编译框架AMOS

软件到硬件资源的自动映射是编译器的一项重要技术,也是业界研究的一个热门方向。本文主要观点来自发表在计算机体系结构领域顶级会议ISCA2022上的一篇论文——AMOS:Enabling Automatic Mapping for Tensor Computations On Spatial Accelerators with Hardware Abstraction,希望可以给读者一些启发。1. ...

2023-03-10 16:02:20 371

原创 LLVM MC 简介

1. 整体介绍LLVM MC (machine code) 层位于LLVM的底层,主要功能是负责汇编 (assembly)、反汇编 (disassembly)、以及生成二进制文件。作为LLVM的子项目,可以通过llvm-mc、llvm-objudump等工具直接操纵MC层。LLVM MC 的核心是引入了新的'MCInst'类来表示一个带有操作数的指令,这与代码生成器现有的指令概念'MachineI...

2023-02-15 18:03:20 512

转载 致力人工智能应用落地 推动数字经济技术创新——Adlik荣获两个开源奖项

近日,Adlik深度学习推理工具链项目荣获中国开源云联盟颁发的“优秀开源项目”和CSDN颁发的“年度开源影响力项目”两项开源大奖。在“十四五”产业发展新机遇与国际发展新形势下,开源已成为推动数字经济核心技术创新、产业全球化应用、生态多元共治的关键手段和资源配置模式,是建设“新技术基础设施”和发展新兴战略产业的强劲引擎。在此背景下,中国云开源联盟组织了2022年度开源评选。中国云开源联盟由工信部指导...

2023-01-06 17:45:00 173

转载 LLVM指令选择过程理解

指令选择(instruction selection)是将中间语言转换成汇编或机器代码的过程。在LLVM后端中具体表现为模式匹配,目标指令选择阶段会把后端td文件里面的DAG模式和selection DAG的节点相匹配,如果找到一个匹配,则匹配的节点会被有具体机器指令(或者伪指令)的节点代替。1. LLVM IR基本概念LLVM IR是一门中间语言,向上承接C、JAVA等高级语言,向下可以被翻译成...

2022-12-30 18:05:44 959

转载 Adlik新版本发布,增加一种芯片支持

12月20日,深度学习推理工具链Adlik Release 1.0 已经发布啦!除了常规的升级外,本次版本最大的亮点是增加了对于燧原科技人工智能推理加速卡云燧i20的支持, 使得Adlik云端推理方案有了更多的选择。欢迎各位小伙伴速来体验、拍砖。Compiler:支持ONNX模型到燧原芯片模型格式的编译路径支持OpenVINO升级到2022.3.0版本支持TensorFlow升级到2.10.1版本...

2022-12-21 18:06:28 192

原创 DietCode:TVM中新的动态Shape解决方案

‍‍近年来,随着深度学习领域动态 shape 推理场景激增,如机器翻译、语音识别等,针对动态 shape 模型的优化成为了热门研究议题。本文主要介绍了 DietCode 的整体架构设计,尝试了解 DietCode 如何针对动态 shape 进行调优。以 BERT 模型为例,DietCode 与 Ansor 相比, 搜索时间减少 5.88倍,性能提高约 70%。DietCode项目已经开始合入TVM...

2022-12-09 11:17:59 482

原创 高性能计算的内存模型研究

本文首先将建立一个简单的高性能计算内存模型,随后以矩阵乘为例,探讨分块矩阵乘法是如何在内存访问上对整个的矩阵乘计算进行加速的。最后,本文会将该内存模型与Roofline Model结合并进行一个简单的讨论。1. 基础:一个简单的高性能计算内存模型本文所述的内存模型具有以下特点:在内存层级方面,只具有两级:fast mem和slow mem;对于slow mem,其读写操作的时间相同,对于fast ...

2022-11-29 18:17:56 154

原创 实时性能评估框架nn-Meter解读

引言随着人工智能技术的飞速发展,深度神经网络 (DNN) 模型被广泛应用到各种业务场景下,部署在许多移动端应用上。实际应用时,推理时间 (latency) 是评估模型是否能用、好用的关键指标之一。然而针对巨大的模型设计空间,实测各种设计模型的推理时间成本过高,而现有技术缺乏对部署硬件平台优化策略的理解以及对灵活多变模型架构的泛化性,所以无法做到准确的模型推理时间预测。在神经结构搜索 (NAS) 、...

2022-11-25 15:25:39 664

转载 算子融合技术演进与Apollo方案浅析

算子融合也称符算融合,作为面向DL模型推理的一种关键图优化技术,通过减少计算过程中的访存次数达到提升模型推理性能的目的,该技术在不同时期、不同框架下的落地方式各不相同。本文将首先带大家回顾算子融合技术的发展历程,并浅析其中颇有代表性的Apollo方案。1.算子融合技术的发展历程大约16年前后,业界对于推理应用的性能诉求还不普遍,对于有性能需求的场景,最常见的做法是利用设备供应商提供的API加速计算...

2022-11-01 16:20:09 514

转载 Adlik招聘 | AI软件开发工程师招聘进行时!

2022-10-22 14:33:45 84

转载 Adlik招聘啦!

2022-10-21 15:52:51 106

原创 TVM Relay Pass探究

引言Relay 是 TVM 中十分重要的基础组件之一,用于对接不同格式的深度学习模型以及进行模型的 transform。深度学习编译器的核心功能就是进行各种各样的 transform 变换,这个变换过程部分是由 Pass 来实现。当需要遍历计算图时,底层究竟是如何执行的?本文打算一探究竟。1. 简介Pass 两层设计:TIR 层,基于target的优化,主要涉及 lower 到 target...

2022-10-19 09:42:23 543

原创 通用视觉大模型综述

背景近两年视觉大模型发展很快,各家公司已经训练出自己的视觉大模型,包括微软的 swin-transformer 系列、Google 的 vit 系列以及 150 亿参数量的 V-MOE 模型。从paperwithcode榜单上可以看到,目前公有数据集任务榜单,如在 ImageNet 数据集上的分类任务、COCO 数据集上的目标检测与实例分割任务,上述榜单表现 SOTA 的都是大模型,实验结果证明大...

2022-08-16 11:22:39 2884 1

原创 模型优化算法——AutoSlim

概述AutoSlim是一种one-shot模型优化方法,只要给定网络类型(如MobileNet-v1,ResNet50),给定限制条件(如Flops、latency等),就能自动决定每一层的通道数,以达到最优的模型精度。该优化方法打破了人工设计模型的“half size, double channel”的假设,解决了需要人为评估模型每一层敏感度,人为设置剪枝层/剪枝层类型...

2022-07-20 09:27:34 464

原创 训练后量化(PTQ) 工作流理解

目前神经网络在许多前沿领域的应用取得了较大进展,但经常会带来很高的计算成本,对内存带宽和算力要求高。另外降低神经网络的功率和时延在现代网络集成到边缘设备时也极其关键,在这些场景中模型推理具有严格的功率和计算要求。神经网络量化是解决上述问题有效方法之一,但是模型量化技术的应用会给模型带来额外噪音,从而导致精度下降,因此工程师对模型量化过程的理解有益于提高部署模型的精度。本文...

2022-07-07 18:10:55 5822 1

原创 Tenstorrent芯片架构浅谈

1. 背景近些年,市场上的AI芯片层出不穷,无论是初创公司还是科技巨头,都在积极推出AI芯片,从最常见的CPU、GPU到各类Processing Unit(TPU、NPU、APU、DPU等),可谓是百花齐放。究其根源,由于深度学习相关的算法、模型和应用场景均处于高速迭代发展阶段,还未完全收敛,因此对应的计算硬件底座为适配上层应用自然也需要不断更新。其中芯片公司Tensto...

2022-06-24 14:49:43 1158

转载 Adlik Eagle版本发布,更快、更优、更简单

感谢大家一直以来对Adlik的关注。6月21号,Adlik Eagle版本(V0.5.0)发布啦。总的来说,Eagle版本有三个关键词:技术创新、社区合作、用户易用性。这里列出一些highlight:优化器使用蒸馏和量化技术对YOLOv5模型进行了针对性的优化,使其性能提升近2.5倍;编译器增加了oneflow到onnx的编译支持;Adlik对BERT系列模型进行优化,在...

2022-06-22 19:40:49 89

原创 OneDNN GEMM(AVX FP32)算法浅析

深度神经网络模型包含的计算密集型算子一般为Dense、MatMul以及Conv。对于推理引擎,其执行Dense以及MatMul算子时,一般都会调用该引擎的GEMM或者GEMV(BatchSize等于1)实现;执行Conv算子时,虽然推理引擎一般存在更好的策略,如Winograd、NCHWxC等,但大多数推理引擎也会提供GEMM策略并在一定条件下选择并执行。当卷积核各个维度...

2022-06-15 09:34:28 1032

转载 Facebook data-efficient transformer模型介绍

前言Transformer 作为自然语言处理领域的主流方法,近年被越来越多研究应用于机器视觉任务且能实现SOTA 结果。ViT(Vision Transformer)是Transformer在计算机视觉领域成功的应用,也是目前图片分类效果最好的模型,超越了曾经最好的卷积神经网络(CNN)。高性能的ViT可以在JFT-300M这样的巨大数据集上达到理想的分类结果,但当数据集...

2022-06-08 17:24:32 577

转载 浅谈视觉超大模型

人工智能可以分为几个发展阶段:基于数据的互联网时代、基于算力的云计算时代,以及接下来进入的基于模型的 AI 时代。随着 GPT-3 的横空出世,这个具有 1750 亿参数的通用预训练模型让人们看到了“超大模型”实现通用人工智能的潜力, 之后越来越多学术机构和企业加入“炼大模型”的行列,Google 推出的 Switch Transformer 模型,更是将参数量提升到 1...

2022-06-02 21:40:10 1946

原创 面向ASIC设备的编译器框架:TVM or MLIR?

2019~2021年,“摩尔定律失效”这一关键词频频出现于各大技术网站,在此背景下,市面上多如牛毛的AI芯片公司不约而同地给出了通用CPU+专用ASIC芯片的方案,以应对日益增长的AI边、端侧推理计算需求。在AI DSA芯片的开发实践中,棘手的问题除了底层硬件的设计,更多的还是AI模型在DSA芯片上优化、部署执行这一过程所需软件栈的实现,也即“AI编译器”技术栈,在这一领...

2022-05-13 18:27:01 1622 1

原创 BOLT:弥合自动调优和硬件原生性能之间的差距

本文介绍的BOLT基于TVM框架,在GPU平台上进行了进一步的图优化和算子优化,最终将常见的卷积神经网络模型的推理速度提升了2.5倍,搜索时间大大缩减,可以实现20分钟内完成自动搜索调优。下面对BOLT的主要技术细节进行介绍。1 背景NVIDIA CUTLASS 是一个开源项目,是 CUDA C++ 模板抽象的集合,用于在 CUDA 内部实现高性能矩阵乘法和卷积运算。它...

2022-04-24 16:08:38 605

原创 YOLOv5 在 OpenVINO 上的优化实践

基于强大的目标检测能力和较快的推理速度,YOLOv5 已经逐渐成为实时性目标检测任务中的首选模型。因此,YOLOv5 模型的优化和部署是落地任务中非常重要的部分。在 CPU 中部署 AI模...

2022-03-02 15:46:49 4025

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除