LLM-01 大模型 本地部署运行 ChatGLM2-6B-INT4(6GB) 简单上手 环境配置 单机单卡多卡 2070Super8GBx2 打怪升级!
搬迁说明
之前在 CSDN 上发文章,一直想着努力发一些好的文章出来!这篇文章在 2024-04-17 10:11:55 已在 CSDN 发布
写在前面
其他显卡环境也可以!但是最少要有8GB的显存,不然很容易爆。
如果有多显卡的话,单机多卡也是很好的方案!!!
背景介绍
目前借到一台算法组的服务器,我们可以查看一下目前显卡的情况
nvidia-smi
PS: (后续已经对CUDA等进行了升级,可看我的其他文章,有升级的详细过程)

项目地址
官方的地址:
# 需要克隆项目
https://github.com/THUDM/ChatGLM2-6B
# 模型下载(如果你没有科学,麻烦一点需要手动下载)
https://cloud.tsinghua.edu.cn/d/674208019e314311ab5c/?p=%2Fchatglm2-6b-int4&mode=list
# 模型下载(如果可以科学,官方下载的体验是比较舒适的)
https://huggingface.co/THUDM/chatglm2-6b-int4
我们需要对项目进行克隆,同时需要下载对应的模型,如果你有科学,可以忽略模型的下载,因为你启动项目的时候它会自己下载。
配置要求
根据官方的介绍,可以看到对应的显卡要求,根据我的情况(2070Super 8GB * 2),我这里选择下载了INT4的模型。

安装Pyenv
由于很多不同的项目队python版本的要求不同,同时对版本的要求也不同,所以你需要配置一个独立的环境。
这里你可以选择 Conda,也可以选择pyenv,或者docker。我选的方案是:pyenv
# pyenv 官方地址
https://github.com/pyenv/pyenv

安装完成之后,记得配置一下环境变量:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
如果你和我一样使用的是 ZSH 的话:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
测试Pyenv
# 查看当前系统中的Python情况
pyenv versions
使用Pyenv
# Python版本
pyenv local 3.10
# 独立环境
python -m venv env
# 切换环境
source env/bin/active
# cd 到项目目录
# 安装Python库 pip install - requirements.txt
你将看到类似的内容,我这里在 MacBook 上测试的:

安装依赖
# Python版本
pyenv local 3.10
# 独立环境
python -m venv env
# 切换环境
source env/bin/active
# cd 到项目目录
# 安装Python库 pip install - requirements.txt

注意: 这是两个部分:(这是我服务器的配置,你也要搞清楚你的内容放置在哪里) 如下图:
- 项目文件夹 /home/jp/wzk/chatglm2-6b-int4/ChatGLM2-6B
- 模型文件夹 /home/jp/wzk/chatglm2-6b-int4/chatglm2-6b-int4
项目文件夹:

模型文件夹

启动项目
在项目的目录下,我们利用现成的直接启动:web_demo.py
# 先打开看一眼
vim web_demo.py
model_path 是你下载的模型文件夹(如果你不是手动下载的话,可以不改,这样的话会自动下载)

PS: 此时需要到最后一行,修改对外暴露服务
# 代码修改为这样
demo.queue().launch(server_name="0.0.0.0", server_port=7861, share=False, inbrowser=True)
退出保存,我们启动服务:
python web_demo.py
使用项目
完成上述的操作,稍等后看到:

根据你的服务器IP和端口,访问即可:

多卡启动
由于单卡很容易爆 OOM,正好这里是 2 * 2070Super 8GB,我们简单的修改一下代码,就可以将模型分到两张显卡中。
官方给的方案是,通过accelerate库来启动。

修改刚才的 web_demo.py,详细位置请看图:
# GPU 数量修改为2
model = load_model_on_gpus(model_path, num_gpus=2)

