从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 timeimport 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/592512.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在ArcGIS Pro中指定坐标系

在进行制图的时候,为了实现某些特定的效果,需要指定特定的坐标系,但是现有的数据可能不是所需要的坐标系,这时候就需要对现有的数据坐标系进行处理,这里为大家介绍一下ArcGIS Pro中指定坐标系的方法,希望能…

STM32存储左右互搏 SPI总线读写FRAM MB85RS2M

STM32存储左右互搏 SPI总线读写FRAM MB85RS2M 在中低容量存储领域,除了FLASH的使用,,还有铁电存储器FRAM的使用,相对于FLASH,FRAM写操作时不需要预擦除,所以执行写操作时可以达到更高的速度,其…

蓝牙物联网漏洞攻击的几种方式?

在物联网日益普及的今天,蓝牙技术的广泛应用为我们的生活带来了诸多便利。然而,正如一枚硬币有两面,蓝牙技术的普及也带来了新的安全挑战。近日,一项关于蓝牙物联网漏洞攻击的研究引起了广泛关注。这项研究揭示了蓝牙物联网所面临…

机器视觉在食品安全检测领域的应用与展望

​随着人们生活水平的提高,对食品安全的要求也越来越高。在这种背景下,机器视觉技术作为一种高效、准确的自动化检测手段,在食品安全检测领域扮演着越来越重要的角色。机器视觉系统通过模拟人眼的视觉功能,借助相机和计算机视觉算…

魅族手机怎么录屏?高清视频,轻松录制!

“有人知道魅族手机怎么录屏吗,新买的魅族手机,用了几天感觉挺流畅的,功能也很齐全,最近因为工作原因,需要用到录屏功能,但是我不知道怎么打开,就想问问大家,魅族手机怎么录屏呀。”…

2024 年 8 款值得收藏的免费 Android 数据恢复软件

如果你发现手机数据全部被删除,先别慌,今天这个视频就来教你如何恢复。 随着市场上数据恢复软件的可用性不断增加,很难选择哪一款是最好的。今天,我们精心挑选了8个最佳免费Android数据恢复软件。他们肯定会帮助你决定最适合你需…

JAVA对象、List、Map和JSON之间的相互转换

JAVA对象、List、Map和JSON之间的相互转换 1.Java中对象和json互转2.Java中list和json互转3.Java中map和json互转 1.Java中对象和json互转 Object obj new Object(); String objJson JSONObject.toJSONString(obj);//java对象转json Object newObj JSONObject.parseObject(…

引导过程的解析以及教程za

bios加电自检------mbr--------grub-------加载内核文件------启动第一个进程 bios的主要作用:检测硬件是否正常,然后根据bios中的启动项设置,去找内核文件 boot开机启动项顺序,你可以把内核文件放在何处? 1.硬盘 …

ChatGPT 进行 SEO的使用技巧

搜索引擎优化 (SEO) 是使网站对搜索引擎友好的一种不断发展的实践。 自搜索引擎和新兴技术的发展以来,它从未保持不变。 最近发布的 ChatGPT 是一种人工智能对话工具,似乎在搜索引擎优化方面有很好的应用。 从创建吸引人的标题到只需一个简短的提示就可…

QML 中自定义虚拟键盘

作者:billy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 前言 我们知道 Qt 中虚拟键盘模块遵循的是 GPL 协议,是不可用于商业发布的。如果项目中使用了 Qt 自带的虚拟键盘&#xff…

解决java接口使用spring-validation验证入参类型为List校验不生效的问题

由于 List 是接口,无法直接用于参数验证,但可以通过实现类重写 List 接口,把此实现类作为校验dto即可 dto标记: 一、直接使用 List 入参类型,不生效示例: @ApiOperation(value = "公共测试接口")@PostMapping("/testPublicApi")public CommonResult&…

vue +elementui 项目登录通过不同账号切换侧边栏菜单的颜色

前景提要:要求不同权限账号登录侧边栏颜色不一样。分为 theme:1代表默认样式,theme:2代表深色主题样式。 1.首先定义一个主题文件 theme.js,定义两个主题样式 // 主要是切换菜单栏和菜单头部主题的设计,整体主题样式切…

【7z压缩包】7z压缩包没密码怎么办

7z压缩包设置了密码,解压的时候就需要输入正确对密码才能顺利解压出文件,正常当我们解压文件或者删除密码的时候,虽然方法多,但是都需要输入正确的密码才能完成。忘记密码就无法进行操作。 那么,忘记了7z压缩包的密码…

rime中州韵 输入字符透传 lua Translator

在 rime中州韵 help lua Translator 中我们分享了如何使用 lua 脚本定义一个 translator,并以 五笔・拼音 为例引用了该 translator,并且达到了预期的效果。 今天,我们继续通过 lua 脚本为 rime中州韵/小狼毫 输入法打造一个 translator&…

使用Spring Retry优雅的实现业务异常重试

在系统中经常遇到业务重试的逻辑,比如三方接口调用,timeout重试三遍,异常处理重试的兜底逻辑等。那你是不是还在用下面这种方式呢: 我想大家可能很多时候也会这么写,这是能想到的第一个方法,但是我们这段代…

Ant Design Vue 编译后的网页特点是什么,怎么确认他是用的前端 Ant Design Vue 技术栈的呢?

Ant Design Vue 是一个前端 UI 框架,使用 Vue.js 构建。它包含了大量的预设样式和组件,如按钮、表单、表格等,可以帮助开发者快速构建出优雅且功能丰富的网页。但是,要确定一个编译后的网页是否使用了 Ant Design Vue,…

【算法】利用分治思想解算法题:快排、归并、快速选择实战(C++)

1. 分治思想 介绍 分治法将问题划分成多个相互独立且相同或类似的子问题,然后递归地解决每个子问题,并将结果合并以得到原始问题的解。 分治思想通常包含以下三个步骤: 分解:将原始问题划分成多个规模较小、相互独立且类似的子…

单片机大小端模式

单片机大小端模式 参考链接 单片机干货-什么是大小端_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Ju4y1M7Tx/?spm_id_from333.337.search-card.all.click&vd_sourcee821a225c7ba4a7b85e5aa6d013ac92e 特此记录 anlog 2024年1月2日

文本到3D肖像最强生成方案!DiffusionGAN3D: 3D GANs和Diffusion先验强强联合!

本文介绍了一个新型框架DiffusionGAN3D,旨在改善文本引导的3D域适应和生成,以及解决现有方法在这些任务中存在的问题,如 inflexibility(缺乏灵活性)、instability(不稳定性)和low fidelity&…

Linux驱动学习—设备树及设备树下的platform总线

1、什么是设备树? 设备树是一种描述硬件资源的数据结构。他通过bootloader将硬件资源传给内核,使得内核和硬件资源 描述相对独立。 2、设备树的由来 2.1 平台总线的由来 要想了解为什么会有设备树,设备树是怎么来的,我们就要先…