LLM大模型入门——综述

大模型

GPT family (Generative Pre-trained Transformer) :GPT-4 Technical Report

LLaMA-family: Llama 2: Open foundation and fine-tuned chat models.

other latest public LLMs (e.g., OPT, BLOOM, Mistral, DeciLM , Baichuan , GLM)


Transformer


TransFormer结构图

自注意力机制

transfomer基于self-attetion机制构建(允许模型在预测时去权衡输入数据的不同部分的重要性):Attention is all you need

self-attention数学描述:

input X=[x1,x2,......xn]

X经过线性变化得到 Q K V

得分函数:f(Q,KV) = softmax(Q*K^T/(dim(K)^(1/2)))*V

这种机制,允许模型 聚焦于 和输出的每个部分对应的输入部分 , 从而能够捕获输入不同部分之间复杂的依赖关系(忽略它们之间的距离)


其他组件


Feed-Forward Network (FFN) 是transformer的另一个组件,存在于transfomer的每一层

FFN一般组成:两个线性变化,中间夹一个非线性激活函数

FFN数学描述:f(x) = max(0, x*W1 + b1)*W2 + b2  (W b 均为FFN的可学习参数)

FFN 和 self_attetion 结合,使模型能捕捉 范围更大的上下文 和 不同部分的细微差别,性能更高


multi-head attention (MHA) 将输入的不同部分进行聚合,之后FFN对每个聚合结果独立的处理(这是一种并行处理,效率较高,也导致 计算负载 内存占用 随 输入长度 和 模型深度的 增加 而增加)。

MHA 使模型能够在不同的表示空间中,关注输入序列的不同的部分


position encoding 包含了 输入序列中的每个 token(标记)的位置信息


自回归编码


LLM推理通常采用 auto-regressive decoding approach(自回归解码),用于保证生成新文本的整体性

自回归编码算法

自回归编码,总是根据已生成的结果来生成新结果,保证语义的高度连贯性。


GPU加速原理

多核并行

GPU并行处理设计,相比CPU的顺序处理设计,更适合运行大模型

GPU包含数千个内核,这些内核可同时处理多个任务,适合 矩阵 和 向量运算

GPU 包含 一组流式处理器(SMs),每个处理器又包含一组核心,这组核心共享一个公共的指令单元,并且每个核心可独立执行线程。每个处理器中有一个共享存储器(SRAM),用于线程之间的数据同步和交换。

GPU的高带宽存储器(HBM) 用于计算过程中对存储器更快的数据传输和访问

最新的GPU结构如,NVIDIA的 Ampere 、Hopper 性能更强大:

improved memory bandwidth and capacity 改进内存带宽和容量

higher floating-point operations per second (FLOPS), 更快的每秒浮点运算

specialized mixed-precision computing units (i.e., Tensor Core) 专业的混合精度计算单元

more efficient utilization of resources 更高效的资源利用率

精度转换

通过支持各种精度格式,允许用户在计算速度和精度之间进行权衡:

FP32 (32-bit floating point), 

TF32 (TensorFloat-32), 

FP16 (16-bit floating point), 

BF16 (Brain Floating Point), 

INT8/INT4

细粒度控制

GPU的编程语言:NVIDIA的CUDA  AMD的ROCm

使用GPU的编程语言,可以实现对GPU的线程级别控制,能最大限度的利用GPU的并行性

其他硬件

CPUs 

mobile and edge devices 移动和边缘设备

ASICs

specialized accelerators such as TPUs , FPGAs 专用加速器

 AI chips (e.g., Apple M2 Ultra, AWS Inferentia, SambaNova, Cerebras , Graphcore IPUs). AI芯片


推理优化

LLM推理优化目标

在不影响模型准确性的情况下,最小化响应时间,低延迟、快速响应

在不牺牲性能的情况下,减少内存占用,主要用于模型私有化部署

支持同时处理多个请求

最大限度的利用硬件资源

权衡模型的准确率和推理效率

LLM的推理优化方法


模型优化 和 硬件优化

模型级别优化

非自回归编码(Non-autoregressive decoding虽能提速,但性能损失较明显);

Speculative decoding(可提速);

Early exiting(提前退出);

Cascade inference(规模自适应);

Configuration downsizing(降低模型参数量);

Attention simplification(注意力稀疏化);

Activation sharing:(减少重复计算);

Conditional computing(使用必要的局部参数推理);

Recurrent unit:(考虑RNN代替transformer);

模型压缩(不损失性能的前提下,压缩模型);

Knowledge Distillation(用“老师模型”蒸馏出一个“学生模型”);

Network pruning:(模型修剪);

硬件级别优化

模型量化(QAT训练量化,PTQ推理量化);

Model parallelism:(模型并行);

Decentralized inference(去中心化推理);

提高吞吐量(通过高效的内存管理,通过调度算法,降低GPU闲置时间);

Kernel fusion:(内核融合,类似层压缩);

Tailored attention(专门为注意力,定制开发GPU内核);

Sampling optimization:(采样技术,有可能会降低模型性能);

Variable sequence length:(输入序列长度对齐,并行计算);

Automatic compilation(开发新的编译器,用来进一步,提升对硬件的利用效率);

memory management(内存管理)

request scheduling(请求调度)

大模型框架




框架性能对比


大模型发展方向

硬件加速

算法加速(编码算法优化)

Long Context/Sequence Scenarios Optimization.

新结构研发(替代transfomer)

Exploration of Deployment in Complex Environments(边缘部署)

Automatic Adaptation to Specific Requirements.(任务自适应)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容