AI大模型探索之路-应用篇15:GLM大模型-ChatGLM3-6B私有化本地部署

2024-04-18 09:12

本文主要是介绍AI大模型探索之路-应用篇15:GLM大模型-ChatGLM3-6B私有化本地部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言

一、ChatGLM3-6B 简介说明

二、ChatGLM3-6B 资源评估

三、购买云服务器

四、git拉取GLM

五、pip安装依赖

六、运行测试

七、本地部署安装

总结


前言

ChatGLM3-6B 是 OpenAI 推出的一款强大的自然语言处理模型,它在前两代模型的基础上进行了优化和改进,具有更高的性能和更广泛的应用场景。本文将从技术角度对 ChatGLM3-6B 进行详细介绍,包括其特点、资源评估、购买云服务器、git拉取GLM、pip安装依赖、运行测试以及本地部署安装等方面的内容。希望通过本文的介绍,能够帮助大家更好地理解和使用 ChatGLM3-6B 模型。

一、ChatGLM3-6B 简介说明

ChatGLM3-6B 是一款基于深度学习的自然语言处理模型,它具有以下特点:

1)更强大的基础模型: ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。在语义、数学、推理、代码、知识等不同角度的数据集上测评显示,* ChatGLM3-6B-Base 具有在 10B 以下的基础模型中最强的性能*。

2)更完整的功能支持: ChatGLM3-6B 采用了全新设计的 Prompt 格式 ,除正常的多轮对话外。同时原生支持工具调用(Function Call)、代码执行(Code Interpreter)和 Agent 任务等复杂场景。

3)更全面的开源序列: 除了对话模型 ChatGLM3-6B 外,还开源了基础模型 ChatGLM3-6B-Base 、长文本对话模型 ChatGLM3-6B-32K 和进一步强化了对于长文本理解能力的 ChatGLM3-6B-128K

二、ChatGLM3-6B 资源评估

初步粗略估算:

1)如果精度为FP32, 需要GPU显存大概 24G左右,如果考虑其他因素再加一点32G左右。
2)如果精度为FP16, 需要GPU显存大概 12G左右,如果考虑其他因素再加一点16G左右。
3)如果量化为int8, 需要GPU显存大概 6G左右,如果考虑其他因素再加一点8G左右。

由于默认情况下,ChatGLM3-6B模型以 FP16 精度加载,因此大概需要16G左右;
如果显存不够需要修改源码进行量化处理,源码参考如下:
model = AutoModel.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True)
.quantize(8).cuda()

三、购买云服务器

在​​​​​​​AutoDL租一个按量收费的服务器;大家可自行选择合适的云平台,购买云服务器​​​​​​​

选择最新的Pytorch基础镜像(核心需要pytorch库)

登录云服务器

学术加速一波,执行命令:source /etc/network_turbo

四、git拉取GLM

1)下载GLM

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

2)下载完成后进入ChatGLM3目录

cd ChatGLM3

五、pip安装依赖

执行下面的pip命令,安装依赖(核心需要pytorch库)

pip install -r requirements.txt

安装过程中提示tensorboard依赖的protobuf版比较低,服务器中protobuf版本过高

有两种方案:

1)降低protobuf的版本到满足tensorboard 2.15.1的要求。你可以使用pip命令来卸载当前的protobuf并安装一个兼容的版本。例如:
pip uninstall protobuf
pip install protobuf==4.24
2)升级你的tensorboard版本到一个与当前protobuf版本兼容的版本。你需要查找最新的tensorboard版本,然后使用pip命令来安装。例如:
pip install --upgrade tensorboard

经尝试采用第一种失败后,改用方案二执行成功。

再重新执行:pip install -r requirements.txt,执行成功

六、运行测试

进入basic_demo目录,查看测试的demo

执行测试demo :   python cli_demo.py

这个目录放了各种测试用的demo,为了方便使用,本次主要采用命令行客户端的方式测试

第一次执行时,中途链接huggingface超时失败,惊出一身冷汗

第二次执行后执行成功(终于出现了期待已久的画面)

赶紧测一波 ,

测试效果赶紧很不错,精准度方面也比较高;另外,感受最明显的特点就是,“速度快”,

基本上在我提问完后,ChatGLM秒回结果,和调用OpenAI在线API相比,直接原地起飞。

七、本地部署安装

由于本地电脑GPU资源不足,无法实操;主要以云服务器部署为主;本地安装方式仅做记录备用

1. Python环境准备

建议安装anaconda(里面集成了很多科学计算的库集成了jupyter等在线编译工具)

网站会自动识别电脑版本匹配工具

2. GPU版PyTorch安装

