链载Ai

标题: 大语言模型引擎全解析:Transformers、vLLM、Llama.cpp、SGLang、MLX 和 Ollama [打印本页]

作者: 链载Ai    时间: 1 小时前
标题: 大语言模型引擎全解析:Transformers、vLLM、Llama.cpp、SGLang、MLX 和 Ollama


本文将带你深入了解 Transformers、vLLM、Llama.cpp、SGLang、MLX 和 Ollama 这些引擎,帮助你找到最适合的工具,释放大语言模型的全部潜力!


一、Transformers 引擎:NLP领域的全能王者

开发者:Hugging Face

核心特色:作为当下最炙手可热的开源NLP库,Transformers堪称NLP领域的“瑞士军刀”,它支持数百种预训练模型,涵盖GPT、BERT、T5等知名模型,从模型加载、微调,到推理,提供了一站式解决方案。

显著优势

二、vLLM 引擎:GPU推理的性能巅峰

开发者:UC Berkeley研究团队

核心特色:vLLM专注于大语言模型推理,凭借创新的内存管理技术(如PagedAttention),大幅提升GPU利用率与推理速度,堪称GPU推理的“性能怪兽”。

显著优势

三、Llama.cpp 引擎:CPU上的轻量化先锋

开发者:社区项目

核心特色:Llama.cpp基于C++实现,专为运行Meta的LLaMA模型而生,通过优化计算与内存管理,让大模型在CPU上运行成为现实,是CPU设备上的“轻量级王者”。

显著优势

四、SGLang 引擎:高效推理的潜力新星

开发者:未知

核心特色:SGLang专注高效推理,可能运用稀疏计算、分布式优化等技术提升性能,虽充满神秘感,但潜力无限。

显著优势

五、MLX 引擎:高效计算的未来之光

开发者:未知

核心特色:MLX可能是针对大语言模型优化的机器学习框架,聚焦高效计算与推理,是高效计算领域的“未来之星”。

显著优势

六、Ollama:本地大模型运行的便捷之选

开发者:社区项目

核心特色:Ollama是本地运行大语言模型的利器,支持LLaMA、GPT等多种模型,简化模型部署与运行流程。

显著优势


七、指标对比

1. 性能对比

引擎
性能特点
硬件支持
适用模型规模
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: center;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">Transformers
通用性强,性能中等,适合中小规模模型推理和训练。
CPU/GPU
中小规模模型
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: center;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(247, 247, 247);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">vLLM
高性能推理,通过 PagedAttention 等技术优化 GPU 内存和计算效率。
GPU
大规模模型
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: center;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">Llama.cpp
针对 CPU 优化,性能中等,适合资源受限的环境。
CPU
中小规模模型
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: center;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(247, 247, 247);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">SGLang
可能通过稀疏计算或分布式优化提升性能,具体性能取决于实现。
未知(可能 GPU)
中大规模模型
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: center;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">MLX
可能针对特定硬件(如 TPU 或定制芯片)优化,性能潜力高。
特定硬件
中大规模模型
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: center;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(247, 247, 247);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">Ollama
性能中等,适合本地运行,无需高性能硬件。
CPU/GPU
中小规模模型

总结:

ingFang SC", "Microsoft YaHei", SimHei, Arial, SimSun;font-size: 16px;color: rgb(79, 79, 79);line-height: 26px;font-synthesis-style: auto;overflow-wrap: break-word;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">2.并发能力对比

引擎
并发支持
适用场景
Transformers
支持多线程和多 GPU 推理,但并发能力受限于框架和硬件。
中小规模并发任务
vLLM
高并发支持,通过内存优化和批处理技术显著提升并发性能。
高并发推理任务
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: center;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">Llama.cpp
并发能力有限,适合低并发场景。
单任务或低并发任务
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: center;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(247, 247, 247);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">SGLang
可能通过分布式计算支持高并发,具体能力取决于实现。
中高并发任务
MLX
可能针对高并发优化,具体能力取决于硬件和实现。
中高并发任务
Ollama
并发能力中等,适合本地低并发任务。
单任务或低并发任务

总结:

3.适用场景对比

引擎
适用场景
优势
Transformers
研究、开发、中小规模生产环境。
功能全面,社区支持强大,适合多种 NLP 任务。
vLLM
大规模模型推理、高并发生产环境。
极致性能,高效内存管理,适合企业级应用。
Llama.cpp
资源受限环境(如嵌入式设备、低配服务器)。
轻量级,无需 GPU,适合低成本部署。
SGLang
中大规模模型推理、分布式计算环境。
可能通过优化提升性能,适合探索性项目。
MLX
特定硬件环境(如 TPU 或定制芯片)。
可能针对硬件优化,适合高性能计算场景。
Ollama
本地开发、测试、个人使用。
简单易用,无需云端资源,适合个人用户。

