以下是在 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 <显存利用率> \
[其他可选参数]
关键参数解释:
-
--model-path- 必选参数,指定大模型的本地路径或 Hugging Face Hub 模型名(如
lmsys/vicuna-7b-v1.5、meta-llama/Llama-2-7b-chat-hf)。 - 示例:
--model-path /data/models/llama-2-7b-chat(本地模型)或--model-path lmsys/vicuna-7b-v1.5(自动下载)。
- 必选参数,指定大模型的本地路径或 Hugging Face Hub 模型名(如
-
--port- 可选参数,指定服务端口(默认 8000),如
--port 8001。
- 可选参数,指定服务端口(默认 8000),如
-
--host- 可选参数,指定绑定的 IP 地址(默认
127.0.0.1,仅本地访问;若需局域网访问,设为0.0.0.0)。
- 可选参数,指定绑定的 IP 地址(默认
-
--gpu-memory-utilization- 可选参数,设置显存利用率(0-1 之间,默认 0.9),如
--gpu-memory-utilization 0.8(避免显存溢出)。
- 可选参数,设置显存利用率(0-1 之间,默认 0.9),如
-
--tp-size- 可选参数,指定张量并行数量(多 GPU 时使用,如 2 张 GPU 设为
--tp-size 2)。
- 可选参数,指定张量并行数量(多 GPU 时使用,如 2 张 GPU 设为
-
--quantization- 可选参数,启用模型量化(如
--quantization 4bit或8bit,降低显存占用)。
- 可选参数,启用模型量化(如
四、启动后验证服务正确性的方法
服务启动成功后(终端显示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
- 若输出符合预期的诗歌内容,说明服务正常运行。
五、关键注意事项
-
硬件要求
- 推荐 NVIDIA GPU(架构 SM 7.5+,如 A100、3090、L4),否则可能无法使用 FlashInfer 加速。
- 显存需满足模型需求(如 7B 模型建议≥10GB,13B 模型建议≥20GB)。
-
版本匹配
- CUDA 版本需与 PyTorch、FlashInfer 严格匹配(如 CUDA 12.1 对应 PyTorch 2.1+、FlashInfer cu121 版本)。
- 若提示 "CUDA error",执行
nvidia-smi和nvcc -V确认驱动与 CUDA 工具包版本一致。
-
模型下载
- 首次使用 Hugging Face 模型(如
lmsys/vicuna-7b)需登录:huggingface-cli login(需提前注册并获取访问令牌)。 - 大模型下载缓慢可手动从国内镜像(如 ModelScope)下载后指定本地路径。
- 首次使用 Hugging Face 模型(如
-
服务稳定性
- 若启动后频繁崩溃,检查显存是否充足(降低
--gpu-memory-utilization)或模型文件是否完整。 - 多 GPU 场景需确保显卡驱动支持 NVLink(若使用张量并行)。
- 若启动后频繁崩溃,检查显存是否充足(降低
通过以上步骤,可在 Ubuntu 中高效安装并验证 sglang 服务,利用清华源解决网络问题,同时通过参数配置适配硬件环境。