当前位置:   article > 正文

Chatglm2-6B的部署_chatglm2-6b如何运行

chatglm2-6b如何运行


前言

记录chatglm部署,参考链接链接:Windows10下ChatGLM2-6B模型本地化安装部署教程图解


一、大模型介绍

Gpt的爆火与迭代
GPT(Generative Pre-trained Transformer)是由OpenAI开发的一系列自然语言处理模型,它的发展历程可以追溯到GPT-1,然后是GPT-2和GPT-3。以下是GPT的主要发展历程:

GPT-1(2018年6月)

GPT-1是OpenAI推出的第一个GPT模型,它包含1.5亿个参数。
这个模型的训练目标是通过大规模的互联网文本数据来预测下一个单词,以达到对语言的理解和生成的目的。

GPT-2(2019年2月)

GPT-2是GPT-1的继任者,模型规模大大增加,参数数量达到了1.5亿到15亿之间。
由于担心滥用,OpenAI最初没有公开发布GPT-2的全部训练模型。后来,他们逐渐放出了不同规模的版本。

GPT-3(2020年6月)

GPT-3是GPT系列中规模最大的模型,包含了1.75万亿个参数。这个模型在多个任务上表现出色,不仅能够理解和生成自然语言,还能在零样本学习的情况下执行各种任务,如翻译、问答、文本摘要等。GPT-3的发布引起了广泛关注,并被认为是当前最先进的自然语言处理模型之一。

GPT-4的应用(至今)

GPT-4 实现了以下几个方面的飞跃式提升:强大的识图能力;文字输入限制提升至 2.5 万字;回答准确性显著提高;能够生成歌词、创意文本,实现风格变化。

Chatglm2的应用(至今)

ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,ChatGLM2-6B 引入了如下新特性:

更强大的性能:基于 ChatGLM 初代模型的开发经验,我们全面升级了 ChatGLM2-6B 的基座模型。ChatGLM2-6B 使用了 GLM 的混合目标函数,经过了 1.4T 中英标识符的预训练与人类偏好对齐训练,评测结果显示,相比于初代模型,ChatGLM2-6B 在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等数据集上的性能取得了大幅度的提升,在同尺寸开源模型中具有较强的竞争力。

更长的上下文:基于 FlashAttention 技术,我们将基座模型的上下文长度(Context Length)由 ChatGLM-6B 的 2K 扩展到了 32K,并在对话阶段使用 8K 的上下文长度训练。对于更长的上下文,我们发布了 ChatGLM2-6B-32K 模型。LongBench 的测评结果表明,在等量级的开源模型中,ChatGLM2-6B-32K 有着较为明显的竞争优势。

更高效的推理:基于 Multi-Query Attention 技术,ChatGLM2-6B 有更高效的推理速度和更低的显存占用:在官方的模型实现下,推理速度相比初代提升了 42%,INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。

二、环境配置

1.CUDA11.7安装更新

CUDA官网
我安装的CUDA11.7.0版本,版本过高可能导致后续安装失败,可查询根据自己电脑的配置进行相应版本安装。
在这里插入图片描述
推荐一个【CUDA】cuda安装 (windows版)

检查是否安装成功
1.win+R输入cmd调出控制台
2.输入nvidia-smi 查看是否已正确安装

nvidia-smi
  • 1

在这里插入图片描述
返回以上信息,则CUDA已正确安装并可以被系统识别;如果返回类似“command not found”的信息,则CUDA没有成功安装或者没有正确添加环境变量。
解决办法:重新下载低版本CUDA。
输入 nvcc -V命令,同样可测试CUDA是否安装成功。

nvcc -V
  • 1

在这里插入图片描述

2.Anaconda下载和环境配置

Anaconda下载
Python 环境:使用Anaconda,在environment中创建虚拟环境chatglm2,虚拟环境的Python版本是Python3.10.3,大版本相同即可,进入之后安装相对应的工具包即可。
在这里插入图片描述
create以后点击chatglm2播放弹出cmd,输入python和pip list查看python环境。

python
pip list
  • 1
  • 2

在这里插入图片描述

3.虚拟环境中安装pytorch

