这次复盘把课程中的技术选择串起来:为什么选这些数据源,如何比较模型,服务和界面分别承担什么职责。写成作品集时,设计方案、公开资料和个人实际完成的部分应当分别说清楚。下面给出整理方法,帮助你用证据支撑项目描述。
复盘的第一块:架构总览与决策回顾
先把系统画在一张图上(这也是 README 和面试白板题的同一张图):
数据源(arXiv / OpenAlex / Crossref / 会议网页)
↓ 采集器(API + Scrapy/Playwright,断点续传)
data/raw(快照,只读)
↓ 清洗归一化(实体对齐 + 质量门)
data/cleaned(Parquet 分区,M1 数据集版本化)
↓ 特征与理解流水线(GROBID / Embedding / 图表抽取)
data/features(融合向量,M3)
↓ ↓
经典模型(M2 分类器) PostgreSQL + pgvector(M4 底座)
↓
FastAPI(检索/分类/统计)
↓
Streamlit 应用(演示) + Prefect(每日增量)
图之外,复盘的核心内容是关键决策的”为什么”。挑出整个项目里最重要的六个决策,每个按”当时的选项 → 选择的理由 → 事后的验证”三段写:
以下是需要验证的问题,不是已经发生的项目经历:
- 数据源选型:用同一批 DOI 比较 OpenAlex、Crossref 和 arXiv 的字段覆盖、冲突、许可与请求成本,保存抽样清单,不预先宣称某个来源“最全”。
- 文件层 → 数据库迁移:核对记录数、主键和字段映射,记录迁移失败与回滚演练;是否平滑由日志回答。
- Embedding+LR 与微调模型:比较同一协议下的分数、延迟和维护成本;没有实测前,不声称某个模型已作为线上方案。
- 融合策略:固定语料、查询与上下文预算做消融,保留改善和退化的查询;全文是否有用由结果决定。
- PDF 解析方案:在有模板与扫描件分层的样本上统计字段完整性,区分自动检查与人工标注。
- 任务编排:对同一种可控失败记录重试次数、恢复时间和人工介入步骤,比较工具是否减少维护负担。
注意每个决策都带”事后验证”——没有验证环节的决策回顾只是回忆录,有验证的才是工程复盘。
复盘的第二块:用数据说话
复盘里所有”做得好/不好”都要落成数字。把散落在各课实验记录里的关键指标收拢成一张总表:
| 维度 | 指标 | 数值 | 出处 |
|---|---|---|---|
| 数据规模 | 去重后论文数 | 待测 | M1 _meta.json 与生成脚本 |
| 数据质量 | 主键重复率 / 标题缺失率 | 待测 | M1 质量报告与分母定义 |
| 分类 | 宏 F1 与区间 | 待测 | M2 测试划分、预测和配置 |
| 检索 | Recall@10、分查询表现 | 待测 | 查询标注、排名列表、语料版本 |
| 全文解析 | 分层字段完整率 | 待测 | M3 抽样与人工复核记录 |
| 服务 | P95、错误率、并发量 | 待测 | M4 压测脚本与原始日志 |
| 自动化 | 增量处理与恢复耗时 | 待测 | 任务记录、输入规模与重试情况 |
这是空白报告模板。未测的格子保留“待测”,不能用期望值、课程示例或别人的成绩填充。耗时应同时记录硬件、批大小、冷热缓存和成功率。
这张表的价值在系列六第 3 课会再兑现一次:简历上的项目描述和面试里的回答,全部从这张表取数——数字只有一个出处,杜绝”简历上写的和面试说的对不上”。
复盘的第三块:失败与局限清单
诚实的局限清单很重要。下面是可检查的局限示例,需要对照自己实际实现确认,不能直接当作个人经历:
- 扫描版 PDF 未覆盖(需 OCR 支线,评估后 ROI 不足,放弃)。
- 引用网络只存了边表,没有做图算法分析(PageRank 社群发现是明确的下一步)。
- 分类器在相邻领域(cs.CL/cs.LG)上的混淆是任务定义问题,多标签化是改进路径,当前版本选择诚实暴露置信度。
- 主题地图的周级更新意味着新论文的主题归属有延迟。
- 评测集只有 20 个查询——检索指标的统计功效有限,这是个人项目的资源约束,写出来比藏着强。
每条局限配”为什么没做 + 如果做该怎么做”。面试官追问”项目有什么不足”时,这份清单就是你的答案——主动暴露的局限是自信,被问出来的才是破绽。
从复盘到作品集:叙事框架
技术复盘按系统写,作品集叙事按能力写。把已经完成的课程产物重组进一个四段框架:
第一段:问题与约束(30 秒版)。模板:“我基于科研内容课程实现了[实际完成的模块],处理[可核验的数据规模],目标是[问题]。当前限制是[预算、设备或时间],[未完成模块]仍在设计中。” 方括号必须用自己的证据替换;没有 GPU 就不写 GPU,没有部署就不写线上。
第二段:架构与决策(3 分钟版)。架构图 + 挑 2-3 个最有讨论价值的决策展开(推荐:Embedding+LR vs 微调的选型、融合策略的消融实验)。决策的”为什么”比”是什么”重要——这展示的是判断力。
第三段:数字与证据。上面那张指标表,加上最有故事性的一个发现(比如 EDA 时通过趋势图断点发现采集管道缺数据的案例)。
第四段:局限与下一步。局限清单 + 明确的演进方向。这段的存在让前三段的可信度整体上升。
同一框架也直接产出书面材料:GitHub README(第二段的展开版)、博客文章(本课程 27 篇本身就是)、简历项目描述(第一段的压缩版)。
复盘文档的组织与归档
复盘文档进项目仓库 docs/retrospective.md,与代码同版本管理。内容结构:架构图、决策记录(ADR 风格)、指标总表、局限清单、演进路线。它不是写完就封存的——每个后续里程碑都回来增补,复盘是活的文档。
踩坑排查(复盘环节的坑)
| 症状 | 原因 | 处理 |
|---|---|---|
| 复盘时找不到当时的数字 | 实验记录没归档 | 各课的实验纪律就是为此;缺失的如实标注 |
| 决策理由想不起来 | 决策当时没记录 | 复盘补写时标注”事后重建”,以后决策当时写 ADR |
| 局限清单写成自我表扬 | “缺点是太追求完美”式套路 | 每条局限必须可验证、配改进路径 |
| 指标表各处数字打架 | 没有单一出处 | 总表收拢,所有对外材料从这里取数 |
| 叙事全是技术没有观众 | 没回答”谁在乎” | 每个决策绑定一个业务/用户体验后果 |
练习
- 画出你项目的架构图,标注每个组件对应的里程碑。
- 写 6 条架构决策记录,每条严格按”选项→理由→验证”三段。
- 收拢指标总表,找出两个数字出处不一致的地方并修正。
- 写 5 条局限,每条配”为什么没做”和”怎么做”。
面试常问
Q:复盘和总结的区别? 总结罗列做了什么;复盘追问决策为什么、结果是否验证、教训是什么。复盘的标志物是决策记录、验证证据和诚实的局限清单——三者缺一就是总结。
Q:怎么证明项目是你自己做的? 细节密度:能讲清某个决策当时的备选方案、能背出关键指标及其置信区间、能说出失败样本的具体样子。背出来的项目经不住”为什么不用 X”的追问,自己做的项目每个决策都有来路。
Q:项目里最大的技术挑战是什么(怎么答)? 别答”调通某个库”。答有决策含量的:比如”多源数据实体对齐——DOI 覆盖率不足,设计了强弱两档匹配规则并用抽样验证精确率”,或者”融合策略的选择——做了消融实验证明全文反而有害”。挑战的价值在于展示你解决问题的方法论。
Q:局限清单在面试里怎么用? 主动在”下一步计划”里讲:它不是认怂,是展示你对系统的理解深度(知道边界在哪)和演进判断力(知道哪步先做)。被问”有什么不足”时直接命中准备过的答案。
下一课(全课程收官):综合项目与求职交付 03:求职答辩——简历、面试话术与作品集链路。
💬 评论
这套方案在哪一步卡住了?也欢迎补充你的实现方式或踩坑经验。