duangxinBlog

记录 LLM、Agent、文章阅读与项目实践

来源:duangxin/LLM-learing week2/week2_log.md

Language Models are Few-Shot Learners

GPT-3 | Brown et al., 2020 | 【略读】

阅读重点

  • 理解 decoder-only 架构、自回归训练、in-context learning 与 scaling law。
  • GPT-3 的意义不只是模型变大,而是展示了大模型在不改参数的情况下通过上下文完成新任务的能力。
  • 这篇更适合作为理解现代 LLM 范式的背景文章。

笔记

  1. decoder-only 结构适合文本生成任务,因为它本质上就是根据已有上下文预测下一个 token。相比 encoder-decoder,它更专注于自回归生成,也更适合大规模预训练。
  2. GPT 和 BERT 的差别可以粗略理解为:GPT 是知道过去和当前状态去预测开放未来;BERT 是知道前后文去预测被遮挡的中间内容。预测未来更难,也更依赖模型规模和数据规模。
  3. GPT-2 做 zero-shot 时,已经开始用 prompt 让模型直接适配下游任务。GPT-3 进一步展示 few-shot learning:在 prompt 里给几个例子,模型不改参数,只靠上下文“临场学习”。
  4. in-context learning 指的是模型在推理阶段通过上下文中的示例或提示适应新任务,而不是通过梯度更新去微调参数。它让大模型看起来像是在“学习”,但这种学习发生在上下文里。
  5. scaling law 关注模型性能与参数量、数据量、计算量之间的关系。GPT-3 的重要性在于,它让“扩大模型规模会带来通用能力提升”这件事变成了非常有说服力的工程路线。
  6. 论文也暴露了语言模型的局限:大型预训练语言模型缺少来自视频、现实物理交互等其他领域的经验数据,因此对世界背景的理解仍然不充分。这也是后续多模态模型和世界模型方向继续发展的原因之一。

来源:duangxin/LLM-learing week2/week2_log.md

Attention Is All You Need

Transformer | Vaswani et al., 2017 | 【精读】

阅读重点

  • Transformer 是多模态大模型和现代 LLM 的核心骨架。
  • 重点理解:Self-Attention、Multi-Head Attention、Positional Encoding、Encoder-Decoder 结构。
  • 真正要抓住的是 QKV 的直觉含义、注意力矩阵怎么来,以及为什么要 scaled dot-product。

笔记

  1. Transformer 重要,是因为它允许整个序列并行计算,不像 RNN 那样按时间步一个个处理。它真正厉害的地方是:每个 token 都可以直接看到序列中其他位置的信息,因此更容易建模长距离依赖。
  2. Self-Attention 的核心作用是让一个 token 在编码自己时,动态决定应该关注序列中的哪些 token。比如一句话里的“它”到底指代哪个名词,Self-Attention 可以通过相关性自动把更多注意力放到最相关的位置上。
  3. Q、K、V 可以类比为图书馆检索:Query 像“我现在想找什么信息”,Key 像“我这里有什么标签,适不适合被你关注”,Value 像“如果你关注我,我真正提供的内容是什么”。
  4. 注意力矩阵的计算过程是:每个 token 先线性映射得到 Q、K、V;再用 Q 和所有 K 做点积,得到相关性分数;经过 softmax 得到注意力权重;最后用这些权重对所有 V 加权求和。
  5. scaled dot-product 中除以 $\sqrt{d_k}$ 是为了训练稳定。如果向量维度很大,Q 和 K 的点积容易变得很大,softmax 会过早变尖锐,让少数位置权重接近 1,其他位置接近 0,梯度也会变小。
  6. Multi-Head Attention 的价值不是“重复算很多遍”,而是让模型在多个子空间并行学习不同关系模式。有的 head 可能关注语法,有的关注位置,有的关注语义相似度。
  7. Attention 本身不知道顺序。如果没有位置编码,“狗咬人”和“人咬狗”在 token 集合上很像,但意义完全不同。所以 Transformer 必须额外注入位置信息。
  8. Encoder 负责把输入序列编码成上下文表示,可以理解成“先读懂原文”;Decoder 负责基于已生成内容和 Encoder 信息继续生成,可以理解成“边看理解结果边写答案”。后来的 BERT 主要用 Encoder,GPT 主要用 Decoder。
  9. Transformer 的核心不是只能处理文本,而是处理一串 token 的关系。文本可以切成 token,图像可以切成 patch,音频也可以切成时间片;只要能表示成序列,就可以被 Transformer 统一处理。

