Arganzheng's Blog

stay hungry, stay foolish

深度学习基础:从反向传播到残差(总纲)

Deep Learning Foundations: From Backpropagation to Residual Connections

内容简介 《深度学习基础:从反向传播到残差》是一组共六篇的系列文章,对应《AI 算法工程师学习地图》的第 L3 层。它面向已经有 L0 数学、L1 工具、L2 经典机器学习基础、准备进入 Transformer 与 LLM 的读者,讲的是训练一个深度神经网络时会发生什么、为什么、以及怎么算出来。 它回答的问题是: 一个几十层甚至上百层的网络,为什么能训、什么时候不能训、训不动的时候该看哪个数字? 深度学习教材通常按”模型”组织:感知机、MLP、CNN、RNN、Transformer。这个系列按训练现象组织:梯度怎么流、为什么会消失或爆炸、优化器在做什么、为什么参数比样本多却不过拟合、卷积与循环各解决了什么又败在哪里。每一个现象都用三步处理——推导(公...

LLM 时代的经典机器学习(06):评估——从混淆矩阵到 judge 的一致性

Evaluation: Confusion Matrix, Thresholds, AUC, Calibration, Paired Tests and Multiple Comparisons

一切结论是否成立的最后一道关是评估。”过滤器准确率 95%”、”奖励模型准确率 78%”、”judge 与人类一致率 80%”、”在 20 个 benchmark 中的 12 个上领先”——这些数字各自在说什么、够不够、哪里会骗人,经典机器学习的评估方法论有一套完整的答案。这一篇从混淆矩阵的四个数讲起,到阈值的权衡、AUC、类别不平衡、校准、交叉验证、配对检验、多重比较,每一个都跑一个数字出来,并指出它在 LLM 评测里的陷阱。 全篇的核心问题是: 过滤器”准确率 95%”是什么意思?judge 与人类”一致率 80%”够不够?”20 个 benchmark 领先 12 个”算不算? 一、总览 1. 一张表 分类器好不好 混淆矩阵 → 精...

LLM 时代的经典机器学习(05):去重——MinHash 与 LSH 的概率

Deduplication: Jaccard, MinHash as an Unbiased Estimator, and the LSH S-Curve

预训练语料里有大量重复:同一篇文章的几十个转载、改了几个词的模板页、复制粘贴的代码。重复的数据让模型记忆而不是学习,去重是数据工程里收益最确定的一步。精确去重(对整段文本取 hash)只能抓完全一样的副本;近似去重要处理”大部分一样”的文本,标准做法是 MinHash + LSH。它是无监督学习里”相似度估计”的一个漂亮应用——三个经典元素(集合相似度、随机化估计、用概率分桶换掉两两比较)没有一个是深度学习,但在 15T token 上做去重,没有它寸步难行。这一篇把它的概率算清楚。 全篇的核心问题是: 两段文本”相似”到什么程度算重复?MinHash 的阈值怎么定?为什么不用两两比较? 一、总览 1. 三步 文本 → n-gram 集合 ...

LLM 时代的经典机器学习(04):无监督——K-Means、PCA 与 embedding 聚类

Unsupervised Learning: K-Means, DBSCAN, PCA and What a Corpus Looks Like in Embedding Space

前两篇的模型都需要标签。无监督学习没有标签,只有 \(x\),要回答的问题是”这批数据里有什么结构”。在 LLM 的数据工程里它回答两个具体问题:这个语料里有哪些主题、各占多少(聚类),以及4096 维的 embedding 怎么看(降维)。这一篇讲三个工具——K-Means、DBSCAN、PCA——各自的算法、假设与失效方式,并把 PCA 与 L0 第三篇的 SVD 对上。 全篇的核心问题是: 怎么知道一个语料里有什么主题?4096 维的 embedding 怎么”看”? 一、总览 1. 三个工具 K-Means 分成 k 簇、每簇一个中心,反复"分配 → 更新中心" 假设簇是球形等大的;k 要自己选 DBSCAN 按...

LLM 时代的经典机器学习(03):分类器一家——从朴素贝叶斯到梯度提升

A Family of Classifiers: From Naive Bayes to Gradient Boosting, and Why Data Filters Use Small Models

预训练数据工程是用分类器决定哪些文本进训练集:质量分类器、语言识别、安全分类器、领域分类——每一个都是经典的文本分类任务。而做这些分类的模型不是 LLM,是 fastText、逻辑回归、梯度提升树。原因不是它们效果更好,而是一道算力题:用 8B 模型给 15T token 打分,要花掉训练这个模型三分之一的算力。这一篇把六个经典分类器放在同一份数据上比一比、各用一句话说清它们的假设与失效方式,然后算这笔账。 全篇的核心问题是: 预训练数据过滤为什么用 fastText 与线性模型而不是 LLM?表格数据为什么至今是 GBDT 的天下? 一、总览 1. 六个分类器 线性边界 逻辑回归 · 朴素贝叶斯(特征独立)· 感知机 / 线性 SVM 弯...

LLM 时代的经典机器学习(02):线性回归与逻辑回归——奖励模型的骨架

Linear and Logistic Regression: The Skeleton of Every Classification Head and Every Reward Model

两个最简单的模型——线性回归(预测一个数)与逻辑回归(预测一个概率)——是后面一切的原型。每一个神经网络的最后一层都是它们之一:前面所有层在做特征提取,最后一层是一个线性回归或逻辑回归。奖励模型也不例外:一个 8B 的 LLM 提特征,上面接一个 \(4096 \to 1\) 的线性头,Bradley-Terry 的 loss 就是逻辑回归的 loss 作用在两个回答的分差上。看清这一点,奖励模型的一切性质——需要多少数据、怎么过拟合、准确率上限在哪——都可以用逻辑回归的语言想。 全篇的核心问题是: 奖励模型和逻辑回归是什么关系?为什么它的准确率到 80% 就上不去了? 一、总览 1. 两个模型一条线 线性回归 ŷ = wᵀx + b ...

LLM 时代的经典机器学习(01):什么是学习——划分、泛化、过拟合与偏差-方差

What Is Learning: Splits, Generalization, Overfitting and the Bias-Variance Decomposition

“机器学习”三个字里最重要的是”学习”,而学习的定义只有一句话:从有限的样本推断没见过的样本。一个模型把训练数据全背下来不叫学习,能在没见过的数据上表现好才叫——这个能力叫泛化。这一篇用一个能画出来的例子(30 个点拟合一条正弦曲线)建立整个算法地图最基础的四个概念:数据怎么划分、什么是过拟合与欠拟合、误差从哪来(偏差-方差)、什么是正则化。然后把它们对到 LLM 上:benchmark 污染是测试集泄漏,reward hacking 是在一个过拟合的评估器上做优化。 全篇的核心问题是: benchmark 涨了 5 个点,怎么知道不是测试题泄漏?奖励模型的准确率 80%,为什么 RL 还会钻空子? 一、总览 1. 四个概念一张图 数据 ──划分─...

LLM 时代还要学经典机器学习吗:只讲它在哪里重现(总纲)

Classical Machine Learning in the LLM Era: What Survives and Where It Reappears

内容简介 《LLM 时代的经典机器学习:只讲它在哪里重现》是一组共六篇的系列文章,对应《AI 算法工程师学习地图》的第 L2 层(机器学习基础)。它面向读完 L0 数学与 L1 工具箱、准备进入深度学习与 LLM 的读者,讲的是经典机器学习里那些在大模型时代仍然每天在用的概念——它们是什么、在 LLM 工作里以什么形态重现、以及一个能算出来的数字。 它回答的问题是: LLM 工作里的哪些问题其实是经典机器学习的老问题?它们的经典解法在 LLM 上还成立吗? “经典机器学习”——线性模型、SVM、决策树、K-Means、交叉验证——在大模型时代最常被跳过。理由听起来成立:今天没有人用 SVM 做 NLP 了,Transformer 也不需要特征工程。但...

PyTorch 深度实践(10):PyTorch 的工程体系——一次改动如何安全地到达用户

The Engineering System of PyTorch: How a Change Travels Safely from Commit to Production

前九篇讲的是 PyTorch 是什么、怎么运行:Tensor 怎么存、Autograd 怎么记、算子怎么分发、Kernel 怎么写、编译器怎么融合、性能怎么测、多卡怎么通信。每一篇都在描述一个已经存在、并且正确运行的系统。 这一篇换一个问题:它是怎么做到一直正确、一直可用的? PyTorch 有两千多个算子、每个算子有十几种 dtype、两个以上后端、无数种 shape 和 stride 组合,还要在 eager、torch.compile、Meta、Autograd、分布式等模式下行为一致。每天有几十个 PR 合入主干,每个 PR 都可能碰到其中任何一层;每三四个月发一个版本,几百万用户的代码、几十个硬件后端、无数已保存的 checkpoint 都要在新版本上...

PyTorch 深度实践(09):分布式 PyTorch

Distributed Training in PyTorch: Collectives, DDP, FSDP, TP, PP, CP and EP

前八篇都在一张卡上。第八篇末尾算过一笔账:Adam 训练下每个参数的静态显存是 16 字节,7B 参数的模型仅参数、梯度和优化器状态就要 112 GB,激活值还没算。一张 80 GB 的卡放不下。即使放得下,第八篇案例里那个 38M 参数的小模型在单卡上跑到 2207 samples/s 之后,GPU 已经饱和——再要快,只能加卡。 这一篇回答加卡之后的问题: 当一张卡放不下模型或跑不完数据时,PyTorch 如何把计算和状态切分到多个设备,并让通信与计算重叠? 分布式训练的资料通常按 API 组织:DDP 一章、FSDP 一章、张量并行一章、流水线并行一章。这样读完会记住一堆包装类,却答不出”为什么 FSDP 比 DDP 多 50% 通信量”或者”张...

×