在 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 服务,利用清华源解决网络问题,同时通过参数配置适配硬件环境。

相关推荐
geinvse_seg8 小时前
我做了个 AI 架构审查员,把整个微服务项目通读了一遍,还顺手做成了 Skill
人工智能
SkyWalking中文站8 小时前
SkyWalking 11 与 BanyanDB 0.11:在存储引擎内部实现 Trace 尾部采样
运维·监控·自动化运维
李帅朋8 小时前
微分基本定义笔记
人工智能·笔记·深度学习·神经网络
醍醐实验室8 小时前
下一代端到端全模态(Omni)模型解密:离散音频 Token 化与极速双工流式交互架构
人工智能
米小虾8 小时前
你的 Agent 有 1000 万上下文,为什么第 50 轮就开始失忆?
人工智能·agent
东风破_8 小时前
Text2SQL :用自然语言操作 SQLite 数据库
人工智能·后端
吴佳浩 Alben8 小时前
Agent 怎么做自动化评测?构建端到端的 Agent Evaluation 体系
人工智能·语言模型·架构·自动化·ai编程
G***技8 小时前
告别“云端依赖”:LH707 如何重构 AI 视频监控的底层逻辑?
人工智能·嵌入式硬件
知了一笑8 小时前
圈外人焦虑AI吗?
人工智能·ai·aigc
国信华源8 小时前
AI+小流域防汛救灾综合解决方案|看得全・算得准・联得通・可复制
人工智能