PyTorch是一个开源的Python机器学习库,基于Torch;它提供了必要的模型管理和训练工具,以及分布式训练能力、易用性、以及与其他工具的良好集成;用于自然语言处理等应用程序。PyTorch既可以看作加入了GPU支持的numpy,同时也可以看成一个拥有自动求导功能的强大的深度神经网络。

ChatGLM3-6B运行过程需要借助PyTorch来完成相关计算。

需要确认是否已经安装2.0版本及以上的GPU版本的PyTorch;

1)验证是否安装

#导入模块
import torch#查看Pytorch的版本
torch.__version__#测试当前的touch版本与当前服务器的CUDA是否兼容
print(torch.cuda.is_available())

2)安装

#卸载当前pytorch版本
pip uninstall torch torchvision torchaudio#安装新的pytorch版本
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

3. 验证PyTorch与CUDA是否兼容

CUDA是Compute Unified Device Architecture的缩写,它是由NVIDIA公司推出的一个并行计算平台和应用程序接口(API),允许软件开发者和软件工程师使用NVIDIA的图形处理单元(GPU)进行通用计算。简单来说,CUDA让开发者能够利用NVIDIA GPU强大的计算能力来加速除了图形处理以外的科学和工程计算,从而提供比传统CPU更高效的性能。

1)验证是否兼容

#导入模块
import torch#测试当前的touch版本与当前服务器的CUDA是否兼容
print(torch.cuda.is_available())

2)重新安装

在CUDA官网下载最新版CUDA toolkit(CUDA安装工具)进行安装或者更新至12.1版,

3)重新验证

4. 拉取ChatGLM3工程

创建一个目录使用GIT拉取工程代码

git clone https://github.com/THUDM/ChatGLM3cd ChatGLM3

下载完成后,能够在你的文件目录下看到完整的ChatGLM3安装文件

5. 安装ChatGLM3-6B项目依赖库

pip install -r requirements.txt

安装过程若出现类似typing-extensions或fastapi等非核心库不兼容性报错,并不会影响最终模型运行,不用进行额外处理。完成了相关依赖库的安装之后,即可尝试进行模型调用了。

6. 运行测试

测试方式1:

python cli_demo.py

测试方式2:

streamlit run web_demo2.py

总结

本文从技术角度对 ChatGLM3-6B 进行了深入介绍,包括其特点、资源评估、购买云服务器、git 拉取 GLM、pip 安装依赖、运行测试以及本地部署安装等方面的内容。希望通过本文的介绍,能够帮助大家更好地理解和使用 ChatGLM3-6B 模型。

文章若有瑕疵,恳请不吝赐教;若有所触动或助益,还望各位老铁多多关注并给予支持。

这篇关于AI大模型探索之路-应用篇15:GLM大模型-ChatGLM3-6B私有化本地部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Python使用Tkinter打造一个完整的桌面应用

《Python使用Tkinter打造一个完整的桌面应用》在Python生态中,Tkinter就像一把瑞士军刀,它没有花哨的特效,却能快速搭建出实用的图形界面,作为Python自带的标准库,无需安装即可... 目录一、界面搭建:像搭积木一样组合控件二、菜单系统:给应用装上“控制中枢”三、事件驱动:让界面“活”

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

Python Flask 库及应用场景

《PythonFlask库及应用场景》Flask是Python生态中​轻量级且高度灵活的Web开发框架,基于WerkzeugWSGI工具库和Jinja2模板引擎构建,下面给大家介绍PythonFl... 目录一、Flask 库简介二、核心组件与架构三、常用函数与核心操作 ​1. 基础应用搭建​2. 路由与参

Maven项目打包时添加本地Jar包的操作步骤

《Maven项目打包时添加本地Jar包的操作步骤》在Maven项目开发中,我们经常会遇到需要引入本地Jar包的场景,比如使用未发布到中央仓库的第三方库或者处理版本冲突的依赖项,本文将详细介绍如何通过M... 目录一、适用场景说明​二、核心操作命令​1. 命令格式解析​2. 实战案例演示​三、项目配置步骤​1

Spring Boot中的YML配置列表及应用小结

《SpringBoot中的YML配置列表及应用小结》在SpringBoot中使用YAML进行列表的配置不仅简洁明了,还能提高代码的可读性和可维护性,:本文主要介绍SpringBoot中的YML配... 目录YAML列表的基础语法在Spring Boot中的应用从YAML读取列表列表中的复杂对象其他注意事项总

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

电脑系统Hosts文件原理和应用分享

《电脑系统Hosts文件原理和应用分享》Hosts是一个没有扩展名的系统文件,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应... Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应