全网最新版ChatGLM-6B开源模型环境详细部署及安装——如何在低显存单显卡上面安装私有ChatGPT GPT-4大语言模型

全网最新版ChatGLM-6B开源模型环境详细部署及安装——如何在低显存单显卡上面安装私有ChatGPT GPT-4大语言模型

https://blog.csdn.net/qq_31136513/article/details/130405007

目录

  • 前言
    • 前期准备
      • 电脑要求
      • 安装anaconda
      • 安装相应版本的CUDA
      • 配置ChatGLM-6B Conda环境
      • 安装pytorch
  • ChatGLM-6B最新版模型环境部署及安装
    • 源码下载
    • 模型下载
    • 相关库安装
    • 运行web演示
    • 作为API部署
  • 参考资料
  • 其它资料下载

前言

ChatGPT的爆火让许多公司和个人都想要开发自己的大型语言模型,但是,由于算力和语言模型开发能力等诸多方面的限制,许多人最终都只能在开发的早期阶段止步不前。然而,近期清华大学知识工程和数据挖掘小组(Knowledge Engineering Group (KEG) & Data Mining at Tsinghua University)发布了对话机器人ChatGLM-6B的开源版本,这一切都变得更加容易了。

这个中英文语言模型拥有千亿参数规模,并且对中文进行了优化。本次开源的版本是其60亿参数的小规模版本,仅需要6GB显存就可以在本地部署。这意味着,即使是在普通显卡的电脑上,也可以轻松部署一个类似于GPT的大型语言模型。这是一个令人振奋的时刻,让我们一起期待中国版ChatGPT更多的创新和突破!

在这里插入图片描述

量化等级 最低 GPU 显存(推理) 最低 GPU 显存(高效参数微调)
FP16(无量化) 13 GB 14 GB
INT8 8 GB 9 GB
INT4 6 GB 7 GB

前期准备

电脑要求

  • python版本要求:3.8
  • windows系统:Windows 7 or later (with C++ redistributable)
  • 显卡:6G以上GPU

安装anaconda

从anaconda官网,下载安装anaconda。具体教程详见官网教程。
在这里插入图片描述

安装相应版本的CUDA

首先在终端查看你的Nividian版本,命令如下:

nvidia-smi

    
    
      
      
      
      
  • 1

在这里插入图片描述
查看到本机可装CUDA版本最高为12.0,版本向下兼容,意思就是CUDA 12.0及以下版本的都可以安装,但一般不建议使用最新版本的。因为可能后续其他安装包没有更新对应版本的可以下载。由于Pytorch(可以从pytorch官网)中可以看到,目前的CUDA版本一般是11.7和11.8,所以建议选择11.8版本以下的。博主这里选择了11.7进行安装。
在这里插入图片描述

安装完后,注意需要看下系统环境变量中地址有没有相应版本的cuda,比如我的电脑就是配置了下面几个环境变量
在这里插入图片描述
除上面两个之外 ,还可以加入以下环境变量,以保证不会出错。我没配置下面两个,也没出错,所以大家根据实际情况选择是否加入下面两个环境配置。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\extras\CUPTI\lib64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\include

不配置可能会报错,Could not load dynamic library ‘cudart64_110.dll’; dlerror: cudart64_110.dll not found

配置ChatGLM-6B Conda环境

首先以管理员方式启动windows命令窗口,在搜索中输入cmd即可打开,输入以下命令,新建一个名字为ChatGLM的环境,并安装tensorflow-gpu版本。新建环境过程中选择y,进入下一步

conda create --name ChatGLM python==3.8.10

    
    
      
      
      
      
  • 1

接下来激活ChatGLM的环境

conda activate ChatGLM

    
    
      
      
      
      
  • 1

安装pytorch

如果电脑配置了GPU,要注意需安装GPU版本的pytorch,具体可登录官网链接:

这里要注意选择你是什么系统,cuda是安装了什么版本(博主前面选择的是11.7),然后复制下面红框中的命令到终端就可以安装了。

