LMDeploy 大模型量化部署

2024-02-26 16:12
文章标签 部署 模型 量化 lmdeploy

本文主要是介绍LMDeploy 大模型量化部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Weight Only量化是一种常见的模型优化技术,特别是在深度学习模型的部署中。这种技术仅对模型的权重进行量化,而不涉及激活(即模型中间层的输出)。选择采用Weight Only量化的原因主要包括以下几点:

  1. 减少模型大小
    通过将权重从浮点数(如32位的float)量化到较低位数的表示(如8位或16位的整数),可以显著减小模型的存储大小。这对于需要在资源受限的设备上部署模型的场景尤其重要,如移动设备、嵌入式系统等,因为这些设备的存储空间和内存通常非常有限。

  2. 加速推理
    权重量化可以减少模型的计算需求,因为使用较低位宽的运算通常比浮点运算要快。这意味着模型的推理速度可以得到提升,特别是在不支持高效浮点运算的硬件上。此外,减少的权重大小也意味着可以减少内存带宽需求,进一步加速模型的推理过程。

  3. 降低能耗
    在移动和嵌入式设备上,能耗是一个重要的考虑因素。权重量化通过减少计算量和存储需求,可以有效降低设备的能耗,延长电池寿命。

  4. 保持激活的动态范围
    仅对权重进行量化,而不量化激活,可以保持激活的动态范围,从而在一定程度上维持模型的精度。激活的动态范围通常比权重更大,直接量化激活可能会导致更大的信息损失。因此,Weight Only量化是一种在减少模型大小和计算需求与保持模型精度之间寻求平衡的方法。

  5. 简化部署流程
    相比全面的量化(包括权重和激活),Weight Only量化过程相对简单,对模型的推理流程影响较小。这使得模型的量化和后续部署过程更加简化,便于实现和测试。## 大模型部署背景

模型部署

  • 模型部署指的是将机器学习或深度学习模型集成到现有的生产环境中,以便它们可以接收输入数据并提供决策支持或预测。模型部署是机器学习项目生命周期的一个重要环节,它标志着模型从开发阶段过渡到实际应用阶段。
  • 为了满足性能和效率的需求,常常需要对模型进行优化,例如模型压缩和模型加速
产品形态
  1. API服务: 将模型部署为API服务是一种常见形式,允许其他应用程序通过网络请求与模型交互。这种方式使得模型能够被不同的客户端和服务调用,便于集成和扩展。

  2. 嵌入式系统: 在一些场景下,模型可能会被部署到嵌入式系统中,如智能设备、物联网(IoT)设备或移动设备。这种情况下,模型直接在设备上运行,可以提供实时或近实时的预测,适用于对延迟敏感或网络连接受限的应用。

  3. 云平台: 利用云计算资源,可以将模型部署到云平台上,利用云服务提供的弹性计算和存储资源。这种方式便于管理和扩展,特别适合处理大规模数据和需求波动较大的场景。

  4. 边缘计算: 在边缘计算场景中,模型被部署在靠近数据源的边缘设备上,例如安全摄像头、工业控制系统等。这样可以减少数据传输延迟和带宽需求,提高响应速度和数据处理效率。

计算设备
  1. CPU: 通用计算处理器,适用于不需要高度并行处理的任务或小规模数据处理。

  2. GPU: 图形处理单元,特别适合进行大规模并行计算,广泛应用于深度学习模型的训练和推理,可以显著加快计算速度。

  3. TPU: 张量处理单元,由谷歌专为深度学习设计的定制硬件,可以提供极高的计算效率和吞吐量。

  4. FPGA: 可编程逻辑门阵列,可定制的硬件加速器,适用于特定应用的高效计算,如图像处理和机器视觉。

  5. 移动设备芯片: 如智能手机、平板电脑和其他智能设备中的芯片,这些专为低功耗设计的芯片可以直接运行模型,支持边缘计算应用。

大模型特点

  • 大量参数

  • 亿级别或更多参数:大模型如GPT-3、BERT-large等拥有从几亿到数十亿甚至上百亿的参数。

  • 深层网络结构:这些模型通常包含大量的层,包括隐藏层、注意力层等,以支持复杂的数据表示和处理。

  • 庞大的参数量。7B模型仅仅权重需要14+G 内存

  • 采用了自回归生成token,需要缓存Attention的k/V,带来巨大的内存开销

  • 动态shape

  • 请求数不固定

  • Token逐个不固定

  • 相对视觉模型,LLM结构简单

  • Transformers 结构,大部分是decoder-only

大模型部署挑战

设备

  • 低存储设备如何部署?

推理

  • 如何加速token的生成速度 如何有效管理和利用内存。

服务

  • 如何提升系统整体的吞吐量
  • 如何降低个体用户的响应时长

