跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

LLM 大模型推理加速方案:vllm、fastllm、llama.cpp 使用指南与总结

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

flc发布于 2025/2/6更新于 2026/9/1167 浏览
LLM 大模型推理加速方案:vllm、fastllm、llama.cpp 使用指南与总结

LLM 大模型推理加速方案

随着大语言模型(LLM)的广泛应用,推理速度和资源消耗成为关键考量因素。本文详细介绍了几种主流的推理加速框架及本地部署方案,包括 vllm、fastllm、llama.cpp,并补充了 MindSpore 和 OpenVINO 的使用指南,旨在帮助开发者选择合适的推理后端。

vllm

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

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 

运行 Demo

# 命令行聊天程序,支持打字机效果 (只支持 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

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

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

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

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

OpenVINO (Open Visual Inference and Neural network Optimization) 是英特尔推出的深度学习推理工具包,用于优化模型在 Intel CPU、GPU 和 VPU 上的运行效率。

安装与优化

pip install openvino-dev

典型流程

  1. 导出模型:将 PyTorch/TensorFlow 模型转换为 ONNX 格式。
  2. IR 转换:使用 Model Optimizer 将 ONNX 转换为 Intermediate Representation (IR)。
  3. 编译模型:使用 Inference Engine 编译 IR 以适应特定硬件。
  4. 推理:加载编译后的模型进行预测。
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.cppCPU 友好,GGUF 格式通用,社区活跃个人电脑,无 GPU 环境
privateGPT内置 RAG,知识库管理企业私有知识库问答
ollama部署简单,API 标准快速原型,本地开发
MindSpore华为昇腾硬件优化华为云/昇腾服务器
OpenVINOIntel 硬件深度优化Intel CPU/GPU 服务器

优化建议:

  1. 准确性优先:聊天的准确性和后端没有太大的关系,主要取决于模型本身和 Prompt 工程。
  2. 字符生成速度:虽然后端影响首字延迟(TTFT),但整体生成速度受限于模型参数量。
  3. 资源权衡:不建议把太多时间花在后端开发上面,除非有极高的并发需求。应更多关注数据质量、Prompt 优化和垂直领域微调。

值得优化的方向:

  • 提示词工程:优化 System Prompt 以提升回答质量。
  • 知识库构建:建立高质量的向量数据库,提升 RAG 效果。
  • 模型微调:针对特定业务数据进行 SFT(监督微调)。
  • 量化策略:在精度允许范围内选择更低精度的量化(如 INT4/INT8)以减少显存占用。

通过合理选择推理框架并结合上述优化策略,可以显著提升大模型应用的响应速度和用户体验。

目录

  1. LLM 大模型推理加速方案
  2. vllm
  3. 安装与环境配置
  4. 代码示例
  5. 加载模型,请替换为实际路径
  6. fastllm
  7. 编译与安装
  8. 模型量化
  9. 运行 Demo
  10. 命令行聊天程序,支持打字机效果 (只支持 Linux)
  11. 简易 webui,使用流式输出 + 动态 batch,可多路并发访问
  12. Python 版本的命令行聊天程序
  13. Python 版本的简易 webui
  14. 代码集成
  15. 模型创建
  16. 生成回复
  17. 流式生成回复
  18. llama.cpp
  19. 环境安装和模型量化
  20. 转换 HF 模型为 GGUF
  21. 量化到 4-bit (使用 Q4KM 方法)
  22. 相关生态项目
  23. privateGPT
  24. ollama
  25. 运行服务
  26. 编辑模型文件
  27. MindSpore
  28. 安装与配置
  29. 推理示例
  30. 设置设备
  31. 加载模型
  32. 执行推理
  33. OpenVINO
  34. 安装与优化
  35. 典型流程
  36. 读取模型
  37. 执行推理
  38. 总结

更多推荐文章

查看全部
  • AI 大模型工程师职业前景与技术学习路径指南
  • GLM-4.7-Flash 本地 AI 编码助手部署指南
  • Python 三维网格处理库 Trimesh 核心功能与实战
  • Vivado 官方安装指南:从注册账号到完成部署
  • AI之Tool:Google Stitch的简介、安装和使用方法、案例应用之详细攻略
  • 文心一言 4.5 开源模型 ERNIE-4.5-0.3B 轻量化部署与优化
  • 基于 SpringBoot 的协同过滤话题推荐系统设计与实现
  • 腾讯云轻量应用服务器部署 OpenClaw 并接入 QQ 与飞书机器人
  • 大模型参数有效微调(PEFT)技术综述
  • Stable Diffusion WebUI 时代落幕:ComfyUI 崛起与工具迭代
  • 医疗送药机器人三重链式编程技术解析:空间拓扑与动态决策
  • 地图矢量覆盖物实战:折线和多边形绘制与交互
  • 基于 YOLO 系列与 SpringBoot 的行人车辆检测系统实现
  • Git 跨平台下载与安装指南
  • K-means 聚类算法:原理、步骤与 Python 实战
  • 2023 年 Android 开发岗位核心面试题汇总
  • B 站 PC 网页版自动开启字幕脚本(2026 适配)
  • Whisper JAX 大规模音频处理内存优化技巧
  • Ollama Windows 安装与使用指南:本地运行 Llama 等模型
  • 论文查重通过却被判 AI 生成?解析降重与去 AI 痕迹的技术差异

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online