百度飞桨的aistudio,部署glm2-6b推理测试

2023-07-13  本文已影响0人  水他

一、环境准备

百度飞桨网址
相比其他可以免费试用的gpu环境,百度飞桨更为大方,提供了最大128GB显存的免费算力,每天免费8点算力卡。(看飞桨后续是否会调整)

创建项目

创建一个个人项目,需要注意如果是提前下载好model,需要在创建项目时挂载数据集。
速度会快很多
挂载飞桨已有glm > 提前下载model > 在飞桨的环境里git lfs clone
模型下载

启动环境

这里我只做部署推理6b模型,预计需要12-13GB显存,选择小一点的就够了。
用的是 V100 16GB,0.5点/小时,一天可以16个小时,足够测试用了。


image.png

确认显卡

nvidia-smi


image.png

二、模型和代码准备

python

conda create -n py310 python=3.10
conda init
conda activate py310
python -V

image.png

model

下载+挂载模型文件(模型实现在变动中,固定模型版本162b620,保证后续操作的兼容性)

下载模型文件(除模型权重lfs大文件)

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

方式一,直接挂载百度飞桨上已有的glm2模型

glm2-6b模型

image.png

cd ~/data/dataxxxx
unzip chatglm2-6b.zip
mv pytorch* ~/work/chatglm2-6b/
mv

方式二,自己下载上传glm2模型

先把模型下载到本地,再上传到自己的百度云盘。
模型下载

image.png

从百度云盘上传数据集到百度飞桨(速度很快)
飞桨挂载数据集

image.png

code

代码commit号877ef10d85c93ddfcfe945fcdc764393a52541b8 (https://github.com/THUDM/ChatGLM2-6B/tree/877ef10d85c93ddfcfe945fcdc764393a52541b8

git clone https://github.com/THUDM/ChatGLM2-6B
cd ChatGLM2-6B
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

备份package (避免每次重新install,可选操作)

mkdir -p ~/work/pip/lib/python310/site-packages
cp -r /home/aistudio/.conda/envs/py310/lib/python3.10/site-packages/* /home/aistudio/work/pip/lib/python310/site-packages/
vi /home/aistudio/.conda/envs/py310/lib/python3.10/site.py

# Enable per user site-packages directory
# set it to False to disable the feature or True to force the feature
ENABLE_USER_SITE = True

# for distutils.commands.install
# These values are initialized by the getuserbase() and getusersitepackages()
# functions, through the main() function when Python starts.
USER_SITE = "/home/aistudio/work/pip/lib/python310/site-packages"
USER_BASE = None

python -m site --user-site

模型推理

cd ~/work/ChatGLM2-6B
vi helloworld_glm2.py

from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("/home/aistudio/chatglm2-6b", trust_remote_code=True, revision="")
model = AutoModel.from_pretrained("/home/aistudio/chatglm2-6b", trust_remote_code=True, revision="").half().cuda()
model = model.eval()
response, history = model.chat(tokenizer, "你好", history=[])
print(response)

python helloworld_glm2.py

上一篇下一篇

猜你喜欢

热点阅读