SGLang 部署大模型

发布时间: 更新时间: 总字数:744 阅读时间:2m 作者: IP上海 分享 网址

SGLang 是一个用于大型语言模型(LLMs)和视觉语言模型(VLMs)的快速服务框架。

介绍

SGLang 通过协同设计后端运行时和前端语言,它能让您与模型的交互变得更快、更可控。

其核心功能包括:

  • 快速后端运行时:通过多种技术提供高效服务,包括用于前缀缓存的 RadixAttention、零开销 CPU 调度器、预填充-解码分离、推测解码、连续批处理、分页注意力(paged attention)、张量/流水线/专家/数据并行、结构化输出、分块预填充、量化(FP4/FP8/INT4/AWQ/GPTQ)以及多 LoRA 批处理。
  • 灵活的前端语言:提供直观的 LLM 应用编程接口,支持链式生成调用、高级提示、控制流、多模态输入、并行以及外部交互。
  • 广泛的模型支持:支持多种生成模型(如 Llama、Qwen、DeepSeek、Kimi、GPT、Gemma、Mistral 等)、嵌入模型(e5-mistral、gte、mcdse)和奖励模型(Skywork),并易于扩展以集成新模型。
  • 活跃的社区:SGLang 是一个开源项目,拥有一个活跃的社区,在业界得到了广泛应用。

相关链接

部署

pip install --upgrade pip
pip install uv
uv pip install "sglang[all]>=0.5.3rc0"
  • 启动服务
SGLANG_USE_MODELSCOPE=true python -m sglang.launch_server --model-path Qwen/Qwen3-Next-80B-A3B-Instruct --port 30000 --tp-size 4 --context-length 262144 --mem-fraction-static 0.8

SGLANG_USE_MODELSCOPE=true python -m sglang.launch_server --model-path Qwen/Qwen3-Next-80B-A3B-Instruct --port 30000 --tp-size 4 --context-length 262144 --mem-fraction-static 0.8 --speculative-algo NEXTN --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4

docker

docker run --gpus all \
    --shm-size 32g \
    -p 30000:30000 \
    -v ~/.cache/huggingface:/root/.cache/huggingface \
    --env "HF_TOKEN=<secret>" \
    --ipc=host \
    lmsysorg/sglang:latest \
    python3 -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instruct --host 0.0.0.0 --port 30000

docker compose

services:
  sglang:
    image: lmsysorg/sglang:v0.5.2
    container_name: sglang
    volumes:
      - ${HOME}/.cache/huggingface:/root/.cache/huggingface
      # If you use modelscope, you need mount this directory
      # - ${HOME}/.cache/modelscope:/root/.cache/modelscope
    restart: always
    network_mode: host # required by RDMA
    privileged: true # required by RDMA
    # Or you can only publish port 30000
    # ports:
    #   - 30000:30000
    environment:
      HF_TOKEN: <secret>
      # if you use modelscope to download model, you need set this environment
      # - SGLANG_USE_MODELSCOPE: true
    entrypoint: python3 -m sglang.launch_server
    command: --model-path meta-llama/Llama-3.1-8B-Instruct
      --host 0.0.0.0
      --port 30000
    ulimits:
      memlock: -1
      stack: 67108864
    ipc: host
    healthcheck:
      test: ["CMD-SHELL", "curl -f http://localhost:30000/health || exit 1"]
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              device_ids: ["0"]
              capabilities: [gpu]

运行

# 使用 MODELSCOPE 下载模型
export SGLANG_USE_MODELSCOPE=true

python -m sglang.launch_server --model-path Qwen/Qwen3-8B
# 在 4 块 GPU 上使用张量并行
python -m sglang.launch_server --model-path Qwen/Qwen3-8B --tensor-parallel-size 4
python -m sglang.launch_server --model-path Qwen/Qwen3-8B --json-model-override-args '{"rope_scaling":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":32768}}' --context-length 131072
  • 调用示例
curl http://localhost:30000/v1/chat/completions -H "Content-Type: application/json" -d '{
  "model": "Qwen/Qwen3-8B",
  "messages": [
    {"role": "user", "content": "Give me a short introduction to large language models."}
  ],
  "temperature": 0.6,
  "top_p": 0.95,
  "top_k": 20,
  "max_tokens": 32768
}'

参考

  1. https://github.com/sgl-project/sglang
  2. https://docs.sglang.ai/basic_usage/qwen3.html
本文总阅读量 次 本站总访问量 次 本站总访客数
Home Archives Categories Tags Statistics