forked from EngineX-Cambricon/enginex-mlu370-vllm
feature: add
This commit is contained in:
50
README.md
50
README.md
@@ -4,7 +4,46 @@
|
||||
该模型测试框架在寒武纪mlu370 (X8/X4)加速卡上,基于vllm 推理引擎,适配了 Qwen1.5-1.8B-Chat 模型。
|
||||
|
||||
* Qwen1.5-1.8B-Chat 是通义千问系列中一款约18亿参数、轻量级的中英文对话大模型,专为高效推理和多场景聊天交互设计。
|
||||
* Llama-2-7b-chat-hf:Meta 发布的 LLaMA 2 系列中 70 亿参数的对话优化版开源大模型,适合多轮聊天与通用任务。
|
||||
* ChatGLM3-6B:智谱 AI 推出的第 3 代 ChatGLM 系列中 60 亿参数的中英双语对话大模型,支持推理、代码和多任务能力。
|
||||
|
||||
## Quick Start
|
||||
1. 首先从modelscope上下载文本生成大模型,如`Qwen1.5-1.8B-Chat`
|
||||
```bash
|
||||
modelscope download --model Qwen/Qwen1.5-1.8B-Chat --local_dir /mnt/contest_ceph/wenyunqing/models/Qwen1.5-1.8B-Chat
|
||||
```
|
||||
2. 拉取vllm server 镜像.
|
||||
```
|
||||
docker pull harbor.4pd.io/mic-llm-x/combricon_vllm_mlu_wyq:1.0.0
|
||||
```
|
||||
3. 启动docker
|
||||
```bash
|
||||
docker run -it --rm \
|
||||
-p 100086:8000 \
|
||||
-e MLU_VISIBLE_DEVICES=6 \
|
||||
--name test_wyq1 \
|
||||
-v /mnt/contest_ceph/wenyunqing/models/Qwen1.5-1.8B-Chat:/model:rw \
|
||||
--device=/dev/cambricon_dev6:/dev/cambricon_dev6 \
|
||||
--device=/dev/cambricon_ctl:/dev/cambricon_ctl \
|
||||
--device=/dev/cambricon_ipcm6:/dev/cambricon_ipcm6 \
|
||||
--entrypoint=/bin/bash \
|
||||
--privileged harbor.4pd.io/mic-llm-x/combricon_vllm_mlu_wyq:1.0.0
|
||||
```
|
||||
注意需要在本地使用寒武纪 mlu370 芯片
|
||||
4. 测试服务
|
||||
```bash
|
||||
curl http://localhost:80/v1/chat/completions \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"model": "llm",
|
||||
"messages": [
|
||||
{"role": "system", "content": "You are a helpful assistant."},
|
||||
{"role": "user", "content": "你知道黄健翔著名的”伟大的意大利左后卫“的事件吗"}
|
||||
],
|
||||
"max_tokens": 200,
|
||||
"temperature": 0.7
|
||||
}'
|
||||
```
|
||||
|
||||
## 模型测试服务原理
|
||||
对于大模型文本生成,目前业界还没有一个完全统一的大模型文本生成 API 标准,但正在逐渐出现一些事实上的“通用接口规范”:
|
||||
@@ -110,10 +149,13 @@ curl http://localhost:80/v1/chat/completions \
|
||||
|
||||
测试框架集成了现成的可用的镜像`harbor.4pd.io/mic-llm-x/combricon_vllm_mlu_wyq:1.0.0`(`launch_service `作为入口),可以用于本地端(如有GPU卡)测试。
|
||||
|
||||
作为测试对比,我们也提供a100相对应的镜像 `harbor.4pd.io/sagegpt-aio/pk_platform/vllm-installed_wyq:1.0.0`
|
||||
## 寒武纪mlu370-X8上文本生成模型运行测试结果
|
||||
在mlu370-X8上对部分视觉理解多模态模型进行适配,测试方式为在 Nvidia A100 和 mlu370-X8 加速卡上对10个图片相关问题回答,获取运行时间
|
||||
作为测试对比,我们也提供a100相对应的镜像 `harbor.4pd.io/sagegpt-aio/pk_platform/vllm-installed_wyq:1.0.1`
|
||||
## 寒武纪mlu370-X4上文本生成模型运行测试结果
|
||||
在mlu370-X8上对部分视觉理解多模态模型进行适配,测试方式为在 Nvidia A100 和 mlu370-X4 加速卡上对10个图片相关问题回答,获取运行时间
|
||||
|
||||
| 模型名称 | 模型类型 | 适配状态 | mlu370-X8首字延迟(秒) | mlu370-X8输入处理速度(字每秒) | mlu370-X8输出速度(字每秒) | mlu370-X8输出质量 | Nvidia A100字延迟(秒) | Nvidia A100输入处理速度(字每秒) | Nvidia A100输出速度(字每秒) | Nvidia A100输出质量 |
|
||||
| 模型名称 | 模型类型 | 适配状态 | mlu370-X4首字延迟(秒) | mlu370-X4输入处理速度(字每秒) | mlu370-X4输出速度(字每秒) | mlu370-X4输出质量 | Nvidia A100字延迟(秒) | Nvidia A100输入处理速度(字每秒) | Nvidia A100输出速度(字每秒) | Nvidia A100输出质量 |
|
||||
| ------------------- | ------------------- | -------------------| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
|
||||
| Qwen1.5-1.8B-Chat | Qwen 系列 | 成功 |0.124 | 10086.6 | 89.6 | 53.8 | 0.069 | 19601.3 | 154.3 | 61.2|
|
||||
| Llama-2-7b-chat-hf | Llama 系列 | 成功 |0.262 | 6147.5 | 62.2 | 75.0 | 0.083 | 11776.5 | 146.7 | 31.2|
|
||||
| chatglm3-6b | chatglm 系列 | 成功 |0.244 | 4974.0 | 34.1 | 80.0 | 0.053 | 15788.3 | 110.6 | 80.0|
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
FROM harbor.4pd.io/mic-llm-x/combricon_vllm_mlu:v1.0_0510
|
||||
|
||||
WORKDIR /workspace
|
||||
|
||||
COPY launch_service /workspace
|
||||
|
||||
|
||||
CMD ["bash", "launch_service"]
|
||||
8
docker-images/a100.dockerfile
Normal file
8
docker-images/a100.dockerfile
Normal file
@@ -0,0 +1,8 @@
|
||||
FROM harbor.4pd.io/sagegpt-aio/pk_platform/vllm-installed:v0.10.0
|
||||
|
||||
WORKDIR /workspace
|
||||
|
||||
COPY a100_launch_service /workspace
|
||||
COPY template.jinja /workspace
|
||||
|
||||
ENTRYPOINT ["bash","/workspace/a100_launch_service"]
|
||||
5
docker-images/launch_service → docker-images/a100_launch_service
Executable file → Normal file
5
docker-images/launch_service → docker-images/a100_launch_service
Executable file → Normal file
@@ -7,7 +7,7 @@ export
|
||||
date
|
||||
|
||||
DEFAULT_HOST="0.0.0.0"
|
||||
DEFAULT_PORT="8000"
|
||||
DEFAULT_PORT="80"
|
||||
DEFAULT_SERVED_MODEL_NAME="llm"
|
||||
DEFAULT_MODEL_PATH="/model"
|
||||
DEFAULT_MAX_MODEL_LEN="8192"
|
||||
@@ -47,7 +47,7 @@ CMD_ARGS+=(--model "$MODEL_PATH_VAL")
|
||||
CMD_ARGS+=(--max-model-len "$MAX_MODEL_LEN_VAL")
|
||||
CMD_ARGS+=(--tensor-parallel-size "$TENSOR_PARALLEL_SIZE_VAL")
|
||||
CMD_ARGS+=(--max-num-seqs "$MAX_NUM_SEQS_VAL")
|
||||
CMD_ARGS+=(--trust-remote-code --dtype float16 --block-size 8192)
|
||||
CMD_ARGS+=(--trust-remote-code --dtype float16 --chat-template /workspace/template.jinja)
|
||||
echo "--------------------------------------------------"
|
||||
echo "Starting VLLM OpenAI API Server..."
|
||||
echo "Using effective arguments:"
|
||||
@@ -66,4 +66,3 @@ echo "python3 -m vllm.entrypoints.openai.api_server ${CMD_ARGS[*]}"
|
||||
echo "--------------------------------------------------"
|
||||
|
||||
python3 -m vllm.entrypoints.openai.api_server "${CMD_ARGS[@]}"
|
||||
|
||||
7
docker-images/mlu370.dockerfile
Normal file
7
docker-images/mlu370.dockerfile
Normal file
@@ -0,0 +1,7 @@
|
||||
FROM harbor.4pd.io/mic-llm-x/combricon_vllm_mlu:v1.0_0510
|
||||
|
||||
WORKDIR /workspace
|
||||
|
||||
COPY mlu370_launch_service /workspace
|
||||
|
||||
ENTRYPOINT ["bash","/workspace/mlu370_launch_service"]
|
||||
Reference in New Issue
Block a user