LMdeploy推理实践

在inter-studio平台上,下载模型,体验lmdeploy

下载模型

这里是因为平台上已经有了internlm2模型,所以建立一个符号链接指向它,没有重新下载

ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b /root/

如果是在自己的机子上,可以通过git clone的方式下载原模型。
主目录下多了一个模型
在这里插入图片描述

使用huggingface库来体验模型推理

  1. 导入分词器和模型(通过float16格式加载,节省显存)
  2. 将模型设置为eval模式,避免参数更新
  3. 通过模型的chat格式进行聊天
  4. 计算各模块所耗费的时间
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
import timetokenizer = 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_load_time_start = time.time()
model = AutoModelForCausalLM.from_pretrained("/root/internlm2-chat-1_8b", torch_dtype=torch.float16, trust_remote_code=True).cuda()
model = model.eval()
model_load_time_end = time.time()inp = "hello"
print("[INPUT]", inp)
response, history = model.chat(tokenizer, inp, history=[])
print("[OUTPUT]", response)
inference1_end = time.time()inp = "please provide three suggestions about communicate with my dog"
print("[INPUT]", inp)
response, history = model.chat(tokenizer, inp, history=history)
print("[OUTPUT]", response)
inference2_end = time.time()print("模型加载时长",model_load_time_end - model_load_time_start)
print("第一次推理耗费时长", inference1_end - model_load_time_end)
print("第二次推理耗费时长", inference2_end - inference1_end)

执行如下:
hf模型推理耗费时长
不知道为什么,怎么会要这么久啊…

使用lmdeploy进行推理

lmdeploy chat + 模型路径即可

需要注意的是,lmdeploy推理需要TurboMind格式的模型,但是它会自动将hf格式转换为turboMind格式,我们不需要管

lmdeploy chat /root/internlm2-chat-1_8b

在这里插入图片描述
这个推理非常快速,基本上是秒回,不知道这个推理框架背后是怎么做到的。
有采取kv8和W4A16的量化技术。

显存占用的来源有三部分:模型本身,kv cache,以及中间计算结果
kv cache是存储键值对方便复用,理想状态下全都放在显存里,但是如果显存不够的话,可以放在内存里,把需要的部分移动到显存中。
调整kv cache占用显存的比例为0.4,(默认为0.8),降低kv cache占用显存的最高比例,代价是降低了速度,好处是节省了显存。

在运行推理的代码后面加上参数 --cache-max-entry-count 0.4 即可
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/832930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法提高之炮兵阵地

算法提高之炮兵阵地 核心思想&#xff1a;状态压缩dp 滚动数组优化 考虑前两层状态 用f[i,j,k]表示前i层&#xff0c;第i层状态j&#xff0c;第i-1层状态k的方案同“玉米田” g存图1是不能放的位置**滚动数组优化&#xff1a;**所有第一维n或者n1 &1 #include <iost…

论文查重率高,有什么办法降重吗?推荐几个ai降重工具

现在大部分学校已经进入到论文查重降重的阶段了。如果查重率居高不下&#xff0c;延毕的威胁可能就在眼前。对于即将告别校园的学子们&#xff0c;这无疑是个噩梦。四年磨一剑&#xff0c;谁也不想在最后关头功亏一篑。 查重率过高&#xff0c;无非以下两种原因。要么是作为“…

YOLOv8检测图片和视频

一、检测图片 Python import cv2 from ultralytics import YOLO import torchmodel_path object_detection/best.pt # Change this to your YOLOv8 models path image_path object_detection/32.jpg # Change this to your videos path# Load the trained YOLOv8 model m…

迅为RK3568开发板资料说明4750+页专属文档专为3568编写

iTOP-3568开发板采用瑞芯微RK3568处理器&#xff0c;内部集成了四核64位Cortex-A55处理器。主频高达2.0Ghz&#xff0c;RK809动态调频。集成了双核心架构GPU&#xff0c;ARM G52 2EE、支持OpenGLES1.1/2.0/3.2、OpenCL2.0、Vulkan1.1、内嵌高性能2D加速硬件。 内置独立NPU,算力…

VINS预积分与误差模型

文章目录 IMU的测量值误差模型IMU预积分真实模型IMU预积分估计模型误差模型普通增量积分中值积分法 参考文献 IMU的测量值误差模型 IMU的测量值误差模型&#xff1a; a ^ t a t R w t g w b a t n a t ω ^ t ω t b ω t n ω t \begin{array}{} {{{\hat a}_t} {a_t…

debian下使用的常用软件

debian下使用的软件与windows下有所不同&#xff0c;刚使用debian系统&#xff0c;需要对不同的软件进行试用&#xff0c;以期找到更符合自己要求的软件&#xff0c;现在试用情况记录在此&#xff0c;以便后期回顾。 文件管理器&#xff08;Thunar&#xff09; 网络浏览器&am…

揭秘 IEEE/ACM Trans/CCF/SCI,谁才是科研界的王者?

会议之眼 快讯 在学术探索的浩瀚星海中&#xff0c;每一篇论文都像是一颗璀璨的星辰&#xff0c;而那些被顶级期刊或会议收录的论文&#xff0c;则无疑是最耀眼的几颗。 在众多评价标准中&#xff0c;IEEE/ACM Transactions、CCF推荐期刊和会议、SCI分区期刊&#xff0c;它们…

