快速了解VLLM推理引擎

文章目录

前言

博主介绍:✌目前全网粉丝4W+,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领域。

涵盖技术内容:Java后端、大数据、算法、分布式微服务、中间件、前端、运维等。

博主所有博客文件目录索引:博客目录索引(持续更新)

CSDN搜索:长路

视频平台:b站-Coder长路

为什么Inference平台可以去选择vllm呢?

Xinference 是一个功能全面的 "模型部署与管理平台" ,而 vLLM 是它内部可以调用的一个 "高性能推理引擎" 。当你指定使用 vLLM 时,Xinference 就把实际的推理计算任务交给了这个以速度见长的专家来处理。

下面这个表格能帮你更清晰地理解它们的核心区别和关系:

特性维度 Xinference (Xorbits Inference) vLLM
角色定位 模型服务的部署平台管理框架 专注于LLM的高性能推理引擎
核心能力 支持多种推理引擎、分布式部署OpenAI兼容API、WebUI PagedAttention 内存管理、连续批处理,实现高吞吐和低延迟
与对方关系 可以集成并调用 vLLM 作为其一个后端引擎 可以被 Xinference 这样的框架作为后端调用
类比 像一个餐厅系统(负责点餐、传菜、管理后厨) 像餐厅里一位出餐速度极快的王牌

Xinference 的设计初衷就是一个支持多种后端的统一模型服务框架 。这种设计带来了两大优势:

  1. 灵活性:通过支持包括 vLLM、SGLang、llama.cpp 在内的多种推理引擎,Xinference 允许你根据模型类型、硬件条件和使用场景,选择最合适的后端。例如,在高性能GPU服务器上部署大型模型时,就可以选择vLLM以追求极致吞吐量。
  2. 统一体验 :无论底层使用哪种引擎,Xinference 都对外提供一致的OpenAI兼容的API接口Web管理界面。这意味着你的上层应用代码和操作习惯无需随着后端引擎的更换而改变。

它的工作原理可以概括为以下几个步骤:

  • 接收请求:通过RESTful API接收你的模型加载和推理请求。
  • 引擎路由 :当你指定使用 vllm 引擎时,Xinference 会根据规则将任务路由到其集成的vLLM组件。
  • 委托执行 :随后,Xinference 将具体的模型加载、内存管理和Token生成等计算密集型任务,委托给vLLM引擎执行
  • 返回结果:最后,Xinference 获取vLLM的计算结果,并统一返回给你。

理解了这个关系,你在实际使用中就能做出更明智的选择:

  • 为何要指定引擎 :因为在不同场景下,合适的引擎能带来显著的效率提升。例如,对于需要高并发服务的语言模型,vLLM 是其优势场景 ;而对于一些特定架构的模型或是在CPU上运行,llama.cpp 可能更合适;SGLang 则对复杂的工作流(如思维链)进行了优化。
  • 如何指定引擎 :在通过Xinference部署模型时,你通常可以在命令参数或WebUI的配置中明确指定推理引擎。例如,在安装Xinference时,你可以通过 pip install "xinference[vllm]" 来确保vLLM后端可用。

vllm相关资料

官方网站:https://docs.vllm.ai/en/latest/index.html

开源地址:https://github.com/vllm-project/vllm

相关命令

测试查看模型

shell 复制代码
curl http://172.16.99.68:9997/v1/models

返回值:

json 复制代码
{
	"object": "list",
	"data": [{
		"id": "Qwen3-14B-AWQ",
		"object": "model",
		"created": 0,
		"owned_by": "xinference",
		"model_type": "LLM",
		"address": "0.0.0.0:39519",
		"accelerators": ["0"],
		"model_name": "Qwen3-14B-AWQ",
		"model_lang": ["en", "zh"],
		"model_ability": ["chat", "hybrid", "tools", "reasoning"],
		"model_description": "This is a custom model description.",
		"model_format": "awq",
		"model_size_in_billions": "1_4",
		"model_family": "qwen3",
		"quantization": "4bit",
		"multimodal_projector": null,
		"model_hub": "huggingface",
		"revision": null,
		"context_length": 40960,
		"replica": 1
	}]
}

/v1/completions

