大模型推理理解

函数表达世界,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 小时前
Temu 广告投放实操:ROAS 底层逻辑与批量广告作业方案
大数据·人工智能·自动化·temu
乱码三千1 小时前
开发了一套AI智能体协作知识体系
人工智能·架构·代码规范
Allen.Su1 小时前
大模型 LoRA 微调全流程实战 - 车载问答全流程(跑通 + 参数详解 + 训练日志逐行解读 + 模型合并)
人工智能·python·lora·大模型微调
吴佳浩 Alben1 小时前
走向 Memory OS:企业私有化 Agent 设计与实现
人工智能·深度学习·神经网络·语言模型·架构·自动化·ai编程
维核科技3 小时前
本地优先的 AI:不联网也能跑的模型和智能体
人工智能
七夜zippoe3 小时前
Function Calling 深度解析:从参数定义到错误处理的完整实践
人工智能·ai·agent·function·calling
m0_734571769 小时前
深入理解人工智能 chatGPT的软件架构
人工智能
飞塔老梅子9 小时前
09. Codex 节省Token ❀ 老梅子学AI
人工智能·ai·token·模型·codex
HyperAI超神经9 小时前
扰动实验+迁移学习,MIT团队推出IRIS,用「指纹」重建单细胞信号传导历史
人工智能·深度学习·机器学习·迁移学习