激活虚拟环境之后,在命令行输入下面命令即可:

conda install pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.7 -c pytorch -c nvidia
  • 1

注意这里的Pytorch需要和cuda版本一致,我上面下载的是cuda11.7;
注意如果cuda版本和我不一致,以下命令也有差异。具体看官网命令,以对应版本官网命令为准。pytorch版本我选择2.0.0,版本过高可能导致报错。
Pytorch地址
在这里插入图片描述
选择install previous versions of PyTorch,
在这里插入图片描述
选择复制conda install pytorch2.0.0 torchvision0.15.0 torchaudio==2.0.0 pytorch-cuda=11.7 -c pytorch -c nvidia指令,在上一步打开的anaconda环境中输入。

安装完成后输入以下指令检查一下是否成功:

import torch
print(torch.cuda.is_available())
  • 1
  • 2

如果结果为True,则说明Pytorch安装成功。如果为False,则说明自己电脑上对应cuda版本和torch、torchvision版本文件不一致。
解决办法:
降低pytorch版本重新下载;
查看torch版本,及其是否与cuda版本是否匹配,若不匹配可进入下载相应文件,使用pip或conda进行安装 CPU版本配置文件GPU版本配置文件
查看cuda是否还存在,确定cuda的版本;

nvcc -V
  • 1

4.ChatGLM2-6B源码下载

源码下载地址 源码下载地址

在这里插入图片描述

源码下载完成后,解压并在ChatGLM2-6B-main文件夹里创建model文件夹,用于存放模型文件

5.ChatGLM2-6B模型下载

推荐第一个模型文件:

huggingface1
清华下载链接

下载完成后,将下载后的模型文件放入到ChatGLM2-6B-main\model文件夹中,
在这里插入图片描述

6.requirements.txt中相关依赖安装

进入到E:\glm2\ChatGLM-6B-main\ChatGLM-6B-main目录(源码下载根目录),执行以下命令进行安装相关包:

pip install -r requirements.txt
  • 1

到此环境配置完毕。


三、ChatGLM2-6B模型运行和本地使用

1.修改web_demo.py代码

将代码中第6-7行的代码,

tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True, device='cuda')
  • 1
  • 2

替换为

tokenizer = AutoTokenizer.from_pretrained("E:\glm2\ChatGLM-6B-main\ChatGLM-6B-main\model", trust_remote_code=True)
model = AutoModel.from_pretrained("E:\glm2\ChatGLM-6B-main\ChatGLM-6B-main\model", trust_remote_code=True).half().quantize(4).cuda()
  • 1
  • 2

其中quantize(4)中的数字表示int4精度加载。int8精度加载量化,需要10G显存;int4精度加载量化,需要6G显存;若读者有实力,14GB以上显存,可以quantize()不量化。
其中E:\glm2\ChatGLM-6B-main\ChatGLM-6B-main\model为电脑模型下载位置,更改为你自己的即可。

2.运行ChatGLM2-6B大模型

在这里插入图片描述
进入anaconda配置好的环境中,在根目录中运行

python web_demo.py
  • 1

接着浏览器会自动打开Web界面,到此成功
在这里插入图片描述

报错提示:
83: GradioDeprecationWarning: The style method is deprecated. Please set these arguments in the constructor instead.
user_input = gr.Textbox(show_label=False, placeholder=“Input…”, lines=10).style(
Running on local URL: http://127.0.0.1:7860
解决办法:
gradio版本过高,在ChatGLM-6B-main文件夹中找到requirements.txt文件,指定gradio的版本重新下载,我的版本是3.42.0

报错提示: 若提示参数多余
在这里插入图片描述
解决办法
可选择删除 for后的past_key_values代码。

四、小结

本文主要记录chatglm2-6b本地部署的过程,方便读者进行复刻部署,部署过程主要需注意版本的问题。目的是为读者提供详细的操作指南,帮助读者能够成功将特定技术或服务整合到其应用程序或系统中,无论是学习还是使用,chatglm2都是一个很好的例子,快行动起来吧!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/1001864
推荐阅读
相关标签
  

闽ICP备14008679号