算是笔记
基础概念
卷积神经网络 (CNN):AI 的“眼睛” 
卷积神经网络 (Convolutional Neural Networks, CNN) 是让计算机拥有“视觉”的核心技术。它们最擅长处理像图像这样的网格数据。
-
它的工作原理: 想象一下,你手里拿着一个小方框(我们称为“卷积核”或“过滤器”),在一张大照片上滑动。每滑动到一个位置,你就只关注这个方框里的内容,寻找特定的特征,比如边缘、线条或颜色斑点。
-
层层递进: CNN 有很多层。第一层可能只识别简单的线条;第二层将线条组合成形状(如圆圈、方形);更深的层则能识别复杂的物体(如猫的耳朵、汽车的轮子)。
生成式 AI (Generative AI):AI 的“创造力” 
生成式 AI 不仅仅是分析现有的数据,它的目标是创造全新的数据。
-
它的工作原理: 这种 AI 模型阅读了海量的书籍、观看了无数的画作,学习了这些数据背后的“规律”或“概率分布”。一旦学会了这些规律,它就可以根据你的提示(Prompt),预测并生成新的文字、图像甚至视频。
-
不仅仅是复制: 它不是在数据库里搜索现成的答案,而是像人类艺术家一样,基于它学到的知识,一笔一画(或一个字一个字)地构建出从未存在过的新内容。
两者的区别和结合问题
核心区别:怎么处理信息?
-
CNN (卷积神经网络) —— 专注“局部”

- 逻辑: 它的强项是提取特征。就像我们之前说的,它拿个放大镜一块一块地扫描图片。它假设“邻居很重要”(比如眼睛的像素旁边通常是鼻子的像素)。
- 局限: 因为它太关注局部,有时候会忽略整体的关系。比如,如果你把一张人脸照片里的嘴巴和眼睛位置互换,传统的 CNN 可能依然会识别出“这是一张人脸”,因为它检测到了眼睛和嘴巴,但没太在意它们的位置对不对。
-
生成式大模型 (基于 Transformer) —— 专注“全局关联”

-
逻辑: 现代生成式 AI(如 GPT, Gemini)使用的是 Transformer 架构。它的绝招叫注意力机制 (Self-Attention)。
-
能力: 它不再受限于“邻居”。它能同时关注到输入的所有信息,并计算它们之间的远距离关系。
-
例子: 在处理句子“苹果很好吃,因为这种水果很甜”时,它能瞬间把开头的“苹果”和后面的“水果”联系起来,哪怕它们中间隔了很多字。
-
多模态:它们如何结合? (Topic 3)
现在的多模态模型(能看图说话的 AI),往往就是把这两者结合起来的产物。
-
第一步 (眼睛): AI 可能会用一个 CNN(或者类似的视觉编码器)来“看”图片,提取出关键的视觉特征(线条、形状、物体)。
-
第二步 (大脑): 这些特征被转化成数据,喂给 Transformer(大语言模型)。模型利用这些视觉信息,结合它的语言能力,生成一句描述:“这只猫坐在沙发上”。
Transformer 架构的基础信息和自身意义
Transformer 是 Google 在 2017 年提出的一种深度学习模型。在此之前,AI 处理语言像是在“读流水账”,读到后面容易忘掉前面。而 Transformer 能够同时“看到”整个句子,并理解每个词与其他所有词之间的关系,无论它们相隔多远。
Transformer 架构的机制和架构
核心机制:自注意力 (Self-Attention)
在句子“这只动物没有穿过街道,因为它太累了”中:
-
当模型读到 “它” 这个词时,自注意力机制会计算它与句中所有其他词的关联度。
-
因为它看到了后面的 “累”(通常形容生物),它会给 “动物” 打一个极高的分数,而给“街道”打低分。
-
这就叫“理解上下文”:模型不是死板地翻译,而是通过这种数学上的“打分”,搞清楚了词与词之间真正的指代关系。
整体结构:编码器与解码器 (Encoder & Decoder) 
Transformer 最初是为了做翻译任务设计的(比如把英语翻译成法语)。它的结构就像一个超级翻译官,分为两半:
-
编码器 (Encoder) —— “负责阅读理解的”