来源:duangxin/LLM-learing week2/week2_log.md

Deep Residual Learning for Image Recognition

ResNet | He et al., 2015 | 【精读】

阅读重点

  • 残差连接是现代深度网络的基础设计,后续 Transformer、视觉编码器和多模态模型里都能看到类似思想。
  • 重点理解:为什么深层网络会退化,残差连接如何让网络至少更容易学习“不要破坏已有表示”。
  • ResNet 的价值不只是 CV 精度提升,更是提供了一种训练深层网络的工程范式。

笔记

  1. 深层网络退化问题指的是:随着网络深度增加,训练误差反而增大,导致性能下降。这不完全等同于梯度消失。梯度消失强调反向传播时梯度越来越小,前面层几乎学不动;网络退化强调即使理论上更深的网络表达能力更强,实际训练出来的结果也可能比浅层更差。
  2. ResNet 的直觉是:什么都不做,有时候也很重要。直接把输入 x 传到输出 y,网络只需要学会一个恒等映射(identity mapping)就行了;传统网络每一层都被迫“重塑”表示,层数越深越容易把已有信息破坏掉。

解决网络退化问题

  1. ResNet 不再直接让网络层学习期望映射 H(x),而是让这些层学习相对于输入的残差映射 F(x) := H(x) - x,于是原始映射可以写成 F(x) + x。
  2. 这样做的好处是,如果最优映射 H(x) 接近输入 x,那么残差函数 F(x) 就接近 0。拟合“零”通常比拟合精确恒等映射更容易,因为神经网络权重初始化时本来就接近 0;让网络输出接近 0 比让一堆随机初始化的层精确形成单位映射更自然。
  3. 梯度反传本质上是在回答:“最终错了这件事,前面这个参数要负多大责任?”损失函数只给最后总分,梯度则像逐层批注,把误差责任从后一层传给前一层。残差连接提供了更直接的信息路径,也让深层训练更稳定。
  4. 下采样(Downsampling)可以理解为减少数据分辨率或采样率。在视觉网络里,它常用于让特征图变小、通道数变多,从而降低后续计算量并扩大感受野。
  5. 读 ResNet 也能看到深度学习很强的工程属性:很多设计未必来自完全漂亮的理论推导,但它们解决了真实训练中的稳定性、效率和可扩展性问题。残差连接就是这种“让网络更容易训练”的典型设计。

来源:duangxin/LLM-learing week1/week1_log.md

Visual Instruction Tuning

LLaVA | Liu et al., 2023 | 【精读】

阅读重点

  • LLaVA 通过扩展 CLIP 视觉编码器,将视觉特征与大语言模型对齐,实现多模态理解。
  • 重点理解:视觉编码器如何接入 LLM,以及为什么“指令微调”能让模型更像一个可以对话的多模态助手。
  • 这篇文章适合作为理解现代 MLLM 的入口:视觉端负责看,语言端负责说,中间需要一个对齐层把两种表示接起来。

笔记

  1. LLaVA 的核心不是重新训练一个完整的视觉语言大模型,而是把已有的视觉编码器和大语言模型连接起来。视觉编码器通常来自 CLIP,它先把图像变成一组视觉特征,再通过投影层送入语言模型的表示空间。
  2. CLIP 本身可以理解为一种利用图文对构造监督信号的预训练方式:它不需要人为给每张图标注细粒度类别,而是用“图片-文本是否匹配”来学习视觉和语言的共同空间。这也是 LLaVA 能借用 CLIP 作为视觉入口的原因。
  3. LLaVA 后续会做视觉指令微调。这里的微调(fine-tuning)就是在预训练模型基础上,用更贴近任务的数据继续训练;和从零训练相比,它成本更低,也更容易把已有能力迁移到新任务里。
  4. 如果从监督信号角度看,LLaVA 的指令微调更接近全监督学习:训练样本里有图片、问题和目标回答,模型直接学习“看到这张图并收到这个指令后应该怎么回答”。这和 CLIP 那种用图文配对构造监督信号的方式不同。
  5. 读这篇文章时,我更应该关注“连接方式”和“训练阶段”的设计,而不是只看最终效果。因为后续很多 MLLM 的差异,本质上都在回答同一个问题:视觉特征到底应该怎样变成 LLM 能用的上下文。
0%