用通俗易懂的方式讲解:一文讲透主流大语言模型的技术原理细节

大家好,今天的文章分享三个方面的内容:

  • 1、比较 LLaMA、ChatGLM、Falcon 等大语言模型的细节:tokenizer、位置编码、Layer Normalization、激活函数等。

  • 2、大语言模型的分布式训练技术:数据并行、张量模型并行、流水线并行、3D 并行、零冗余优化器 ZeRO、CPU 卸载技术 ZeRo-offload、混合精度训练、激活重计算技术、Flash Attention、Paged Attention。

  • 3、大语言模型的参数高效微调技术:prompt tuning、prefix tuning、adapter、LLaMA-adapter、 LoRA。

本文内容较长,喜欢可以收藏、点赞、关注。

用通俗易懂的方式讲解系列

技术交流

技术要学会分享、交流,不建议闭门造车。一个人走的很快、一堆人可以走的更远。

建立了大模型技术交流群,大模型学习资料、数据代码、技术交流提升, 均可加知识星球交流群获取,群友已超过2000人,添加时切记的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

方式①、微信搜索公众号:机器学习社区,后台回复:技术交流
方式②、添加微信号:mlc2060,备注:技术交流

0. 大纲

图片

1. 大语言模型的细节

1.0 transformer 与 LLM

图片

1.1 模型结构

图片

1.2 训练目标

图片

1.3 tokenizer

图片

1.4 位置编码

图片

1.5 层归一化

图片

1.6 激活函数

图片

1.7 Multi-query Attention 与 Grouped-query Attention

图片

1.8 并行 transformer block

图片

1.9 总结-训练稳定性

图片

2. LLM 的分布式预训练

图片

2.0 点对点通信与集体通信

图片

2.1 数据并行

图片

2.2 张量并行

图片

图片

2.3 流水线并行

图片

2.4 3D 并行

图片

2.5 混合精度训练

图片

2.6 激活重计算

图片

2.7 ZeRO,零冗余优化器

图片

2.8 CPU-offload,ZeRO-offload

图片

2.9 Flash Attention

图片

2.10 vLLM: Paged Attention

图片

3. LLM 的参数高效微调

3.0 为什么进行参数高效微调?

图片

3.1 prompt tuning

图片

3.2 prefix tuning

图片

3.3 adapter

图片

3.4 LLaMA adapter

图片

3.5 LoRA

图片

3.6 实验比较

图片

4. 参考文献

图片

### 大语言模型参数的概念 大语言模型中的“大”主要体现在训练数据集广、模型参数数量庞大以及计算资源需求高[^2]。这些特点使得大语言模型能够捕捉到更加复杂的数据模式,从而具备更强的表达能力和更好的泛化性能。 #### 参数定义 在机器学习领域,特别是神经网络中,“参数”指的是通过训练过程自动调整并用于预测新输入变量输出值的一组数值权重。对于基于Transformer架构的大规模预训练语言模型而言,参数通常指代连接各层节点之间的权值矩阵及其偏置项向量。 #### 工作机制概述 大规模预训练语言模型采用自监督学习方式,在未标注语料库上进行无指导式的特征提取与表示构建: - **编码器(Encoder)**:负责接收原始文本序列作为输入,并将其映射成固定维度的连续空间向量表示; - **解码器(Decoder)** 或者仅使用编码结构来生成下一个词的概率分布; 整个过程中涉及大量可调参组件共同作用完成端到端的任务处理流程。具体来说,就是利用多头注意力机制让不同位置上的单词之间建立联系,进而形成全局依赖关系图谱,再经过前馈神经网络进一步加工提炼有用的信息片段。 ```python import torch.nn as nn class SimpleAttention(nn.Module): def __init__(self, input_dim, hidden_dim): super(SimpleAttention, self).__init__() self.attention_weights = nn.Linear(input_dim, hidden_dim) def forward(self, query, key, value): scores = torch.matmul(query, key.transpose(-2, -1)) p_attn = F.softmax(scores, dim=-1) output = torch.matmul(p_attn, value) return output, p_attn ``` 此代码展示了简化版注意力模块实现思路,实际应用中会更为复杂且高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值