OpenAI Completions API with vLLMOpenAI:由于此服务器与OpenAI API兼容,因此您可以将其用作使用OpenAI API的任何应用程序的直接替代品。

shell 复制代码
curl http://172.16.99.68:9997/v1/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "Qwen3-14B-AWQ",
        "prompt": "你是谁?",
        "max_tokens": 10000,
        "temperature": 0
    }'

返回值:

json 复制代码
{
	"id": "57ff40d8-a12e-11f0-b049-ebe7a2fc70d0",
	"object": "text_completion",
	"created": 1759588089,
	"model": "Qwen3-14B-AWQ",
	"choices": [{
		"text": "你有什么功能? 你好!我是Qwen,是阿里巴巴集团旗下的通义实验室研发的超大规模语言模型。我的功能包括但不限于:\n\n1. **回答问题**:我可以回答各种领域的问题,包括科学、文化、技术、生活等。\n2. **创作内容**:我可以帮助用户创作文章、故事、诗歌、邮件、剧本等。\n3. **逻辑推理**:我可以进行逻辑推理和问题解决,帮助用户分析复杂的问题。\n4. **编程帮助**:我可以提供编程建议,解释代码,帮助调试程序。\n5. **多语言支持**:我支持多种语言的交流,包括但不限于中文、英文、法语、西班牙语等。\n6. **对话互动**:我可以进行自然的对话,理解上下文,提供连贯的回应。\n7. **信息检索**:我可以帮助用户查找信息,提供相关的资料和数据。\n8. **教育辅导**:我可以辅助学习,解释概念,提供学习建议。\n9. **娱乐互动**:我可以进行轻松的闲聊,讲笑话,玩游戏等。\n\n如果你有任何具体的需求或问题,欢迎随时告诉我,我会尽力帮助你!😊",
		"index": 0,
		"logprobs": null,
		"finish_reason": "stop"
	}],
	"usage": {
		"prompt_tokens": 3,
		"completion_tokens": 241,
		"total_tokens": 244
	}
}

/v1/chat/completions

OpenAI Chat Completions API with vLLM:vLLM还支持OpenAI聊天完成API。聊天界面是一种更加动态、交互式的与模型通信的方式,允许来回交换,这些交换可以存储在聊天历史中。这对于需要上下文或更详细解释的任务很有用。

测试:

shell 复制代码
curl http://172.16.99.68:9997/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "Qwen3-14B-AWQ",
        "messages": [
            {"role": "system", "content": "你是一个友好的智能体"},
            {"role": "user", "content": "2020年谁赢得了世界大赛冠军?"}
        ]
    }'

返回值:

json 复制代码
{
	"id": "chat066474d6-a12f-11f0-b049-ebe7a2fc70d0",
	"object": "chat.completion",
	"created": 1759588385,
	"model": "Qwen3-14B-AWQ",
	"choices": [{
		"index": 0,
		"message": {
			"role": "assistant",
			"content": "\n\n2020年的世界大赛(World Series)冠军是**洛杉矶道奇队**(Los Angeles Dodgers)。他们在7场比赛中击败了**坦帕湾光芒队**(Tampa Bay Rays),成功夺得了队史上的第7个世界大赛冠军。这也是道奇队自1988年以来首次夺冠。\n\n- **关键球员**:道奇队的王牌投手克莱顿·克肖(Clayton Kershaw)和核心打者科里·塞格尔(Corey Seager)在比赛中表现出色,尤其是Seager在第七场决胜局的再见全垒打成为经典时刻。\n- **历史意义**:这是道奇队历史上首次在洛杉矶主场(Dodger Stadium)赢得世界大赛冠军。\n\n如果你指的是其他赛事(如足球、网球等),也欢迎进一步说明! 😊",
			"reasoning_content": "\n好的,用户问的是2020年谁赢得了世界大赛冠军。首先,我需要确认用户指的是哪个领域的世界大赛。通常,世界大赛(World Series)特指美国职业棒球大联盟(MLB)的年度冠军赛。\n\n接下来,我应该回忆一下2020年的MLB赛季情况。记得2020年因为疫情赛季缩短,但世界大赛还是进行了。洛杉矶道奇队和坦帕湾光芒队进行了七场大战,最终道奇队在第七场获胜,拿下了冠军。他们的投手 Clayton Kershaw 和 Corey Seager 表现突出,尤其是 Seager 在第七场的全垒打帮助球队逆转。\n\n不过,用户可能没有特别说明是棒球,所以是否需要确认其他可能的赛事?比如国际足联世界杯,但2020年没有举办世界杯,最近的是2018年和2022年。或者网球、高尔夫等其他项目的大满贯?但用户提到"世界大赛"更可能是棒球。\n\n另外,用户可能不清楚不同项目的术语,比如NFL的超级碗、NBA的总决赛等,但通常"世界大赛"特指棒球。因此,回答时应明确指出是MLB的世界大赛,并给出正确的冠军队伍,同时补充一些比赛细节以增加信息量。\n\n还需要检查是否有其他可能的混淆点,例如是否有其他体育联赛在2020年举行了名为"世界大赛"的赛事。不过根据常识,MLB的世界大赛是唯一使用这个名字的。因此,确定是道奇队夺冠。\n\n最后,确保回答准确,同时保持友好和帮助的态度,可能还需要简要说明道奇队的历史成就,以丰富回答内容。\n"
		},
		"finish_reason": "stop"
	}],
	"usage": {
		"prompt_tokens": 30,
		"completion_tokens": 537,
		"total_tokens": 567
	}
}

