在NVIDIA Jetson平台离线部署大模型
在NVIDIA Jetson平台离线部署大模型,开启离线具身智能新纪元。
本项目提供一种将LMDeploy移植到NVIDIA Jetson系列边缘计算卡的方法,并在Jetson计算卡上运行InternLM系列大模型,为离线具身智能提供可能。
最新新闻🎉
- [2024/3/15] 更新了对LMDeploy-v0.2.5。
- [2024/2/26] 本项目被LMDeploy官方社区收录。
已验证模型/平台
- ✅:已验证可运行
- ❌:已验证不可运行
- ⭕️:待验证
Models | InternLM-7B | InternLM-20B | InternLM2-1.8B | InternLM2-7B | InternLM2-20B |
---|---|---|---|---|---|
Orin AGX(32G) Jetpack 5.1 | ✅ Mem:??/?? 14.68 token/s | ✅ Mem:??/?? 5.82 token/s | ✅ Mem:??/?? 56.57 token/s | ✅ Mem:??/?? 14.56 token/s | ✅ Mem:??/?? 6.16 token/s |
Orin NX(16G) Jetpack 5.1 | ✅ Mem:8.6G/16G 7.39 token/s | ✅ Mem:14.7G/16G 3.08 token/s | ✅ Mem:5.6G/16G 22.96 token/s | ✅ Mem:9.2G/16G 7.48 token/s | ✅ Mem:14.8G/16G 3.19 token/s |
Xavier NX(8G) Jetpack 5.1 | ❌ | ❌ | ✅ Mem:4.35G/8G 28.36 token/s | ❌ | ❌ |
未来工作
- 更新更多型号Jetson板卡的Benchmark测试数据
- 制作Jetson专用whl发行版
- 跟进更新版本的LMDeploy
部署教程
Jetson端离线运行InternLM大模型
创建模型保存目录:
mkdir -p ~/models
将S1.服务器端模型W4A16量化得到的internlm-chat-7b-turbomind.tgz
上传到models
目录下。
解压模型文件:
tar zxvf internlm-chat-7b-turbomind.tgz -C .
0.Bug解决:修改MMEngine库
Jetson端的pytorch不支持分布式的reduce算子,这会导致MMEngine库中与分布式有关的部分出现错误。
错误为:
AttributeError: module 'torch.distributed' has no attribute 'ReduceOp'
激活conda环境:
conda activate lmdeploy
用解释器方式运行python:
python
输入如下内容:
import mmengine
print(mmengine.__file__)
这就输出了MMEngine库的安装位置,笔者的是/home/nvidia/miniconda3/envs/lmdeploy/lib/python3.8/site-packages/mmengine/__init__.py
,那么相应位置就是home/nvidia/miniconda3/envs/lmdeploy/lib/python3.8/site-packages/mmengine/
,咱们用<path/to/mmengine>
代替。
修改<path/to/mmengine>/logging/logger.py
第208行:
- global_rank = _get_rank()
+ global_rank = 0
在运行就不会报错了。
注意:该方式过于粗暴,仅适用于Jetson平台部署推理,在服务器端会影响分布式功能!
1.终端运行
激活conda环境:
conda activate lmdeploy
运行模型:
lmdeploy chat turbomind ./internlm-chat-7b-turbomind
2.Python集成运行
编写运行脚本run_model.py
,内容如下:
from lmdeploy import turbomind as tmif __name__ == "__main__":model_path = "./internlm-chat-7b-turbomind" # 修改成你的路径tm_model = tm.TurboMind.from_pretrained(model_path)generator = tm_model.create_instance()while True:inp = input("[User] >>> ")if inp == "exit":breakprompt = tm_model.model.get_prompt(inp)input_ids = tm_model.tokenizer.encode(prompt)for outputs in generator.stream_infer(session_id=0, input_ids=[input_ids]):res = outputs[1]response = tm_model.tokenizer.decode(res)print("[Bot] <<< {}".format(response))
激活conda环境:
conda activate lmdeploy
运行脚本:
python run_model.py
附录
- 为Jetson重装Jetpack
- LMDeploy-Jetson基准测试
引用
如果本项目对您的工作有所帮助,请使用以下格式引用:
@misc{2024lmdeployjetson,title={LMDeploy-Jetson:Opening a new era of Offline Embodied Intelligence},author={LMDeploy-Jetson Community},url={https://github.com/BestAnHongjun/LMDeploy-Jetson},year={2024}
}
致谢
- 书生·浦语大模型实战营
- 上海人工智能实验室
- trt-llm
相关文章:
在NVIDIA Jetson平台离线部署大模型
在NVIDIA Jetson平台离线部署大模型,开启离线具身智能新纪元。 本项目提供一种将LMDeploy移植到NVIDIA Jetson系列边缘计算卡的方法,并在Jetson计算卡上运行InternLM系列大模型,为离线具身智能提供可能。 最新新闻🎉 [2024/3/1…...
51单片机嵌入式开发:8、 STC89C52RC 操作LCD1602原理
STC89C52RC 操作LCD1602原理 1 LCD1602概述1.1 LCD1602介绍1.2 LCD1602引脚说明1.3 LCD1602指令介绍 2 LCD1602外围电路2.1 LCD1602接线方法2.2 LCD1602电路原理 3 LCD1602软件操作3.1 LCD1602显示3.2 LCD1602 protues仿真 4 总结 1 LCD1602概述 1.1 LCD1602介绍 LCD1602是一种…...
数字化时代的供应链管理综合解决方案
目录 引言背景与意义供应链管理综合解决方案的目标 📄供应链管理系统主要功能系统优势 📄物流管理系统主要功能系统优势 📄订单管理系统主要功能应用场景 📄仓储管理系统系统亮点主要功能系统优势 📄商城管理系统主要功…...
CentOS 安装 annie/lux,以及 annie/lux 的使用
annie 介绍 如果第一次听到 annie 想必都会觉得陌生,annie 被大家称为视频下载神器,annie 作者介绍说可以下载抖音、哔哩哔哩、优酷、爱奇艺、芒果TV、YouTube、Tumblr、Vimeo 等平台的视频。 githup:https://github.com/pingf/annie 支持…...
拥抱UniHttp,规范Http接口对接之旅
前言 如果你项目里还在用传统的编程式Http客户端比如HttpClient、Okhttp去直接对接第三方Http接口, 那么你项目一定充斥着大量的对接逻辑和代码, 并且针对不同的对接渠道方需要每次封装一次调用的简化, 一旦封装不好系统将会变得难以维护&am…...
Python 给存入 Redis 的键值对设置过期时间
Redis 是一种内存中的数据存储系统,与许多传统数据库相比,它具有一些优势,其中之一就是可以设置数据的过期时间。通过 Redis 的过期时间设置,可以为存储在 Redis 中的数据设置一个特定的生存时间。一旦数据到达过期时间࿰…...
在linux中安装docker
文章目录 1、安装依赖2、安装docker的下载源3、安装docker4、设置Docker服务开机自启 1、安装依赖 sudo yum install -y yum-utils2、安装docker的下载源 sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repohttps://download.do…...
【JVM-04】线上CPU100%
【JVM-04】线上CPU100% 1. 如何排查2. 再举一个例子 1. 如何排查 ⼀般CPU100%疯狂GC,都是死循环的锅,那怎么排查呢?先进服务器,⽤top -c 命令找出当前进程的运⾏列表按⼀下 P 可以按照CPU使⽤率进⾏排序显示Java进程 PID 为 2609…...
try catch 解决大问题
项目开发中遇到一个棘手的bug,react前端项目独自运行时一切正常,但是把项目集成到使用wujie的大平台微前端项目中之后,突然有个地方无故报错,导致程序运行停止,后续的方法不再执行。报错如下: DOMExceptio…...
手动解析Collection
即将被解析的json {"collection": {"templates": [{"data": [{"name": "plantCode","value": "MSHG_KFXHS02"}, {"name": "details","value": [{"plantMedicament…...
list模拟实现【C++】
文章目录 全部的实现代码放在了文章末尾准备工作包含头文件定义命名空间类的成员变量为什么节点类是用struct而不是class呢?为什么要写get_head_node? 迭代器迭代器在list类里的实例化和重命名普通迭代器operator->()的作用是什么? const迭代器反向迭…...
nginx正向代理、反向代理、负载均衡
nginx.conf nginx首要处理静态页面 反向代理 动态请求 全局模块 work processes 1; 设置成服务器内核数的两倍(一般不不超过8个超过8个反而会降低性能一般4个 1-2个也可以) netstat -antp | grep 80 查端口号 *1、events块:* 配置影响ngi…...
matlab 有倾斜的椭圆函数图像绘制
matlab 有倾斜的椭圆函数图像绘制 有倾斜的椭圆函数图像绘制xy交叉项引入斜线负向斜线成分正向斜线成分 x^2 y^2 xy 1 (负向)绘制结果 x^2 y^2 - xy 1 (正向)绘制结果 有倾斜的椭圆函数图像绘制 为了确定椭圆的长轴和短轴的…...
PTK是如何加密WLAN单播数据帧的?
1. References WLAN 4-Way Handshake如何生成PTK?-CSDN博客 2. 概述 在Wi-Fi网络中,单播、组播和广播帧的加密算法是由AP决定的。其中单播帧的加密使用PTK密钥,其PTK的密钥结构如下图所示: PTK的组成如上图所示,由K…...
Django之登录权限系统
本文参考链接django之auth模块(用户认证) - chchcharlie、 - 博客园 (cnblogs.com) 执行完迁移命令,会自动生成admin表,迁移命令如下: python manage.py makemigrations python manage.py migrate 相关模块 from django.contrib …...
rust way step 1
install rust CARGO_HOME D:\rust\.cargo RUSTUP_HOME D:\rust\.rustup [dependencies] ferris-says "0.2" vscode 安装rust 插件 use ferris_says::say; // from the previous step use std::io::{stdout, BufWriter};fn main() {let stdout stdout();let m…...
视觉语言模型导论:这篇论文能成为你进军VLM的第一步
近些年,语言建模领域进展非凡。Llama 或 ChatGPT 等许多大型语言模型(LLM)有能力解决多种不同的任务,它们也正在成为越来越常用的工具。 这些模型之前基本都局限于文本输入,但现在也正在具备处理视觉输入的能力。如果…...
Postman工具基本使用
一、安装及基本使用 安装及基本使用参见外网文档:全网最全的 postman 工具使用教程_postman使用-CSDN博客 建议版本:11以下,比如10.x.x版本。11版本以后貌似是必须登录使用 二、禁止更新 彻底禁止postman更新 - 简书 host增加࿱…...
uni-app三部曲之三: 路由拦截
1.引言 路由拦截,个人理解就是在页面跳转的时候,增加一级拦截器,实现一些自定义的功能,其中最重要的就是判断跳转的页面是否需要登录后查看,如果需要登录后查看且此时系统并未登录,就需要跳转到登录页&…...
专注于国产FPGA芯片研发的异格技术Pre-A+轮融资,博将控股再次投资
近日,苏州异格技术有限公司(以下简称“异格技术”)宣布成功完成数亿元的Pre-A轮融资,由博将控股在参与Pre-A轮投资后,持续投资。这标志着继2022年获得经纬中国、红点中国、红杉中国等机构数亿元天使轮融资后࿰…...
【python】QWidget父子关系,控件显示优先级原理剖析与应用实战演练
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...
CTF php RCE(三)
0x07 日志文件包含 判断类型 使用kali curl -I urlF12 打开F12开发者工具,选中之后F5刷新查看server类型即可 配置文件 直接包含或者访问如果有回显就是, NGINX:NGINX 的配置文件通常位于 /etc/nginx/ 目录下,具体的网站配…...
Android 注解的语法原理和使用方法
Android 注解的语法原理和使用方法 关于我 在 Android 开发中,注解(Annotation)是一种强大的工具,用于在代码中添加元数据。注解可以简化代码、提高可读性、减少样板代码,并且在一定程度上增强编译时的类型检查。本文…...
YOLOv10改进 | Conv篇 | 利用FasterBlock二次创新C2f提出一种全新的结构(全网独家首发,参数量下降70W)
一、本文介绍 本文给大家带来的改进机制是利用FasterNet的FasterBlock改进特征提取网络,将其用来改进ResNet网络,其旨在提高计算速度而不牺牲准确性,特别是在视觉任务中。它通过一种称为部分卷积(PConv)的新技术来减少…...
实验-ENSP实现防火墙区域策略与用户管理
目录 实验拓扑 自己搭建拓扑 实验要求 实验步骤 整通总公司内网 sw3配置vlan 防火墙配置IP 配置安全策略(DMZ区内的服务器,办公区仅能在办公时间内(9: 00- 18:00)可以访问,生产区的设备全天可以访问) 配置nat策…...
【游戏客户端】大话slg玩法架构(二)背景地图
【游戏客户端】大话slg玩法架构(二)背景地图 大家好,我是Lampard家杰~~ 今天我们继续给大家分享SLG玩法的实现架构,关于SLG玩法的介绍可以参考这篇上一篇文章:【游戏客户端】制作率土之滨Like玩法 PS:和之前…...
git-工作场景
1. 远程分支为准 强制切换到远程分支并忽略本地未提交的修改 git fetch origin # 获取最新的远程分支信息 git reset --hard origin/feature_server_env_debug_20240604 # 强制切换到远程分支,并忽略本地修改 2. 切换分支 1. **查看所有分支:**…...
coco dataset标签数据结构(json文件)
COCO数据集现在有3种标注类型:object instances(目标实例), object keypoints(目标上的关键点), 和image captions(看图说话),使用json文件存储。 NameImagesLabelstrain linkhttp:…...
GaussDB关键技术原理:高性能(四)
GaussDB关键技术原理:高性能(三)从查询重写RBO、物理优化CBO、分布式优化器、布式执行框架、轻量全局事务管理GTM-lite等五方面对高性能关键技术进行了解读,本篇将从USTORE存储引擎、计划缓存计划技术、数据分区与分区剪枝、列式存…...
总结之企业微信(一)——创建外部群二维码,用户扫码入群
创建外部群 企微接口中没有直接通过服务端API接口创建外部群 可以通过jssdk创建外部群:引用jssdk调用会话接口wx.openEnterpriseChat https://work.weixin.qq.com/api/doc/90000/90136/90511 创建外部群二维码 需要通过企业微信的应用,并且配置客户联…...
用自己的身份做网站备案/培训网络营销的机构
Silverlight 4 七转载于:https://www.cnblogs.com/doubleyan/archive/2010/06/30/2164727.html...
手机网站如何做营销/seo是什么化学名称
原创不易,转载请注明出处 文章目录前言1.使用demo2.lock原理3.unlock原理总结前言 redisson作为redis的客户端,提供了特别丰富的功能,关于redisson各种功能使用文档可以看下它的官网或者github,它还提供了基于redis各种分布式锁的…...
包头网站建设熊掌号/网站设计公司苏州
🐱作者:一只大喵咪1201 🐱专栏:《C学习》 🔥格言:你只管努力,剩下的交给时间! C是面向对象的编程语言,它有很多的特性,但是最重要的就是封装,继承…...
网站 微信小程序怎么做/太原seo管理
若在git中出现这个http://eslint.org/docs/rules/eol-last 他是提醒你:在文件末尾要求或禁止换行 比如代码如下: 若在git中出现这个https://eslint.org/docs/rules/semi 他是提醒你:需要或不允许使用分号代替 点进去翻译文字。 若在git中出现…...
网站建设行业资讯/腾讯推广一次广告多少钱
转自:http://blog.csdn.net/tanyujing/article/details/8717575 钢笔测试 能在不同的纸上写吗?能在墙上写吗?笔尖朝上,倒着拿还能写出字吗? 能在不同的环境下写吗?水里?沙漠?低温&a…...
建设银行 网站设置密码/合肥seo报价
1. 水平居中设置-行内元素 我们在实际工作中常会遇到需要设置水平居中的场景,比如为了美观,文章的标题一般都是水平居中显示的。 这里我们又得分两种情况:行内元素还是 块状元素,块状元素里面又分为定宽块状元素,以及…...