第一章:大模型推理框架全景图

各位同学好,我是你们这堂课的主讲人。今天咱们聊聊大模型推理框架的全景图。说实话,这个领域变化太快了,我入行那会儿,大家还在纠结怎么把模型塞进单张显卡,现在呢?分布式推理、量化、稀疏化,花样翻新。但不管怎么变,核心问题就一个:怎么让大模型跑得更快、更省、更稳

1.1 什么是大模型推理框架?

说白了,推理框架就是一套帮你把训练好的大模型部署到生产环境的工具链。它负责把模型从PyTorch、TensorFlow这些训练框架里导出来,然后做优化、压缩、调度,最后在GPU、CPU甚至NPU上跑起来。

我个人习惯把推理框架比作「翻译官」。模型是中文,硬件是英文,框架就是那个既懂中文又懂英文的人。它得把模型的计算图翻译成硬件能执行的指令,还得翻译得又快又准。

核心价值就三点:

  • 降低延迟:用户问一句,模型得秒回。我见过一个项目,延迟从2秒优化到200毫秒,用户体验天差地别。
  • 提高吞吐:同样的硬件,能服务更多用户。说白了就是省钱。
  • 简化部署:不用每个模型都手写CUDA代码,框架帮你搞定。

1.2 产业链上下游角色

这个产业链其实挺长的。我把它分成四个角色,你想想看,每个角色都有自己的痛点。

1.2.1 芯片厂商

NVIDIA、AMD、Intel、华为昇腾、寒武纪……这些是造「引擎」的。他们提供硬件,但硬件再好,没有软件生态也是白搭。我记得NVIDIA最早搞CUDA的时候,很多人觉得没必要,现在呢?没有CUDA,你连大模型的门都摸不着。

芯片厂商的诉求很简单:让我的芯片跑大模型比别人快。所以他们自己也会做推理框架,比如NVIDIA的TensorRT、Intel的OpenVINO。但问题是,他们只优化自己的硬件,跨平台兼容性差。

避坑指南:我曾经在一个项目里选了某家小众芯片,结果框架只支持ResNet这种老模型,Transformer的算子一个都没有。最后只能手写算子,工期翻了三倍。选芯片,一定要看它的推理框架成熟度。

1.2.2 云厂商

阿里云、腾讯云、华为云、AWS、Azure……这些是卖「算力」的。他们不造芯片,但买了很多芯片搭成集群,然后租给你用。

云厂商的痛点是:怎么让客户在我的云上跑大模型最划算?所以他们也会搞推理框架,比如阿里云的PAI、AWS的SageMaker。这些框架通常深度绑定自家的云服务,用起来方便,但迁移成本高。

我个人建议,如果你只是做原型验证,用云厂商的托管服务没问题。但如果是生产环境,最好留一手,别被绑死。

1.2.3 框架开发者

这就是我们这群人了。我们写推理框架,比如vLLM、TensorRT-LLM、llama.cpp、ONNX Runtime。我们的目标是:让任何模型在任何硬件上都能高效运行

说实话,这个角色最苦逼。芯片厂商催你适配新硬件,云厂商催你优化性能,应用开发者催你支持新模型。我经常半夜被叫起来修bug,就为了某个算子在新显卡上跑崩了。

但这也是最有成就感的地方。你想想看,你写的代码可能被成千上万的开发者使用,这种感觉,嗯,挺爽的。

1.2.4 应用开发者

这是产业链的最后一环,也是离用户最近的一环。他们用推理框架来搭建AI应用,比如聊天机器人、代码助手、图像生成。

应用开发者最关心的是:好不好用?快不快?贵不贵?他们不想知道什么算子融合、内存管理,他们只想调一个API就能跑模型。

所以,一个好的推理框架,对应用开发者来说应该是「黑盒」——把模型丢进去,结果出来,中间过程不用管。我见过一些框架,文档写得跟天书一样,配置项上百个,开发者直接劝退。

1.3 推理框架全景图

下面这张图是我手绘的,展示了推理框架在整个产业链中的位置。你可以看到,它夹在模型和硬件之间,承上启下。

大模型推理框架产业链全景图 大模型(LLM/VLM/扩散模型) 大模型推理框架 vLLM / TensorRT-LLM / llama.cpp / ONNX Runtime 硬件(GPU / CPU / NPU / ASIC) NVIDIA / AMD / Intel / 华为昇腾 / 寒武纪 芯片厂商 云厂商 应用开发者(AI应用/服务) 图:大模型推理框架在产业链中的位置

从这张图你能看出来,推理框架是连接模型和硬件的桥梁。没有它,模型就是一堆参数,硬件就是一堆硅片,谁也认不认识谁。

1.4 框架的核心能力

一个成熟的推理框架,通常具备以下能力。我按重要程度排了个序:

能力 说明 我的经验
模型格式转换 把PyTorch/TF模型转成框架内部格式 ONNX是最通用的中间格式,但坑也多
计算图优化 算子融合、常量折叠、内存复用 算子融合能省30%以上的显存
量化 FP16/INT8/INT4精度压缩 INT4量化后模型体积缩小4倍,但精度会掉
内存管理 KV Cache、PagedAttention等 vLLM的PagedAttention是个天才设计
调度策略 动态批处理、连续批处理 连续批处理能把吞吐提升5-10倍
多硬件支持 GPU/CPU/NPU多后端 llama.cpp在CPU上跑得比GPU还快,你敢信?

注意:不是所有框架都支持上述所有能力。选框架时,一定要先列清楚你的需求。我曾经图省事选了一个「全能」框架,结果发现它对自家硬件的优化远好于对其他硬件的支持,最后不得不换框架,白白浪费了两周时间。

1.5 框架选型建议

说了这么多,到底该选哪个框架?我的建议是:

  • 如果你用NVIDIA显卡:首选TensorRT-LLM,性能最优。但学习曲线陡,文档写得像天书。
  • 如果你用CPU推理:llama.cpp是唯一选择。它把CPU优化到了极致。
  • 如果你要快速上线:vLLM,开箱即用,API设计优雅。
  • 如果你要跨平台:ONNX Runtime,支持最广,但性能不是最优。
  • 如果你在华为昇腾上跑:MindSpore Lite,别无选择。

嗯,这里要注意,框架选型没有银弹。我见过有人用TensorRT-LLM跑小模型,结果优化效果还不如直接用PyTorch。所以,一定要根据你的模型大小、硬件配置、延迟要求来综合判断。

好了,第一章的内容就到这里。记住一句话:推理框架不是万能的,但没有推理框架是万万不能的。下一章我们深入聊聊vLLM的架构设计,看看它为什么能成为当前最流行的推理框架之一。


专注资料整理