若是不带think,可以在用户问题的结尾添加/no_think,测试接口如下:

shell 复制代码
curl http://172.16.99.68:9997/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "Qwen3-14B-AWQ",
        "messages": [
            {"role": "system", "content": "你是一个友好的智能体"},
            {"role": "user", "content": "2020年谁赢得了世界大赛冠军?/no_think"}
        ]
    }'

返回值:

json 复制代码
{
	"id": "chat1a08faf2-a12f-11f0-b049-ebe7a2fc70d0",
	"object": "chat.completion",
	"created": 1759588413,
	"model": "Qwen3-14B-AWQ",
	"choices": [{
		"index": 0,
		"message": {
			"role": "assistant",
			"content": "\n\n2020年的世界大赛(World Series)冠军是**洛杉矶道奇队(Los Angeles Dodgers)**。\n\n他们在2020年10月的七场系列赛中击败了坦帕湾光芒队(Tampa Bay Rays),赢得了队史上的第7个世界大赛冠军。这也是道奇队自1988年以来的第一个世界大赛冠军。",
			"reasoning_content": "\n\n"
		},
		"finish_reason": "stop"
	}],
	"usage": {
		"prompt_tokens": 34,
		"completion_tokens": 84,
		"total_tokens": 118
	}
}

资料获取

大家点赞、收藏、关注、评论啦~

精彩专栏推荐订阅:在下方专栏👇🏻

更多博客与资料可查看👇🏻获取联系方式👇🏻,🍅文末获取开发资源及更多资源博客获取🍅

相关推荐
陈 洪 伟6 小时前
大模型推理引擎vLLM(9): vLLM 基本代码结构
vllm
SmartBrain9 小时前
技术总结:VLLM部署Qwen3模型的详解
开发语言·人工智能·算法·vllm
陈 洪 伟9 小时前
大模型推理引擎vLLM(10): vLLM 分布式推理源码结构解析
分布式·vllm
盼小辉丶1 天前
PyTorch实战(29)——使用TorchServe部署PyTorch模型
人工智能·pytorch·深度学习·模型部署
鱼总美签2 天前
ClawdBot保姆级教学:解决Gateway not reachable错误的5种方法
ai助手·vllm·本地大模型·clawdbot
Suryxin.4 天前
从0开始复现nano-vllm「llm_engine.py」
人工智能·python·深度学习·ai·vllm
Suryxin.4 天前
从0开始复现nano-vllm「model_runner-py」下半篇之核心数据编排与执行引擎调度
人工智能·pytorch·深度学习·ai·vllm
shenxianasi6 天前
【论文精读】Language Is Not All You Need: Aligning Perceptionwith Language Models
人工智能·机器学习·计算机视觉·语言模型·自然语言处理·vllm·audiolm
Suryxin.8 天前
从0开始复现nano-vllm「ModelRunner.capture_cudagraph()」
人工智能·pytorch·深度学习·vllm