【LLM学习】2-简短学习BERT、GPT主流大模型

  • 阅读《Attention is All You Need》论文,理解自注意力机制和多头注意力。
  • 学习BERT、GPT等主流LLM的预训练和微调流程。
  • 资源:Hugging Face文档(Hugging Face Transformers)。

一、《Attention is all you need》略读学习

17年NeurIPS的文章[1706.03762] Attention Is All You Need,提出了Transformer。重点可以学习自注意力机制和多头注意力。

1.1研究背景

  • 问题: 传统序列模型(如RNN、LSTM)在处理长序列时存在计算效率低和长距离依赖建模困难的问题。
  • 目标: 提出一种完全基于注意力机制(Attention)的模型,取代循环神经网络(RNN),提升性能和并行性。
  • 贡献: 引入Transformer架构,成为NLP领域的里程碑。

1.2Transformer架构

之前文章有写,这里简单回顾以下其结构:

  • 编码器(Encoder) : 由N个相同层组成,每层包含:
    • 多头自注意力机制(Multi-Head Self-Attention)。
    • 前馈神经网络(Feed-Forward Network, FFN)。
    • 残差连接(Residual Connection)和层归一化(Layer Normalization)。
  • 解码器(Decoder): 类似编码器,但增加一个多头注意力层,用于关注编码器的输出。

1.3自注意力机制(Self-attention)*

  • 定义: 输入序列中的每个词可以关注序列中所有其他词,而不是按顺序处理。
  • 计算 :
    • 使用查询(Query,Q)、键(Key, K)和值(Value,V)向量,通过公式计算注意力权重:
    • dk 是键的维度,根号下dk是为了防止数值过大。
  • 优势 :
    • 捕捉长距离依赖(如句子中远隔词的关系)。
    • 计算复杂度低于RNN,支持并行化。

1.4多头注意力(Multi-Head Attention)*

将注意力分成多个"头"(heads),每个头独立计算注意力,再拼接结果。公式就不写了,就是

多头(Q,K,V)=concat(head1......)

优点就是捕捉不同语义空间的依赖关系,从而提升模型表达能力。

另外,关于位置编码,为了解决Transformer无序列顺序信息问题,所以在输入嵌入中加入位置编码,表示词的位置。形式上是用到了三角函数。

综上,主要是三个优势:并行化、长距离依赖、可拓展性

二、BERT和GPT

两者都是基于Transformer,经常会提问区别(保研面试、求职实习面试等),这里简单说下两者区别:

|----------|----------|----------|------------|
| 模型 | 架构 | 训练方式 | 应用 |
| BERT | 仅Encoder | 双向预训练 | 文本分类、问答等 |
| GPT | 仅Decoder | 自回归预训练 | 文本生成、对话系统等 |

2.1 BERT 预训练 & 微调流程

预训练阶段:

  • 使用大量未标注文本进行两个任务:
    • Masked Language Model(MLM):随机遮蔽部分词,预测被遮的词;
    • Next Sentence Prediction(NSP):判断两句话是否连续。
  • 目标是让模型学习通用的语言表示。

微调阶段:

  • 在预训练模型基础上,针对具体任务(如分类、问答)调整参数;
  • 输入格式根据任务设计(如加一个[CLS]标签用于分类);
  • 最后一层接上任务相关的输出层,进行端到端训练。

2.2 GPT 预训练 & 微调流程

预训练阶段:

  • 使用大量未标注文本,进行自回归语言建模
    • 根据前面的词预测下一个词;
    • 使用Transformer Decoder结构,只能看到前面的上下文。
  • 学习强大的语言生成能力。

微调阶段:

  • 在特定任务(如文本生成、对话)数据上继续训练;
  • 输入任务描述 + 示例,模型自动完成后续内容;
  • 不需要大幅修改网络结构,直接适配下游生成任务。
相关推荐
自信150413057597 分钟前
重生之从0开始学习c++之类与对象(中)
c++·学习
AI_零食10 分钟前
开源鸿蒙跨平台Flutter开发:快递单号批量查询应用
学习·flutter·华为·开源·harmonyos·鸿蒙
四谎真好看12 分钟前
Redis学习笔记(高级篇2)
redis·笔记·学习·学习笔记
鱼鳞_14 分钟前
Java学习笔记_Day26(不可变集合)
java·笔记·学习
AI_零食20 分钟前
开源鸿蒙跨平台Flutter开发:密码生成器应用
网络·学习·flutter·华为·开源·harmonyos·鸿蒙
fengci.32 分钟前
LilCTF2025web(前半部分)
开发语言·网络·学习·php
zhangrelay34 分钟前
蓝桥云课一分钟-绚丽贪吃蛇-后续-cmake
笔记·学习
世人万千丶35 分钟前
Flutter 框架跨平台鸿蒙开发 - AR寻宝探险游戏应用
学习·flutter·游戏·华为·开源·ar·harmonyos
承渊政道38 分钟前
【优选算法】(实战攻坚BFS之FloodFill、最短路径问题、多源BFS以及解决拓扑排序)
数据结构·c++·笔记·学习·算法·leetcode·宽度优先
漠缠39 分钟前
缠论核心公理:走势终完美
学习·程序人生