AWS实例上本地部署ChatGLM2-6B

news2025/1/19 8:17:40

 此篇博客主要介绍如何在AWS上创建带GPU的instance,并在instance上部署ChatGLM大模型。

AWS上申请带GPU的instance

ChatGLM虽然也支持在CPU的instance上部署,但这里选择在GPU的instance上部署。所以,先在AWS上选择带GPU的instance。AWS上区分了不同型号的instance type,这里都是支持NVIDIA Driver的带GPU的instance,至于不同instance的类型,详细信息可查看aws官网说明。

这里在创建instance的时候,我选择的是G4dn类型,内存是32G的instance,选择了instance类型后,操作系统选择的是Ubuntu,版本是22.04,选定instance类型后,创建instance的过程和创建通用instance一样。instance创建成功后,就可以通过ssh命令从本地电脑连接到instance上。

连接后,还可以通过命令 lspci | grep -i nvidia,查看该instance是否带了GPU,可以看到这里查询到了GPU类型是Tesla T4型号。

NVIDIA Driver 安装

成功创建instance并连接后,就需要安装NVDIA的Driver了,安装Driver即可以手动下载安装,也可以通过apt-get命令进行安装。如果要手动下载安装,那么需要在NVIDIA网站查询下载Driver。GPU是T4系列,操作系统是Ubuntu 22.4,可以看到下面检索到了带不同CUDA Tookit的Driver包。

除了手动下载安装Driver外,也可以通过命令安装,并且Nvidia官网给出了详细的安装步骤。总结下来Pre-Installing有如下内容需要检查:

1.Verify the system has a CUDA-capable GPU。
前面已经用命令进行了检查,检查命令:lspci | grep -i nvidia

