大模型LLM基础知识整理

还记得刚接触NLP的时候就是做NLG(RNN时代了),后续感觉生成式的东西太不靠谱,因此做了几年的信息抽取,随着LLM能力的“涌现”,是时候快速follow一下相关知识了。全都自己写显然不现实,效率也不高,因此这篇博客会以“收集优秀的技术博客“为主,方便和我一样想要快速catch up的同学“查漏补缺”。

LLM认知

如果您也对AI大模型感兴趣想学习却苦于没有方向👀
小编给自己收藏整理好的学习资料分享出来给大家💖
👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码关注免费领取【保证100%免费】🆓

Transformers架构

Code

现在开源的LLM基本都是在Llama上魔改的了,因此Llama的modeling_llama.py很重要,建议看huggingface的,全文背诵就完事了。(Tensor Parallelism (pretraining_tp>1)那段看着吓人,不用看,跳过就行了)

https://github.com/huggingface/transformers/blob/main/src/transformers/models/llama/modeling_llama.py#L332

位置编码

重点学习苏神的《Transformer升级之路》系列。

(了解一下Transformer几个基础的位置编码方式)

RoPE现在是大多数LLM的默认编码方式,用绝对位置编码方式实现相对位置编码的效果。(苏神tql)

重点阅读:

值得注意的是, decoder的位置编码和encoder略有不同,因为 解码器端的masked self-attention 不是置换等变的,自回归LM本身就包含了一定的位置信息,位置编码可能显得就不那么重要了。事实上,仅利用 Transformer 解码器的模型有可能在不包含显式位置表示的情况下感知位置信息。语言建模任务的一些经验结果证实了这一点 ,作者发现删除位置编码甚至可以提高性能。

RoPE的一些数学知识回顾:

长度外推问题

长度外推的核心是训练、推理的长度不一致问题,体现在两个点:

问题1解决方案:ALIBI、KERPLE、Sandwich、XPOS、PI、NTK-RoPE(目前看起来这个最强,不用finetune);

问题2解决方案:softmax的时候加一个 log512n 系数;

重点阅读(建议全文背诵):

参考阅读:

Parallel Context Window

空门:[PoC] Parallel Context Windows

Attention

Attention的改进目的:

Attention的Taxonomy:

默认会用上的两个Attention技术:Multi-Query Attention、Flash Attention

1. Multi-Query Attention

Multi-Query Attention核心是kv不搞多头,省了不少参数量。现在用的很多,PaLM、ChatGLM2、Falcon等就是用的这个。

2. Grouped-Query Attention

llama2用了

致Great:【LLM系列之LLaMA2】LLaMA 2技术细节详细介绍!

Andy Yang:为什么现在大家都在用 MQA 和 GQA? (这篇系统的讲了MHA MQA GQA的关系和作用)

3. FlashAttention

FlashAttention也很火,Meta推出的开源大模型LLaMA,阿联酋推出的开源大模型Falcon都使用了Flash Attention来加速计算和节省显存。核心是用分块softmax等价替代传统softmax,节约HBM,高效利用SRAM,省显存,提速度。

关键词:HBM、SRAM、分块Softmax、重计算、Kernel融合。

4. 线性Attention

RWKV、RetNet

FFN激活函数

其主要任务是处理来自Attention层的信息。
Attention机制能够处理词语之间的相互关系,但是它无法进行更为复杂的、非线性的数据处理。
而FFN层可以在每个Transformer模块中增加非线性处理能力,增强模型的整体表达能力。
在原始的Transformer模型中,FFN层通常由两个线性变换和一个非线性激活函数(如ReLU或GELU)组成。
以下是一些FFN层的变种:

ReLU、GELU、GLU、GeGLU、Swish、SwiGLU (套娃即视感)

可以看到SwiGLU最强,所以现在大部分都用这个了。

Normalization

【图片】

微软提出了Group Norm(RetNet)

Nguyen和Salazar(2019)发现相对于Post-LN,Pre-LN能够提升Transformer的稳定性。然而,Pre-LN在底层的梯度往往大于顶层,导致其性能不及Post-LN。

Transformer替代品

1. RetNet

2. rwkv

训练

整体流程

分布式计算

DeepSpeed

  1. Data Parallel(DP、DDP)、Model Sharding
  2. DDP Ring-AllReduct基本概念:All-reduce = Scatter Reduct + All Gather
  3. Fully Sharded Data Parallel (FSDP):代表ZeRO,核心就是在DDP的基础上,用RingAllReduce把优化器状态(zero1)、梯度(zero2)、模型参数(zero3)全都shard掉。

Megatron

Activation Recomputation

也叫gradient checkpointing,通过牺牲额外的计算成本来减少内存成本。其工作原理是反传算梯度的时候重新计算某些层的activations,而不是将它们存储在显存中。显存减少的程度取决于选择哪些层做checkpointing。

推理

采样、temperature、Top-K

KV Cache

Transformer推理性能优化技术很重要的一个就是K V cache,能否通俗分析,可以结合代码?

评测

Isaac 张雯轩:LLM Evaluation 如何评估一个大模型?

优化器

AdamW、Adafactor

数据清洗

分词

BPE、wordpiece、sentencepiece

sentencepiece最大的优势:用unicode替代字符作为最小单元,不仅统一语言,还能实现可逆转换(tokenize后可以detokenize回原文)。

吃果冻不吐果冻皮:大模型词表扩充必备工具SentencePiece

预训练

Scaling Laws

SFT

深度强化学习

PG算法入门

核心需要理解: τ 、 R(τ) 、loss计算、蒙特卡洛、PPO。

RLHF

多模态LLM

GPT-4的多模态能力是如何实现的?

垂直领域大模型

👉如何学习AI大模型?👈
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值