ChatGLM2-6B本地化部署

ChatGlm2-6B部署【GPU显存建议12G以上,以下为单卡GPU环境】

环境需求【当前环境未使用虚拟环境,建议使用虚拟环境安装】

# 安装Python3.8及以上
# torch2.0对应CUDA11.7/11.8

# 安装python3-pip
apt install python3-pip

下载ChatGLM2-6B文件

# 下载Chatglm2-6B
git clone https://github.com/THUDM/ChatGLM2-6B

# 安装依赖包
cd ChatGLM2-6B
pip install -r requirements.txt   -i https://pypi.tuna.tsinghua.edu.cn/simple

# 查看torch版本
pip  list  | grep torch
------------------------------
torch                    2.0.1
------------------------------  

根据torch版本安装对应的版本的GPU驱动+CUDA

torch 2.0.1版本对应的是CUDA 11.7/11.8
https://developer.nvidia.com/cuda-toolkit-archive
ChatGLM2-6B本地化部署_第1张图片

# 安装驱动+cuda环境依赖
apt update
apt install gcc -y
apt install make -y

#  禁用开源的 nouveau 驱动程序[ubuntu与centos相同配置]
# 编辑文件在最后添加以下配置
vi  /etc/modprobe.d/blacklist.conf

blacklist nouveau
options nouveau modeset=0

#更新内核引导配置
sudo update-initramfs -u

#重启机器
reboot

# 根据系统版本选择对应的安装包
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run


# 安装CUDA+驱动
sudo sh cuda_11.7.0_515.43.04_linux.run
---------------------------------------------------------------------------------
输入accept----选择需要安装的驱动包与cuda后选择 install
---------------------------------------------------------------------------------

#配置环境变量
#编辑/目录下.bashrc文件,在最下面添加以下3条环境变量
vi .bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

#使新增配置生效
source .bashrc

#查看cuda版本
nvcc -V

ChatGLM本地化部署

由于国内网络问题,从hugging face拉取模型文件比较麻烦,所以使用本地下载更为方便

创建本地模型文件目录
mkdir /THUDM/chatglm2-6b
本地下载的模型文件放入到/root/THUDM/chatglm2-6b文件目录下

下载地址:https://cloud.tsinghua.edu.cn/d/674208019e314311ab5c/?p=%2Fchatglm2-6b&mode=list
ChatGLM2-6B本地化部署_第2张图片

进入hugging face官网下载其余配置文件上传到/root/THUDM/chatglm2-6b文件夹内

下载地址:https://huggingface.co/THUDM/chatglm2-6b/tree/main
ChatGLM2-6B本地化部署_第3张图片

Web Demo 部署

#进入ChatGLM2-6B 文件夹
cd ChatGLM2-6B
vi  web_demo.py
----------------------------------------------------------------------------------------------------------------------------------------------------------
from transformers import AutoModel, AutoTokenizer
import gradio as gr
import mdtex2html
from utils import load_model_on_gpus

#修改路径指向本地模型路径
model_path = "/root/THUDM/chatglm2-6b"
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True,local_files_only=True)
model = AutoModel.from_pretrained(model_path, trust_remote_code=True).cuda()

# 修改最后一行指定端口
demo.queue().launch(share=False, inbrowser=True,server_port=7890, server_name="0.0.0.0")
----------------------------------------------------------------------------------------------------------------------------------------------------------
#运行web demo
python3  web_demo.py

通过浏览器登录网页:http://本机IP:7890

ChatGLM2-6B本地化部署_第4张图片

API部署

#进入ChatGLM2-6B 文件夹
cd ChatGLM2-6B

# 修改配置,将模型文件指向本地路径
vi  api.py
-----------------------------------------------------------------------------------------------------------------------------------------------------
if __name__ == '__main__':
    # 模型绝对路径指向本地目录,
    model_path = "/root/THUDM/chatglm2-6b"
    tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True,local_files_only=True)
    model = AutoModel.from_pretrained(model_path, trust_remote_code=True).cuda()
-----------------------------------------------------------------------------------------------------------------------------------------------------

# 运行ChatGLM2-6B
python3 api.py

#后台运行
nohup python3 api.py > output.log &

测试ChatGLM2-6B是否正常
# 输入以下命令测试
curl -X POST "http://127.0.0.1:8000" \
     -H 'Content-Type: application/json' \
     -d '{"prompt": "你好", "history": []}'

# 返回值如下即正常
{
  "response":"你好!我是人工智能助手 ChatGLM-6B,很高兴见到你,欢迎问我任何问题。",
  "history":[["你好","你好!我是人工智能助手 ChatGLM-6B,很高兴见到你,欢迎问我任何问题。"]],
  "status":200,
  "time":"2023-10-08 21:38:40"
}
API接口【可以与Dify结合使用】
http://本机IP:8000

最后有需要云主机资源的同学以及大佬们,目前有大量A100-40G、V100-32G、T4-16G的大厂资源,仅支持月租/年租,如有需要联系我哈!

赠一张搬砖图片

ChatGLM2-6B本地化部署_第5张图片

你可能感兴趣的:(语言模型,云计算)