第一章:大模型推理框架全景图
各位同学好,我是你们这堂课的主讲人。今天咱们聊聊大模型推理框架的全景图。说实话,这个领域变化太快了,我入行那会儿,大家还在纠结怎么把模型塞进单张显卡,现在呢?分布式推理、量化、稀疏化,花样翻新。但不管怎么变,核心问题就一个:怎么让大模型跑得更快、更省、更稳。
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 推理框架全景图
下面这张图是我手绘的,展示了推理框架在整个产业链中的位置。你可以看到,它夹在模型和硬件之间,承上启下。
从这张图你能看出来,推理框架是连接模型和硬件的桥梁。没有它,模型就是一堆参数,硬件就是一堆硅片,谁也认不认识谁。
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的架构设计,看看它为什么能成为当前最流行的推理框架之一。