在这里插入图片描述
在终端运行下面命令,即可安装成功pytorch-GPU版本:

conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia

    
    
      
      
      
      
  • 1

在终端输入python,然后依次输入下面代码,验证torch-GPU版本是不是成功。

import torch
torch.cuda.is_available()  ## 输出应该是True
  • 1
  • 2
  • 3

在这里插入图片描述

ChatGLM-6B最新版模型环境部署及安装

源码下载

登录github官方地址下载源码或者直接使用git命令clone:

git clone https://github.com/THUDM/ChatGLM-6B.git

 
 
   
   
   
   
  • 1

接着在源码所在文件夹下,新建model文件夹

在这里插入图片描述

模型下载

从hugging face下载所有文件下来,放到model文件夹内。

其中模型文件(大于 1G 的)如果下载速度慢,可以在国内清华云源中单独下载这几个模型文件(其他这个源没有的文件还是需要在 huggingface 上下载):https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/

最后model文件夹内应该如下显示:

在这里插入图片描述

相关库安装

在终端下打开ChatGLM-6B安装的目录,然后运行下面命令,安装相关库:

pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simp1e

 
 
   
   
   
   
  • 1

在这里插入图片描述

运行web演示

在运行之前,需要先修改web_demo.py文件中的模型地址,具体为第5行与第6行,具体如下:
在这里插入图片描述

tokenizer = AutoTokenizer.from_pretrained("model", trust_remote_code=True)
model = AutoModel.from_pretrained("model", trust_remote_code=True).half().cuda()

 
 
   
   
   
   
  • 1
  • 2

温馨提示,根据实际显卡显存,可以更改第6行关于model运行方式:

# 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()

# 14G 以上显存可以直接不量化,博主显存为16G选择的就是这个
model = AutoModel.from_pretrained(“model”, trust_remote_code=True).half().cuda()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在终端输入命令,注意不要用python3,因为可能会使用到其它环境下的python。

python web_demo.py

 
 
   
   
   
   
  • 1

刚开始运行,需要等到1-2分钟加载本地模型:

在这里插入图片描述
接着在浏览器打开:http://127.0.0.1:7861,就可以开始体验ChatGLM-6B了。博主体验了下,生成速度还是很快。

在这里插入图片描述
在这里插入图片描述

作为API部署

首先需要安装额外的依赖

pip install fastapi uvicorn

 
 
   
   
   
   
  • 1

然后运行仓库中的 api.py:

python api.py

 
 
   
   
   
   
  • 1

默认部署在本地的 8000 端口,通过 POST 方法进行调用

curl -X POST "http://127.0.0.1:8000" \
     -H 'Content-Type: application/json' \
     -d '{"prompt": "你好", "history": []}'

 
 
   
   
   
   
  • 1
  • 2
  • 3

得到的返回值为

{
  "response":"你好!我是人工智能助手 ChatGLM-6B,很高兴见到你,欢迎问我任何问题。",
  "history":[["你好","你好!我是人工智能助手 ChatGLM-6B,很高兴见到你,欢迎问我任何问题。"]],
  "status":200,
  "time":"2023-03-23 21:38:40"
}

 
 
   
   
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

参考资料

ChatGLM-6B 博客
ChatGLM-6B 官方github地址

其它资料下载

如果大家想继续了解人工智能相关学习路线和知识体系,欢迎大家翻阅我的另外一篇博客《重磅 | 完备的人工智能AI 学习——基础知识学习路线,所有资料免关注免套路直接网盘下载》
这篇博客参考了Github知名开源平台,AI技术平台以及相关领域专家:Datawhale,ApacheCN,AI有道和黄海广博士等约有近100G相关资料,希望能帮助到所有小伙伴们。

文章知识点与官方知识档案匹配,可进一步学习相关知识
Python入门技能树首页概览 306305 人正在系统学习中

你可能感兴趣的:(深度学习,开源,chatgpt,语言模型)