Arganzheng's Blog

stay hungry, stay foolish

LLM 时代的经典机器学习(08):降维——PCA、SVD、t-SNE 与 embedding 的各向异性

Dimensionality Reduction: PCA, SVD, t-SNE / UMAP, and the Anisotropy of Embedding Spaces

上一篇的句向量有 896 维,一个 LLM 的 hidden state 有 4096 维。人看不了 896 维的东西,但可以问两个问题:这些维度里真正有信息的有几个?能不能把它们画在纸上?降维回答这两个问题。主角是 PCA(主成分分析)——找数据方差最大的几个方向,把数据投影上去。它简单到四行代码,但连着三件后面反复出现的事:它就是 L0 第三篇的 SVD;它给出的”有效维度”是 LoRA 低秩假设的直觉来源;用它看一眼 embedding,会发现一个让”余弦相似度 0.8”失去含义的陷阱。 全篇的核心问题是: PCA 的”方差最大的方向”到底在找什么,为什么它等于 SVD?1 4096 维的 embedding 怎么”看”,二维图上的距离能信吗?2 为...

LLM 时代的经典机器学习(07):聚类——K-Means、DBSCAN 与「这批语料里有什么」

Clustering: K-Means, DBSCAN, Hierarchical Clustering, and What a Corpus Looks Like in Embedding Space

前六篇的模型都需要标签。无监督学习没有标签,只有 \(x\),要回答的问题是”这批数据里有什么结构”。聚类是其中最常用的一种:把相似的样本归成一堆。在 LLM 的数据工程里它回答一个具体问题——这个几十 T 的语料里有哪些主题、各占多少、哪些是垃圾。这一篇讲三个聚类算法(K-Means、DBSCAN、层次聚类)各自怎么工作、假设什么、什么时候失效,手写 K-Means 并看它一步步收敛,最后用一个真实的小语料(78 句话过一个 0.5B 的语言模型得到句向量)把”每簇抽几条看看”跑一遍。 全篇的核心问题是: K-Means 那两步为什么一定收敛,收敛到的一定是最好的吗?1 怎么知道一个语料里有什么主题、\(k\) 该取多少?2 一、总览 1. 三个算...

LLM 时代的经典机器学习(06):集成——随机森林、梯度提升与数据质量分类器的算力账

Ensembles: Random Forests, Gradient Boosting, and Why Data Filters Use Small Models

第四篇结尾留下一个问题:决策树方差极大、天生过拟合,怎么办?答案是很多棵树。两种组织方式:随机森林并行地训几百棵各不相同的树再投票——第一篇”集成只降方差”的直接应用;梯度提升则一棵接一棵地训,每棵树专门修正前面所有树加起来还没解释的部分(残差)。后者是至今表格数据上最强的模型(XGBoost、LightGBM、CatBoost 都是它),也是预训练数据工程里质量分类器的常用工具之一。最后算一笔账:给 15T token 打质量分,为什么用这些小模型而不是 LLM 自己。 全篇的核心问题是: 很多棵都过拟合的树平均起来为什么反而不过拟合?1 梯度提升”逐棵拟合残差”到底在做什么,为什么叫”梯度”?2 预训练数据过滤为什么用 fastText 与 GBDT ...

LLM 时代的经典机器学习(05):SVM 与核方法——最大间隔、核技巧与 attention 的远亲

Support Vector Machines and Kernels: Maximum Margin, the Kernel Trick, and Why Attention Is a Kernel Smoother

逻辑回归画一条直线把两类分开,但能分开的直线有无数条,它选的是让交叉熵最小的那条。支持向量机(SVM,support vector machine)换了一个标准:选离两类都最远的那条——间隔最大。这个标准只由离边界最近的几个点决定,其余点删掉也不影响结果。然后是它最漂亮的部分——核技巧:不改变算法,只把”两个点的内积”换成一个相似度函数,直线就变成了任意形状的曲线。核方法在深度学习时代退出了主流,但它的两个思想活得很好:间隔(对比学习的 margin loss)与”相似度加权”(attention 就是一个核平滑器,本文会把两个公式对到一位小数不差)。 全篇的核心问题是: 能分开两类的直线有无数条,SVM 凭什么选”间隔最大”的那条?1 核技巧为什么能不增...

LLM 时代的经典机器学习(04):三个基础分类器——朴素贝叶斯、KNN 与决策树

Three Basic Classifiers: Naive Bayes Computes Probabilities, KNN Finds Neighbours, Decision Trees Ask Questions

