在 Ubuntu 系统中利用 conda 创建虚拟环境安装 sglang 大模型引擎的完整步骤、版本查看方法、启动指令及验证方式

以下是在 Ubuntu 系统中利用 conda 创建虚拟环境安装 sglang 大模型引擎的完整步骤、版本查看方法、启动指令及验证方式,全程使用清华源加速,并包含关键注意事项:

一、完整安装步骤(基于 conda + 清华源)

1. 准备工作:安装 conda 并配置清华源
(1)安装 Miniconda
javascript 复制代码
# 下载Miniconda(清华镜像,加速下载)
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh

# 执行安装(按提示输入yes,建议默认路径)
bash Miniconda3-latest-Linux-x86_64.sh

# 刷新环境变量,使conda生效
source ~/.bashrc
(2)配置清华源(conda+pip,关键加速步骤)
javascript 复制代码
# 配置conda清华源(覆盖主要依赖库)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/nvidia/
conda config --set show_channel_urls yes

# 配置pip清华源(永久生效)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
2. 创建并激活 sglang 虚拟环境
javascript 复制代码
# 创建名为sglang的虚拟环境,指定Python 3.10(推荐3.8+)
conda create -n sglang python=3.10 -y

# 激活环境(终端提示符会显示(sglang))
conda activate sglang
3. 安装核心依赖与 sglang
javascript 复制代码
# 安装FlashInfer(sglang的推理加速库,需匹配CUDA版本)
pip install flashinfer -f https://flashinfer.ai/whl/cu121/torch2.1/index.html  # 对应CUDA 12.1+PyTorch 2.1

# 安装sglang(通过清华源加速)
pip install sglang

二、查看 sglang 版本的方法

在激活的sglang环境中执行以下命令:

javascript 复制代码
# 方法1:通过pip查看安装版本
pip list | grep sglang

# 方法2:通过Python代码查看
python -c "import sglang; print('sglang版本:', sglang.__version__)"

输出示例:sglang版本: 0.1.15(版本号随更新变化)

三、sglang 启动指令及参数解释

sglang 通常以服务模式启动,核心指令为:

python 复制代码
python -m sglang.launch_server \
  --model-path <模型路径> \
  --port <端口号> \
  --host <绑定地址> \
  --gpu-memory-utilization <显存利用率> \
  [其他可选参数]
关键参数解释
  1. --model-path

    • 必选参数,指定大模型的本地路径或 Hugging Face Hub 模型名(如lmsys/vicuna-7b-v1.5meta-llama/Llama-2-7b-chat-hf)。
    • 示例:--model-path /data/models/llama-2-7b-chat(本地模型)或--model-path lmsys/vicuna-7b-v1.5(自动下载)。
  2. --port

    • 可选参数,指定服务端口(默认 8000),如--port 8001
  3. --host

    • 可选参数,指定绑定的 IP 地址(默认127.0.0.1,仅本地访问;若需局域网访问,设为0.0.0.0)。
  4. --gpu-memory-utilization

    • 可选参数,设置显存利用率(0-1 之间,默认 0.9),如--gpu-memory-utilization 0.8(避免显存溢出)。
  5. --tp-size

    • 可选参数,指定张量并行数量(多 GPU 时使用,如 2 张 GPU 设为--tp-size 2)。
  6. --quantization

    • 可选参数,启用模型量化(如--quantization 4bit8bit,降低显存占用)。

四、启动后验证服务正确性的方法

服务启动成功后(终端显示Server started at http://host:port),可通过以下方式验证:

方法 1:通过 curl 发送 HTTP 请求(简单测试)
javascript 复制代码
# 向本地8000端口发送测试请求
curl -X POST http://127.0.0.1:8000/generate \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hello! What is sglang?",
    "sampling_params": {"max_new_tokens": 100}
  }'
  • 若返回包含模型生成的文本(如解释 sglang 的内容),则服务正常。
方法 2:通过 Python 脚本测试(更完整验证)

创建test_sglang.py

运行

javascript 复制代码
import requests

url = "http://127.0.0.1:8000/generate"
data = {
    "text": "Write a short poem about AI.",
    "sampling_params": {"max_new_tokens": 50}
}

response = requests.post(url, json=data)
print("生成结果:\n", response.json()["text"])

运行脚本:

javascript 复制代码
python test_sglang.py
  • 若输出符合预期的诗歌内容,说明服务正常运行。

五、关键注意事项

  1. 硬件要求

    • 推荐 NVIDIA GPU(架构 SM 7.5+,如 A100、3090、L4),否则可能无法使用 FlashInfer 加速。
    • 显存需满足模型需求(如 7B 模型建议≥10GB,13B 模型建议≥20GB)。
  2. 版本匹配

    • CUDA 版本需与 PyTorch、FlashInfer 严格匹配(如 CUDA 12.1 对应 PyTorch 2.1+、FlashInfer cu121 版本)。
    • 若提示 "CUDA error",执行nvidia-sminvcc -V确认驱动与 CUDA 工具包版本一致。
  3. 模型下载

    • 首次使用 Hugging Face 模型(如lmsys/vicuna-7b)需登录:huggingface-cli login(需提前注册并获取访问令牌)。
    • 大模型下载缓慢可手动从国内镜像(如 ModelScope)下载后指定本地路径。
  4. 服务稳定性

    • 若启动后频繁崩溃,检查显存是否充足(降低--gpu-memory-utilization)或模型文件是否完整。
    • 多 GPU 场景需确保显卡驱动支持 NVLink(若使用张量并行)。

通过以上步骤,可在 Ubuntu 中高效安装并验证 sglang 服务,利用清华源解决网络问题,同时通过参数配置适配硬件环境。

相关推荐
AI人工智能+3 小时前
服务器端护照识别技术:通过图像预处理、OCR字符识别和智能分析实现高效身份核验
人工智能·深度学习·ocr·护照识别
☆璇3 小时前
【Linux】网络层协议IP
linux·服务器·tcp/ip
新加坡内哥谈技术3 小时前
马斯克旗下xAI公司推出的在线百科全书“Grokipedia”现已上线
人工智能
m0_748248023 小时前
详解使用CodeBuddy解决高难度项目问题
java·人工智能
老猿讲编程3 小时前
利用机器学习优化CPU调度的一些思路案例
人工智能·机器学习
不一样的少年_3 小时前
老板问我:AI真能一键画广州旅游路线图?我用 MCP 现场开图
前端·人工智能·后端
王道长服务器 | 亚马逊云3 小时前
AWS Auto Scaling:自动扩容,让服务器像呼吸一样灵活
运维·网络·自动化·云计算·aws
小蜗牛爱远行4 小时前
服务器和docker容器时间不一致相关问题
运维·服务器·docker
Xの哲學4 小时前
Linux ioctl 深度剖析:从原理到实践
linux·网络·算法·架构·边缘计算