-
作用: 它负责把输入的信息(比如一句英语)嚼碎,理解里面的语法、语义和上下文,然后把它压缩成一堆数字(向量)。
-
比喻: 就像你听别人说话时,不只是听声音,而是在脑子里把对方的意思提炼出来。
-
-
解码器 (Decoder) —— “负责开口生成的”

-
作用: 它拿着编码器给它的“意思”,开始一个字一个字地生成输出(比如生成的法语,或者生成的下一段话)。它每生成一个字,都会回头看之前生成的内容,确保连贯。
-
比喻: 就像你理解了对方的意思后,组织语言把话讲出来。
-
Transformer 架构的数据处理流程
我们将整个过程拆解为三个核心阶段:数据输入(把字变成数) -> 模型内部处理(数学计算) -> 训练循环(修正误差)。
这是每一秒钟都在 GPU 里发生的真实过程:
第一阶段:数据输入 —— 从文字到“向量” 
计算机不认识字,它只认识数字。所以第一步是翻译。
-
Tokenization (分词):
-
输入句子:“我喜欢AI”。
-
模型把它切成小块(Token):
["我", "喜欢", "AI"]。 -
查字典(词表),把它们变成 ID:
[105, 2044, 89]。
-
-
Embedding (嵌入) —— 这一步最关键!

