地基 · 数学与工程模块一 · 综合项目项目约 20 分钟
阶段项目:用 PyTorch 训一个文本分类器
把地基段所有零件跑通一遍
学完这节你能:
- 独立跑通「数据→模型→训练→评估」全流程
- 用精确率/召回率/F1 评估结果
- 为进入 Stage 1 做准备
地基段的收尾:亲手训一个情感二分类器(正面/负面评论)。目标不是刷高分,而是把前 13 节的零件——张量、训练循环、损失、评估指标——真正串起来跑通。
- 数据:取一个小型中文/英文情感数据集,按 8:1:1 划分训练/验证/测试。
- 预处理:分词 → 建词表 → 转成 id 序列(用平均词向量或 bag-of-words 作最简特征)。
- 模型:一个 nn.Module(Embedding + 平均池化 + Linear),输出 2 类。
- 训练:标准五步循环,交叉熵损失,AdamW 优化器,跑若干 epoch。
- 评估:在测试集上算准确率、精确率、召回率、F1;画混淆矩阵。
模型骨架
class TextClassifier(nn.Module):
def __init__(self, vocab, dim=64):
super().__init__()
self.emb = nn.Embedding(vocab, dim)
self.fc = nn.Linear(dim, 2)
def forward(self, ids, mask):
e = self.emb(ids) # (B, T, dim)
pooled = (e * mask.unsqueeze(-1)).sum(1) / mask.sum(1, keepdim=True)
return self.fc(pooled) # (B, 2)💡 验收标准:能跑完不报错、测试集 F1 明显高于瞎猜(>0.6)、能解释每个指标的含义。做到这三点,你就具备进入 Stage 1 的工程与数学地基了。
🔑 注意这里的「平均池化」已经用到了掩码求平均(mask mean pooling)的思想——它会在 Stage 4 的 RAG 里再次出现。地基不是白打的。
自测这个文本分类项目里,用来报告「最终泛化能力」的应该是:
// 带走一句话
亲手跑通「数据→模型→训练五步→用 P/R/F1 评估」,就打好了进入大模型学习的地基。
独立练习
做到这些,才算完成本节
- 把任务拆成可运行的最小步骤,每一步都保留输出证据。
- 提交 README、结果、失败分析和下一次改进计划。
学习记录
记录本节阅读进度
建议先独立回答自测。读完记录不等于已经掌握。