大模型推理理解

函数表达世界,function describe the world

1.概览

大模型分为训练和推理的两个阶段,训练就是大模型进行学习,推理就是大模型进行输出。

简单的图:

大模型系统 / AI Infra

│

┌───────────┴───────────┐

│ │

训练 Infra 推理 Infra

│ │

Distributed Training LLM Serving

Data Parallel vLLM / SGLang

Tensor Parallel KV Cache

Pipeline Parallel Scheduler

NCCL CUDA / Triton

ZeRO / FSDP Quantization

Megatron TensorRT-LLM

大模型的推理阶段。

大模型推理目的,高吞吐,低延迟

学习推理,要学习Transformer推理,PyTorch推理执行,GPU 架构和 CUDA,学 Triton,vllm

其中,transformer 会同时在训练和推理阶段都用到。transformer本身是一个模型计算过程,姑且先这么理解吧。

模型训练完整的生命周期如下:

数据

↓

预训练 Pre-training

↓

后训练 Post-training

(SFT / RL 等)

↓

得到最终模型参数

↓

部署到推理系统

↓

用户请求

↓

Transformer 前向计算

↓

输出 Token

在我看来,每一步都很重要,数据是一切的开始,但是网络上的数据很多,很杂,据我所知,就有一些岗位是专门来处理数据,为模型训练提供一个基石,可能是脚本,可能是流水线,都有可能。

预训练,以我现在认识,预训练就是在调参,一般的来说,数学是固定的,确定的,比如f=ma,G=mg,这些公式,固定的输入输出,得到一定准确的结果,但是如果是什么是猫,什么是狗,这种抽象的输入,程序就比较难以回答是true和false了。y=kx+b,是一个函数,一条线,对吧,但是模型训练就是给定一大堆固定的参数,通过训练,得到一个函数,这个函数可以有许多参数,不一定是直线,也可能弯曲。预训练就是在调参数,让结果尽量接近正确,但不保证正确。

后训练,也是在调残,不过数据是一些人类希望的回答。

最终得到一个模型。我理解最终的模型就是一个有着巨大参数的函数。输入是任何东西,输出也是。函数表达世界

最后训练好的模型部署在推理,用户开始输入,比如,你是谁,推理系统需要把输入给到训练好的模型,模型内部的计算是通过transformer进行的。所以最终得到一个输出。

之所以需要专门需要推理是因为一个模型部署起来,可能同时有很多请求打过来,需要同时处理1w条请求,这个就比较头疼呀,所以需要有推理。

再给一个图,模型训练时的图,这个图我理解就是调参的图:

输入数据

↓

Transformer Forward

↓

得到 Loss

↓

Backward

↓

计算 Gradient

↓

Optimizer 更新参数

↓

重复很多次

模型通过大量的训练,得到了一个训练好的模型。

到了推理阶段,这个阶段就是需要模型输出答案了:

用户输入

↓

加载训练好的参数

↓

Transformer Forward

↓

算出下一个 token 的概率

↓

选择 token

↓

再执行 Transformer Forward

↓

再生成一个 token

↓

...

所以模型训练的整个流程我们讲清楚之后, 需要知道就是模型有训练和推理两个部分。从而衍生出对应的需求。

训练关注:

如何把模型参数学好?

推理关注:

参数已经学好了,

如何让大量请求

更快、更便宜、更稳定地跑完 Transformer?

所以有vllm这个推理架构,帮助我们来处理大量的请求。和数据库是类似的,磁盘IO是缓慢的,一方面是需要从用户到内核的开销,一方面是磁盘本身寻址就是慢的,所以我们尽可能堆batch,然后统一的去请求,这样可以加快速度。

用户请求

↓

┌────────────────────┐

│ vLLM │

│ │

│ Scheduler │

│ Continuous Batch │

│ KV Cache Manager │

│ PagedAttention │

│ Prefix Cache │

│ Model Runner │

└─────────┬──────────┘

↓

┌────────────────────┐

│ Transformer │

│ │

│ Attention │

│ RMSNorm │

│ MLP │

│ RoPE │

└─────────┬──────────┘

↓

CUDA

↓

GPU

简单的理解,

Transformer 告诉你"一个请求怎么算";vLLM 告诉你"一万个请求怎么高效地一起算"。

一生一,二胜二,三生万物。

2.学习路线

复制代码
Transformer 推理 + PyTorch + KV Cache

CUDA + GPU 架构 + Nsight

Triton + Attention Kernel + Benchmark

vLLM 源码 + Scheduler + KV Cache Manager

Mini Inference Engine

3.transfomer理解

B站的讲解视频

https://www.bilibili.com/video/BV1NCgVzoEG9/?spm_id_from=333.788.videopod.sections&vd_source=f2c6f95328c7aaa4322be5f8263e73e5&p=2

如果说f=ma可以表达成确定的函数,牛二也可以,G=mg也可以,传统编程几乎就是让计算机器执行重复的事情,但是如果问题转变,我们想要让机器识别一只猫,这种输入不固定,就变得异常困难,那怎么办呢,猜,找不到一组数据的规律就利用大量的计算来接近真实的数据。

神经网络就是非常复杂的一个非线性函数

相关推荐
驭渊的小故事1 小时前
Spring AI Alibaba 实战:从maven依赖治理到声明式工具调用
java·人工智能·spring
北京中科新远科技1 小时前
高速光链路健康检查实战:DOM、FEC、误码与压力回归
人工智能·数据挖掘·回归
火山引擎和TA的超级拍档们1 小时前
超级拍档・光影新生|火山引擎 AIGC 主题峰会回顾
人工智能
冬奇Lab1 小时前
一天一个开源项目(第245篇):Raven —— ‘Harness 的 Harness‘,把 Claude Code、Codex 等智能体编排起来并让它递归自我改进
人工智能·开源·资讯
工业视觉老A1 小时前
攻克牙膏朝向人工分拣痛点,AI 视觉检测保障包装工序稳定
人工智能·计算机视觉·视觉检测
smartpi_ai1 小时前
离线语音芯片怎么选:SU、CI、JX、JL 系列语音模块选型指南
人工智能·ci/cd·语音识别
火山引擎开发者社区2 小时前
DeepSeek-V4.1-Flash 新版本登陆火山方舟,效果无损“经济版”八折上线
人工智能
HA-ming2 小时前
PCSwitch 智能呼叫系统技术拆解:AI 机器人、意图识别与模块化流程如何串起业务自动化
人工智能·机器人·自动化·智能呼叫系统·智能呼叫中心·智能外呼·可视化模块化
微帧Visionular2 小时前
AI视频反复抽卡太贵,哪些问题可以用后处理修复?
人工智能·音视频