LLM 大模型推理加速方案:vllm、fastllm、llama.cpp 使用指南与总结
本文介绍了 LLM 大模型推理加速的主流方案,涵盖 vllm、fastllm、llama.cpp 等框架的安装与使用。详细讲解了 privateGPT 和 ollama 的本地部署流程,并补充了 MindSpore 与 OpenVINO 的推理特性。文章对比了各方案的优缺点,提供了量化、并发及配置优化的实践建议,旨在帮助开发者选择合适的推理后端以提升性能。

本文介绍了 LLM 大模型推理加速的主流方案,涵盖 vllm、fastllm、llama.cpp 等框架的安装与使用。详细讲解了 privateGPT 和 ollama 的本地部署流程,并补充了 MindSpore 与 OpenVINO 的推理特性。文章对比了各方案的优缺点,提供了量化、并发及配置优化的实践建议,旨在帮助开发者选择合适的推理后端以提升性能。

随着大语言模型(LLM)的广泛应用,推理速度和资源消耗成为关键考量因素。本文详细介绍了几种主流的推理加速框架及本地部署方案,包括 vllm、fastllm、llama.cpp,并补充了 MindSpore 和 OpenVINO 的使用指南,旨在帮助开发者选择合适的推理后端。
vllm 是一个专为大规模语言模型服务设计的高性能推理引擎,支持连续批处理(Continuous Batching)和 PagedAttention 技术,显著提高了吞吐量。
conda create --name vllm python=3.10
conda activate vllm
pip install vllm
from vllm import LLM, SamplingParams
prompts = [
"Hello, my name is",
"The president of the United States is",
"The capital of France is",
"The future of AI is",
]
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
# 加载模型,请替换为实际路径
llm = LLM(model="<model_path>", trust_remote_code=True)
outputs = llm.generate(prompts, sampling_params)
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
建议将 vllm 用在 Triton 引擎中,以进一步利用 GPU 资源优化服务部署。
fastllm 是一个轻量级的 C++ 深度学习推理库,专注于量化支持和快速部署,适合对延迟敏感的场景。
git clone https://github.com/ztxz16/fastllm
cd fastllm
mkdir build
cd build
cmake .. -DUSE_CUDA=ON
make -j
cd tools && python setup.py install
pip install tiktoken einops transformers_stream_generator
python3 tools/qwen2flm.py qwen-7b-int4.flm int4
# 命令行聊天程序,支持打字机效果 (只支持 Linux)
./main -p model.flm
# 简易 webui,使用流式输出 + 动态 batch,可多路并发访问
./webui -p model.flm --port 1234
# Python 版本的命令行聊天程序
python tools/cli_demo.py -p model.flm
# Python 版本的简易 webui
streamlit run tools/web_demo.py model.flm
from fastllm_pytools import llm
# 模型创建
model = llm.model("model.flm")
# 生成回复
print(model.response("你好"))
# 流式生成回复
for response in model.stream_response("你好"):
print(response, flush=True, end="")
llama.cpp 是目前最流行的开源推理项目之一,支持在 CPU 上高效运行量化后的模型,格式为 GGUF。
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make -j LLAMA_CUBLAS=1
# 转换 HF 模型为 GGUF
python convert-hf-to-gguf.py <hf_model_path>
# 量化到 4-bit (使用 Q4_K_M 方法)
./quantize <model_f16.gguf> <model_Q4_K_M.gguf> Q4_K_M
关于 llama.cpp 有两个非常火的 GitHub 项目,分别是 privateGPT 和 ollama。
privateGPT 基于 llama.cpp 实现了私有知识库问答系统,支持 RAG(检索增强生成)。
安装步骤:
git clone https://github.com/imartinez/privateGPT
cd privateGPT
conda create --name privateGPT python=3.11
conda activate privateGPT
curl -sSL https://install.python-poetry.org | python3 -
export PATH=$PATH:$HOME/.local/bin
poetry install --with ui
poetry install --with local
make run
配置文件 settings.yaml:
server:
env_name: prod
port: 8001
cors:
enabled: false
allow_origins: ["*"]
auth:
enabled: false
data:
local_data_folder: local_data/private_gpt
ui:
enabled: true
default_chat_system_prompt: >
请根据 instructions 回答问题.
llm:
mode: local
max_new_tokens: 512
context_window: 3900
tokenizer: <tokenizer_path>
embedding:
mode: local
ingest_mode: simple
vectorstore:
database: qdrant
qdrant:
path: local_data/private_gpt/qdrant
local:
prompt_style: "llama2"
llm_hf_repo_id: Baichuan2-7B-Chat
llm_hf_model_file: <gguf_model_path>
embedding_hf_model_name: <embedding_model_path>
初始化脚本:
poetry run python scripts/setup
若遇到知识库提问回答不准确,通常需要修改源代码中的 prompt 逻辑,例如编辑 privateGPT/private_gpt/components/llm/prompt_helper.py 文件。
Ollama 提供了一个简单的 API 接口来运行本地大模型,便于集成到应用中。
编译与运行:
go generate ./...
go build .
# 运行服务
./ollama serve
# 编辑模型文件
vi Modelfile
Modelfile 内容:
FROM <gguf_model_path>
创建并运行模型:
./ollama create example -f Modelfile
./ollama run example
通过 API 调用:
curl http://localhost:11434/api/chat -d '{
"model": "example",
"messages": [
{ "role": "user", "content": "why is the sky blue?" }
]
}'
MindSpore 是华为推出的全场景人工智能计算框架,支持 Ascend NPU 硬件加速,适合华为生态内的推理部署。
pip install mindspore
import mindspore as ms
from mindspore import nn
# 设置设备
ms.set_context(device_target="Ascend")
# 加载模型
model = nn.Cell()
model.load_weights("<model_path>")
# 执行推理
output = model(input_data)
MindSpore 提供了丰富的算子优化,特别是在昇腾处理器上能发挥最大性能。对于企业级应用,MindSpore 提供了完整的训练到部署流程支持。
OpenVINO (Open Visual Inference and Neural network Optimization) 是英特尔推出的深度学习推理工具包,用于优化模型在 Intel CPU、GPU 和 VPU 上的运行效率。
pip install openvino-dev
from openvino.runtime import Core
core = Core()
# 读取模型
compiled_model = core.compile_model(model_xml, "CPU")
# 执行推理
result = compiled_model([input_tensor])
OpenVINO 特别适合在 Intel 架构的服务器上部署,能够显著提升推理速度并降低延迟。
大模型的推理加速方法有很多,不同的场景需要选择不同的后端。以下是各方案的对比与建议:
| 框架 | 优势 | 适用场景 |
|---|---|---|
| vllm | 高吞吐量,PagedAttention,适合服务端并发 | 高并发 API 服务 |
| fastllm | 轻量级,量化支持好,C++ 底层 | 边缘设备,低延迟需求 |
| llama.cpp | CPU 友好,GGUF 格式通用,社区活跃 | 个人电脑,无 GPU 环境 |
| privateGPT | 内置 RAG,知识库管理 | 企业私有知识库问答 |
| ollama | 部署简单,API 标准 | 快速原型,本地开发 |
| MindSpore | 华为昇腾硬件优化 | 华为云/昇腾服务器 |
| OpenVINO | Intel 硬件深度优化 | Intel CPU/GPU 服务器 |
优化建议:
值得优化的方向:
通过合理选择推理框架并结合上述优化策略,可以显著提升大模型应用的响应速度和用户体验。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online