通过在ECS实例(非GPU实例)上绑定一个EAIS实例,即可生成一款新规格的GPU实例,该方式相比直接购买GPU实例,可以实现GPU资源的弹性使用(例如您可以根据实际需要绑定EAIS实例,即可灵活为ECS实例提供GPU资源),并为您降低部署成本和使用成本。本文介绍如何将EAIS实例绑定到ECS实例上,然后通过安装EAIS软件包的方式手动搭建ChatGLM-6B Web服务和进行模型微调。
背景信息
ChatGLM-6B是一个对话语言模型,您可以使用EAIS实例来部署ChatGLM-6B,也可以直接在GPU实例上部署。在ECS实例上绑定EAIS实例来部署ChatGLM-6B的方式,相比直接购买GPU实例部署,可以从如下方面节省成本。更多EAIS实例优势,请参见低成本。
更多ChatGLM-6B信息,请参见ChatGLM-6B。
更多GPU实例信息,请参见什么是GPU云服务器。
节省部署成本:
在您使用ECS实例(非GPU实例)完成环境搭建之前,您无需创建EAIS实例,此时,仅有ECS实例(非GPU实例)在计费。如果您直接购买GPU实例然后在GPU实例上部署环境,将花费更多的成本用于部署环境。
节省使用成本:
GPU资源灵活挂载:当您部署好ChatGLM-6B后,如果您暂时不需要执行ChatGLM-6B任务,您可以前往EAIS控制台解绑并释放EAIS实例。然后在您需要执行任务时,再重新创建并绑定EAIS实例,此时,您在ECS实例上部署的环境没有任何影响。因此,您只需要长期拥有一台相比GPU实例更便宜的ECS实例,然后在需要使用GPU时挂载一台EAIS实例,该方式可以节省更多成本。
说明使用EAIS控制台和调用CreateEaisEi创建的EAIS实例,还可以通过停止或启动EAIS实例来灵活地为ECS实例提供GPU能力。只有启动EAIS实例时才会计费,停止EAIS实例即可结束计费,因此,还可以节省更多成本。
单价便宜:对比计费单价,使用EAIS实例比相同算力的GPU实例更加便宜。
计费说明
在部署和使用ChatGLM-6B的过程中,涉及的计费内容如下:
环境说明
本教程将以如下EAIS实例与ECS实例为例,为您介绍使用EAIS实例部署ChatGLM-6B。
ECS实例:
实例规格:ecs.g7.xlarge(4 vCPU、16 GiB内存)
操作系统:Ubuntu 20.04
系统盘容量:100 GiB
EAIS实例规格:eais.ei-a6.2xlarge
ECS实例和EAIS实例的地域和可用区:华北2(北京) 可用区I
说明ECS实例与EAIS实例处于同一个可用区时,可以提高推理性能。您可以在EAIS实例规格支持的地域和可用区下创建ECS实例。EAIS实例规格支持的地域和可用区信息,请参见实例规格限制。
步骤一:创建ECS实例
步骤二:在ECS实例上部署ChatGLM-6B环境
远程连接ECS实例。
具体操作,请参见在Linux或macOS环境中使用用户名密码验证。
执行如下命令,安装CUDA 11.8.0。
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run sh cuda_11.8.0_520.61.05_linux.run --silent --toolkit
安装eais-tool软件包,然后查看EAIS实例的相关信息。
具体操作,请参见eais-tool。
安装eais-cuda软件包。
具体操作,请参见eais-cuda。
执行如下命令,下载ChatGLM-6B模型。
ChatGLM-6B模型总大小约25 GB,下载时间大概为15~30分钟,请您耐心等待。
说明由于ChatGLM-6B模型较大,如果在运行ChatGLM程序时,由ChatGLM程序自动下载模型的等待时间会较长,因此,推荐使用该命令提前下载好模型。
apt-get update apt-get install -y git git-lfs git clone https://huggingface.co/THUDM/chatglm-6b
执行如下命令,下载ChatGLM-6B源码并安装ChatGLM-6B运行环境。
git clone https://github.com/THUDM/chatglm-6b cd ChatGLM-6B pip3 install -r requirements.txt
步骤三:创建EAIS实例并绑定至ECS实例
创建EAIS实例。
具体操作,请参见创建EAIS实例。
创建EAIS实例时,您需要注意如下配置项,未提及的配置项您根据实际情况设置即可。
配置项
配置示例
地域
华北2(北京)
实例规格
eais.ei-a6.2xlarge
将EAIS实例绑定至步骤一:创建ECS实例创建的ECS实例。
具体操作,请参见绑定ECS实例。
步骤四:启动EAIS实例
仅使用EAIS控制台和调用CreateEaisEi创建的EAIS实例需要执行本操作。
绑定EAIS实例至ECS实例后,您必须要启动EAIS实例才能使用EAIS提供的GPU能力,具体操作,请参见启动EAIS实例。
步骤五:使用ChatGLM
EAIS支持使用ChatGLM来搭建Web服务和对您的模型进行微调(即finetune),您可以根据您的实际业务需求来使用ChatGLM。
搭建ChatGLM-6B Web服务
如果您需要使用ChatGLM来搭建Web服务,您可以参考如下步骤进行操作。
远程连接ECS实例。
具体操作,请参见在Linux或macOS环境中使用用户名密码验证。
找到步骤二:在ECS实例上部署ChatGLM-6B环境中下载的ChatGLM-6B源码中的web_demo.py脚本,然后修改脚本代码。
将脚本中的
THUDM/chatglm-6b
替换为本地chatglm-6b
模型文件夹的路径,本文以/root/chatglm-6b
为例。待替换脚本示例如下:
将脚本中的
share=False
修改为share=True
。待修改代码示例如下:
执行如下命令,启动ChatGLM-6B Web服务。
python3 web_demo.py
如果出现如下回显信息,则表示配置正确,成功启动ChatGLM-6B Web服务。此时,您需要记录下
public URL
地址。在您的本地机器上使用浏览器访问
public URL
地址,检查ChatGLM-6B Web服务是否搭建成功。以
public URL
地址是https://1d9b1eb4025cc2fc2c.gradio.live
为例,出现如下界面,表示成功访问public URL
地址,您已成功搭建了ChatGLM-6B Web服务。您可以体验该服务,具体操作,请参见网页版Demo。
使用ChatGLM-6B进行微调
您可以使用ChatGLM来对您的模型进行微调(即finetune),具体操作,请参见ChatGLM-6B。针对本教程,您需要注意如下操作:
更多微调信息,请参见ptuning。
在进行微调前,您需要找到步骤二:在ECS实例上部署ChatGLM-6B环境中下载的ChatGLM-6B源码中的train.sh脚本(该脚本位于ptuning
目录下),然后将train.sh脚本中的THUDM/chatglm-6b
替换为您本地的chatglm-6b
模型文件夹的路径,例如/root/chatglm-6b
。待替换脚本示例如下:
(可选)步骤六:停止EAIS实例
仅使用EAIS控制台和调用CreateEaisEi创建的EAIS实例支持执行本操作。
当您暂时不需要EAIS实例提供的GPU能力时,可以停止EAIS实例,从而避免不必要的计费。具体操作,请参见停止EAIS实例。
(可选)步骤七:解绑并释放EAIS实例
为满足您业务的灵活性,您可以根据需要解除ECS实例与已绑定的EAIS实例之间的关联,然后再释放EAIS实例,从而实现GPU资源的弹性使用。
相关文档
您也可以通过EAIS提供的镜像部署ChatGLM-6B,请参见(推荐)使用EAIS提供的镜像快速部署ChatGLM-6B。
如果您需要通过EAIS实例部署ChatGLM2-6B,请参见使用EAIS实例部署ChatGLM2-6B。
如果您需要通过EAIS实例部署Stable-Diffusion,请参见使用EAIS实例部署Stable-Diffusion。