✈️✈️✈️AIGC,点我出发
入"试"路引
随着AI/ML技术的快速发展,各行各业在实际的应用场景中对计算资源的需求量越来越大,各大云厂商也是积极部署其IaaS资源,其中GPU是加速计算中最为关键需求之一。
笔者将从新手体验性的使用到进阶体验,带领大家快速使用阿里云GPU云服务器,体验官方提供的八大场景。在后续的进阶体验中,教大家构建自己的大语言模型,如ChatGLM-6B。
近一年来,以 StableDiffusion 为首的AI绘画模型自推出后,AI模型快速迭代。随后市面上又出现了一大批让人惊掉下巴的新突破。当前来看,普通玩家想体验AI绘画模型,无非下面几种方式:
方式 |
优势 |
劣势 |
本地部署(个人PC) |
成本低 |
出图效率可能相对低 |
使用第三方付费在线平台(含Serverless部署) |
效率较高 |
成本高 |
使用GPU云服务器部署 |
效率最高,且成本相对较低 |
部署有一定门槛 |
由上述表格可以看出,虽然现在各大厂商都有推出【Serverless部署StableDiffusion】,上手很简单,但是,成本算下来也不低了,且客制化需求不太容易满足,所以使用GPU云服务器来部署AI绘画模型算是一种性价比较高的方式,但对于用户入手也许并不容易,有入门门槛,虽然网上有很多教程,但是五花八门的,不一定都适用,官方很贴心的想到了这点,给大家早就准备好了实验”秘籍“,下面就跟随我一起操作下吧
视频教程
小试牛刀
八大秘籍,实验不抓瞎
💡官方很贴心的为所有使用GPU的新人准备了【八大秘籍】,让新人也能轻松探索AIGC
“兵器”购置
"练家子"哪能没有"神器",根据官方建议,建议了两款GPU服务器机型,在这次实验中我们选用配置较低的一款 "8核32G + 1张V100 16G显存(gn6v-c8g1.2xlarge)",选择该规格的GPU服务器是因为成本足够低,足以支撑我们本次实验。同时,官方在2023年9月期间,新人购买GPU实例也是有优惠价,有需要的朋友可以,直达活动页面看看:开启AIGC之旅
点击直接购买:🛒gn6v-c8g1.2xlarge
额外注意
需要使用指定的 云市场镜像,名称为 ai-inference-solution
修炼秘籍
本次实验是用官方八大秘籍之一的 《基于AIACC加速器快速实现Stable Diffusion生成特定物体图片》
直达链接✈️✈️✈️:基于AIACC加速器快速实现AIGC绘画
配置模型
# 设置nginx # 使用示例密码 htpasswd -bc /etc/nginx/password admin 'ECS@test1234' systemctl restart nginx systemctl enable nginx --now
开始文本生成图片
启动WebUI服务
cd ~/stable-diffusion-webui/ nohup ./run_taiyi.sh &
开启AI绘画并测试AiaccTorch加速效果【默认已启用AiaccTorch】
- 浏览器打开WebUI页面
- AI绘画
在对话框中输入关键字 埃菲尔铁塔,月球,科幻,3D,赛博朋克
更换模型
左上角切换模型 Taiyi-Stable-Diffusion-1B-Anime-Chinese-v0.1
官方示例:
- 提示词示例:
1个女孩,绿眼,棒球帽,金色头发,闭嘴,帽子,看向阅图者,短发,简单背景,单人,上半身,T恤
- 反向提示词示例:
水彩,漫画,扫描件,简朴的画作,动画截图,3D,像素风,原画,草图,手绘,铅笔
插件测试
LoRA插件
在提示词中添加参数 ,启用LoRA
Controlnet插件(可选实验)
本次用的ecs.gn6v-c8g1.2xlarge 使用的是V100的卡, 镜像市场上的镜像有点老 ,如果使用V100的卡的实例来运行就会报错,使用A10的就可以正常运行
单击Controlnet右侧的图标,选中启用/Enable,Control Type选择Canny,在单张图像/Single Image区域中,上传输入的图片(如Lena图)。
性能观察
什么?没钱练"武"?
如果您没有预算,那么也没问题,阿里云还是贴心的为大家准备好了 【云起实验室】为大家预置了一个免费的实验环境,足以支撑大家完成✈️✈️✈️部署Stable Diffusion玩转AI绘画(GPU云服务器)
小小建议
- 可以参考像SAE 2.0那样,在教程中加入视频,这样对于图文感知力并不强的学习者而言,是一个非常友好的教学方式。
向前一小步,学会一大"部"
首先我们来看看神经网络和大语言模型的发展,自1943年,最早就提出了神经网络的概念,历经多年的发展,再加上算力的大幅提升,为后续的大语言模型推出奠定了坚实的基础。
从2018年至今,GPT-1到现如今的GPT-4等等众多大语言模型。直至今日,各大厂商纷纷推出了自己的大语言模型,例如阿里云有义通千问,百度有 文言一心,腾讯有“混元”(正式发布于2023.09.07)等,个人感觉在市面上用的多的还是GPT3.5,但是因为各种各样的限制,导致用户使用ChatGPT没有那么方便,那么阿里云在昨天(2023.09.13)宣布阿里云通义千问向全社会开放!,给用户多了一个选择,实际使用效果也很棒,大家都可以去尝试下
直达✈️ 义通千问:https://qianwen.aliyun.com/
ChatGLM-6B上云部署
ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答
ChatGLM-6B项目地址:https://github.com/THUDM/ChatGLM-6B
为什么选择ChatGLM-6B来进行部署?
- 硬件环境要求相对低,本地部署仅需6GB显存
- 部署简单
- 专为中文优化
硬件需求
量化等级 |
最低 GPU 显存(推理) |
最低 GPU 显存(高效参数微调) |
FP16(无量化) |
13 GB |
14 GB |
INT8 |
8 GB |
9 GB |
INT4 |
6 GB |
7 GB |
安装cuda
cuda下载页面:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda-repo-ubuntu2204-11-7-local_11.7.0-515.43.04-1_amd64.deb sudo dpkg -i cuda-repo-ubuntu2204-11-7-local_11.7.0-515.43.04-1_amd64.deb sudo cp /var/cuda-repo-ubuntu2204-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/ sudo apt-get update sudo apt-get -y install cuda echo "export PATH=/usr/local/cuda-11.7/bin/:\$PATH" >> /etc/profile echo "export DL_LIBRARY_PATH=/usr/local/cuda-11.7/lib64:\$DL_LIBRARY_PATH" >> /etc/profile source /etc/profile nvidia-smi nvcc -V
安装cudnn
下载对应cuda的版本(8.6):
建议下载到本地后,上传到OSS存储桶,然后在服务器上使用ossutil工具进行cp到云服务器上,如果本地直接传输到服务器速度10MB/s以上也可以
ossutil使用(可选)
# 安装ossutil sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash # 配置config ossutil config ## 杭州endpoint: https://oss-cn-hangzhou.aliyuncs.com
tar -xf cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz cp cudnn-linux-x86_64-8.6.0.163_cuda11-archive/include/cudnn*.h /usr/local/cuda-11.7/include cp -P cudnn-linux-x86_64-8.6.0.163_cuda11-archive/lib/libcudnn* /usr/local/cuda-11.7/lib64/ chmod a+r /usr/local/cuda-11.7/include/cudnn*.h /usr/local/cuda-11.7/lib64/libcudnn* # 验证 cat /usr/local/cuda-11.7/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
安装torch
两种方式,任选其一
# conda conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia # Wheel pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117
验证torch
import torch print(torch.__version__) print(torch.cuda.is_available())
速通玩法(可选)
我已经将后续实验的仓库克隆到了gitee,包括model,只需要运行run.py脚本即可使用ChatGLM-6B
如果您想手动体验整个操作流程,可以继续后续的步骤-->克隆仓库,配置模型,运行ChatGLM-6B几个模块
非常抱歉,由于Gitee限制上传100M以上的大文件,所以模型文件还得各位自己下载了,配置文件以及run.py都预置好了
git clone https://gitee.com/unicornstar/aliyun-gpu-chat-glm-6-b.git cd AliyunGPU-ChatGLM-6B pip install -r requirements.txt python3 run.py
克隆仓库
apt install git git clone https://github.com/THUDM/ChatGLM-6B.git cd ChatGLM-6B pip install -r requirements.txt
配置模型
下载模型文件
wget -P 'ChatGLM-6B/model' --no-check-certificate --content-disposition 'https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/files/?p=%2Fpytorch_model-00001-of-00008.bin&dl=1' wget -P 'ChatGLM-6B/model' --no-check-certificate --content-disposition 'https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/files/?p=%2Fpytorch_model-00002-of-00008.bin&dl=1' wget -P 'ChatGLM-6B/model' --no-check-certificate --content-disposition 'https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/files/?p=%2Fpytorch_model-00003-of-00008.bin&dl=1' wget -P 'ChatGLM-6B/model' --no-check-certificate --content-disposition 'https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/files/?p=%2Fpytorch_model-00004-of-00008.bin&dl=1' wget -P 'ChatGLM-6B/model' --no-check-certificate --content-disposition 'https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/files/?p=%2Fpytorch_model-00005-of-00008.bin&dl=1' wget -P 'ChatGLM-6B/model' --no-check-certificate --content-disposition 'https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/files/?p=%2Fpytorch_model-00006-of-00008.bin&dl=1' wget -P 'ChatGLM-6B/model' --no-check-certificate --content-disposition 'https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/files/?p=%2Fpytorch_model-00007-of-00008.bin&dl=1' wget -P 'ChatGLM-6B/model' --no-check-certificate --content-disposition 'https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/files/?p=%2Fpytorch_model-00008-of-00008.bin&dl=1'
下载模型配置文件
https://huggingface.co/THUDM/chatglm-6b/tree/main
先将下面的文件下载到本地,再上传到服务器的 ChatGLM-6B/model 目录中
运行ChatGLM-6B
给大家准备了一个脚本,用python运行即可
import fire from transformers import AutoTokenizer, AutoModel MODEL_PATH = 'model' tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH, trust_remote_code=True) model = AutoModel.from_pretrained("/root/ChatGLM-6B/model", trust_remote_code=True).half().cuda() model = model.eval() def infer(): while True: request = input("你好,我是ChatGLM-6B >>> ") history = [] while not request: print('Prompt should not be empty!') request = input("Model prompt >>> ") response, _history = model.chat(tokenizer, request, history=history) history = _history print('\033[1;31m{}\033[0m'.format(request) + '\033[1;33m{}\033[0m'.format(response)) if __name__ == '__main__': fire.Fire(infer)
性能观察
总结一下
- 快速上手资源多,阿里云官方很贴心的考虑到了新手入门的问题,也准备了很多“武功秘籍”给到大家,现在关于AIGC实践的有10个实验,可以直接在📚官网文档找到
- 价格有优势,多种可选的计费方式(包年包月/按需/抢占),尤其要说一点的就是抢占式,笔者本人因为之前训练DRFC项目的模型的时候使用亚马逊云科技的GPU服务器,也是使用抢占式模式,结果总是资源不足,而反观阿里这边,资源很充足,在本篇文章撰写期间,没有出现过因为资源竞价的原因而导致服务器停止的情况
- 售后给力,之前就一直给阿里的同学提意见,就是售后一定要抓起来,好的服务离不开好的售后,这句话是100%没有问题的,在本篇文章中有遇到技术问题,阿里的同学也是很积极的一起拉群讨论,这样的售后足以让客户满意!
- 资源丰富,大家都知道A100显卡资源其实很紧张,笔者发现在阿里云上居然有提供NVIDIA A100的机型,这点的确要给阿里一个大赞,对于有A100需求的企业而言,市面上又无法购买,那么选择阿里云是错不了的,毕竟阿里云的口号就是:为了无法计算的价值
- 云起实验室,没钱也能学,官方也贴心的为大家准备了有GPU资源的实验室,足以支撑大家完成一些实验
- 优惠力度大,新人上手没有经济负担,最大1折玩GPU服务器。
- 服务器压力,在两个场景中大家可以在结尾的【性能观察】模块看到的是,服务器的整体负载并不大,对于SD场景实验而言,GPU的压力就更小了,V100 16G内存完全能够胜任。再看ChatGLM-6B,GPU压力稍大,毕竟不是用的int-4来进行实验,而服务器的CPU和内存起伏还是很小,整体运行平稳流畅
小小建议
- 正如新手体验给到的建议一样,可以考虑在AIGC的快速上手实验中都给添加一个视频教程
- 文档可以更加细化一下,例如某些机型可能会出现的问题,问题排查模块等等
闲聊一下
最近有看到一篇文章,题为 《大模型救了阿里云》,可以看出阿里云在盈利后,全球又掀起了GenAI热潮,大模型所需要的AI云服务资源又是非常大的需求,阿里云作为国内基础设施部署最多的云厂商,自然挑起重担,且阿里云将AI与自家云服务产品结合,不断将智能化的服务推送给用户,在GenAI热潮中,阿里云作为中国首个开源自研大模型的科技大厂,阿里云也推出了自家的大模型服务,同时也积极贡献出开源模型,也有自己的大模型社区,可谓是服务生态两手抓。2023年9月13日,阿里云义通千问面向全社会开放,向社会展现出了自己的信心!
在这里也衷心希望阿里云能够推出更好的服务,回馈用户,回馈社会!