RVM(相关向量机)、CNN_RVM(卷积神经网络结合相关向量机)、RVM-Adaboost(相关向量机结合Adaboost)

当我们谈到RVM&#xff08;Relevance Vector Machine&#xff0c;相关向量机&#xff09;、CNN_RVM&#xff08;卷积神经网络结合相关向量机&#xff09;以及RVM-Adaboost&#xff08;相关向量机结合AdaBoost算法&#xff09;时&#xff0c;每种模型都有其独特的原理和结构。以…

【Delphi7】Access violation at address 0019F7C3. Write of address 0019F7C3.

这里写目录标题 问题基本情况问题描述1、启动Delphi 开发程序 时连续报如下错误2、打开“工程”菜单下的“选项”页面时时连续报如下错误 解决方案1、打开“高级系统设置”2、打开“性能选项”3、添加“数据执行保护”的程序4、选择“数据执行保护”的程序5、应用“数据执行保护…

kafka学习笔记(三、生产者Producer使用及配置参数)

1.简介 1.1.producer介绍 生产者就是负责向kafka发送消息的应用程序。消息在通过send()方法发往broker的过程中&#xff0c;有可能需要经过拦截器(Interceptor)、序列化器(Serializer)和分区器(Partitioner)的一系列作用后才能被真正的发往broker。 demo: public class Kafk…

LeetCode算法题:7. 整数反转

给你一个 32 位的有符号整数 x &#xff0c;返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] &#xff0c;就返回 0。 假设环境不允许存储 64 位整数&#xff08;有符号或无符号&#xff09;。 示例 1&#xff1a; 输…

武汉星起航:自运营团队—亚马逊平台运营典范,优势凸显业绩斐然

武汉星起航电子商务有限公司&#xff0c;作为跨境电商领域的佼佼者&#xff0c;凭借自运营团队多年的深耕经验与对亚马逊市场规则的深刻理解&#xff0c;成功在亚马逊平台开设多家自营店铺&#xff0c;并取得显著成绩。公司月流水达到几百万的辉煌业绩&#xff0c;不仅彰显了其…

嵌入式学习<1>:建立工程、GPIO

嵌入式学习_part1 本部分笔记用于学习记录&#xff0c;笔记源头 >>b站江科大_STM32入门教程 建立工程、GPIO 开发环境&#xff1a;keil MDK、STM32F103C8T6 1 &#xff09;建立工程 &#xff08;1&#xff09;基于寄存器开发、基于标准库 或者 基于HAL库开发; &…

IDEA无法下载远程仓库jar包问题

问题描述&#xff1a; idea无法下载远程仓库jar包&#xff0c;最奇怪的是idea有多个项目&#xff0c;有些项目可以下载&#xff0c;有些项目不行。报错如下&#xff1a; 一开始&#xff1a; unable to find valid certification path to requested target Try run Maven impo…

UV胶是什么材料制成的?

UV胶是一种特殊的胶水&#xff0c;由丙烯酸酯单体、活性稀释剂、光引发剂、助剂等材料制成的。它是指在紫外线照射下能够迅速固化的胶水。UV胶的主要成分是丙烯酸酯单体&#xff0c;它在没有紫外线照射时是液体状态&#xff0c;但一旦受到紫外线照射&#xff0c;就会迅速发生聚…

使用PL/SQL动态查询并输出结果

在Oracle数据库中&#xff0c;我们经常需要编写PL/SQL脚本来执行动态SQL查询。这里我们简化了一个示例&#xff0c;用于动态查询特定月份下以特定模式命名的表&#xff0c;并输出查询到的记录数。 动态构建SQL并执行 使用循环来动态构建SQL语句&#xff0c;并执行查询以获取记…

docker安装Debian:11 freeswitch1.10.5

文章目录 一、生成一个镜像二、切换一个镜像源为阿里源三、安装一些相关依赖和freeswitch3.1第一步&#xff1a;安装freeswitch-mod和下载所需的依赖项3.2 设置密钥3.3 安装freeswitch所需的依赖项3.4 报错3.4.1 报错13.4.2 报错23.4.3 报错3 四、运行4.1 通话三十秒自动挂断 一…

我独自升级崛起下载方法分享 下载教程

《我独自升级&#xff1a;崛起》这款精彩绝伦的动作角色扮演游戏&#xff0c;灵感来源于大热网络漫画&#xff0c;让玩家亲自踏上主角程肖宇的征途&#xff0c;从觉醒初阶到实力飞跃&#xff0c;每一步成长都扣人心弦。值得注意的是&#xff0c;尽管全球正式发布日期定在了五月…

谷歌推广和seo收录是一回事吗?

那自然不是一回事&#xff0c;谷歌推广一般指的是谷歌的广告服务&#xff0c;通过购买广告位&#xff0c;以便用户在谷歌搜索特定关键词时显示您的广告&#xff0c;这种方式通常基于点击收费&#xff0c;意味着您只有在有人点击您的广告时才需要支付费用。谷歌推广可以让您的网…

局域网监控软件能干什么|有哪些好用的局域网监控软件

企业局域网已成为日常工作中不可或缺的一部分。 然而&#xff0c;网络环境的复杂性和员工上网行为的多样性&#xff0c;使得企业面临着诸多安全风险和管理挑战。 因此&#xff0c;高效局域网监控上网记录监测成为了企业保障信息安全和提升工作效率的重要手段。 高效局域网监控…