Chat-GLM 详细部署(GPU显存>=12GB)

news2024/11/24 0:06:00

建议配置: ( Windows OS 11 部署 )
CPU-i7 13700F ~ 13700KF
RAM: 16GB DDR4
GPU: RTX3080(12G)

安装 conda:

1. 下载安装 miniconda3 :
https://docs.conda.io/en/latest/miniconda.html
conda是一个包和环境管理工具,它不仅能管理包,还能隔离和管理不同python版本的环境。类似管理nodejs环境的nvm工具。

2. conda环境变量:
新建 CONDA_HOME :conda安装路径

在Path中添加 :%CONDA_HOME%  
在Path中添加 :%CONDA_HOME%\Scripts
在Path中添加 :%CONDA_HOME%\Miniconda3\Library\bin

3. 激活conda:
打开CMD执行conda init 

4. 测试conda安装是否成功:
打开CMD输入conda -V 回车后显示版本号表示Conda安装成功。

5. 更换源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

6. 问题解决:
如果创建环境时报错:

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.

找到C盘:.condarc 文件(一般是在  C:\Users\你电脑的用户名 下,没有的话全盘搜索下)
打开.condarc 文件并替换内容为:

channels:
  - defaults
show_channel_urls: true
default_channels:
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
  conda-forge: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

打开CMD输入conda clean -i 回车。

安装 CUDA与Torch:

1. 确认CUDA版本号:
在CMD中输入nvidia-smi 查询CUDA版本号。

2. 下载CUDA:
去官网下载对应的CUDA版本(CUDA Toolkit)
https://developer.nvidia.com/cuda-toolkit-archive

3. 安装CUDA:

 

4. CUDA环境变量:
一般来说安装完成后会自动添加环境变量,可以检查一下,如果没添加则需要添加一下:
CUDA_PATH
CUDA_PATH_V11_8
值为上一步选择安装位置的路径。

5. 测试CUDA安装是否成功:
打开CMD输入nvcc --version 回车显示版本号代表安装完成。

6. 安装Torch:
下载对应CUDA版本的Torch(这里用的版本是11.8)

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

用python代码测试torch是否生效,如果不生效找对应cuda版本下载torch(torch.cuda.is_available()返回false则不生效)

import torch
print(torch.__version__)
print(torch.cuda.is_available())

安装配置 ChatGLM

1. 克隆项目到本地:
如果没git需要安装git
CD到目标文件夹内执行命令:git clone https://github.com/THUDM/ChatGLM-6B.git 

2. 创建conda工程:
打开CMD将目录CD到工程内。

执行命令:conda create --name ChatGLM-6B python=3.10.10 

 激活conda工程:conda activate ChatGLM-6B 

 

3. 安装支持库
执行命令 ( 清华源 ) :

pip install pip -U
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple some-package 

这里在国内使用清华源加速

4. 启动web测试:
安装库 (清华源)

pip install streamlit -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
pip install streamlit_chat -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
pip install chardet -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

执行Demo :streamlit run web_demo2.py 输入Email。

 复制URL到浏览器则可以预览:

 模型下载完成才可以正常对话,如果报错换下VPN节点多试几次

5. API部署
首先需要安装额外的依赖 pip install fastapi uvicorn,然后运行仓库中的 api.py:

python api.py

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

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-03-23 21:38:40"
}

6.启动Chat-GLM:

@echo off
cd /d D:\PythonProject\ChatGLM-6B
conda activate ChatGLM-6B
streamlit run web_demo2.py
pause

效果展示:

 

 

 


后续增加微调模型解决方案, 敬请期待。

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

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

相关文章

Linux嵌入式学习之Ubuntu入门(四)Makefile

系列文章目录 一、Linux嵌入式学习之Ubuntu入门(一)基本命令、软件安装及文件结构 二、Linux嵌入式学习之Ubuntu入门(二)磁盘文件介绍及分区、格式化等 三、Linux嵌入式学习之Ubuntu入门(三)用户、用户组…

go语言切片做函数参数传递+append()函数扩容