重新启动即可,就已经是多卡启动了!!!
LLM-01 大模型 本地部署运行 ChatGLM2-6B-INT4(6GB) 简单上手 环境配置 单机单卡多卡 2070Super8GBx2 打怪升级!的更多相关文章
- Form_Form Builder本地部署运行的实现(案例)
2014-08-09 Created By BaoXinjian
- Dubble 01 架构模型&start project
Dubbo 01 架构模型 传统架构 All in One 测试麻烦,微小修改 全都得重新测 单体架构也称之为单体系统或者是单体应用.就是一种把系统中所有的功能.模块耦合在一个应用中的架构方式.其优点 ...
- 三分钟快速上手TensorFlow 2.0 (下)——模型的部署 、大规模训练、加速
前文:三分钟快速上手TensorFlow 2.0 (中)——常用模块和模型的部署 TensorFlow 模型导出 使用 SavedModel 完整导出模型 不仅包含参数的权值,还包含计算的流程(即计算 ...
- 可在广域网部署运行的QQ高仿版 -- GG叽叽V3.4,增加系统设置、最近联系人、群功能(源码)
自从上次版本(GG叽叽V3.2,增加离线消息.离线文件功能)发布后,我个人觉得主要的大功能都实现得差不多了,接下来的几个版本将不断优化GG的细节,提高其可用性.这次版本更新的内容主要是为GG增加了系统 ...
- IntelliJ IDEA打包WAR并部署运行(mac osx)将Web项目War包部署到Tomcat服务器基本步骤(完整版)
用IntelliJ IDEA做web开发体验很好,但导出war包比eclipse麻烦了不少,以下是解决方案: 打包:1.自动打包:File —> Project Structure —> ...
- arcgis api for javascript本地部署加载地图
最近开始学习arcgis api for javascript,发现一头雾水,决定记录下自己的学习过程. 一.下载arcgis api for js 4.2的library和jdk,具体安装包可以去官 ...
- windows下百度离线人脸识别本地部署与使用(nodejs做客户端,c++做服务端,socket做通信)
1.离线人脸识别本地部署 详情请阅读百度人脸识别官网 2.nodejs做socket通信的客户端 为什么不直接通过调用c++编译的exe获得人脸识别结果? 原因:exe运行时会加载很多模型而消耗很多时 ...
- Kubernetes 学习笔记(二):本地部署一个 kubernetes 集群
前言 前面用到过的 minikube 只是一个单节点的 k8s 集群,这对于学习而言是不够的.我们需要有一个多节点集群,才能用到各种调度/监控功能.而且单节点只能是一个加引号的"集群&quo ...
- 三分钟快速上手TensorFlow 2.0 (中)——常用模块和模型的部署
本文学习笔记参照来源:https://tf.wiki/zh/basic/basic.html 前文:三分钟快速上手TensorFlow 2.0 (上)——前置基础.模型建立与可视化 tf.train. ...
- 二手车价格预测 | 构建AI模型并部署Web应用 ⛵
作者:韩信子@ShowMeAI 数据分析实战系列:https://www.showmeai.tech/tutorials/40 机器学习实战系列:https://www.showmeai.tech/t ...
随机推荐
- 数据驱动ddt安装3种方式_unittest_Python
命令行安装 pip install ddt -i 管理员运行命令提示符 pycharm设置里安装 pycharm Python Packages里安装
- Python 自动化爬虫利器 Playwright
Python 自动化爬虫利器 Playwright Python Playwright 是一个基于 Node.js 的自动化测试库,它支持多种浏览器(Chrome.Firefox.Safari.Edg ...
- WPF+Emgucv实现在图像上画出感兴趣的区域 并进行掩膜获取 得到图像均值 和简单的 漫水填充
<Grid.RowDefinitions></Grid.RowDefinitions> <Grid> <UniformGrid Columns="2 ...
- 构建X264 .a 静态库 For iOS
一.构建X264准备 1.下载X264源代码到本地,并解压.修改文件夹名称为x264 ftp://ftp.videolan.org/pub/x264/snapshots/ 2.下载gas-prepro ...
- Android桌面Launcher源码浅析
在Android启动过程-万字长文(Android14)中介绍了Android系统的启动过程,本篇文章将继续介绍桌面应用Launcher. 一.Launcher介绍 在Android启动过程-万字长文 ...
- Linux扩展篇-shell编程(十)-shell范式
shell编程提供一个范式,有利于统一程序风格,增加可读性. 范式: ASSIGN SHELL/指定壳 DESCRIPTION/程序说明 BODY/程序体 扩展: 1.ASSIGN SHELL/指定壳 ...
- SpringBoot系列(五) 接口校验(非空、非法字符/特殊字符、长度等)
1.引入pom依赖 <dependency> <groupId>javax.validation</groupId> <artifactId>valid ...
- (九)selenium实现12306模拟登录
登陆的唯一困难在于验证码的识别,此处使用第三方平台超级鹰进行验证码识别. from selenium import webdriver import time from PIL import Imag ...
- redis锁定商品解决并发售卖问题 RedisUtil工具类
redis锁定商品解决并发售卖问题 RedisUtil工具类 redis数据类型介绍: //伪代码,基本思路 //1.出redis,每次在选定商品之后,先检查redis是否已经锁定该商品,避免超卖.S ...
- Jupyter QtConsole 配置,2023 年了你还在使用 QtConsole 吗?
目录 Jupyter QtConsole 配置,2023 年了你还在使用 QtConsole 吗? Jupyter QtConsole 的安装 设置字体 启动时自动加载需要的库包 更新:2023 年 ...