本文是《AI 算法工程师学习地图》第 L2 层(机器学习基础)的导读。前两篇导读是 L0 数学与 L1 工具。
“经典机器学习”——线性模型、SVM、决策树、K-Means、交叉验证——在大模型时代最常被跳过。理由听起来成立:今天没有人用 SVM 做 NLP 了,Transformer 也不需要特征工程。但跳过它的人会在 L5 遇到一组熟悉的麻烦:奖励模型训了两个 epoch 之后 RL 开始”钻空子”;benchmark 上涨了 5 个点结果发现测试题在训练数据里;judge 模型给长回答打高分;数据过滤器把某一类文本全滤掉了。这些问题在经典机器学习里各有一个名字——过拟合、测试集泄漏、评估偏差、分类器的类别不平衡——并且有一套成熟的处理方法。
所以这一层的价值不在”模型”而在”方法论”。本文不按教科书的顺序复述算法,而是反过来:把 LLM 工作里实际出现的经典机器学习列出来,每一处说明它是哪个经典概念的重现、要懂到什么程度、以及一个能算出来的数字。读完应该能回答:哪些经典内容今天仍然每天在用,哪些只需要知道名字。
全篇的核心问题是:
LLM 工作里的哪些问题其实是经典机器学习的老问题?它们的经典解法在 LLM 上还成立吗?
一、总览:一张”重现表”
1. 经典概念在 LLM 上的位置
| 经典概念 | 在 LLM 工作里的重现 | 出现在 |
|---|---|---|
| 训练 / 验证 / 测试集划分、测试集泄漏 | benchmark 污染:测试题混进预训练语料 | L4 数据工程 · L5 评测 |
| 过拟合与欠拟合 | 奖励模型过拟合 → reward hacking;SFT 多 epoch 后的记忆 | L5 后训练 |
| 偏差 - 方差权衡、集成 | 多次采样投票(self-consistency)、多个 judge 取平均、模型融合(model soup) | L5 · L6 解码 |
| 正则化 | weight decay、dropout、RLHF 里的 KL 惩罚(把参考模型当先验) | L3 · L5 |
| 逻辑回归 | 奖励模型 = 特征提取器(LLM)+ 逻辑回归头;Bradley-Terry 的 loss 就是它 | L5 |
| 分类器 | 预训练数据的质量过滤器、安全分类器、路由器 | L4 数据工程 |
| 梯度提升树 | 表格数据仍是首选;数据质量打分的特征模型 | L4 数据工程 |
| KNN 与相似度 | embedding 检索、few-shot 示例选择、去重的候选召回 | L4 · 应用地图 |
| 聚类 | 数据多样性分析、按主题配比、embedding 空间可视化 | L4 数据工程 |
| 降维(PCA) | embedding 可视化;低秩直觉 | L2 · L5(LoRA) |
| 评估指标:精确率 / 召回率 / F1 / AUC | 分类器与奖励模型的评估、judge 的一致性、安全过滤的漏放与误杀 | L5 · L4 |
| 交叉验证、置信区间、显著性 | 评测集怎么划、A/B 差异是否显著 | L5 · 横切 |
| 类别不平衡、校准 | 过滤器对少数类文本的误杀;模型输出概率是否可信 | L4 · L5 |
十三行里没有一行需要 SVM 的对偶推导或决策树的分裂准则;每一行需要的是概念本身与它的失效方式。这决定了本文的深度标准。
2. 学到什么程度
- 概念:能解释每个概念、能举出它在 LLM 上的一个实例、能说出忽略它会出什么问题。
- 工具:用 scikit-learn 在一小时内训出一个文本分类器(TF-IDF + 逻辑回归),并正确评估它。
- 不需要:手推 SVM 对偶、EM 算法的收敛证明、决策树的各种分裂准则、核方法。它们是很好的数学练习,但不在最小集里。
3. 本文的章节安排
| 章 | 主题 | 内容 |
|---|---|---|
| 二 | 数据集与泛化 | 划分、泄漏与污染、过拟合与 reward hacking、偏差 - 方差与投票 |
| 三 | 监督学习 | 逻辑回归是奖励模型的骨架;分类器是数据管线的主力;树模型;KNN;算过滤器的算力账 |
| 四 | 无监督学习 | 聚类与多样性、去重:MinHash 与 LSH 的概率、PCA 与可视化 |
| 五 | 评估 | 混淆矩阵到 AUC;judge 的一致性;校准;类别不平衡 |
| 六 | 自测清单 | 四件做出来的事 |
| 七 | 怎么学 | 材料与顺序 |
| 八 | 本文小结 |
二、数据集与泛化:LLM 上最贵的老问题
benchmark 涨了 5 个点,怎么知道不是测试题泄漏?奖励模型的准确率 80%,为什么 RL 还会钻空子?
1. 划分与泄漏:benchmark 污染
经典机器学习的第一课是把数据分成训练 / 验证 / 测试三份:训练集拟合、验证集调超参数与早停、测试集只看一次。测试集一旦参与了任何决策,它报出的数字就不再是泛化性能的无偏估计——这叫测试集泄漏。
LLM 上这个问题以两种形态重现,规模都大得多。污染:预训练语料是从互联网抓的,GSM8K、MMLU 的题目与答案早就在网上,一个 15T token 的语料几乎一定包含它们的某种变体。过度调参:在同一个 benchmark 上反复调 prompt、调配方、选 checkpoint,即使题目没泄漏,benchmark 也变成了验证集。
处理方法是经典的加强版:n-gram 重叠检测(把测试题的 13-gram 拿到训练语料里查)、困惑度对比(模型在测试题上的 loss 异常低)、留出私有测试集与动态 benchmark(题目定期更换、或从线上新产生)、看”污染后”与”污染前”版本的分数差。L4 数据工程与 L5 评测都会碰到它,但概念在这一层:没有干净的测试集,评测数字就没有含义。
2. 过拟合与 reward hacking
模型在训练集上越来越好、验证集上开始变差,是过拟合;模型容量大而数据少时最容易发生。经典解法:更多数据、正则化、早停、降低容量。
奖励模型是过拟合最典型的 LLM 实例。它是一个 8B 参数的特征提取器加一个线性头,偏好数据通常只有几万到几十万对——参数与样本的比例是经典机器学习里不敢想的。结果是它学到的不是”什么是好回答”,而是训练集里好回答的表面特征:更长、更多列表、更客气的语气。RL 阶段策略模型专门优化这个奖励,把这些表面特征推到极端,奖励一路上涨、真实质量下降。这就是 reward hacking,本质是在一个过拟合的评估器上做优化。经典解法在这里的对应:更多更多样的偏好数据;KL 惩罚(把策略拉在参考模型附近,是一种正则化——L0 导读第四章);早停(RL 步数限制);奖励模型的集成(多个 RM 取最小或均值,方差降低);定期用新数据重训 RM。
SFT 也有同一个问题的温和版:几千条指令数据训三个 epoch 之后,模型开始逐字复述训练集的回答。
3. 偏差 - 方差与集成
一个模型的误差可以分解为偏差(模型太简单、系统性地错)、方差(模型对训练数据的随机性太敏感)与不可约噪声。集成——训多个模型取平均——降低方差而不增加偏差,这是随机森林与 bagging 的原理。
LLM 上集成以三种形态出现。self-consistency:同一个问题采样多次、多数投票,把解码的随机性平均掉,数学题上常有几个点的提升;这是最便宜的集成,代价是推理成本乘以采样次数。judge 集成:多个 judge 模型或多次打分取平均,降低单个 judge 的随机性(不能降低它的系统偏差——比如都偏好长回答)。模型融合:把同一个基座的多个微调版本的权重平均(model soup、TIES-merging),在多任务上常优于任何单个版本,成立的前提是它们在同一个 loss 盆地里。
理解这个分解还解释了一个反直觉的现象:为什么多 seed 的结果差异那么大。小模型、小数据上的实验方差很高,两个配方的差异可能小于 seed 之间的差异——这是横切”实验方法论”里”多 seed 报均值与方差”的理论依据。
4. 正则化
weight decay、dropout、早停、数据增强,都是给模型加”不要太相信训练数据”的先验。L3 会讲它们在深度网络里的具体形态;这里要建立的是概念:任何把模型拉向某个简单解的项都是正则化。RLHF 的 KL 惩罚是正则化(先验是参考模型),LoRA 的低秩约束是正则化(先验是”改动很小”),few-shot 示例数量的限制也可以看成正则化。看到一个新方法里的约束项,先问它在把模型拉向什么。
三、监督学习:奖励模型的骨架与数据管线的主力
奖励模型和逻辑回归是什么关系?为什么预训练数据过滤要用小模型?
1. 逻辑回归:一切分类头的原型
逻辑回归把特征 \(x\) 线性组合后过一个 sigmoid:\(P(y = 1 \mid x) = \sigma(w^T x + b)\),用交叉熵训练。它是最简单的分类器,也是每一个神经网络分类头的原型——网络的前面所有层都在做特征提取,最后一层就是逻辑回归(多类时是 softmax 回归)。
奖励模型正是这个结构:LLM 的最后一层 hidden state(Llama-3-8B 是 4096 维)是特征 \(x\),上面接一个 \(4096 \to 1\) 的线性头输出标量分 \(r\),Bradley-Terry 的 loss \(-\log \sigma(r_w - r_l)\)(L0 导读第三章)是逻辑回归的 loss 作用在两个样本的分差上。看清这一点有两个用处:一,奖励模型的一切性质——它需要多少数据、怎么过拟合、怎么评估——都可以用逻辑回归的语言想;二,”pairwise loss”不神秘,它就是把二分类的 \(w^T x\) 换成了 \(r(x_w) - r(x_l)\)。
线性回归(预测连续值、MSE loss)与 Ridge / Lasso(加 \(L_2\) / \(L_1\) 正则)是同一家族。Ridge 就是 weight decay,Lasso 产生稀疏解——两者的区别在 L0 导读第二章的范数里。
2. 分类器:数据管线的主力
预训练数据工程是用分类器决定哪些文本进训练集。质量分类器(”这段像不像百科 / 教科书”)、语言识别、毒性与安全分类器、去广告去模板、领域分类(代码 / 数学 / 对话)——每一个都是经典的文本分类任务。
模型选择是一道算力题。假设要给 15T token 打分。用一个 8B 的 LLM 逐段打分,FLOPs 约 \(2 \times 8 \times 10^9 \times 15 \times 10^{12} = 2.4 \times 10^{23}\);而训练这个 8B 模型本身的 FLOPs 约 \(6ND = 7.2 \times 10^{23}\)。打分的算力是训练的三分之一,不可接受。换成 1B 的分类器是 4%,换成 1 亿参数的小模型(BERT 级)是 0.4%,换成 fastText 一类线性模型几乎为零。所以实际做法是两级:用大模型给一小部分样本打标(几十万段),拿这些标签训一个小分类器,再用小分类器过全部语料。FineWeb-Edu 用 Llama-3-70B 标了 45 万段、训一个线性回归头;DCLM 用 fastText 做质量过滤。这就是 L2 表里”梯度提升树与线性模型仍是数据质量打分的首选”那一句的算术依据——不是它们效果更好,是只有它们跑得起。
小分类器的经典问题也一并回来:训练标签的分布是否代表全部语料(分布偏移);把某种语体(比如非英语、口语、诗歌)系统性判为低质量(类别不平衡与偏见);阈值取哪里、滤掉多少(精确率与召回率的权衡——第五章)。数据工程师每天在做的,是经典监督学习在万亿 token 上的工程化。
3. 树模型:表格数据的首选
决策树按特征逐个切分空间;随机森林是多棵树的 bagging;梯度提升(GBDT,XGBoost / LightGBM / CatBoost)是逐棵树拟合前面的残差。在表格数据上——特征是数值与类别、样本几万到几千万——GBDT 至今是最强的默认选择,深度学习在这类数据上没有稳定优势。
LLM 工作里表格数据出现在:数据质量打分(特征是长度、困惑度、符号比例、重复率等几十个统计量)、实验结果分析(哪些超参数组合好)、线上 A/B 的归因。会用 LightGBM 训一个模型、看特征重要性、调几个关键超参数(树的数量、深度、学习率)到这个程度即可;分裂准则与正则化的推导不需要。
4. KNN 与相似度
K 近邻不训练,预测时找最近的 \(k\) 个样本投票。它在 LLM 上以”检索”的形式无处不在:embedding 检索(RAG、应用地图 L3)、few-shot 示例的选择(挑与当前问题最相似的示例)、去重的候选召回(第四章)、训练数据的影响分析(哪些训练样本离这个测试样本最近)。概念上要懂的是:距离度量的选择(余弦 vs 欧氏,L0 导读第二章)、维度灾难(高维空间里所有点的距离都差不多,所以要学出好的 embedding 而不是直接用原始特征)、近似最近邻(FAISS、HNSW 一类索引把暴力搜索的 \(O(n)\) 降到近似 \(O(\log n)\))。
朴素贝叶斯、SVM、感知机:知道它们是什么、各自的假设(特征独立、最大间隔、线性可分)即可。SVM 的”间隔”思想在对比学习的 margin loss 里有回声,但不需要为此学对偶。
四、无监督学习:多样性、去重与可视化
怎么知道一个语料的主题分布?两段文本”相似”到什么程度算重复?MinHash 的阈值怎么定?
1. 聚类与数据多样性
K-Means 把样本分成 \(k\) 簇,每簇一个中心;DBSCAN 按密度聚、不需要指定 \(k\)。在 LLM 数据工程里聚类回答的是”这批数据里有什么”:把语料 embedding 后聚类,看每簇的样本,得到主题分布;按簇配比(不让某个主题占太多);找出离群簇(爬虫抓到的垃圾);SFT 数据里按簇采样保证指令多样性。这是 L4 数据工程里”配比”决策的探索工具。
要会的:跑一次 K-Means、知道 \(k\) 怎么选(肘部法、轮廓系数,或干脆按业务定)、知道 K-Means 假设簇是球形等大的(不满足时换 DBSCAN 或层次聚类)。
2. 去重:MinHash 与 LSH
精确去重(hash 整段文本)只能抓完全一样的副本;近似去重要处理”大部分一样”的文本——同一篇文章的不同转载、改了几个词的模板页。标准做法是 MinHash + LSH,它是无监督学习里”相似度估计”的一个漂亮应用,也是 L4 数据工程必用的工具,值得把它的概率算清楚。
| Jaccard 相似度:两段文本各切成 n-gram 集合 \(A, B\),$$J = | A \cap B | / | A \cup B | \(。**MinHash**:对集合用一个随机 hash 函数取最小值,两个集合的最小值相等的概率恰好等于\)J\(;用\)k\(个 hash 函数得到\)k\(个签名,相等的比例就是\)J\(的估计。**LSH**:把\)k\(个签名分成\)b\(组、每组\)r\(个(\)k = b \times r\(),任何一组全部相等就把两段文本放进同一个桶当候选。两段相似度为\)s$$ 的文本被判为候选的概率是 |
这是一条 S 形曲线,陡峭处就是阈值。代 FineWeb 用的 \(b = 14, r = 8\)(共 112 个 hash):\(s = 0.5\) 时候选概率 5%,\(s = 0.7\) 时 56%,\(s = 0.75\) 时 77%,\(s = 0.8\) 时 92%,\(s = 0.9\) 时 99.96%。曲线在 \(s \approx 0.68\) 处过 50%——这就是”Jaccard 大于约 0.7 视为重复”的来源。想要阈值更高就增大 \(r\)、想要更宽松就增大 \(b\)。
这个算法的三个经典元素——集合相似度、随机化估计、用概率分桶换掉两两比较的 \(O(n^2)\)——都不是深度学习,但在 15T token 上做去重,没有它寸步难行。
3. PCA 与可视化
PCA 找数据方差最大的正交方向(协方差矩阵的特征向量,L0 导读第二章),投影到前几维就是降维。用途:把 4096 维的 embedding 投到 2 维看分布(t-SNE、UMAP 效果更好但是非线性、不可逆,PCA 是第一步);分析 embedding 空间的各向异性(前几个主成分占了绝大部分方差,是很多 embedding 模型的通病)。PCA 也是理解”低秩”的第一个实例:如果前 \(r\) 个主成分解释了 95% 的方差,数据就”基本上”是 \(r\) 维的——LoRA 对 \(\Delta W\) 的假设是同一种直觉。
自编码器、VAE 属于深度无监督学习,在 L7 的扩散模型(latent diffusion 的 VAE)与图像 token 化(VQ-VAE)里出现,放在那里讲。
五、评估:从混淆矩阵到 judge 的一致性
过滤器”准确率 95%”是什么意思?judge 与人类”一致率 80%”够不够?
1. 分类的四个数与它们的权衡
二分类的结果是一张 2×2 混淆矩阵:真正例 TP、假正例 FP、假反例 FN、真反例 TN。由它派生:
| 指标 | 定义 | 回答的问题 | LLM 上的实例 |
|---|---|---|---|
| 准确率 | \((TP + TN) / \text{全部}\) | 总体对了多少 | 类别不平衡时会误导:99% 的文本是”正常”,全判正常准确率就是 99% |
| 精确率 | \(TP / (TP + FP)\) | 判为正的里有多少真的是正 | 安全过滤:拦下来的里有多少真有害(误杀率 = 1 − 精确率) |
| 召回率 | \(TP / (TP + FN)\) | 真正的正例抓到了多少 | 安全过滤:有害内容漏放了多少;污染检测:泄漏的题找到了多少 |
| F1 | 精确率与召回率的调和平均 | 两者的折中 | 阈值不好定时的单一指标 |
| AUC | 所有阈值下 ROC 曲线下的面积 | 分类器把正负例排开的能力,与阈值无关 | 比较两个质量分类器本身的好坏,不受阈值选择影响 |
精确率与召回率的权衡由阈值控制:阈值高,精确率高、召回率低。数据过滤是这个权衡的直接应用——质量分类器阈值取高,留下的数据干净但少;取低,数据多但脏。FineWeb-Edu 按分数 3 / 5 分切,留下约 1.3T token;切在 2 就留下几倍多。这个决定没有标准答案,取决于你有多少数据、模型多大(Chinchilla 的 \(D/N \approx 20\) 告诉你至少要多少 token)。
2. 奖励模型与 judge 的评估
奖励模型的评估是分类评估:在留出的偏好对上,\(r_w > r_l\) 的比例就是准确率。典型值 65%–80%,看起来不高,但要记住标注员之间的一致率本身只有 70%–80%——奖励模型的上限是标注的一致性。RewardBench 一类基准按类别(对话、安全、推理)分开报准确率,就是第一章说的”能力分解”。
LLM-as-judge 的评估是一致性评估:judge 的判断与人类标注一致的比例,或 Cohen’s kappa(扣掉随机一致后的一致率)。要警惕的偏差都是经典评估里有名字的系统误差:位置偏差(先出现的回答得分高——对换顺序各评一次)、长度偏差(长回答得分高——控制长度或在 prompt 里明确)、自我偏好(judge 偏好与自己同源的模型)。这些偏差集成(第二章第 3 节)消不掉,只能设计消掉。
3. 校准
一个分类器说”90% 是正例”,实际上是不是十次里有九次对?是,就叫校准良好。校准用可靠性图(预测概率 vs 实际频率)和期望校准误差(ECE)度量。LLM 上校准出现在两处:预训练后的模型对自己答案的置信度校准通常不错,RLHF 之后变差(模型学会了”自信”);奖励模型的分差 \(r_w - r_l\) 过 sigmoid 后应该等于人类偏好 \(y_w\) 的比例,不等就是校准问题,会影响 RL 里奖励的尺度。
4. 交叉验证与显著性
数据少时把数据分成 \(k\) 折、轮流当验证集,取平均——这是交叉验证,评估更稳但成本乘 \(k\)。LLM 上大模型不做交叉验证(训不起),但小规模实验与分类器训练照常用。显著性检验、置信区间在 L0 导读第三章已经算过:HumanEval 上 3 个点是噪声。这里补一个概念——多重比较:在 20 个 benchmark 上比两个模型,即使它们完全一样,也有很大概率至少一个 benchmark 差异”显著”(5% 显著性下期望一个)。报告”我们在 20 个 benchmark 中的 12 个上领先”时,要先问随机情况下期望领先几个。
六、自测清单:四件做出来的事
| # | 做什么 | 检验的是 |
|---|---|---|
| 1 | 用 scikit-learn 在一个公开文本数据集上训 TF-IDF + 逻辑回归分类器;报精确率、召回率、AUC;画 PR 曲线选一个阈值并说明理由 | 监督学习、评估、阈值权衡 |
| 2 | 拿一个开源偏好数据集(几千对),用一个小模型的 embedding + 逻辑回归训一个”奖励模型”,在留出集上算准确率;故意多训几个 epoch,观察留出集准确率什么时候开始掉 | 奖励模型 = 逻辑回归;过拟合 |
| 3 | 对一万段文本实现 MinHash + LSH 去重(datasketch 一类库),换两组 \((b, r)\),对比找出的重复对数量与实际 Jaccard 的分布 |
去重的概率、阈值 |
| 4 | 把一个 SFT 数据集 embedding 后 K-Means 聚成 20 簇,每簇抽 5 条看是什么主题,画 PCA 二维图 | 聚类、多样性分析、降维 |
第 2 件最有价值:它用一个小时的实验把”奖励模型会过拟合”从一句话变成一条自己看到的曲线。
七、怎么学
1. 材料
| 材料 | 读什么 | 说明 |
|---|---|---|
| Andrew Ng, Machine Learning Specialization(Coursera)或 CS229 讲义 | 监督学习、偏差 - 方差、正则化、评估的部分 | 概念最清楚的入门;跳过 SVM 与核方法的推导 |
| Aurélien Géron,《Hands-On Machine Learning with Scikit-Learn, Keras & TensorFlow》 | 第一部分(第 1–7 章):端到端项目、分类、训练模型、决策树、集成 | 用 scikit-learn 把概念做出来;第二部分是深度学习,不必读 |
| scikit-learn 官方 User Guide | “Model selection and evaluation” 一节 | 交叉验证、指标、校准的权威说明与代码 |
| Broder 1997 / Leskovec 等《Mining of Massive Datasets》第 3 章 | MinHash 与 LSH | 后者免费,一章讲透第四章的概率 |
| Bishop《Pattern Recognition and Machine Learning》/ Hastie 等《The Elements of Statistical Learning》 | 查阅用 | 想看某个概念的严格版本时翻,不通读 |
2. 顺序
两周。第一周过 Ng 的课程或 CS229 讲义里对应第一章表格的概念,同步做 Géron 的前 7 章练习;第二周做第六章的四件事。做第 2 件事时回 L0 导读第三章对 Bradley-Terry,做第 3 件时对第四章的公式。
学完的标志不是记住算法,而是看到 LLM 上的一个问题能叫出它的经典名字:污染是测试集泄漏、reward hacking 是过拟合、judge 的长度偏好是系统误差、过滤器误杀是精确率召回率的权衡。叫出名字,经典解法就在手边。
八、本文小结
- 经典机器学习在 LLM 时代保留的是方法论而不是模型:划分与泄漏、过拟合、偏差 - 方差、正则化、评估指标,每一个都在 LLM 上以更大的规模重现。
- 泛化:benchmark 污染是测试集泄漏;reward hacking 是在过拟合的评估器上做优化,经典解法(更多数据、正则化即 KL 惩罚、早停、集成)全部适用;self-consistency、judge 平均、model soup 都是集成。
- 监督学习:奖励模型 = LLM 特征提取器 + 逻辑回归头,Bradley-Terry loss 就是逻辑回归;数据过滤用小分类器不是因为效果,是算力——用 8B 模型给 15T token 打分要花训练算力的三分之一,先大模型标少量、再小模型过全部;GBDT 仍是表格数据首选;KNN 以检索的形式无处不在。
- 无监督学习:聚类做数据多样性分析;MinHash + LSH 做近似去重,候选概率 \(1 - (1 - s^r)^b\),FineWeb 的 \(b = 14, r = 8\) 对应阈值约 0.7;PCA 是低秩直觉的第一个实例。
- 评估:精确率 / 召回率的权衡由阈值控制,数据过滤是它的直接应用;奖励模型的准确率上限是标注一致性;judge 的位置、长度、自我偏好是系统误差,集成消不掉;RLHF 后校准变差;多个 benchmark 上比较要想多重比较。
- 学到”看到 LLM 上的问题能叫出经典名字”为止;用第六章的四件事检验,两周。
本文由 arganzheng 创作,采用 CC BY 4.0 许可协议。在保留原文作者、署名以及完整原文链接(https://arganzheng.life/classical-machine-learning-in-the-llm-era.html)的前提下,欢迎各种形式的转载、翻译或商业引用。
COMMENTS
评论存放在 GitHub Discussions, 用 GitHub 账号登录即可发表,支持 Markdown。 想针对正文某句话说?选中那段文字,点浮出的「评论」即可划线评论;觉得哪里写错了,发表时勾上「同时提交 Issue」。 有人回复你时 GitHub 会按你的通知设置发邮件,不用守在这里。