【模型部署】如何在Linux中通过脚本文件部署模型

发布于:2025-06-30 ⋅ 阅读:(21) ⋅ 点赞:(0)

在 Linux 中,你可以将部署命令保存为可执行脚本文件,并通过终端直接调用。以下是几种常见且实用的方法:


方法 1:Shell 脚本(推荐)

步骤
  1. 创建一个 .sh 文件(例如 start_vllm.sh):
    #!/bin/bash
    CUDA_VISIBLE_DEVICES=7 \
    python -m vllm.entrypoints.openai.api_server \
      --served-model-name Qwen2-7B-Instruct \
      --model /home/courseteam/models/models/Qwen2-7B \
      --port 20000
    
  2. 赋予执行权限:
    chmod +x start_vllm.sh
    
  3. 直接运行:
    ./start_vllm.sh
    
优点
  • 简单直接,适合快速部署
  • 可扩展性高(可在脚本中添加环境变量、日志记录等)

方法 2:Systemd 服务(生产环境推荐)

步骤
  1. 创建服务文件 /etc/systemd/system/vllm.service
    [Unit]
    Description=vLLM API Server
    After=network.target
    
    [Service]
    User=your_username
    WorkingDirectory=/path/to/your/dir
    ExecStart=/usr/bin/python -m vllm.entrypoints.openai.api_server \
      --served-model-name Qwen2-7B-Instruct \
      --model /home/courseteam/models/models/Qwen2-7B \
      --port 20000
    Environment="CUDA_VISIBLE_DEVICES=7"
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
  2. 启用并启动服务:
    sudo systemctl daemon-reload
    sudo systemctl enable vllm
    sudo systemctl start vllm
    
优点
  • 支持开机自启
  • 自动崩溃重启
  • 集中管理日志(通过 journalctl -u vllm 查看)

方法 3:Python 脚本封装

步骤
  1. 创建 start_vllm.py
    import subprocess
    
    def start_server():
        cmd = [
            "python", "-m", "vllm.entrypoints.openai.api_server",
            "--served-model-name", "Qwen2-7B-Instruct",
            "--model", "/home/courseteam/models/models/Qwen2-7B",
            "--port", "20000"
        ]
        env = {"CUDA_VISIBLE_DEVICES": "7"}
        subprocess.Popen(cmd, env=env)
    
    if __name__ == "__main__":
        start_server()
    
  2. 赋予执行权限并运行:
    chmod +x start_vllm.py
    python start_vllm.py
    
优点
  • 适合需要预处理逻辑的场景(如动态加载配置)
  • 可与其他Python代码集成

方法 4:Makefile(适合复杂流程)

步骤
  1. 创建 Makefile
    .PHONY: start
    start:
        CUDA_VISIBLE_DEVICES=7 \
        python -m vllm.entrypoints.openai.api_server \
          --served-model-name Qwen2-7B-Instruct \
          --model /home/courseteam/models/models/Qwen2-7B \
          --port 20000
    
  2. 运行:
    make start
    
优点
  • 适合多步骤部署(如先下载模型再启动)
  • 开发者友好

方法 5:Docker 容器化

步骤
  1. 创建 Dockerfile
    FROM python:3.9
    RUN pip install vllm
    CMD ["python", "-m", "vllm.entrypoints.openai.api_server", \
      "--served-model-name", "Qwen2-7B-Instruct", \
      "--model", "/models/Qwen2-7B", \
      "--port", "20000"]
    
  2. 构建并运行:
    docker build -t vllm-server .
    docker run --gpus all -e CUDA_VISIBLE_DEVICES=7 -p 20000:20000 vllm-server
    
优点
  • 环境隔离
  • 便于分发和版本控制

最佳实践建议

场景 推荐方案 关键优势
快速测试 Shell脚本 简单易用
生产环境长期运行 Systemd服务 高可靠性,自动恢复
需要复杂逻辑控制 Python脚本封装 灵活集成其他功能
团队协作/持续集成 Docker容器 环境一致性

权限与路径注意事项

  1. 确保脚本和模型路径对执行用户可读
    chmod -R 755 /home/courseteam/models
    
  2. 如果使用非标准Python环境,建议在脚本中指定绝对路径:
    /opt/conda/bin/python -m vllm.entrypoints...
    

通过以上任一方法,均可实现一键部署调用。


网站公告

今日签到

点亮在社区的每一天
去签到