【大模型】7 天 AI 大模型学习

7 天 AI 大模型学习 Day 2

今天是 7 天AI 大模型学习的第二天 😄,今天我将会学习 Transformer 、Encoder-based and Decoder-Based LLMs 等 。如果有感兴趣的,就和我一起开始吧 ~
课程链接2025年快速吃透AI大模型,7天学完,让你面试少走99%弯路!!

文章目录

  • [7 天 AI 大模型学习 Day 2](#7 天 AI 大模型学习 Day 2)
  • 前言
  • [BPE ------ Byte Pair Encoding Tokenizer](#BPE —— Byte Pair Encoding Tokenizer)
  • Attention
    • [三种不同的 Attention](#三种不同的 Attention)
    • [基本的 Attention 实现方式](#基本的 Attention 实现方式)
    • [Encoder Self-Attention](#Encoder Self-Attention)
    • [Decoder Self-Attention](#Decoder Self-Attention)
    • [Encoder-Decoder Self-Attention](#Encoder-Decoder Self-Attention)
    • [Masked Matrix 如何融合到不同实现中](#Masked Matrix 如何融合到不同实现中)
    • 总结三种Attention
    • [Layer Normalization](#Layer Normalization)
  • [Decoding - output the next word](#Decoding - output the next word)
    • [Greedy Decoding](#Greedy Decoding)
    • [Beam search](#Beam search)
    • [Label smoothing](#Label smoothing)
      • [如何计算 loss](#如何计算 loss)
      • [什么是Label smoothing](#什么是Label smoothing)
  • [Encoder and Decoder Based Models](#Encoder and Decoder Based Models)
    • [Decoder Only](#Decoder Only)
    • [Pretrain & Fine-tune (SFT)](#Pretrain & Fine-tune (SFT))
    • [Encoder-Based LLM Model:BERT](#Encoder-Based LLM Model:BERT)
  • [Advance Topics](#Advance Topics)
    • [Absolute Position Embedding](#Absolute Position Embedding)
    • [Rotary Position Embedding 旋转编码](#Rotary Position Embedding 旋转编码)
    • [Flash Attention](#Flash Attention)
  • 作业

前言

今天,我们会学习如下内容:

  1. Transformer
  • BPE
  • Attention
  • Layer Normalization
  • 输出单词 ------ Greedy Decoding / Beam Search
  • Label smoothing
  • Code for Transformer
  1. Encoder-based and Decoder-Based LLMs
  • Encoder-based LLM
  • Decoder-Based LLM
  1. 其他
  • 旋转编码 Rotary Position Encoding
  • Flash Attention
  1. 作业

BPE ------ Byte Pair Encoding Tokenizer

BPE(Byte Pair Encoding) 是一种基于频率的分词(tokenization)算法,最初用于数据压缩,但后来被广泛应用于自然语言处理(NLP)中,尤其是在词汇表构建和子词级别的分词任务中。BPE 的核心思想是通过迭代地合并频率最高的字节对(或字符对),以生成一个新的、更简洁的词汇表,从而优化文本的表示。它通常用于处理语言模型中的稀有词汇和未登录词(OOV,Out-Of-Vocabulary words)问题。

BPE 被广泛应用于现代 NLP 模型中,尤其是神经网络和预训练模型(如 BERT、GPT 等)的训练过程中。例如,GPT-2 和 GPT-3 就是采用了类似 BPE 的子词分词方法来处理输入文本。

BPE 通过减少稀有词汇的数量,并将词汇表限制在较小的规模内,从而提升了模型的训练效率和文本生成能力。

Vocabulary(词汇表)

Vocabulary 是指模型所能理解和使用的所有词汇或符号的集合。在自然语言处理(NLP)中,词汇表通常是指一组所有可能的token(分词单位)。token可以是单词、子词、或者字符,具体取决于采用的分词策略。

词汇表的构建通常是基于一份大型文本数据(corpus),通过统计频率,选择出现次数较多的词汇构建一个有限的词汇集合。词汇表的大小(例如10,000个词、50,000个词等)通常是根据特定任务和计算资源的需求来设定的。

词汇表包含的信息:通常,每个token在词汇表中都有一个唯一的编号,称为词ID,模型可以使用这些ID来表示文本中的各个token。
Tokenization(分词)

Tokenization 是指将原始文本(通常是句子或文档)切分成一系列有意义的tokens(单位),这些token可以是单词、子词或字符。具体的tokenization策略决定了最终文本如何被分解成token。

例如,对于句子 "I love natural language processing",可能的token化结果有:

基于单词的tokenization:['I', 'love', 'natural', 'language', 'processing']

基于子词的tokenization:['I', 'lov', 'e', 'natu', 'ral', 'lan', 'guage', 'pro', 'cessing'](使用像BPE这样的算法)

基于字符的tokenization:['I', ' ', 'l', 'o', 'v', 'e', ' ', 'n', 'a', 't', 'u', 'r', 'a', 'l', ...]

tokenization 的目的是将原始文本转化为计算机可以处理的、更小的单元。词汇表在这个过程中起着关键作用。

核心

  • 根据数据做 tokenize
  • Subword Tokenization
  • 英语上可以包含 subword , -est OR -er

构造过程

  • 语料库作为输入,从而学习词库
  1. 初始化:首先,将输入文本拆分成字符级别的token(符号)。例如,输入句子"low"会被拆分成 ['l', 'o', 'w']。

  2. 统计频率:计算文本中所有字符对的出现频率。例如,在句子"low"中,字符对可能是 (l, o) 和 (o, w)。

  3. 合并最频繁的字符对:找到出现频率最高的字符对,并将它们合并为一个新的单一符号。例如,如果字符对 (l, o) 是最常见的,就将其合并成一个新的 token (lo)。

  4. 重复以上过程:继续合并最频繁的字符对,直到达到预设的词汇表大小或满足其他停止条件。

  5. 最终词汇表:合并的结果将形成一个新的词汇表,这个词汇表是由频繁的子词或字符对组成的。

重复上述过程,词库中词越来越多

例:一个简单的 corpus

Corpus(复数形式:Corpora)是指一组有组织的、用于语言学研究或自然语言处理(NLP)任务的文本数据集合。它可以包括任何形式的语言数据,如书籍、文章、对话、网页内容等,通常以原始文本或经过标注的文本形式存在。Corpus 通常用于语言模型的训练、语法分析、词汇统计等任务。

  1. er 出现次数最多,将 er merge 为一个新的 token,加入 vocabulary 中

得到 vocabulary 后,根据 vocabulary 做 tokenization 。在处理文本时,使用构建好的词汇表将原始文本转化为token(通常是数字ID),并将每个token映射到词汇表中的一个元素。这是tokenization的核心过程。


Attention

三种不同的 Attention

基本的 Attention 实现方式

输入 x ------ > 内积 WQ WK WV ------> 得到 Q K V 矩阵

  • attention score 矩阵
python 复制代码
def compute_attention_score(Q, K, V, mask, dim):
	return Q * K^T / dim ^ 1/2 * V

Encoder Self-Attention

  • 对每个词都需要计算其他词对它的影响

Decoder Self-Attention

  • 对每个词,只能看前一个词对它的影响

Encoder-Decoder Self-Attention

Masked Matrix 如何融合到不同实现中

  • M如何定义 ? 见上文
  • Padding 的影响
  • 有 Padding 情况下,mask 矩阵如下

padding 位置为 mask 矩阵值为负无穷

总结三种Attention

------ 微调部分基础

Layer Normalization

作用:

  • 归一化
  • 数值区间控制
  • 稳定学习 stable learn

对每一行做一个 normalize

  • 定义
  • normalize 计算过程
  • 最终输出格式

Decoding - output the next word

  • 将最后的概率最大的单词输出

Greedy Decoding

将概率最大的单词输出

问题:

  • 概率最大的不一定是最好的
  • 前面的输出会影响后面的输出,如果前面输出错了,对后面影响大

Beam Size(3) <= Top 3 ------ K = 3

  • 不只是考虑最好的一个,而是考虑最好的三个
  • 时间复杂度 K^2 * T (length)

    ------ 通过控制 Decoder 可以进行模型控制 , 模型优化

Label smoothing

如何计算 loss

什么是Label smoothing

  • 希望得到的 y 的预测值就是和真实的 y 一样

  • 逆推 会出现数值的 unstable ------ 训练的 unstable ------ 如何解决

  • Label smoothing - 让原有的向量不那么极端

比较好的代码 : https://colab.research.google.com/github/harvardnlp/annotated-transformer/blob/master/AnnotatedTransformer.ipynb#scrollTo=9a429510


Encoder and Decoder Based Models

  • 主要还是 Decoder-Based

Decoder Only

self-supervised learning

Pretrain & Fine-tune (SFT)

  • Fine-tune : 只计算 output 的 loss

Encoder-Based LLM Model:BERT

逻辑:完形填空 , mask 掉一些单词,让 bert 去填空

模型本身不是为生成问题而生的,所以没有 GPT 时候生成。对一些分类任务效果好。


Advance Topics

Absolute Position Embedding

问题:随着 m 的增大,位置变化没有规律

Rotary Position Embedding 旋转编码

能刻画出一些相对的位置差异

  • 如何计算
  • 扩展到高纬

Flash Attention

优点:

  1. 计算快
  2. 节省显存
  3. 精准注意力
  • 减少在 HBM 和 SRAM 中切换到时间

  • 核心思想

    每个模块单独处理,减少和显存的操作

作业

  1. 读懂代码,在少量数据上训练 + finetune <github.com/karpathy/nanoGPT/tree/master>
  2. 读懂文章及其开源代码 https://arxiv.org/abs/2309.10305
相关推荐
cooldream200915 分钟前
华为云Flexus+DeepSeek征文|基于华为云Flexus X和DeepSeek-R1打造个人知识库问答系统
人工智能·华为云·dify
Blossom.1183 小时前
使用Python和Scikit-Learn实现机器学习模型调优
开发语言·人工智能·python·深度学习·目标检测·机器学习·scikit-learn
DFminer5 小时前
【LLM】fast-api 流式生成测试
人工智能·机器人
恰薯条的屑海鸥5 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十六期-SSRF模块)
数据库·学习·安全·web安全·渗透测试·网络安全学习
郄堃Deep Traffic5 小时前
机器学习+城市规划第十四期:利用半参数地理加权回归来实现区域带宽不同的规划任务
人工智能·机器学习·回归·城市规划
喜欢吃燃面5 小时前
C++刷题:日期模拟(1)
c++·学习·算法
GIS小天6 小时前
AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月7日第101弹
人工智能·算法·机器学习·彩票
阿部多瑞 ABU6 小时前
主流大语言模型安全性测试(三):阿拉伯语越狱提示词下的表现与分析
人工智能·安全·ai·语言模型·安全性测试
cnbestec6 小时前
Xela矩阵三轴触觉传感器的工作原理解析与应用场景
人工智能·线性代数·触觉传感器
不爱写代码的玉子6 小时前
HALCON透视矩阵
人工智能·深度学习·线性代数·算法·计算机视觉·矩阵·c#