Prechádzať zdrojové kódy

build(zhch): 添加 vLLM 模型部署脚本

- 新增 launch_model_vllm_1gpu.sh 脚本,用于启动 vLLM 模型服务器
- 脚本配置了 GPU 内存利用率、模型长度、批处理令牌数等参数
- 支持多模态处理,限制每个提示最多包含 5 张图像
- 启用对远程代码的信任,设置日志级别和张量并行大小
- 配置模型路径和名称,监听所有网络接口的 8101 端口
zhch158_admin 3 mesiacov pred
rodič
commit
8a4cc89edd
1 zmenil súbory, kde vykonal 50 pridanie a 0 odobranie
  1. 50 0
      zhch/launch_model_vllm_1gpu.sh

+ 50 - 0
zhch/launch_model_vllm_1gpu.sh

@@ -0,0 +1,50 @@
+#!/bin/bash
+
+# 这是一个用于启动 vLLM (Very Large Language Model) 服务器的 Bash 脚本片段。vLLM 是一个高性能的大语言模型推理和服务框架,专门用于部署和提供大型语言模型的 API 服务。
+
+# 这个脚本使用 `vllm serve` 命令来启动一个模型服务器,其中 `${hf_model_path}` 是一个环境变量,指向 Hugging Face 格式的模型路径。服务器配置为监听所有网络接口(`--host 0.0.0.0`)的 8101 端口,这意味着可以从外部访问这个服务。
+
+# 在资源管理方面,脚本配置了几个重要参数:GPU 内存利用率设置为 95%(`--gpu-memory-utilization 0.95`),这是一个相当激进的设置,几乎使用了所有可用的 GPU 内存。最大模型长度和批处理令牌数都设置为 32,768,这意味着模型可以处理相当长的输入序列。
+
+# 对于多模态处理,脚本包含了特殊的配置:`--limit-mm-per-prompt image=10` 限制每个提示最多包含 10 张图像,而 `--mm-processor-kwargs` 参数配置了多模态处理器,设置最大动态补丁数为 12。这些设置表明这个模型可能是一个视觉-语言模型,能够同时处理文本和图像输入。
+
+# 脚本还包含了一些运行时配置:启用了对远程代码的信任(`--trust-remote-code`),设置了 uvicorn 日志级别为 info,并将张量并行大小设置为 1(表示使用单个 GPU)。最后,通过 `${model_name}` 环境变量设置了服务模型的名称,这在客户端调用 API 时会用到。
+
+# 需要注意的是,脚本中的 `--chat-template-content-format string` 行缺少行尾的反斜杠(`\`),这可能会导致 Bash 解析错误。在多行命令中,每行末尾都需要反斜杠来表示命令的继续。
+
+# 如果只有一个 GPU 或模型较小
+# --tensor-parallel-size 1
+######################################################
+
+# download model to /path/to/model
+# if [ -z "$NODOWNLOAD" ]; then
+#     python3 tools/download_model.py
+# fi
+
+# register model to vllm
+hf_model_path="/home/ubuntu/zhch/dots.ocr/weights/DotsOCR"  # Path to your downloaded model weights
+export PYTHONPATH=$(dirname "$hf_model_path"):$PYTHONPATH
+
+# 只需运行一次
+# sed -i '/^from vllm\.entrypoints\.cli\.main import main$/a\
+# from DotsOCR import modeling_dots_ocr_vllm' `which vllm`
+
+# launch vllm server
+model_name="DotsOCR"
+# CUDA_VISIBLE_DEVICES=0 vllm serve ${hf_model_path} --tensor-parallel-size 1 --gpu-memory-utilization 0.95  --chat-template-content-format string --served-model-name ${model_name} --trust-remote-code
+vllm serve ${hf_model_path} \
+    --host 0.0.0.0 \
+    --port 8101 \
+    --gpu-memory-utilization 0.95 \
+    --max-log-len 1000 \
+    --trust-remote-code \
+	--max-model-len 65536 \
+	--max-num-batched-tokens 65536 \
+    --uvicorn-log-level info \
+    --limit-mm-per-prompt '{"image": 5}' \
+    --tensor-parallel-size  1 \
+    --chat-template-content-format string \
+    --served-model-name ${model_name}
+
+# # run python demo after launch vllm server
+# python demo/demo_vllm.py