当前位置: 首页 > news >正文

Ubuntu 单机多卡部署脚本: vLLM + DeepSeek 70B


# 部署脚本:Ubuntu + vLLM + DeepSeek 70B ,程序分两部分

# 执行前请确保:1. 系统为 Ubuntu 20.04/22.04  2. 拥有NVIDIA显卡(显存≥24G)

# init.sh
#!/bin/bash
# 系统更新与基础依赖

sudo apt update && sudo apt upgrade -y

sudo apt install -y build-essential python3-pip curl git wget

# NVIDIA驱动安装(需重启)

#sudo add-apt-repository ppa:graphics-drivers/ppa -y

#sudo apt update

#sudo apt install -y nvidia-driver-550-server

echo "请手动重启系统后再次执行本脚本!"

echo "sudo reboot "
exit 0  # 首次执行到此退出 
 


 

#test.sh

# ---- 以下为重启后执行的第二部分 ----
#!/bin/bash


#pip 使用国内源
mkdir -p $HOME/.pip/

cat  <<EOF
index-url = http://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host=mirrors.aliyun.com 
EOF >$HOME/.pip/pip.conf


# Miniconda安装

# wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 使用国内源
wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda

source $HOME/miniconda/bin/activate


# 创建虚拟环境

conda create -n vllm python=3.11 -y

conda activate vllm

# 安装核心组件

pip install vllm huggingface_hub modelscope

# 模型下载示例(替换为实际模型ID)

MODEL_ID="deepseek-ai/DeepSeek-R1-Distill-Llama-70B"

python - <<EOF

from modelscope import snapshot_download

snapshot_download('$MODEL_ID', cache_dir='./models')

EOF

# 启动服务(根据GPU数量调整tensor-parallel-size)

# 单机多卡,这里的 --tensor-parallel-size 参数为 4 ,直接用4卡、也可以用8卡用8

vllm serve --model ./models/$MODEL_ID  --tensor-parallel-size 4 --gpu-memory-utilization 0.95 --port 6006  --max-model-len 8192 &
#记录一下PID做测试
SERVER_PID=$!

# 检查 PID 和端口的函数

check_status() {

    # 检查 PID 是否存在

    if ! kill -0 $SERVER_PID > /dev/null 2>&1; then

        echo "程序异常退出"

        exit 1

    fi

    

    # 检查端口 8000 是否在使用

    if netstat -tuln | grep -q ':8000\s'; then

        echo "准备就绪,测试一下"
    sleep 3
curl -i -k -X POST "http://localhost:6006/v1/chat/completions"  -H "Content-Type: application/json"  --data '{ "model": "/pde_ai/ssd_models/llm/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B", "Max_tokens": 1024, "Temperature": 0, "messages": [ { "role": "user", "content": "中国的首都在哪里?" } ] }'

        return 0

    else

        return 1

    fi

}

# 主循环

while true; do

    if check_status; then

        # PID 存在且端口 8000 在使用时

        sleep 1  # 避免过于频繁的检查

    else

        # PID 不存在时

        echo "程序异常退出"

        exit 1

    fi

done

http://www.xdnf.cn/news/324397.html

相关文章:

  • ERP进销存系统源码,SaaS模式多租户ERP管理系统,SpringBoot、Vue、UniAPP技术框架
  • 基于nnom的多选择器
  • springboot国家化多语言实现
  • mybatis-plus分页查询count语句为什么没有left join
  • 正则表达式非捕获分组?:
  • CHAPTER 17 Iterators, Generators, and Classic Coroutines
  • 构建高质量数据湖:大数据治理在湖仓一体架构下的实践指南
  • mathtype转化
  • Vivo 手机官网交互效果实现解析
  • arXiv论文 MALOnt: An Ontology for Malware Threat Intelligence
  • ubuntu中解决matplotlib无法显示中文问题
  • 【MVCP】基于解纠缠表示学习和跨模态-上下文关联挖掘的多模态情感分析
  • 码蹄集——平方根X、整除幸运数
  • Rust 与 Golang 深度对决:从语法到应用场景的全方位解析
  • 平面坐标系中判断点P是否在线段上AB上的常用方法总结
  • 【渗透测试】命令执行漏洞的原理、利用方式、防范措施
  • 滚动条样式
  • 数据治理与数据资产管理研究方向展望
  • 【java】使用iText实现pdf文件增加水印功能
  • windows下docker的使用
  • Java从入门到精通 - 程序流程控制
  • 相似命令对比
  • 华为云API、SDK是什么意思?有什么区别和联系?
  • 如何在sheel中运行Spark
  • ClimateCatcher专用CDS配置教程
  • 携手高校科研团队,共建TWS耳机芯片技术新生态
  • linux下的Redis的编译安装与配置
  • 夸克网盘链接失效检测工具
  • 多模态大语言模型arxiv论文略读(六十三)
  • 分区器(2)