linux环境部署清华大学大模型最新版 chatglm2-6b 图文教程

 更新时间:2023年07月13日 09:10:46   作者:stay_foolish12  
这篇文章主要介绍了linux环境部署清华大学大模型最新版 chatglm2-6b ,结合实例形式详细分析了Linux环境下chatglm2-6b部署相关操作步骤与注意事项,需要的朋友可以参考下

准备工作:

# 下载项目源代码
git clone https://github.com/THUDM/ChatGLM2-6B
# 切换到项目根目录
cd ChatGLM2-6B
# 安装依赖
pip install -r requirements.txt
# 安装web依赖
pip install gradio

如果安装出现问题,可尝试手动分别安装torch

1 # 1第一步安装虚拟环境并激活环境

conda create -n ChatGLM2 python=3.10.6
conda activate ChatGLM2

2 nvidia-smi查看cuda版本,12.0

在这里插入图片描述

3 安装torch第一种方式

pytorch官网:https://pytorch.org/在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述

经过多次尝试,发现conda装,真的很快,真香。前几次尝试用pip装torch都会出现timeout的错误,这个跟服务器有关系,视情况而定。

在这里插入图片描述

# 安装依赖
pip install -r requirements.txt

在这里插入图片描述

二、准备工作。安装依赖包的同时,也可以先手动下载模型包:

在这里插入图片描述

1、工程文件准备

整个工程需要从两个远程仓库克隆,一个是 github 上的源码,一个是 HuggingFace 上的模型。

对于源码,由于总体积较小,因此可直接从网页下载 zip 包后解压,也可使用 git 命令(电脑需要提前装好 git )克隆至本地文件夹中:

git clone https://github.com/THUDM/ChatGLM2-6B

对于模型,由于存在7个体积较大的 checkpoint 文件,若直接 clone 可能耗时过久或网络连接不够稳定,可以采用大、小文件分别下载的方式。其中大文件可从 清华云 手动下载,小文件主要为模型实现文件,数量不多且体积较小(算上 tokenizer.model 一共11个文件),可采用两种方式下载,一种是在 HuggingFace 页面手动一个一个下载,另一种是利用 GIT_LFS_SKIP_SMUDGE 参数跳过大文件一次性克隆整个工程(电脑需要提前装好 Git LFS)

GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/THUDM/chatglm2-6b

最后再将前面手动下载好的大文件拷入替换,构成完整的模型。

需要注意的坑:

1)该命令在 powershell 中会报错,提示不认识 GIT_LFS_SKIP_SMUDGE 命令,放在 git bash 终端中则可顺利执行;
2)被该命令跳过的“大文件”不仅有 7 个 .bin 文件,还包括 1.02MB 的 tokenizer.model。

模型文件理论上可存放于任意位置,参考官方演示视频将其平行于源码文件夹,即整个工程文件的目录结构如下:

在这里插入图片描述

根据目录结构,修改源码目录下的 web_demo.py 文件,将两处 THUDM/chatglm2-6b 替换为 model :

tokenizer = AutoTokenizer.from_pretrained("model", trust_remote_code=True)
model = AutoModel.from_pretrained("model", trust_remote_code=True).cuda()

在这里插入图片描述

如果想使用命令行与模型交互,则需要修改 cli_demo.py。web_demo2.py 同理 。

三、运行模型

文件夹层面 cd 至web_demo.py文件夹,环境层面激活 chatglm2-6b,然后执行:

python web_demo.py

在这里插入图片描述运行完之后就会弹出该页面:在这里插入图片描述

需要注意的坑:

1)使用 web_demo 时不能开 VPN,否则会弹出 Expecting value: line 1 column 1 (char 0)错误;

2)如使用 web_demo2,则需要按官网提示额外安装 streamlit 和 streamlit-chat,且启动命令为

streamlit run web_demo2.py 。

四、体验

推理速度相比上一代有明显的提升,但性能提升感知不强。期待团队未来推出13B、30B、65B等更大规模的模型。

注:笔者测试期间,第三方库的安装会因为网络原因出现一些问题,此时可以使用国内镜像来解决,例如,笔者在安装时使用的是阿里云镜像

pip install torchvision  -i https://mirrors.aliyun.com/pypi/simple

相关文章

  • python3实现名片管理系统(控制台版)

    python3实现名片管理系统(控制台版)

    这篇文章主要为大家详细介绍了python3实现名片管理系统控制台版,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • pytorch:实现简单的GAN示例(MNIST数据集)

    pytorch:实现简单的GAN示例(MNIST数据集)

    今天小编就为大家分享一篇pytorch:实现简单的GAN示例(MNIST数据集),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python之lxml安装失败的解决

    Python之lxml安装失败的解决

    这篇文章主要介绍了Python之lxml安装失败的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • jupyter notebook远程访问不了的问题解决方法

    jupyter notebook远程访问不了的问题解决方法

    这篇文章主要介绍了jupyter notebook远程访问不了的问题解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Django-celery-beat动态添加周期性任务实现过程解析

    Django-celery-beat动态添加周期性任务实现过程解析

    这篇文章主要介绍了Django-celery-beat动态添加周期性任务实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • python如何为list实现find方法

    python如何为list实现find方法

    这篇文章主要介绍了python如何为list实现find方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 全面理解python命名空间字典

    全面理解python命名空间字典

    本文主要介绍了全面理解python命名空间字典,python的命名空间由字典实现,属性为键,对象为值,通过属性找到对象,下面就来具体了解一下,感兴趣的可以了解一下
    2023-12-12
  • Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)

    Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)

    今天小编就为大家分享一篇Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python中的类属性与实例属性区别详解

    Python中的类属性与实例属性区别详解

    这篇文章主要介绍了Python中的类属性与实例属性区别详解,类属性是在类中定义的属性,它是和这个类所绑定的,这个类中的所有对象都可以访问,实例属性是与类的实例相关联的数据值,是这个实例私有的,需要的朋友可以参考下
    2023-08-08
  • python中利用await关键字如何等待Future对象完成详解

    python中利用await关键字如何等待Future对象完成详解

    为了简化并更好地标识异步IO,从Python 3.5开始引入了新的语法async和await,可以让coroutine的代码更简洁易读。下面这篇文章主要给大家介绍了关于python中利用await关键字如何等待Future对象完成的相关资料,需要的朋友可以参考下。
    2017-09-09

最新评论