一、选择阿里云进行薅羊毛
选择3个月的A10的计算卡,注意要增加NAS,
选择镜像:stable-diffusion-webui-env:pytorch1.13-gpu-py310-cu117-ubuntu22.04
二、安装基础环境,激活我个人的limingGLM的虚拟环境
1、先看看显卡安装情况
nvidia-smi
说明显卡已经安装正常
2、各种资源的更新,虽然阿里云很多但是我还是在环境下更新一个版本吧
sudo apt-get update
3、安装gcc编译器(可选,系统中通常已有):
sudo apt install build-essential
4、安装Python,以3.8为例:sudo apt install python3.8,其实安装3.7应该也够吧
5、开始安装anconda,原来很多人安装mini,但是反正资源多,就安装完整版
先现在一个完整的软件包:
wget -c https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh
6、按照安装conda
bash Anaconda3-2021.05-Linux-x86_64.sh
然后一路回车加Yes,后面是答案,安装到/root下这个目录,如果要是修改就要改目录,我拦着没有修改
Anaconda3 will now be installed into this location:
/root/anaconda3
确认安装目录后,继续进行压缩解包;
7、运行成功后,进行初始化shell
conda init 运行这个, 这里要求重新启动才能生效
8、我先制定一个python 3.8的一个环境,给GLM用,我就叫limingGLM
conda create -n limingGLM python==3.8 -y
然后我查看我现在系统里面虚拟环境
conda env list
看到了吧,有个limingGLM是我的虚拟环境
9、应该激活这个limingGLM环境,但是conda activate limingGLM 没有激活,提示需要bash的init
输入: bash 后在输入 conda activate limingGLM 才激活,下面就是成功:
三、开始下载GLM模型
1、安装git,但是原来环境概率是有的,我在浪费一下资源;
sudo apt install git
很快安装完毕,继续要下载GLM模型了
2、从清华开源安装
git clone https://github.com/THUDM/ChatGLM-6B.git
git clone https://github.com/THUDM/ChatGLM-6B.git
这个时间可能有点长;等等
3、进入程序目录,根据配置文件进行安装(由于我再bash里面,其实就在conda的环境里
cd ChatGLM-6B
#pip install -r requirements.txt
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
可以增加 sudo
这个命令是错误的(conda install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple)
运行中,估计不要多久,应该模型下载时间长。
4、现在可以下载模型了
从hugging face下载所有文件下来,放到model文件夹内。
模型下载到本地吧,git-lfs方式下载;
apt install git-lfs
git-lfs clone https://huggingface.co/THUDM/chatglm-6b
这里会很慢很慢,应该2个小时下载,可以洗洗睡了,竟然1个小时不到结束了,继续。
四、运行一些基础的GLM的程序了
pip install gradio (这个是web页面资源,需要安装)
1、运行web演示
在运行之前,需要先修改web_demo.py
文件中的模型地址,具体为第5行与第6行,具体如下
tokenizer = AutoTokenizer.from_pretrained("model_path", trust_remote_code=True)
model = AutoModel.from_pretrained("model_path", trust_remote_code=True).half().cuda()
我找了一下,我的model_path = "。/chatglm-6b" -->/前面有个小点别忘记了。
大写的ChatGLM-6B 是存着所有的演示程序
我用的A10,显存应该是24G,如果比较小,就要在cuda这里压缩一下,比如:
# 6G 显存可以 4 bit 量化
model = AutoModel.from_pretrained("model", trust_remote_code=True).half().quantize(4).cuda()
# 10G 显存可以 8 bit 量化
model = AutoModel.from_pretrained("model", trust_remote_code=True).half().quantize(8).cuda()
python web_demo.py
(注意:由于我没有把path放到配置,因此必须到ChatGLM-6B的目录下运行才可以;
其他人建议不要用python3运行这个指令,因为各种不兼容。
浏览器打开:http://127.0.0.1:7861
如果复制浏览器是不可以,只能点击程序出现的那个IP地址,我怀疑是公共发布lunch问题,
以上就可以进入演示了
其他:(内存暴了后,重启系统,本来想用这个方法,但是系统也死了,自动重新启动,感觉这个开源的不是很稳定)文字紫色的部分就是重启后,我的步骤。
1、conda create -n limingGLM python==3.8
pip3 install gradio(??)
conda install -c huggingface transformers(??为啥这个函数没有了)
pip freeze | grep transformers(用来查看是否我这个库还在)
2、conda env list
3、conda activate limingGLM
4、python web_demo.py
5、
6、
由于我修改了web_demo的内容,然后重新运行这个程序,显示cuda内存已经使用了9GB,因此暴了。需要重新启动这个环境。
from transformers import AutoModel, AutoTokenizer
import gradio as gr (不知道为何,我少装一个gradio??)
import mdtex2html
# 退出环境
conda deactivate
# 查看虚拟环境
conda info --envs
# 删除虚拟环境
conda remove -n name --all
# 删除所有的安装包及cache(索引缓存、锁定文件、未使用过的包和tar包)
conda clean -y --all
# 删除pip的缓存
rm -rf ~/.cache/pip