在NVIDIA Jetson平台离线部署大模型

news2024/10/8 22:57:57

在NVIDIA Jetson平台离线部署大模型,开启离线具身智能新纪元。

本项目提供一种将LMDeploy移植到NVIDIA Jetson系列边缘计算卡的方法,并在Jetson计算卡上运行InternLM系列大模型,为离线具身智能提供可能。

最新新闻🎉

  • [2024/3/15] 更新了对LMDeploy-v0.2.5。
  • [2024/2/26] 本项目被LMDeploy官方社区收录。

已验证模型/平台

  • ✅:已验证可运行
  • ❌:已验证不可运行
  • ⭕️:待验证
ModelsInternLM-7BInternLM-20BInternLM2-1.8BInternLM2-7BInternLM2-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 tm


if __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":
            break
        prompt = 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

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

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

相关文章

2024最适合小白的Midjourney教程,值得收藏!

一、Midjourney 的提示词 1、提示可以包括一个或多个图像 URL、多个文本短语以及一个或多个参数 1&#xff09;Image Prompts&#xff08;图像提示&#xff09;&#xff1a;可以将图像 URL 添加到提示中以影响最终结果的样式和内容。图像 URL 始终出现在提示的前面。文件应以.…

小型内衣裤洗衣机哪个牌子好?五大卓越臻品不容错过!

随着科技的发展&#xff0c;市面上也出现许多便利的小家电。其中被多次讨论起来的莫过于是内衣洗衣机&#xff0c;选择一款耐用、质量优秀的内衣洗衣机&#xff0c;不仅可以减少洗衣负担&#xff0c;还能提供高效的洗涤效果。然而&#xff0c;随着内衣洗衣机的爆火&#xff0c;…

一种低导通损耗的USB 电源开关电路

摘 要&#xff1a;本文设计了一种低导通损耗的USB 电源开关电路。该电路采用自举电荷泵为N 型功率管提供足够高的栅压&#xff0c; 以降低USB 开关的导通损耗。在过载情况下&#xff0c; 过流保护电路能将输出电流限制在0. 3 A。 1 引言 通用串行总线&#xff08; Universal …

windows使用foxglove可视化

1 部署 安装桌面应用 Download - Foxglove 安装完毕后按照要求要注册账号&#xff0c;注册完账号即可正常打开foxglove; 下载ecal-foxglove-bridge.exe&#xff0c;作用是转发ecal话题到foxglove GitHub - eclipse-ecal/ecal-foxglove-bridge: ecal-foxglove-server 2. 可…

人脸表情识别Facial Expression Recognition基于Python3和Keras2(TensorFlow后端)

人脸表情识别项目是一个结合了计算机视觉和深度学习技术的高级应用&#xff0c;主要用于分析和理解人类面部表情所传达的情感状态。这样的系统可以用于多种场景&#xff0c;比如情绪分析、用户交互、市场调研、医疗诊断以及人机接口等领域。 一个典型的人脸表情识别项目可以分…

开源项目的发展趋势之托管平台

引言 回溯至十五年前的求学时光&#xff0c;当我们初涉编程的浩瀚海洋&#xff0c;面对程序设计这一崭新挑战&#xff0c;曾渴望能有一份现成的源码作为启航的灯塔。然而&#xff0c;在那个时代&#xff0c;除了有限的SDK资源外&#xff0c;寻觅到高质量、可借鉴的源代码并非易…

如何给CAD文件加密丨五种超级简单的CAD图纸加密方法

CAD图纸作为企业核心竞争力的体现&#xff0c;其安全性直接关系到企业的生产效率和市场竞争力。一旦图纸被泄露&#xff0c;竞争对手可能会迅速模仿或改进产品&#xff0c;从而抢占市场份额。此外&#xff0c;图纸的非法获取还可能涉及知识产权纠纷&#xff0c;给企业带来法律风…

MES 功能模块

MES系统&#xff08;Manufacturing Execution System&#xff0c;生产执行系统&#xff09;是制造业企业的关键管理系统之一&#xff0c;它通过集成生产计划、工艺流程、物料管理和生产过程数据等&#xff0c;实现了对生产和制造过程的全面管理和监控。MES系统的功能模块主要包…

FPGA-Verilog-Vivado-软件使用

这里写目录标题 1 软件配置2 FPGA-7000使用2.1 运行启动方式 1 软件配置 编辑器绑定为Vscode&#xff0c;粘贴VS code运行文件的目录&#xff0c;后缀参数保持不变&#xff1a; 如&#xff1a; D:/Users/xdwu/AppData/Local/Programs/Microsoft VS Code/Code.exe [file name]…

