Skip to content

推理引擎 ​

推理引擎是连接模型和应用的桥梁——负责加载权重、管理显存、处理输入输出。不同于关注"怎么部署"的 AI 算力层面,推理引擎聚焦于引擎本身的架构特性、使用方式和选型对比。

关于 GPU 选型、量化策略、多卡并行、推理优化和服务部署,见 AI 部署 章节。

Ollama ​

Ollama 是最简单的本地推理方案,封装了模型下载、加载和推理的完整流程。ollama run llama3 自动下载模型文件并启动交互式 shell。Ollama 提供 HTTP API(默认端口 11434),支持 Modelfile 定制 system prompt 和参数。底层使用 llama.cpp,但屏蔽了量化参数、GPU 层数等配置细节。适合快速体验和开发调试,高并发场景下性能有限。

bash
ollama run qwen2.5:14b
# 或通过 Modelfile 定制
# FROM qwen2.5:32b-q4_K_M
# PARAMETER temperature 0.7
# PARAMETER num_ctx 8192

vLLM ​

vLLM 是高性能推理引擎的代表,核心创新是 PagedAttention——借鉴操作系统的分页内存管理,将 KV Cache 切分为固定大小的 block 按需分配,显存利用率从 20% 提升到 80%+。支持连续批处理(Continuous Batching),在生成过程中动态插入新请求,单个请求完成后立即释放资源。支持张量并行和流水线并行,兼容 OpenAI API。

详见 vLLM。

Text Generation Inference (TGI) ​

TGI 是 Hugging Face 的推理框架,内置动态批处理、Flash Attention、流式输出和 Token 级别 logprobs。通过 --quantize 支持 AWQ、GPTQ、BitsAndBytes 等量化方案。提供 Prometheus 指标端点,方便集成监控。适合追求生产环境稳定性和可观测性的场景。

llama.cpp ​

llama.cpp 是 C++ 实现的轻量级推理引擎,专为消费级硬件设计。核心优势是 GGUF 量化格式和 CPU+GPU 混合推理。对 Apple Silicon(Metal)、AMD GPU(ROCm)、NVIDIA GPU(CUDA)均有良好支持。提供 CLI、HTTP server 和多种语言绑定。

详见 llama.cpp。

mistral.rs ​

mistral.rs 是 Rust 生态中最成熟的大模型推理引擎之一,底层基于 candle 框架。核心特色是 ISQ(就地量化)——加载模型时自动将 FP16 权重转为 INT4/INT8,不需要预先准备量化文件。支持 CUDA、Metal、ROCm、CPU 四种加速单元并可混合调度。兼容 OpenAI API。

详见 mistral.rs。

其他 Rust 推理工具 ​

Rust 生态中还有 candle(纯 Rust 推理框架,极简依赖)、llama-cpp-rs(llama.cpp 的 Rust FFI 绑定)、burn(完整深度学习框架,支持训练+推理)。详见 Rust 推理引擎。

参数调优 ​

无论使用哪种引擎,以下参数直接影响输出质量:Temperature(0-2,常用 0.7-1.0)控制随机性——代码生成设 < 0.3,创意写作设 0.8-1.0。Top-p(0-1,常用 0.9)从累积概率达到 p 的最小词集合中采样。Repeat penalty(1.0-1.2)惩罚重复输出,避免模型陷入循环。Max tokens 限制输出长度,需根据上下文窗口合理设置。

引擎级别的批处理策略影响吞吐量:静态批处理等待固定数量请求后一起处理,延迟高;连续批处理(vLLM/TGI)动态插入新请求,高并发场景吞吐量可提升 10 倍。