ECI 平台推理服务构建指南文档 (v1rc1)
目标
在 ECI 平台上构建一套 AI 推理服务,并且可通过互联网访问 web 服务
准备工作
1. 准备并行账号和绑定超算账
- 参见 注册并行账号
下面步骤中以 wanghui@paratera.com 并行账号 和 NC-N30 超算分区的 pcs 账号演示
2. 安装 scc 命令行工具
- 参见 SCC 命令行
3. 准备本地开发环境 vscode
- 3.1 下载地址: https://code.visualstudio.com/download (opens in a new tab)
- 3.2 安装 vscode
- 3.3 python 开发环境配置,参考:Python环境配置 (opens in a new tab)
4. 准备 AI 推理项目 ChatGLM2-6B 和模型数据
- 4.1 创建
ai
目录
mkdir ai
cd ai
- 4.2 下载 ChatGLM2-6B
$ git clone https://github.com/THUDM/ChatGLM2-6B
$ cd ChatGLM2-6B
- 4.2 下载模型
地址:https://huggingface.co/THUDM/chatglm2-6b/tree/main (opens in a new tab)
- 创建
THUDM
目录
mkdir THUDM
- 下载 chatglm2-6b 仓库 从 Hugging Face Hub 下载模型需要先安装 Git LFS (opens in a new tab),然后运行(模型文件较大,花费时间较长,请耐心等待)
cd THUDM
git clone https://huggingface.co/THUDM/chatglm2-6b
实施流程
1. 创建 volume
1.1 创建 chatglm2-6b-ai volume
$ scc eci volume create chatglm2-6b-ai -s
- 1.2 成功结果
volume/chatglm2-6b-ai created
https://ncn30-pcs-chatglm2-6b-ai:rdspknhwbkbvvb4nmbn8sswpp8zl8pkk@webdav.eci.paracloud.com published
sftp://ncn30-pcs-chatglm2-6b-ai:rdspknhwbkbvvb4nmbn8sswpp8zl8pkk@sftp.eci.paracloud.com:2022 published
⚠️ Please remember your password as it cannot be retrieved again.
2. 创建配置 jupyter 容器
- 2.1 创建 jupyter 容器
$ scc eci container run -r n30.xlarge --name chatglm2-6b-ai \
-v chatglm2-6b-ai:/data -p https:lab \
jupyter/minimal-notebook:lab-4.0.3 \
-- jupyter lab --port \$BAT_PORT_lab --NotebookApp.token chatglm2token --no-browser --allow-root
- 成功返回
container/chatglm2-6b-ai created
https://nc-n30-pcs-chatglm2-6b-ai-lab.eci.paracloud.com -> port/lab published
- 查看 container
$ scc eci container list
Cluster Account Name Image Status
NC-N30 pcs chatglm2-6b-ai jupyter/minimal-notebook:lab-4.0.3 Running
-
2.2 浏览器中访问以下地址: https://nc-n30-pcs-chatglm2-6b-ai-lab.eci.paracloud.com (opens in a new tab)
-
2.3 配置 token(token值是前面创建jupyter容器时设置的
chatglm2token
), password (请自行设置), 并登录 -
2.4 点击
File > New > Termial
打开一个Termial
-
2.5 在打开的
Termial
创建一个项目目录ai
(用于统一存放项目数据,后面sftp配置时需要用到)
cd /data
mkdir ai
3. 配置 vscode sftp
-
3.1 在 vscode 中打开前面本地创建的
ai
项目目录 -
3.2 安装 sftp 扩展插件
- 在 vscode 中快捷键
ctrl+shift+P
打开指令窗口,输入extension:install
,回车,左侧即打开扩展安装的界面 - 选择 publisher 是
Natizyskunk
的这个 SFTP 插件,目前最新版本 v1.16.3, 点击Install
安装即可 - 然后快捷键
ctrl+shift+P
打开指令窗口,输入sftp:config
,回车,就会在当前工作工程的.vscode
文件夹下生成一个sftp.json
文件,我们需要配置的是:host
,username
,password
,remotePath
,ignore
这几个内容即可:
- 在 vscode 中快捷键
-
3.3 配置 sftp.json 如下所示
{ "name": "ai", "host": "sftp.eci.paracloud.com", "protocol": "sftp", "port": 2022, "username": "ncn30-pcs-chatglm2-6b-ai", "password": "tpvgrs99h9gzmphdz259bvhp9wwzgwna", "remotePath": "/ai", "uploadOnSave": false, "useTempFile": false, "openSsh": false, "ignore": [".vscode", ".git", ".DS_Store", "model"] }
4. 同步本地项目及模型数据
- 4.1 在 vscode
EXPLORER
界面空白出,右键选择Sync Local -> Remote
同步本地数据到远程 volume , 在OUTPUT
中可查看实时同步的状态(此处模型数据较大耗时较长,请耐心等待完成) - 4.2 本地项目若有更新修改,需执行
4.1
同步数据
5. 配置推理运行环境
-
5.1 打开一个jupyter 的
Terminal
-
5.2 安装 anaconda
-
5.3 创建虚拟环境并激活 python 环境
- 进入
/data/ai/ChatGLM2-6B
cd /data/ai/ChatGLM2-6B
- 创建
python
环境venv
conda create --name venv python=3.8
- 激活环境
conda activate venv
- 进入
-
5.4 安装 ChatGLM2-6B 项目依赖库
- 进入 ChatGLM2-6B 项目目录
cd /data/ai/ChatGLM2-6B
- 安装依赖
pip install -r requirements.txt
6. 启动推理服务
- 6.1 启动基于 Gradio 的网页版 demo
python web_demo.py
- 6.2 成功返回
Loading checkpoint shards: 100%|█████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:39<00:00, 5.68s/it]
/data/scc-labs/ChatGLM2-6B/web_demo.py:89: GradioDeprecationWarning: The `style` method is deprecated. Please set these arguments in the constructor instead.
user_input = gr.Textbox(show_label=False, placeholder="Input...", lines=10).style(
Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.
7. 配置推理服务 http 服务代理
- 7.1 在 /data/bin 目录下安装 scc 命令,方法参考前面
2. 安装 scc 命令行工具
- 7.2 配置 http 代理
$ scc tunnel http http://127.0.0.1:7860
🎉 You're ready to go live at https://be22fe9f-d140-474c-81f4-30fb068157b5.tunnel.paracloud.com => http://127.0.0.1:7860