-
仅仅把“我”变成数字
105是不够的,因为105和106没有逻辑关系。 -
模型会把每个 ID 变成一个长长的向量(Vector)。这就像给每个词发了一张“身份证”,上面写着几百个特征数据。
-
数据过程: 比如“国王”这个词,可能会变成
[0.9, 0.1, -0.5, ...](代表:男性、有权力、人类...)。 -
神奇之处: 在这个数学空间里,国王 - 男人 + 女人 ≈ 王后。意思相近的词,在空间里的距离也很近。
-
-
Positional Encoding (位置编码):
-
因为 Transformer 是同时看所有词(不像人类按顺序读),它不知道“我打你”和“你打我”的区别。
-
所以,我们要给每个词的向量加上一个代表位置的数字,告诉模型哪个词在前,哪个在后。
-
第二阶段:模型内部 —— 著名的 Q, K, V 矩阵运算 
数据现在是一堆矩阵(数字表格)了,它们进入了 Transformer 的核心组件:自注意力层 (Self-Attention)。
这里发生了什么?模型在做一次巨大的“数据库查询”。对于句子里的每个词,它都会生成三个向量:
-
Query (Q - 查询): 我在找什么?
-
Key (K - 键): 我有什么特征?(像图书馆书脊上的标签)
-
Value (V - 值): 我的实际内容是什么?
数据流动过程:
-
计算相关性 (Attention Score):
-
模型拿词 A 的
Q去和所有其他词的K做点积(乘法)。 -
如果结果很大,说明这两个词关系紧密。
-
例子: “它”的
Q和 “猫”的K相乘,得分很高;和 “桌子”的K相乘,得分很低。
-
-
加权求和:
-
根据刚才的得分,模型把所有词的
V(内容)加起来,形成一个新的向量。 -
结果: 原来代表“它”的向量,现在融合了“猫”的信息,变得更丰富了。
-
第三阶段:训练循环 —— 它是怎么学会的? (Backpropagation) 
这是你最关心的部分:训练的每一步是怎么做的?
这是一个不断的**“猜谜 -> 被打手板 -> 改正”**的过程。
场景: 我们要把一句话喂给模型训练 —— “天空是[蓝]色的”。 我们遮住“蓝”字,让模型去猜。
Step 1: 前向传播 (Forward Pass) —— 瞎猜
-
数据经过亿万次矩阵乘法(上面提到的 QKV 计算),最后模型输出一个概率列表。
-
模型输出: 它可能给“绿”字 60% 的概率,给“蓝”字 10% 的概率。
-
实际答案: “蓝”应该是 100%。
Step 2: 计算损失 (Loss Calculation) —— 算账
-
我们要用一个数学公式(通常是交叉熵损失函数 Cross-Entropy Loss)来衡量模型错得有多离谱。
-
因为模型猜“绿”但也猜了“蓝”,误差可能是一个数字,比如
Loss = 2.5。如果它直接猜中“蓝”,Loss就会接近0。
Step 3: 反向传播 (Backward Pass) —— 找锅 ![]()
-
这是 AI 训练最神奇的一步。
-
既然算出了
Loss = 2.5,我们需要知道:是谁导致了在这个错误? -
计算机通过微积分(链式法则),从输出端往回推导,算出每一层、每一个参数(权重)对这个错误“贡献”了多少。这就是梯度(Gradient)。
-
通俗说: 系统发现,“哦,是第 3 层的那个矩阵里的参数太大了,导致它偏向‘绿色’。”
Step 4: 参数更新 (Optimizer Step) —— 改正
-
既然知道哪个参数错了,优化器 (Optimizer)(比如 Adam)就会稍微修改那个参数。
-
操作: 把它变小一点点。
-
目标: 下次再看到“天空是...”的时候,猜“蓝”的概率会稍微高一点点。
总结:数据到底经历了什么?
-
输入: 文本 -> 查表变成 -> 向量。
-
计算: 向量在几百层网络中流动,不断混合上下文信息(QKV 运算)。
-
输出: 变成一个概率分布(字典里几万个词,每个词出现的概率)。
-
纠错: 算出误差 -> 算出梯度 -> 修改所有参数。
这个过程,在训练像 GPT-4 这样的大模型时,会重复数万亿次。
Transformer 架构数据处理流程中的6个疑惑
1. 详解 "Embedding":把字典变成“地图” 
Embedding (嵌入) 的核心目标是:把离散的 ID (整数) 变成连续的向量 (坐标)。
-
为什么不能直接用 ID?
-
如果你用 ID:
苹果(10),香蕉(11),电视(500)。 -
计算机觉得
10和11很近,所以苹果和香蕉很像(这没问题)。 -
但在数学上,
500是10的 50 倍,难道电视是苹果的 50 倍吗?这显然不合理。ID 只是编号,没有语义关系。
-
-
Embedding 是怎么做的?
-
我们给每个词分配一个高维空间里的坐标(比如 768 维,或者 GPT-3 的 12288 维)。
-
想象一个巨大的多维空间,训练开始时,这些坐标是随机生成的。
-
随着训练进行,模型发现“苹果”和“香蕉”经常出现在类似的上下文中(比如“吃”、“甜”),于是通过反向传播,它会把这两个词的坐标拉得越来越近。
-
-
结果是什么?
-
Embedding 层就像一个巨大的查找表(Lookup Table)。
-
输入
ID: 10-> 输出向量[0.1, -0.5, 0.9, ...]。 -
在这个空间里,数学运算具有了语义含义:
\vec{v}(\text{King}) - \vec{v}(\text{Man}) + \vec{v}(\text{Woman}) \approx \vec{v}(\text{Queen})
-
2. Q、K、V 的具体逻辑:向量点积 (Dot Product) 
你问到了点子上:Q 乘以 K 到底是什么逻辑?
这里的“乘法”特指向量点积 (Dot Product)。
-
数学公式: \text{Score} = Q \cdot K^T
-
物理意义: 点积是衡量两个向量相似度(方向是否一致)的最佳工具。
-
如果向量 A 和向量 B 指向同一个方向,点积最大(正数)。
-
如果它们垂直(毫无关系),点积为 0。
-
如果它们反向,点积为负数。
-
-
具体流程:
-
查询 (Query): “我想找跟‘我’这个词相关的词。”
-
键 (Key): “我是‘猫’,我的特征标签在这里。”
-
点积运算: Q_{\text{我}} \cdot K_{\text{猫}}。如果这两个向量方向一致(数值大),说明“我”和“猫”在当前语境下关系紧密。
-
Softmax (归一化): 算出所有点积结果后,用 Softmax 函数把它们变成概率(加起来等于 1)。比如
[0.8, 0.1, 0.1]。这意味着模型决定把 80% 的注意力放在“猫”身上。 -
加权求和: 最后用这个概率去乘以 V (Value)。
-
总结: Q \times K 本质上是在做相似度匹配,决定了模型该“关注”哪里。
3. Forward Pass:是基于前几个 Token 猜下一个吗?
是的,对于 GPT (Decoder-only) 这类生成式模型,绝对是这样。
-
自回归 (Autoregressive):
-
输入:
[A, B, C] -
Forward Pass 计算...
-
输出预测:
D(概率最高的那个)。 -
下一步: 把
D加进去,变成[A, B, C, D],再做一次 Forward Pass,去猜E。
-
-
训练时的“作弊” (Teacher Forcing):
-
在训练时,为了效率,我们不会真的一个字一个字生成。我们会把整句话
[A, B, C, D, E]一次性喂给模型。 -
但是! 我们会用一个掩码矩阵 (Mask) 把未来挡住。
-
当模型看到
B时,Mask 挡住了C, D, E,强制它只能利用A和B去猜C。这保证了训练逻辑和推理逻辑的一致性。
-
4. 交叉熵损失 (Cross-Entropy Loss):分数是怎么算出来的?
这是衡量“猜得有多准”的标尺。
-
场景: 模型预测下一个词是“猫”。
-
词表里有 10000 个词。
-
真实标签 (Ground Truth):
ID: 5(猫)。在数学上,这是一个 One-hot 向量:[0, 0, 0, 0, 0, 1, 0, ...](只有第 5 位是 1,其他全是 0)。 -
模型预测 (Prediction): 经过 Softmax 后,模型输出一个概率分布:
[0.01, 0.02, ..., 0.8, ...](它觉得 80% 是猫,20% 是别的)。
-
-
计算公式:
Loss = - \sum (y_{真实} \cdot \log(y_{预测})) -
计算过程:
-
因为真实标签里只有“猫”的位置是 1,其他都是 0,所以公式简化为:只看“猫”对应的那个预测概率。
-
Loss = - \log(0.8)
-
\log(0.8) \approx -0.223
-
Loss = -(-0.223) = 0.223
-
-
直观理解:
-
如果模型猜“猫”的概率是 1.0 (100% 确信),-\log(1) = 0。Loss = 0 (完美,无惩罚)。
-
如果模型猜“猫”的概率是 0.1 (很不确信),-\log(0.1) = 2.3。Loss = 2.3 (惩罚很大)。
-
Loss 的值就是这样算出来的:概率越低,惩罚(Loss)越大。
5. 链式法则与层数:在这个高楼里传话 
-
层数 (Layers) 的概念:
-
Transformer 不是只有一层 Attention,而是堆叠了很多层(像汉堡包)。
-
GPT-3 有 96 层。BERT-Large 有 24 层。
-
数据经过第一层处理,输出结果传给第二层,以此类推。每一层都有自己的参数(权重矩阵)。
-
-
链式法则 (Chain Rule) 在这里的应用:
-
当我们算出 Loss (比如 0.223) 时,我们要把这个“锅”甩给 96 层里的每一个参数。
-
数学逻辑: 这里的“链”就是层与层之间的函数嵌套关系。
y = f_3(f_2(f_1(x))) -
如果我们想求 Loss 对第一层参数 w_1 的导数(梯度),我们就必须通过链式法则:
\frac{\partial Loss}{\partial w_1} = \frac{\partial Loss}{\partial y} \cdot \frac{\partial y}{\partial f_3} \cdot \frac{\partial f_3}{\partial f_2} \cdot \frac{\partial f_2}{\partial w_1} -
直观理解: 梯度从顶层(Loss)像水流一样往下流,流经每一层时,都会根据该层的公式计算出该层参数应该怎么改。这就叫反向传播 (Backpropagation)。
-
6. 自己遮,自己算:自监督学习 (Self-Supervised Learning) 
你的理解完全正确! 这正是大模型能够通过阅读海量数据变聪明的核心原因。
-
无需人工标注:
-
传统的 AI 需要人类一张张标图片:“这是猫”、“这是狗”。这太贵、太慢了。
-
Transformer 使用自监督学习。
-
-
流程:
-
拿来一本书: 比如《哈利波特》。
-
自己出题: 模型随机遮住这句话:“哈利拿起了[MASK]”。
-
保留答案: 系统偷偷记下答案是“魔杖”。
-
预测: 模型基于上下文去猜。
-
比较与优化: 模型猜错了 -> 算 Loss -> 反向传播改参数。
-
重复: 下一句话,继续遮,继续猜。
-
