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

news2024/11/18 17:47:26

目录

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

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

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

相关文章

前端map标签(创建热点区域或是点击图片指定区域跳转对应链接))

前言 点击整张图片的某一部分,可以实现自定义跳转或者一些事件 利用img和map和area标签实现 先来看下实现 https://www.w3cschool.cn/tryrun/showhtml/tryhtml_areamap <img src"/statics/images/course/planets.gif" width"145" height"126&…

aps审核-模电英文稿

模拟电子线路 Analog circuit 需要熟悉课程名&#xff0c;一句话简单概括课程内容&#xff0c;准备一些重点内容介绍。 This course mainly introduces the properties(n.性质) of semiconductors(半导体) and transistors, and then analyzes and masters amplification circ…

猜数字游戏

一. 游戏要求&#xff1a; 1. 电脑自动生成1~100的随机数 2. 玩家猜数字&#xff0c;猜数字的过程中&#xff0c;根据猜测数据的大小给出大了或小了的反馈&#xff0c;直到猜对&#xff0c;游戏结束。 二. 随机数的生成 2.1 rand C语言提供了⼀个函数叫rand&#xff0c;这函…

MS5148T荣获2023电子信息半导体行业年度卓越产品

MS5148T是一款适合高精度、低成本测量应用的24bit模数转换器。内部集成了低噪声可编程增益放大器、高精度Δ-Σ模数转换器和内部振荡器、低温漂基准和两路匹配的可编程电流源&#xff0c;以及传感器检测Burnout电流源和偏置电压产生器&#xff0c;支持四路差分输入。 主要特点…

Docker就应该这么学-01

第一章 容器与开发语言 1.1 Docker 最近一段时间&#xff0c;云计算领域最火的莫过于“容器”一词。提到容器&#xff0c;就不得不提 Docker,可以说 Docker 己经成为了容器的代名词。那么&#xff0c;什么是 Docker ? Docker 又能做什么呢&#xff1f;本章 我们就来简单介绍…

2023春季李宏毅机器学习笔记 02 :机器学习基本概念

资料 课程主页&#xff1a;https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.phpGithub&#xff1a;https://github.com/Fafa-DL/Lhy_Machine_LearningB站课程&#xff1a;https://space.bilibili.com/253734135/channel/collectiondetail?sid2014800 一、機器學習基本原理…

MySQL将多条数据合并成一条的完整示例

数据库中存的是多条数据&#xff0c;展示的时候需要合并成一条 数据表存储形式如下图 以type分组&#xff0c;type相同的算一条&#xff0c;且保留image和link的所有数据&#xff0c;用groupBy只保留一条数据 解决方案&#xff1a;用GROUP_CONCAT 完整语法如下 group_concat…

基于人工智能的数据库工具Chat2DB使用

文章目录 前言Chat2DB介绍Chat2DB地址下载安装 Chat2DB配置Chat2DB使用1、自然语言转sql2. SQL解释3. SQL优化4. SQL转换 写在最后 前言 随着人工智能的发展&#xff0c;各行各业都出现了不少基于AI的工具来提升工作效率。就连国内的各个大厂也都在基于大模型开发自己的产品线…

ctfshow——信息搜集

文章目录 web 1web 2web 3web 4web 5web 6web 7web 8web 9web 10web 11web 12web 13web 14web 15web 16web 17web 18web 19web 20 web 1 题目提示开发注释未及时删除。 直接右键查看源代码。 web 2 在这关我们会发现&#xff1a;1&#xff09;无法使用右键查看源代码&…

Github 2023-12-31 开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2023-12-31统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量TypeScript项目3Swift项目1Java项目1HTML项目1Astro项目1Python项目1C项目1Dart项目1Jupyter Notebook项目1C项…

Python最基础的对字符串的操作1

1&#xff0c;字符串的查找&#xff1a; find()&#xff1a;查询某个子串是否包含在这个字符串中&#xff0c;如果在返回这个子串开始的位置下标&#xff0c;否则则返回-1 index()&#xff1a;查询某个子串是否包含在这个字符串中&#xff0c;如果在返回这个子串开始的位置下标…

Linux系统编程(八):信号(下)

参考引用 UNIX 环境高级编程 (第3版)嵌入式Linux C应用编程-正点原子 1. 基本概念 信号是事件发生时对进程的通知机制&#xff0c;也可以把它称为软件中断 信号与硬件中断的相似之处在于能够打断程序当前执行的正常流程&#xff0c;其实是在软件层次上对中断机制的一种模拟大多…

【华为机试】2023年真题B卷(python)-快递运输

一、题目 题目描述&#xff1a; 运送的快递放在大小不等的长方体快递盒中&#xff0c;为了能够装载更多的快递同时不能让货车超载&#xff0c;需要计算最多能装多少个快递。 注&#xff1a;快递的体积不受限制 快递数最多1000个 货车载重最大50000 二、输入输出 输入描述&#…

【算法挨揍日记】day42——494. 目标和、1049. 最后一块石头的重量 II

494. 目标和 494. 目标和 题目描述&#xff1a; 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 或 - &#xff0c;然后串联起所有整数&#xff0c;可以构造一个 表达式 &#xff1a; 例如&#xff0c;nums [2, 1] &#xff0c;可以在 2 之前…

工程化态势感知的困难

工程化态势感知的困难在于数据整合、大数据处理和分析、领域知识和模型构建、实时性和准确性要求以及安全和隐私问题。解决这些困难需要技术和专业知识的结合&#xff0c;以及各方面的合作和努力。 多源异构数据的整合&#xff1a;工程化态势感知需要从各种数据源获取数据&…

数据结构——顺序队列与链式队列的实现

目录 一、概念 1、队列的定义 2、队首 3、队尾 二、接口 1、可写接口 1&#xff09;数据入队 2&#xff09;数据出队 3&#xff09;清空队列 2、只读接口 1&#xff09;获取队首数据 2&#xff09;获取队列元素个数 3&#xff09;队列的判空 三、队列的顺序表实现…

com.gexin.platform 依赖下载问题

打包时报错显示&#xff1a; com.gexin.platform:gexin-rp-sdk-http:pom:4.1.1.4 failed to transfer from http://0.0.0.0/ 解决办法&#xff1a; 1、在idea中找到maven中的设置的settings.xml 2、根据路径找到settings.xml文件&#xff0c;添加以下内容 <mirror><…

基于孔雀优化算法的航线规划

MATLAB2020a下正常运行 上传明细-CSDN创作中心

一元函数微分学——刷题(14

目录 1.题目&#xff1a;2.解题思路和步骤&#xff1a;3.总结&#xff1a;小结&#xff1a; 1.题目&#xff1a; 2.解题思路和步骤&#xff1a; 只要知道反函数求导等于原函数的导数的倒数&#xff0c;那就很好求解了&#xff0c;这不过要先处理好x和y的对应关系&#xff0c;知…

WPF容器的背景对鼠标事件的影响

背景&#xff1a;在实现鼠标拖动窗口的过程中发现对父容器设置了鼠标拖动窗口的事件MouseLeftButtonDown private void DragWindow(object sender, MouseButtonEventArgs e) {if (e.LeftButton MouseButtonState.Pressed)DragMove(); } 问题&#xff1a;非常困惑的是&#x…