ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
场景简介
本场景将提供一台配置了Alibaba Cloud Linux 3操作系统的GPU实例。通过本教程的操作,您可以在一台Alibaba Cloud Linux 3的GPU云服务器上,安装大模型运行环境(包括Anaconda、Pytorch等的),部署大语言模型,使用streamlit运行大模型对话模型网页demo。
背景知识
本场景主要涉及以下云产品和服务:
GPU云服务器
GPU 云服务器(GPU Cloud Computing,GPU)是提供 GPU 算力的弹性计算服务,具有超强的计算能力,服务于深度学习、科学计算、图形可视化、视频处理多种应用场景。阿里云作为亚太第一的云服务提供商,随时为您提供触手可得的算力,有效缓解计算压力,提升您的业务效率,助您提高企业竞争力。
ChatGLB2-6B大模型
由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。截至2023年7月,在C-Eval中,排名靠前。
Pytorch
一个开源的Python机器学习库,基于Torch,底层由C++实现,应用于人工智能领域,如计算机视觉和自然语言处理。它主要由Meta Platforms的人工智能研究团队开发。著名的用途有:特斯拉自动驾驶,Uber最初发起而现属Linux基金会项目的概率编程软件Pyro,Lightning。注:来源 -维基百科。
前提条件
云起实验室将在您的账号下开通本次实操资源,资源按量付费,需要您自行承担本次实操的云资源费用。
重要
本实验预计2个小时产生费用25.5元。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。
进入实操前,请确保阿里云账号满足以下条件:
创建实验资源
在实验页面,勾选我已阅读并同意《阿里云云起实践平台服务协议》和我已授权阿里云云起实践平台创建、读取及释放实操相关资源后,单击开始实操。
创建资源需要5分钟左右的时间,请您耐心等待。
在云产品资源列表,您可以查看本场景涉及的云产品资源信息。

安全设置
资源创建完成后,为了保护您阿里云主账号上资源的安全,请您重置云服务器ECS的登录密码、设置安全组端口和重置云数据库RDS的数据库密码。
重置云服务器ECS的登录密码。
在云产品资源列表的ECS云服务器区域,单击管理。

在实例详情页签的基本信息区域,单击重置密码。

在重置实例密码对话框中,设置新密码和确认密码,重置密码的方式选择在线重置密码,配置SSH密码登录策略选择开启,单击确认修改。

返回如下结果,表示ECS实例root用户的登录密码重置成功。

设置安全组端口。
在云产品资源列表的安全组区域,单击管理。

在访问规则区域的入方向中,添加SSH(22)、HTTP(80)、HTTPS(443)和8501/8501端口。


CUDA、Driver、CUDNN安装校验
在云产品资源列表的ECS云服务器区域,单击远程连接。

在登录实例对话框中,输入用户自定义密码,单击确定。

等待10分钟左右,CUDA、Driver、CUDNN安装完成。

单击右上角
图标,新建终端窗口。

执行如下命令,校验NVIDIA Driver安装。

执行如下命令,校验CUDA安装。

执行如下命令,校验cuDNN安装。
ls /usr/local/cuda/lib64/ | grep cudnn

安装Anaconda、Pytorch
执行如下命令,更新操作系统。
下载并安装anaconda。
在命令行中,输入以下命令,单击Enter键,开始下载anaconda安装包。
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh
系统下载完成后,输入下列命令,单击Enter键,开始安装。
bash Anaconda3-2023.03-1-Linux-x86_64.sh
遇到如下界面后,单击Enter键,继续安装过程。

出现下面的界面后,继续单击Enter键。

直到出现提示Do you accept the license terms? [yes|no]
,输入yes,单击Enter键继续。

出现如下提示,单击Enter键继续,等待anaconda完成安装,大约需要2分钟。

等待出现如下提示后,输入yes,单击Enter键, 完成安装。

点击页面右上角的➕号,打开一个新的终端。
重要
接下来所有的操作都在新的终端中完成,命令行最左边,出现(base)字样,代表anaconda已启动。
在实际开发过程中,通常需要通过conda安装虚拟环境,在虚拟环境中继续后续操作。本实验中,略去此步骤。

安装Pytorch。
输入如下命令,开始安装Pytorch。
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
出现提示Proceed ([y]/n)?后,输入y,然后单击Enter键继续安装过程。

安装大致需要10-20分钟。等到出现下列界面时,安装就完成了。

输入如下命令,更新typing_extensions
库,出现提示Proceed ([y]/n)? 后,输入y,然后单击Enter继续安装。
conda update typing_extensions



Pytorch安装成功后,执行如下命令安装deprecated并更新typing_extensions库。
pip install deprecated
pip install --upgrade typing_extensions

可以在命令行输入python
,单击Enter键,进入Python界面,输入import torch
,如果出现如下界面,则代表Pytorch安装成功。

执行如下命令,退出Python。

准备模型文件、代码仓库
模型文件通常存放在 hugging face、魔搭社区等处。代码仓库通常存放在github。由于模型文件较大,本实验中,已将模型文件和代码仓库提前下载至阿里云OSS,供实验所用,请执行下列步骤的1.b、1.c的三步下载模型文件和代码仓库。如之后在云上GPU上需要从hugging face上下载该模型文件,需要先执行下列步骤1.a的部分,安装git-lfs,以支持下载模型文件这样的大型文件。
首先安装git lfs。
输入如下命令,以便可下载模型文件。
sudo yum install git-lfs -y
输入如下命令,安装unzip解压包。
运行如下代码从hugging face下载模型文件。模型文件较大,超过12G。需要等待一段时间。
说明
若所用实例不在杭州地域,可通过wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/chatglm2-6b.zip
下载模型文件。
wget https://developer-labfileapp.oss-cn-hangzhou.aliyuncs.com/ECS/chatglm2-6b.zip
输入以下命令,下载ChatGLM2-6B代码仓库。
wget https://developer-labfileapp.oss-cn-hangzhou.aliyuncs.com/ECS/ChatGLM2-6B.zip
修改web_demo2.py文件。
输入如下命令,查看模型文件与代码仓库。其中,chatglm2-6b为模型文件,ChatGLM2-6B为代码仓库。

输入如下命令,将模型文件移动至代码仓库目录下,以方便调用并进入代码仓库。
mv chatglm2-6b ./ChatGLM2-6B
cd ChatGLM2-6B
输入如下命令,安装依赖文件。
说明
安装后,可能出现报错信息,可忽略,对本实验没有影响。
pip install -r requirements.txt

修改运行python文件。输入如下命令,进入web_demo2.py文件。
输入i
进入编辑模式。做如下修改,将tokenizer和model两个变量内部的文件路径。另外,可以对st.title内的参数做个性化修改,比如修改成我的ChatGLM2-6B
。完成编辑后,按Esc
键,然后输入:wq
后点击回车,保存并退出web_demo2.py。

运行ChatGLM2-6B对话网页
输入如下命令,安装streamlit。
pip install streamlit streamlit-chat
安装完成后,输入如下命令,运行网页版demo。
streamlit run web_demo2.py
复制External URL中的网址,新打开一个浏览器,在其中输入上述地址。

等待大约2-3分钟后,模型开始运行。出现如下界面。可以开始输入提示词,与模型对话。可以看到,模型的标题变成了定制化的标题:我的ChatGLM2-6B。