前两篇的模型都画一条直线(超平面)把两类分开。这一篇看三个思路完全不同的分类器:朴素贝叶斯用概率算”这个样本更像哪一类”,KNN 什么都不学、预测时找最像的几个训练样本投票,决策树像医生问诊一样一个问题一个问题地问下去。三个都能用几十行 NumPy 写出来,本文各写一个并与 scikit-learn 对数;它们各自的假设与失效方式,也就是后面 SVM(第五篇)与树的集成(第六篇)要解决的问题。 全篇的核心问题是: “朴素”贝叶斯朴素在哪,假设不成立时会怎样?1 一个不训练的分类器为什么在 LLM 工作里到处都是?2 决策树为什么一定过拟合?3 一、总览 1. 七个分类器的地图 本文与后两篇(SVM、集成)共用一张地图。同一份 5000 样本、20 ...

LLM 时代的经典机器学习(03):逻辑回归与奖励模型——每个分类头的原型

Logistic Regression and Reward Models: The Skeleton of Every Classification Head

上一篇的线性回归预测一个数。把这个数过一个 sigmoid 函数压到 0 到 1 之间,它就变成了一个概率——这就是逻辑回归,最简单的分类器。它简单,但每一个神经网络的最后一层都是它:前面所有层在做特征提取,最后一层是一个逻辑回归(两类)或 softmax 回归(多类)。奖励模型也不例外:一个 8B 的 LLM 提特征,上面接一个 \(4096 \to 1\) 的线性头,Bradley-Terry 的 loss 就是逻辑回归的 loss 作用在两个回答的分差上。看清这一点,奖励模型的一切性质——需要多少数据、怎么过拟合、准确率上限在哪——都可以用逻辑回归的语言想。 全篇的核心问题是: 一个预测数的模型怎么变成预测概率的模型,loss 为什么要换成交叉熵?1...

LLM 时代的经典机器学习(02):线性回归——最小二乘、梯度下降与 Ridge / Lasso

Linear Regression: Least Squares, Gradient Descent, and Why Ridge Is Weight Decay

线性回归是最简单的模型:用一条直线(高维时是一个平面)预测一个数。它简单到有闭式解——写出公式就能算出最优参数——但它同时是后面一切的原型:每一个神经网络的最后一层都是它(或它的分类版本),weight decay 就是它的 Ridge 正则,梯度下降、学习率、特征缩放、共线这些深度学习里天天遇到的问题,都可以在它身上用两个参数画出来看清楚。这一篇从 20 个点拟合一条直线开始,把这些概念一个一个建立起来。 全篇的核心问题是: lstsq 那一行到底解了什么方程,为什么它一步就能算出答案?1 梯度下降为什么有时候要几百步、有时候直接发散?2 LLM 训练配置里的 weight_decay=0.1 和一百年前的 Ridge 回归是什么关系?3 一、总览 ...

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

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

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

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

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

内容简介 《LLM 时代的经典机器学习:只讲它在哪里重现》是一组共十篇正文的系列文章,对应《AI 算法工程师学习地图》的第 L2 层(机器学习基础)。它面向读完 L0 数学与 L1 工具箱、准备进入深度学习与 LLM 的读者,讲的是经典机器学习里那些在大模型时代仍然每天在用的概念——它们是什么、在 LLM 工作里以什么形态重现、以及一个能算出来的数字。每个概念都从一个具体的小例子讲起、配一张图、给出十几行能跑的核心代码、再对到 LLM 上——假设读者没有学过任何机器学习。 它回答的问题是: LLM 工作里的哪些问题其实是经典机器学习的老问题?它们的经典解法在 LLM 上还成立吗?1 “经典机器学习”——线性模型、SVM、决策树、K-Means、交叉验...

PyTorch 深度实践(11):系列总结与通关自测

Deep Dive into PyTorch: Series Recap and Final Self-Test

十篇正文回答了一个问题:PyTorch 如何把 Python 里写下的张量计算,变成可求导、可扩展、可优化、可分布式执行的运行时系统。第一篇画全局地图,第二到四篇讲编程模型(Tensor、Autograd、nn.Module 与训练系统),第五、六篇讲算子运行时(Dispatcher 与自定义算子),第七篇讲编译,第八篇讲性能,第九篇讲多卡,第十篇讲这个系统靠什么一直正确、一直可用。十篇合起来,是从 loss.backward() 一路追问到硬件与集群的一张图。 本文不讲新内容,做三件事:把十篇压成一张表与十段回顾,把贯穿全系列的几条线拎出来,然后给一套三段式的通关自测——判断与计算、跨篇综合、面试题。各篇末尾的自测检验的是”这一篇读懂了没有”,这里检验的是”十篇...

×