总结:

4.硬件兼容性对比

引擎
硬件支持
适用设备类型
Transformers
CPU/GPU
普通服务器、个人电脑、云服务器
vLLM
GPU
高性能 GPU 服务器
Llama.cpp
CPU
低配设备、嵌入式设备
SGLang
未知(可能 GPU)
高性能服务器
MLX
特定硬件
TPU、定制芯片等
Ollama
CPU/GPU
个人电脑、普通服务器

总结:

八、每秒输出token对比


1. 性能影响因素

在对比 TPS 之前,需要明确影响性能的关键因素:

2.GPU 性能对比

以下是 A800、A100 和 H100 的主要参数对比:

GPU 型号
FP32 算力 (TFLOPS)
显存容量 (GB)
显存带宽 (TB/s)
适用场景
A800
19.5
40/80
2.0
推理、训练
A100
19.5
40/80
2.0
高性能计算、AI 训练
H100
30.0
80
3.35
高性能推理、AI 训练



3.引擎 TPS 对比

以下是各引擎在不同 GPU 上的预估 TPS(以 LLaMA-13B 模型为例):

引擎
A800 (TPS)
A100 (TPS)
H100 (TPS)
备注
Transformers
50-100
60-120
80-150
性能中等,适合中小规模推理。
vLLM
200-400
300-600
500-1000
高性能推理,优化显存和批处理。

说明:




九、这里简单介绍一下 Xinference 安装


Xinference 在 Linux, Windows, MacOS 上都可以通过pip来安装。如果需要使用 Xinference 进行模型推理,可以根据不同的模型指定不同的引擎。

如果你希望能够推理所有支持的模型,可以用以下命令安装所有需要的依赖:

pipinstall"xinference[all]"

备注

如果你想使用 GGML 格式的模型,建议根据当前使用的硬件手动安装所需要的依赖,以充分利用硬件的加速能力。更多细节可以参考Llama.cpp 引擎这一章节。

如果你只想安装必要的依赖,接下来是如何操作的详细步骤。

Transformers 引擎

PyTorch(transformers) 引擎支持几乎有所的最新模型,这是 Pytorch 模型默认使用的引擎:

pipinstall"xinference[transformers]"

vLLM 引擎

vLLM 是一个支持高并发的高性能大模型推理引擎。当满足以下条件时,Xinference 会自动选择 vllm 作为引擎来达到更高的吞吐量:

目前,支持的模型包括:

安装 xinference 和 vLLM:

pipinstall"xinference[vllm]"

Llama.cpp 引擎

Xinference 通过llama-cpp-python支持ggufggml格式的模型。建议根据当前使用的硬件手动安装依赖,从而获得最佳的加速效果。

初始步骤:

pipinstallxinference

不同硬件的安装方式:

SGLang 引擎

SGLang 具有基于 RadixAttention 的高性能推理运行时。它通过在多个调用之间自动重用KV缓存,显著加速了复杂 LLM 程序的执行。它还支持其他常见推理技术,如连续批处理和张量并行处理。

初始步骤:

pipinstall'xinference[sglang]'

十、Xinference环境变量

XINFERENCE_ENDPOINT

Xinference 的服务地址,用来与 Xinference 连接。默认地址是 http://127.0.0.1:9997,可以在日志中获得这个地址。

XINFERENCE_MODEL_SRC

配置模型下载仓库。默认下载源是 “huggingface”,也可以设置为 “modelscope” 作为下载源。

XINFERENCE_HOME

Xinference 默认使用<HOME>/.xinference作为默认目录来存储模型以及日志等必要的文件。其中<HOME>是当前用户的主目录。可以通过配置这个环境变量来修改默认目录。

XINFERENCE_HEALTH_CHECK_ATTEMPTS

Xinference 启动时健康检查的次数,如果超过这个次数还未成功,启动会报错,默认值为 3。

XINFERENCE_HEALTH_CHECK_INTERVAL

Xinference 启动时健康检查的时间间隔,如果超过这个时间还未成功,启动会报错,默认值为 3。

XINFERENCE_DISABLE_HEALTH_CHECK

在满足条件时,Xinference 会自动汇报worker健康状况,设置改环境变量为 1可以禁用健康检查。

XINFERENCE_DISABLE_VLLM

在满足条件时,Xinference 会自动使用 vLLM 作为推理引擎提供推理效率,设置改环境变量为 1可以禁用 vLLM。

XINFERENCE_DISABLE_METRICS

Xinference 会默认在 supervisor 和 worker 上启用 metrics exporter。设置环境变量为 1可以在 supervisor 上禁用 /metrics 端点,并在 worker 上禁用 HTTP 服务(仅提供 /metrics 端点)






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5