2.Verify the system is running a supported version of Linux.
检查操作系统Linux的版本信息,检查命令:uname -m && cat /etc/*release

3.Verify the system has gcc installed.
检查系统是否已经安装了gcc,检查命令:gcc --version。新申请的instance是没有gcc的,这里通过apt-get命令进行安装,安装命令sudo apt-get update && apt-get install gcc

4.Verify the system has the correct kernel headers and development packages installed.
检查系统是否已经安装了kernel headers and development packages,检查命令:uname -r,aws上新申请的instance,默认是已经安装好了的。

前置检查完成后,需要进行安装包管理,即生成相应的key,以后在安装Nvidia的相关包时,会进行安全相关的检查,保证安装的包是受到官网认证的包。具体命令如下所示:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\.//g')
wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb

distribution实际就是获取操作系统的版本号,wget命令获取操作系统响应版本号对应的deb文件,dpkg命令是Debian系统中用于管理软件包的工具,它可以用来安装、卸载、配置和管理软件包。cuda-keyring_1.0-1_all.deb文件:包含CUDA密钥环,CUDA密钥环包含了与NVIDIA的CUDA软件包相关的数字签名密钥,用于验证这些软件包的真实性和完整性。通过运行这个命令,就安装了 CUDA 密钥环,在以后安装与 CUDA 相关的软件包时,系统可以使用这些密钥来验证软件包的签名,从而确保软件包是来自官方源或受信任的源。

安装包管理完成后,就可以通过apt-get命令安装driver了,命令如下

sudo apt-get update && sudo apt-get -y install cuda-drivers.

通过以上步骤就完成了在aws instance上nvidia driver的安装。

部署大模型ChatGLM

大模型的部署步骤官网也给出了详细的信息,具体命令如下:

下载代码
git clone https://github.com/THUDM/ChatGLM2-6B
cd ChatGLM2-6B
安装依赖:instance上默认没有安装pip3,通过sudo apt-get install pip进行安装
pip install -r requirements.txt

执行model.py文件,启动命令: python3 ./model.py. python文件内容如下所示

from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True, device='cuda')
model = model.eval()
response, history = model.chat(tokenizer, "你好", history=[])
print(response)

执行model.py文件过程中,可以看到会下载模型的参数文件,参数文件总共有7个,大概需要12G的磁盘空间,在创建instance时,保证磁盘空间是够用的。模型参数文件可看官网信息。

参数下载完成后,文件执行后,会返回大模型返回的内容,具体如下所示。上面的代码中在加载模型时,AutoModel.from_pretrained()方法中,指定了device是cuda,如果安装的instance没有准备好cuda的环境,这里启动就会报错。如果想在CPU上部署,可以把device='cuda'参数取消掉即可。

外网访问大模型的UI界面

模型部署完成后,官网还提供了api部署和web ui部署。web ui的部署很简单,python3 ./web_demo.py即可启动。这里是在aws的instance上启动的,如果想在外网自己电脑上访问,需要修改web_demo.py中lunch命令参数,默认public=False,修改成True即可。UI启动成功后,会显示访问UI 地址,具体如下图所示:

在自己电脑上输入上面的public url地址,即可打开大模型的UI界面了,输入问题,大模型可以顺利回答相关的问题,如下图所示:

上面是UI的部署,官网也提供了api部署,命令很简单,执行python3 ./api.py即可通过api与大模型进行交互了。

以上就是在AWS上部署ChatGLM的过程说明。

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

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

相关文章

Python八连冠!它的资本到底是什么?带你详解Python的牛逼之处

Python 连续八年名列前茅 根据榜单显示,Python 不仅在“Spectrum”综合排名中保持第一的位置,而且远超第二名 Java。 对此,IEEE Spectrum 在发布编程语言榜单时写道,Python 主导地位的增强似乎在很大程度上是以牺牲较小、更专业…

华为云API人脸识别服务FRS的感知力—偷偷藏不住的你

云服务、API、SDK,调试,查看,我都行 阅读短文您可以学习到:人工智能AI人脸的识别、检测、搜索、比对 1、IntelliJ IDEA 之API插件介绍 API插件支持 VS Code IDE、IntelliJ IDEA等平台、以及华为云自研 CodeArts IDE,…

发送信息到我的眼镜上

很久很久以前,购得一个Vufine单目眼镜显示器,最近又拿它来折腾。 通过Pi4的连接,现在可以让任意的网友发送图文到眼镜上。 当然更理想的是通过PiZero2W再加上一个电源即可移动使用。 这里讲了实现的代码,总体也不太复杂。 发送…

ChatGLM2_6b安装

Chatglm2_6b安装 一、安装要求 1、硬件 能否使用,或者以什么模式使用主要取决于显卡的显存 2、能否使用AMD显卡? 可以,甚至可以使用CPU,但是需要降低精度。 以CPU模式运行大概需要32GB 内存。 二:工程与下载 官方路径工程路径: 一代工程: https://github.com/TH…

期权的具体操作步骤详解(期权盈利技巧)

做期权买卖首先我们要清楚在期权中有四个交易方向,分别是期权买方:认购做多,认沽做空,两者互为对手方,期权卖方,卖认购做空,卖认沽做多,只要我们明白了期权的方向即可判断做出选择,下…

算法 数据结构 斐波那契数列 递归实现斐波那契数列 斐波那契递归的优化 斐波那契数列递归求解 多路递归实现 斐波那契算法系列 数据结构(十一)

1. 什么是斐波那契数列: 之前的例子是每个递归函数只包含一个自身的调用,这称之为 single recursion 如果每个递归函数例包含多个自身调用,称之为 multi recursion 递推关系 下面的表格列出了数列的前几项 F0F1F2F3F4F5F6F7F8F9F10F11F12…

空气传导耳机哪个牌子好?市面上热销火爆的气传导耳机推荐

​传统入耳式耳机佩戴着容易滑落,戴不稳,久戴耳朵酸痛等问题,气传导耳机的出现就避免了这些问题的发生,我来推荐几款市面上热销火爆且使用感不错的气传导耳机给到大家,来看看吧! 推荐1:NANK南卡…

[ubuntu]给WSL子系统ubuntu安一个桌面环境

sudo apt install xorg sudo apt install xfce4 sudo apt install xrdp sudo sed -i s/port3389/port3390/g /etc/xrdp/xrdp.ini sudo echo xfce4-session >~/.xsession sudo service xrdp restart 查看自己ip地址: ifconfig 然后在windows上任务栏搜远程桌面 …

亚马逊鲲鹏系统全自动化功能有哪些

亚马逊鲲鹏系统可以批量注册亚马逊买家号、AI智能养号、自动绑定收货地址及支付卡、开通二步验证、自动添加购物车、自动购买、自动留评、评论点赞或举报、QA等。 下面就详细介绍一下一些比较常用的自动化功能: 1、全自动注册 想要注册买家号,那么需要…

自动化测试基础知识详解

前言 有颜色的标注主要是方便记忆,勾选出个人感觉的重点 块引用:大部分是便于理解的话,稍微看看就行,主要是和正常的文字进行区分的 1、什么是自动化测试 自动化测试是软件测试活动中一个重要分支和组成部分,随着软…

Leetcode128. 最长连续序列

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 题解&#…

java 版本企业招标投标管理系统源码+功能描述+tbms+及时准确+全程电子化

功能描述 1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。 2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所…

WINGREEN 034STN1-01-300-R 传感器模块

WINGREEN 034STN1-01-300-R 是一种传感器模块,通常用于监测和采集各种环境或过程参数的数据。以下是这种类型的传感器模块通常可能具备的一般功能和特点: 传感器接口:模块通常配备用于连接不同类型传感器的接口,如温度传感器、湿度…

贝塞尔曲线的一些资料收集

一本免费的在线书籍,供你在非常需要了解如何处理贝塞尔相关的事情。 https://pomax.github.io/bezierinfo/zh-CN/index.html An algorithm to find bounding box of closed bezier curves? - Stack Overflow https://stackoverflow.com/questions/2587751/an-algo…

Linux 中的 cfdisk 命令及示例

cfdisk命令用于在磁盘设备上创建、删除和修改分区。它通过提供基于文本的“图形”界面来显示或操作磁盘分区表。 cfdisk /dev/sda 示例: 运行后您会收到如下提示:从列表中

YOLO目标检测——昏暗车辆数据集+已标注VOC格式标签下载分享

实际项目应用:昏暗车辆数据集在智能交通监控系统、驾驶辅助系统、城市安全监控、自动驾驶系统以及路况分析与规划等应用场景中具有广泛的应用潜力,可以提高车辆检测的准确性和效率,提升交通安全和城市管理水平。数据集说明:昏暗车…

leetcode 2. 两数相加(java)

两数相加 题目描述哨兵技巧代码演示: 递归算法专题 题目描述 难度 - 中等 leetcode 2. 两数相加 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加&…

【LeetCode-中等题】90. 子集 II

文章目录 题目方法一:递归加回溯(去重版)![在这里插入图片描述](https://img-blog.csdnimg.cn/abc4e8d0e3f940fcbdcb072acf80734e.png) 题目 本题nums数组存在重复元素,所以本题会涉及一个去重操作: 子集无需去重版本&…

redis 高可用

Redis 高可用 在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供…

不用入耳就有好音质,南卡OE Pro 0压开放式耳机

从15年第一次接触无线耳机到如今大概用过二十多款无线耳机,用过最多的厂牌就是南卡,包括主、被动降噪和骨传导等品系的数个型号,见证了南卡产品从早期成长探索阶段到如今设计、工艺日臻完善且形成品系,对南卡的技术、工艺和设计愈…