镜像社区
部署GPU实例
文档中心
常见问题(FAQ)
LLM
深度学习
SGLang推理加速
这个镜像将会创建大模型推理加速SGLang框架所需的环境,同时将会采用Xinference作为模型管理工具。
0/小时
v1.0

SGLang 加速推理引擎使用教程

这个镜像将会创建大模型推理加速SGLang框架所需的环境,同时将会采用Xinference作为模型管理工具。

SGLang简介

​ SGLang 是一个用于大语言模型(LLM)和视觉语言模型(VLM)的高效推理框架。它通过对后端运行时和前端语言的协同设计,使模型的交互更加快速和可控。其核心特性包括:

  • 高效的后端运行时:通过 RadixAttention 进行前缀缓存,支持跳跃式约束解码(jump-forward constrained decoding)、无额外开销的 CPU 调度器、连续批处理(continuous batching)、令牌注意力机制(paged attention)、张量并行(tensor parallelism)、FlashInfer 内核、分块预填充(chunked prefill)以及多种量化技术(FP8/INT4/AWQ/GPTQ),提供高效的推理服务。
  • 灵活的前端语言:提供直观的接口来编写 LLM 应用,支持链式生成调用、复杂提示(advanced prompting)、控制流(control flow)、多模态输入(multi-modal inputs)、并行执行(parallelism)以及外部交互(external interactions)。
  • 广泛的模型支持:兼容多种生成式模型(如 Llama、Gemma、Mistral、QWen、DeepSeek、LLaVA 等)、嵌入模型(如 e5-mistral、gte)和奖励模型(如 Skywork),并且可以轻松扩展以集成新的模型。

Xinference简介

​ Xinference 是一个功能强大且用途广泛的库,旨在为语言、语音识别和多模态模型提供服务。借助 Inference,您只需一个命令即可轻松部署和服务您的或最先进的内置模型。

  • 🌟 模型部署简便化:简化大型语言模型、语音识别和多模态模型的部署过程。您可以通过单个命令完成模型的设置和部署,无论是实验还是生产环境。

  • ⚡ 先进模型支持:通过单个命令即可体验尖端的内置模型。推理服务提供对最新开源模型的访问!

  • 💻 异构硬件利用:通过ggml充分利用您的硬件资源。Xorbits Inference能智能地利用包括GPU和CPU在内的异构硬件,加速您的模型推理任务。

  • ⚙️ 灵活的API和接口:提供多种与模型交互的接口,支持OpenAI兼容的RESTful API(包括函数调用API)、RPC、命令行界面(CLI)和网页界面(WebUI),实现无缝的模型管理和交互。

  • 🌐 分布式部署:在分布式部署场景中表现出色,支持在多个设备或机器上无缝分配模型推理任务。

  • 🔧 内置第三方库集成:Xorbits Inference无缝集成了流行的第三方库,包括LangChain、LlamaIndex、Dify和Chatbox。

硬件环境

显卡:4090

显存:24GB+

环境安装

镜像中已经提供了一个可用的conda虚拟环境:sglang。若环境不可用或出现运行错误,可在新建的conda环境中执行以下命令:

# 安装必要依赖
pip install "xinference[sglang]"
pip install flashinfer -i https://flashinfer.ai/whl/cu124/torch2.4

# 如果出现缺少指定包,可执行以下命令安装(可选)
pip install sgl_kernel
pip install decord
pip install torchao
pip install outlines==0.0.45

部署模型

在运行模型之前,需要执行以下命令启动Xinference服务:

# 启动Xinference
XINFERENCE_MODEL_SRC=modelscope xinference-local --host 0.0.0.0 --port 9997

启动成功后,运行以下命令可以看到镜像中已经拉取的模型:

# 查看缓存模型
xinference cached
model_namemodel_size_in_billionsmodel_formatquantization
qwen2.5-instruct0.5pytorch4-bit
qwen2.5-instruct0.5pytorch8-bit
qwen2.5-instruct0.5pytorchnone
qwen2.5-instruct1.5pytorch4-bit
qwen2.5-instruct1.5pytorch8-bit
qwen2.5-instruct1.5pytorchnone
qwen2.5-instruct32gptqInt4
qwen2.5-instruct72gptqInt4

已经缓存的模型

执行命令运行模型

# 模型启动命令,这个命令中就指定了我们使用的加速引擎为SGLang
xinference launch --model-engine sglang --model-name qwen2.5-instruct --size-in-billions 1_5 --model-format pytorch

这个命令会部署模型,部署后的模型会被分配一个model-uid,默认与model-name相同。

查看运行中的模型:

# 查询命令
xinference list
UIDTypeNameFormatSize (in billions)Quantization
qwen2.5-instructLLMqwen2.5-instructpytorch1.5none

OpenAI接口调用启动后的推理服务

import openai
import sys

model_uid = "qwen2.5-instruct"

# Assume that the model is already launched.
# The api_key can't be empty, any string is OK.
client = openai.Client(api_key="not empty", base_url="http://0.0.0.0:9997/v1")
completion = client.chat.completions.create(
    model=model_uid,
    messages=[
        {
            "content": "What is the largest animal?",
            "role": "user",
        }
    ],
    max_tokens=1024,
    stream=True
)

for chunk in completion:
    if chunk.choices[0].delta.content:
        word = chunk.choices[0].delta.content
        sys.stdout.write(word)
        sys.stdout.flush()
镜像信息
@whisdom
已使用
4
镜像大小120GB
最近编辑2025-02-13
支持卡型
RTX40系48G RTX40系P403080Ti3090A100A8002080
+8
框架版本
PyTorch-2.5.1
CUDA版本
12.4
应用
JupyterLab: 8888
版本
v1.0
2025-07-03
PyTorch:2.5.1 | CUDA:12.4 | 大小:120.00GB