快速上手
本文将通过一个实际的例子,演示如何 在 OpenBayes 上使用 vLLM 部署大语言模型。我们将部署 DeepSeek-R1-Distill-Qwen-1.5B 模型,这是一个基于 Qwen 的轻量级模型。
模型介绍
DeepSeek-R1-Distill-Qwen-1.5B 是一个轻量级的中英双语对话模型:
- 1.5B 参数量,单卡即可部署
- 最小显存要求:3GB
- 推荐显存配置:4GB 及以上
在模型训练中开发和测试
创建一个新的模型训练
- 选择 RTX 4090 算力
- 选择 vLLM 0.7.2 基础镜像
- 在数据绑定中选择 DeepSeek-R1-Distill-Qwen-1.5B 模型,绑定到
/openbayes/input/input0
准备启动脚本 start.sh
容器启动后,准备如下的 start.sh
脚本。
start.sh
#!/bin/bash
# 获取 GPU 数量
GPU_COUNT=$(nvidia-smi --query-gpu=name --format=csv,noheader | wc -l)
# 设置端口,模型部署默认暴露的端口为 80 而模型训练默认暴露的端口为 8080
PORT=8080
if [ ! -z "$OPENBAYES_SERVING_PRODUCTION" ]; then
PORT=80
fi
# 启动 vLLM 服务
echo "Starting vLLM service..."
vllm serve /openbayes/input/input0 \
--served-model-name DeepSeek-R1-Distill-Qwen-1.5B \
--disable-log-requests \
--trust-remote-code \
--host 0.0.0.0 --port $PORT \
--gpu-memory-utilization 0.98 \
--max-model-len 8192 --enable-prefix-caching \
--tensor-parallel-size $GPU_COUNT
在容器中测试服务
bash start.sh
下面是一个测试模型推理的 curl 请求示例:
curl -X POST http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "DeepSeek-R1-Distill-Qwen-1.5B",
"messages": [
{
"role": "user",
"content": "请用中文解释什么是大语言模型"
}
],
"temperature": 0.7,
"max_tokens": 100
}'
在 Jupyter 中打开一个新的终端(Terminal),粘贴上面的 curl 命令进行测试:
备注
在模型训练中测试时使用的是 8080 端口,但在模型部署中会自动切换到 80 端口。这是因为 OpenBayes 的模型部署服务要求必须使用 80 端口对外提供服务。
创建模型部署
选择算力 - 选择镜像 - 绑定数据
- 选择 RTX 4090 算力
- 选择 vLLM 0.7.2 基础镜像
- 在数据绑定中选择 DeepSeek-R1-Distill-Qwen-1.5B 模型,绑定到
/openbayes/input/input0
- 将刚才容器的工作空间绑定到
/openbayes/home
启动部署
点击「部署」等待模型部署变更为运行中。
点击运行的模型部署版本,可以看到当前部署的详细内容已经日志。
测试部署
在模型部署页面上可以看到 OpenBayes 为模型部署生成的 url 复制 url 使用下面的命令行测试模型是否可用。
curl -X POST http://<模型部署的 url>/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "DeepSeek-R1-Distill-Qwen-1.5B",
"messages": [
{
"role": "user",
"content": "你好,请介绍一下自己"
}
],
"temperature": 0.7,
"max_tokens": 100
}'