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.(任務自適應)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容