首页 > 其他分享 >LMDeploy量化部署LLM&VLM实践

LMDeploy量化部署LLM&VLM实践

时间:2024-06-09 10:59:29浏览次数:22  
标签:VLM LLM 模型 inp lmdeploy chat LMDeploy root

一、前提知识:

大模型部署背景:

什么是模型部署:

部署面临的挑战:

受Transformer 架构影响:

常见GPU算力还能一战,但是显存带宽受限严重,时间花费在数据交换上居多

大模型部署方法:

模型参数以定点数或整数形式存储,实际计算时,反量化为浮点数去计算,再用定点数和整数去存储计算结果。量化会降低访存量。

LMDepoly简介:

二、项目实战

环境配置:

进入开发机,切换为终端(Terminal)模式。

创建conda环境,输入命令:

studio-conda -t lmdeploy -o pytorch-2.1.2

安装LMDeploy:

激活LMDeploy虚拟环境:

conda activate lmdeploy

安装0.3.0版本的lmdeploy:

pip install lmdeploy[all]==0.3.0

[all] 表示安装 lmdeploy 包的所有可选依赖项或功能

LMDeploy模型对话:

前提知识:

TurboMind是LMDeploy的一个推理引擎,仅支持推理TurboMind格式的模型,TurboMind在推理HF格式模型时,会自动将模型格式进行格式转换。

准备模型:

从开发机share文件夹创建模型软链接,输入命令:

cd ~
ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b /root/
# cp -r /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b /root/

使用Transformer库运行模型:

(为后续对比做准备)

切换到VSCode,左边栏空白处右键,选择Open in Intergrated Terminal,打开终端

在终端中输入如下指令,新建pipeline_transformer.py

touch /root/pipeline_transformer.py

打开pipeline_transformer.py文件,填入代码:

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("/root/internlm2-chat-1_8b", trust_remote_code=True)

# Set `torch_dtype=torch.float16` to load model in float16, otherwise it will be loaded as float32 and cause OOM Error.
model = AutoModelForCausalLM.from_pretrained("/root/internlm2-chat-1_8b", torch_dtype=torch.float16, trust_remote_code=True).cuda()
model = model.eval()

inp = "hello"
print("[INPUT]", inp)
response, history = model.chat(tokenizer, inp, history=[])
print("[OUTPUT]", response)

inp = "please provide three suggestions about time management"
print("[INPUT]", inp)
response, history = model.chat(tokenizer, inp, history=history)
print("[OUTPUT]", response)

Ctrl+S键保存。

回到终端,激活conda环境:

conda activate lmdeploy

运行刚刚创建的python代码:

python /root/pipeline_transformer.py

结果如下:

稍后与LMDeploy的推理速度对比

使用LMDeploy与模型对话:

使用LMDepoly命令:

#lmdeploy chat [HF格式模型路径/TurboMind格式模型路径]
lmdeploy chat /root/internlm2-chat-1_8b

至此,通过LMDepoly以命令行方式与 InternLM2-Chat-1.8B 模型对话跑通。

标签:VLM,LLM,模型,inp,lmdeploy,chat,LMDeploy,root
From: https://blog.csdn.net/Moo_n_earth/article/details/139536802

相关文章

  • Block Transformer:通过全局到局部的语言建模加速LLM推理
    在基于transformer的自回归语言模型(LMs)中,生成令牌的成本很高,这是因为自注意力机制需要关注所有之前的令牌,通常通过在自回归解码过程中缓存所有令牌的键值(KV)状态来解决这个问题。但是,加载所有先前令牌的KV状态以计算自注意力分数则占据了LMs的推理的大部分成本。在这篇论文中,作者......
  • 每日AIGC最新进展(21):清华大学提出从人体运动和视频中理解人类行为MotionLLM、武汉大
    DiffusionModels专栏文章汇总:入门与实战MotionLLM:UnderstandingHumanBehaviorsfromHumanMotionsandVideos本研究提出了一种名为MotionLLM的新型框架,旨在通过结合视频和运动序列(如SMPL序列)的多模态数据,利用大型语言模型(LLMs)的能力来理解人类行为。与以往只针对视......
  • 使用 vllm 本地部署 Qwen2-7B-Instruct
    使用vllm本地部署Qwen2-7B-Instruct0.引言1.安装vllm2.本地部署Qwen2-7B-Instruct3.使用Qwen2-7B-Instruct0.引言此文章主要介绍使用使用vllm本地部署Qwen2-7B-Instruct。1.安装vllm创建虚拟环境,condacreate-nmyvllmpython=3.11-ycondaac......
  • LLM大语言模型算法特训,带你转型AI大语言模型算法工程师
    LLM大语言模型算法特训,带你转型AI大语言模型算法工程师 LLM(大语言模型)是指大型的语言模型,如GPT(GenerativePre-trainedTransformer)系列模型。以下是《LLM大语言模型算法特训,带你转型AI大语言模型算法工程师》课程可能包含的内容:1.深入理解大语言模型:课程可能会介绍大......
  • 一键云部署:资源编排 ROS 轻松部署 LLM 流程编排服务 Flowise
    Flowise是一个开源的低代码工具,供开发者构建定制化的LLM流程编排和AI代理。资源编排服务(ResourceOrchestrationService,ROS)是阿里云提供基于基础设施即代码(InfrastructureasCode,IaC)理念的自动化部署服务,我们可以通过定义一个JSON/YAML/Terraform模板,轻松部署一套......
  • LLM 扩展开发工具
    参考知乎:  大模型Agent智能体25款产品、商业案例随笔记(一) 、 基于大模型的AI搜索15款产品随笔记(二)LLM扩展开发工具:1、开源且无需编码(No-Code)的LLM应用构建工具: https://flowiseai.com/ ,将永远免费供商业和个人使用。   代码库: https://github.com/FlowiseAI......
  • LLM的基础模型5:Embedding模型
    大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模型领域最新技术跟踪。若对于具身智能感兴趣的请移步具身......
  • AI推介-多模态视觉语言模型VLMs论文速览(arXiv方向):2024.05.25-2024.05.31
    文章目录~1.EmpoweringVisualCreativity:AVision-LanguageAssistanttoImageEditingRecommendations2.Bootstrap3D:Improving3DContentCreationwithSyntheticData3.Video-MME:TheFirst-EverComprehensiveEvaluationBenchmarkofMulti-modalLLMsin......
  • STEEL ——首个利用 LLM 检测假新闻的框架算法解析
    1.概述近年来,假新闻的泛滥确实对政治、经济和整个社会产生了深远的负面影响。为了解决这一问题,人们开发了各种假新闻检测方法,这些方法试图通过分析新闻内容、来源和传播方式来识别虚假信息。然而,正如你所提到的,现有的假新闻检测方法存在一些局限性。其中一个主要问题是它......
  • 什么是LLM大模型训练,详解Transformer结构模型
    本文分享自华为云社区《LLM大模型学习必知必会系列(四):LLM训练理论篇以及Transformer结构模型详解》,作者:汀丶。1.模型/训练/推理知识介绍深度学习领域所谓的“模型”,是一个复杂的数学公式构成的计算步骤。为了便于理解,我们以一元一次方程为例子解释:y=ax+b该方程意味......