从0开始搭建清华ChatGLM3 6b大模型(Windows RTX4090版)

目录

1、硬件及软件说明

2、安装Anaconda

3、安装Git版本控制

​4、安装pytorch驱动

5、安装ChatGLM3


1、硬件及软件说明

硬件:主要是GPU卡内存要足够,本次搭建使用的RTX4090卡一张,单卡内存24G,为什么选择4090?主要是4090在推理方面,可以媲美A100,尽管在训练方面一般,但是推理真的是性价比非常高的,管制之后,一张4090的卡行情在1.6W-2.2W元,RTX4090原本是在游戏领域。NVIDIA发布的RTX 40系列移动版显卡,并首次给笔记本带来了RTX 4090级别的型号,是一款性能非常好的显卡。

**软件:**操作系统windows10,内存32G,64位。

2、安装Anaconda

我现在假定,你的主机是什么软件都没有安装(但cuda驱动先自己安装上,没有安装的也可以看前面的博文),从一个空白的主机开始搭建,一步一步搭建清华ChatGLM3 6B。所以首先是安装Anaconda,Anaconda是开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项,用起来非常方便。

1)下载Anaconda:Free Download | Anaconda

我直接下载的是它的最新版本,对应的python版本为3.11

下载好之后一路next就可以

安装详细参考文档可以参考这个:Anaconda详细安装及使用教程(带图文) - 知乎

测试是否安装好conda的命令,进入到dos命令行窗口,输入:conda --version

(1)创建虚拟环境:conda create -n py27 python=2.7

(2)激活虚拟环境:conda activate env_name(环境名称)

(3) 退出虚拟环境: deactivate env_name(环境名称)

(4)删除虚拟环境:conda remove -n env_name(环境名称) --all

(5)查看已创建的虚拟环境:conda env list 或 conda info -e 或 conda info --env

在此,我们利用conda创建glm3的python虚拟环境

命令:conda create -n glm3 python=3.10

进入glm3环境,效果如下:activate glm3

3、安装Git版本控制

因为要从阿里的魔塔社区通过git方式拉去相关镜像和代码,因此需要安装一下git版本控制软件git是世界上最先进的分布式版本控制系统,包括github,git以及阿里魔塔等都是基于git开发出来的代码版本管理平台,所以我们先安装git.

下载地址:https://git-scm.com/download/win

下载之后也是一路next安装就可以

git软件安装参考:Windows下的详细Git安装_windows git安装-CSDN博客

最后安装成功验证:git --version

4、安装pytorch驱动

为了让python能够识别和使用gpu,我们需要一个包来识别出gpu,正好有那么一款机器学习的库有这个功能,它就是pytorch,PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。PyTorch既可以看作加入了GPU支持的numpy,同时也可以看成一个拥有自动求导功能的强大的深度神经网络。pytorch的版本非常重要,和cuda的版本,以及python的版本都很有关系,具体使用哪个版本,可以到pytorch官网查看(怎么安装pytorch也可以看我之前的文章【AI】Windows配置GPU Cuda驱动和Pytorch框架_配置了cuda驱动-CSDN博客

最关键的步骤之一,就是确定torch和torchVsion的版本,如果版本没有配套,就很容易出现各种妖孽的问题,确定地址是pytorch的官网:Start Locally | PyTorch

根据实际从官网生成了适合我们的pytorch安装命令

复制代码
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

这个torch版本很重要,一定要适配,否则会出现诸如找不到cuda或者算法精度跑不出来的之类的要求问题。

前面已经完成了Cuda驱动、pytorch和torchVsion的安装,现在我们要测试一下是否能使用GPU环境。测试在python_gpu环境种,执行如下代码:

import torch

print(torch.cuda.is_available())

显示为True表示配置成功,可以成功调用cuda

当然也可以参考这里面的代码,测试一下gpu是否正常运行

#coding=gbk
# This is a sample Python script.
import torch
# Press Ctrl+空格 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
 
def test_gpu():
    import time
    import torch
    # 测试gpu计算耗时
    A = torch.ones(5000, 5000).to('cuda')
    B = torch.ones(5000, 5000).to('cuda')
    startTime2 = time.time()
    for i in range(100):
        C = torch.matmul(A, B)
    endTime2 = time.time()
    print('gpu计算总时长:', round((endTime2 - startTime2) * 1000, 2), 'ms')
 
    # 测试cpu计算耗时
    A = torch.ones(5000, 5000)
    B = torch.ones(5000, 5000)
    startTime1 = time.time()
    for i in range(100):
        C = torch.matmul(A, B)
    endTime1 = time.time()
    print('cpu计算总时长:', round((endTime1 - startTime1) * 1000, 2), 'ms')
 
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    print(torch.cuda.is_available())
    test_gpu()

5、安装ChatGLM3

从魔塔社区下载chatGLM3的源代码

命令:git clone https://github.com/THUDM/ChatGLM3

这里面requirements.txt记录了安装要以来的各种包

进入到glm3 python虚拟环境执行安装,预计要等到好几个小时

命令:conda activate glm3

升级一下pip版本,这样下载更快点

命令:pip install --upgrade pip

执行依赖安装

命令:pip install -r requirements.txt

要等个把小时,安装完了以后,建议再执行下,确保torch版本ok:

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

下载预训练模型

命令:git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git

6b的有7个2个g大小左右的大文件7个,但是下载速度还是非常快的

进入到basic_demo修改:cli_demo.py,把模型修改为自己下载的模型路径

再进入到glm3 python环境执行该脚本:python cli_demo.py

这就部署好了推理版本了,可以输入问题,进行问答,答案不咋地,但是也算答了

启动页面版本:python web_demo_streamlit.py,这样执行会报错

应是这个命令:streamlit run web_demo_streamlit.py

相关推荐
湖南罗泽南4 分钟前
Windows C++ TCP/IP 两台电脑上互相传输字符串数据
c++·windows·tcp/ip
小奥超人17 分钟前
PPT技巧:如何合并PPT文件?
windows·经验分享·microsoft·powerpoint·办公技巧
MarcoAI1 小时前
github SSH连接(windows)
windows·ssh·github
天幕繁星16 小时前
docker desktop es windows解决vm.max_map_count [65530] is too low 问题
windows·elasticsearch·docker·docker desktop
百锦再17 小时前
详解基于C#开发Windows API的SendMessage方法的鼠标键盘消息发送
windows·c#·计算机外设
IT-民工2111019 小时前
Ansible剧本检测Windows防火墙状态
linux·运维·windows·自动化·ansible
菜鸟江多多1 天前
【windows 下使用 tree】
windows
星晨羽1 天前
esayExcel根据模板导出包含图片
java·开发语言·windows
开发者每周简报1 天前
当微软windows的记事本被AI加持
人工智能·windows·microsoft
命里有定数1 天前
windows工具 -- 使用rustdesk和云服务器自建远程桌面服务, 手机, PC, Mac, Linux远程桌面 (简洁明了)
linux·运维·服务器·windows·ubuntu·远程工作