一些方案

  • huggingface transformers
  • 专门的推理加速方案
  • 模型并行
  • 低比特量化
  • page Attention
  • transformer 计算访问、储存优化
  • Continuous Batch
  1. 云服务部署
    使用云计算平台:云平台如AWS、Google Cloud Platform或Azure提供强大的计算资源和灵活的部署选项,能够支持大模型的高性能需求。
    优势:易于扩展,可根据需求动态调整计算资源;减轻本地硬件成本和维护负担;提供高可用性和灾难恢复能力。
    应用场景:适用于需要高度可扩展性和灵活性的企业级应用。

  2. 边缘计算部署
    部署在边缘设备上:将模型部署在接近数据源的边缘设备上,如智能手机、IoT设备或本地服务器。
    优势:减少数据传输延迟,提高响应速度;减少对中央服务器的带宽需求;增强数据隐私和安全性。
    应用场景:适用于对实时性要求高、数据敏感或网络连接受限的场景。

LMDeploy 简介

LMDeploy是LLM在英伟达设备上部署的全流程解决方案。包括模型轻量化、推理和服务

LMDeploy
在这里插入图片描述
性能对比
在这里插入图片描述
LMDeploy核心功能-量化

在这里插入图片描述

做Weight Only量化原因

Weight Only量化是一种常见的模型优化技术,特别是在深度学习模型的部署中。这种技术仅对模型的权重进行量化,而不涉及激活(即模型中间层的输出)。选择采用Weight Only量化的原因主要包括以下几点:

  1. 减少模型大小
    通过将权重从浮点数(如32位的float)量化到较低位数的表示(如8位或16位的整数),可以显著减小模型的存储大小。这对于需要在资源受限的设备上部署模型的场景尤其重要,如移动设备、嵌入式系统等,因为这些设备的存储空间和内存通常非常有限。

  2. 加速推理
    权重量化可以减少模型的计算需求,因为使用较低位宽的运算通常比浮点运算要快。这意味着模型的推理速度可以得到提升,特别是在不支持高效浮点运算的硬件上。此外,减少的权重大小也意味着可以减少内存带宽需求,进一步加速模型的推理过程。

  3. 降低能耗
    在移动和嵌入式设备上,能耗是一个重要的考虑因素。权重量化通过减少计算量和存储需求,可以有效降低设备的能耗,延长电池寿命。

  4. 保持激活的动态范围
    仅对权重进行量化,而不量化激活,可以保持激活的动态范围,从而在一定程度上维持模型的精度。激活的动态范围通常比权重更大,直接量化激活可能会导致更大的信息损失。因此,Weight Only量化是一种在减少模型大小和计算需求与保持模型精度之间寻求平衡的方法。

  5. 简化部署流程
    相比全面的量化(包括权重和激活),Weight Only量化过程相对简单,对模型的推理流程影响较小。这使得模型的量化和后续部署过程更加简化,便于实现和测试。
    在这里插入图片描述
    如何做?AWQ算法:4bi模型推理时权重反量化为FP16。比GPTQ更快。
    AWQ(Activation-aware Weight Quantization)-激活感知权重量化的原理非常简单,就是计算一个scale系数tensor,shape为[k],k为矩阵乘的权重reduce的维度大小。对激活除以该tensor,并对矩阵乘的权重乘以该tensor,这降低了权重量化的难度,使得权重可以采用常规的group量化(直接根据最大最小值计算scale, zero point)。AWQ的核心技术一是这个对激活和权重应用scale的方法,另外就是如何计算这个scale tensor。因为激活是fp16不量化,对激活进行scale一般不会牺牲精度,因此可以对权重进行一些处理降低量化的难度。

虽然AWQ与GPTQ两者都采用group量化,对shape为[k, n]的矩阵乘权重都生成(k/group) * n套量化系数。但是GPTQ通常采用act_order=True选项,这个导致每一个group并非使用一组相同的scale和zero point系数,而是每个k位置对应的向量都对应不同的scale和zero point(不同k位置共享一组系数,但是这个位置是随机的),每读取一个元素都要读取scale和zero point,导致反量化效率很低。而act_order=False时,每一个向量group size元素都共享同一组scale和zero point系数,这样反量化只需要每隔group size个元素才需要重新读取一次scale和zero point,反量化效率很高。AWQ反量化跟GPTQ act_order=False是一样的,因此计算效率比较高。

在这里插入图片描述
核心功能-推理引擎TuboMind
在这里插入图片描述
1.持续批处理
在这里插入图片描述
2.有状态推理
在这里插入图片描述
3.高性能 cuda kernel
在这里插入图片描述
4.Block k/v cache
在这里插入图片描述
LMDeploy核心功能-推理服务 api server

在这里插入图片描述

这篇关于LMDeploy 大模型量化部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/749437

相关文章

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

若依部署Nginx和Tomcat全过程

《若依部署Nginx和Tomcat全过程》文章总结了两种部署方法:Nginx部署和Tomcat部署,Nginx部署包括打包、将dist文件拉到指定目录、配置nginx.conf等步骤,Tomcat部署... 目录Nginx部署后端部署Tomcat部署出现问题:点击刷新404总结Nginx部署第一步:打包

Nginx、Tomcat等项目部署问题以及解决流程

《Nginx、Tomcat等项目部署问题以及解决流程》本文总结了项目部署中常见的four类问题及其解决方法:Nginx未按预期显示结果、端口未开启、日志分析的重要性以及开发环境与生产环境运行结果不一致... 目录前言1. Nginx部署后未按预期显示结果1.1 查看Nginx的启动情况1.2 解决启动失败的

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了