go语言切片函数参数传递append()函数扩容 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 二叉树递归go代码: var ans [][]int func pathSum(root *TreeNode, targetSum int) ( [][…

Longitudinal Change Detection on Chest X-rays Using Geometric Correlation Maps

文章来源:[MICCAI2019] Keywords:Chest X-ray;Longitudinal analysis;Change detection;Geometric correlation 一、本文提出的问题以及解决方案 在胸部X-ray图像的诊断中,医生会考虑与先前检查相比病变的…

8.网络爬虫—正则表达式RE实战

8.网络爬虫—正则表达式RE实战正则表达式(Regular Expression)re.Ire.Are.Sre.Mre.Xre.Lre.U美某杰实战写入csv文件:前言: 🏘️🏘️个人简介:以山河作礼。 🎖️🎖️:Pyth…

MongoDB 聚合管道的文档操作($sort,$skip,$limit,$sample,$unwind)

目前为止,我们已经介绍了一部分聚合管道中的管道参数: $match:文档过滤 $group:文档分组,并介绍了分组中的常用操作:$addToSet,$avg,$sum,$min,$max等。 $add…

COCO数据集相关知识介绍

👨‍💻个人简介: 深度学习图像领域工作者 🎉总结链接: 链接中主要是个人工作的总结,每个链接都是一些常用demo,代码直接复制运行即可。包括: &am…

SpringTx 源码解析 - @Transactional 声明式事务执行原理

一、Spring Transactional 声明式事务执行原理 Transactional 是 Spring 框架中用于声明事务的注解,可以标注在方法或类上。当标注在类上时,表示该类的所有public方法都将支持事务。当标注在方法上时,表示该方法将在一个事务内执行。 Trans…

BGP对等体建邻配置

BGP对等体大体分为EBGP对等体和IBGP对等体。而BGP对等体的建邻主要分为两种:1、使用物理接口建邻 2、使用环回借口建邻,针对不同的BGP对等体选用不同的建邻方式。 EBGP的建邻主要使用的是物理接口建邻 IBGP的建邻主要使用的是环回接口建邻 这两种建邻方…

VBA的面向接口编程

工作中有时候会用到VBA(Visual Basic for Applications),不是很多,也没有专门去学习VBA,用的时候遇到问题就上网去查资料,解决问题了就放下了。 今天被同事问到VBA中类的用法,我从来没有用过&am…

论文解读:基于 OpenMLDB 的流式特征计算优化

近期,数据库领域的顶级学术会议 ICDE 2023 在迪斯尼主题公园的故乡 - 美国的安纳海姆(Anaheim)举办。由 OpenMLDB 开源社区和新加坡科技设计大学(Singapore University of Technology and Design)联合完成的研究工作在…

Vue2-黑马(三)

目录: (1)vue2-axios (2)axios-发送请求 (3)vue2-axios-请求体格式 (4)vue2-axios-默认配置 (1)vue2-axios 已经配置了代理,可以…

项目部署---shell脚本自动部署项目

通过shell脚本自动部署项目 操作步骤: 在Linux中安装Git在Linux中安装maven编写shell脚本(拉取代码、编译、打包、启动)为用户授予执行shell脚本的权限执行shell脚本 执行过程:Linux服务器(编译、打包、启动&#x…

每天一道大厂SQL题【Day21】华泰证券真题实战(三)

每天一道大厂SQL题【Day21】华泰证券真题实战(三) 大家好,我是Maynor。相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题&…

爱智EdgerOS之深入解析爱智云原生产品ECSM

一、云原生简介 近些年来,云原生逐渐被业界认可和接受,在国内,包括政府、金融、通信、能源在内的众多领域的大型机构和企业都实现了不同程度的云化,那么什么是云原生呢?云原生计算基金会提供了官方的定义:…

参考|雨水情测报和大坝安全监测系统建设方案

解决方案 小型雨水情测报和大坝安全监测系统解决方案,系统主要由降雨量监测站、水库水位监测站、大坝安全监测中的渗流量、渗流压力和变形监测站及视频和图像监测站等站点组成,同时建立规范、统一的监测平台,集数据传输、信息共享、数据储存…

比较系统的学习 pandas (6)

pandas 数据类型转换 在开始数据分析前,有时需要为数据分配好合适的类型,这样才能 够高效地处理数据 # 对所有字段指定统一类型 data pd.DataFrame(data, dtypefloat32) # 对每个字段分别指定 data pd.read_excel(data.xlsx, dtype{name: string, sc…

CUDA和TensorRT入门

CUDA 官方教程:CUDA C Programming Guide (nvidia.com) 一、基础知识 首先看一下显卡、GPU、和CUDA的关系介绍: 显卡、GPU和CUDA简介_吴一奇的博客-CSDN博客 延迟:一条指令返回的时间间隔; 吞吐量:单位时间内处理…

libwebsockets交叉编译

libwebsockets官网:https://libwebsockets.org/ github:https://github.com/warmcat/libwebsockets 首先下载libwebsockets源码,源码既可以在其官网上下载,也可以到github上下载。这里以v4.1.6为例,https://github.co…

react项目中自定义一个markdown编辑器

Markdown 是一种轻量级标记语言。 Markdown是一种简单的格式化文本的方法,在任何设备上看起来都很棒。它不会做任何花哨的事情,比如改变字体大小、颜色或类型——只是基本的,使用你已经知道的键盘符号。 它还允许人们使用易读易写的纯文本格…

为什么众多大型国企都在升级企业数智化底座?

在数字经济大潮中,数字化转型已不是企业的“选修课”,而是关乎企业生存和长远发展的“必修课”。在企业数字化转型中,国有企业特别是中央企业普遍将数字化转型战略作为“十四五”时期业务规划的重要内容之一,数字化能力也成为衡量…