vscode远程调试python代码

第一步&#xff1a; vscode设置 vscode也支持通过remote的方法连接我们在命令行中发起的debug server。首先我们要配置一下debug的config。 还是点击VSCode侧边栏的“Run and Debug”&#xff08;运行和调试)&#xff0c;单击"create a lauch.json file" 第二步&a…

Java--static详解

1.static静态的意义&#xff0c;加在属性面前就为静态属性&#xff1b;加在方法面前就为静态方法 2.如图&#xff0c;定义了一个静态属性age&#xff0c;一个非静态属性score&#xff1b; 输出语句一共四句&#xff0c;其中第三句报错&#xff0c;由于静态和非静态的区别&…

软考:软件设计师 — 2.操作系统

二. 操作系统 1. 操作系统概念 &#xff08;1&#xff09;操作系统的作用 操作系统是计算机硬件之上的第一层软件系统。 操作系统通常用来&#xff1a; 管理系统的硬件、软件、数据资源。控制程序运行。人机之间的接口。应用软件与硬件之间的接口。 可概括为&#xff1a; …

7.11 cf div3 C

Problem - C - Codeforces 操作 根据给定的索引数组ind和字符串c&#xff0c;按照一定的顺序修改字符串s中对应位置的字符。具体来说&#xff0c;第i次操作会修改s中索引为indi的位置的字符&#xff0c;将其设置为ci。 将c字符串按照从小到大排序&#xff0c;替换ind数组所表…

迅为RK3588S开发板广泛用于边缘技术,人工智能,智能家居,智慧零售,智能网关等

性能强 iTOP-3588S开发板采用瑞芯微RK3588S处理器&#xff0c;是全新一代AloT高端应用芯片&#xff0c;搭载八核64位CPU&#xff0c;四核Cortex-A76和四核Cortex-A55架构主频高达2.4GHZ&#xff0c;8GB内存&#xff0c;32GBEMMC。 四核心架构GPU内置GPU可以完全兼容0penGLES1.1…

vscode c++可以找到声明却无法自动补全

这个问题折磨了我将近一个月&#xff0c;今天终于被解决了&#xff0c;特此记录 情景再现 事情的起因是我在学习华为的Ascend C算子&#xff0c;需要编写C代码。关于怎么下载库文件怎么编译之类的不是本文的重点&#xff0c;重点是自动补全。 我已经拿到库文件了&#xff0c…

动漫3d模型设计需要注意什么?---模大狮模型网

设计动漫3D模型时&#xff0c;有几个方面需要注意&#xff1a; 保持角色风格一致性&#xff1a; 动漫通常有独特的风格和美学&#xff0c;设计时要确保模型与所代表的角色或作品的整体风格相符。注意保持线条和比例的一致性&#xff0c;使模型能够忠实地呈现原作的特点。 注重…

论文降痕降重全攻略:从技巧到工具,助你轻松应对学术挑战

AIGC降重工具&#xff1a;快速降低论文查重率 高查重率是许多毕业生的困扰。通常&#xff0c;高查重率源于过度引用未经修改的参考资料和格式错误。传统的降重方法&#xff0c;如修改文本和增添原创内容&#xff0c;虽必要但耗时且成效不一。 鉴于此&#xff0c;应用AI工具进…

VMWare桥接模式上网

1. 前提条件: 1) 宿主机 可以上网 2)虚拟机网卡配置桥接模式 3)虚拟机设置ip和宿主机在同一网段,配置网关和宿主机一致 4)虚拟机网卡配置DNS 具体如下: 5)虚拟机和宿主机可以相互ping 通2. 记录问题解决步骤

@RequiredArgsConstructor实现构造器注入

RequiredArgsConstructor实现构造器注入 1. Autowired 和 Resource 注解 Autowired Autowired 是 Spring 框架提供的注解&#xff0c;用于自动装配依赖。可以用于字段、构造函数和 setter 方法。 Autowired private ISysUserService userService;Resource Resource 是 Jav…

Python-PLAXIS自动化建模技术与典型岩土工程

原文链接&#xff1a;Python-PLAXIS自动化建模技术与典型岩土工程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247608744&idx3&sn41d9fd9ab6e792850000c4990b3f8c65&chksmfa82684fcdf5e15990e4681f032ce9b295a9e2071051218f550a7e63e4ebedee29559d56…