综合项目与求职交付 02:项目复盘——把课程产物写成可核验的作品集

· 约 6 分钟 更新于 2026-09-20 ·
本文目录(8 节)

这次复盘把课程中的技术选择串起来:为什么选这些数据源,如何比较模型,服务和界面分别承担什么职责。写成作品集时,设计方案、公开资料和个人实际完成的部分应当分别说清楚。下面给出整理方法,帮助你用证据支撑项目描述。

前置阅读:全部前 25 课。复盘方法论见 研究方法;写作风格参考本站 RAG 项目复盘。

复盘的第一块:架构总览与决策回顾

先把系统画在一张图上(这也是 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(每日增量)

图之外,复盘的核心内容是关键决策的”为什么”。挑出整个项目里最重要的六个决策,每个按”当时的选项 → 选择的理由 → 事后的验证”三段写:

以下是需要验证的问题,不是已经发生的项目经历:

  1. 数据源选型:用同一批 DOI 比较 OpenAlex、Crossref 和 arXiv 的字段覆盖、冲突、许可与请求成本,保存抽样清单,不预先宣称某个来源“最全”。
  2. 文件层 → 数据库迁移:核对记录数、主键和字段映射,记录迁移失败与回滚演练;是否平滑由日志回答。
  3. Embedding+LR 与微调模型:比较同一协议下的分数、延迟和维护成本;没有实测前,不声称某个模型已作为线上方案。
  4. 融合策略:固定语料、查询与上下文预算做消融,保留改善和退化的查询;全文是否有用由结果决定。
  5. PDF 解析方案:在有模板与扫描件分层的样本上统计字段完整性,区分自动检查与人工标注。
  6. 任务编排:对同一种可控失败记录重试次数、恢复时间和人工介入步骤,比较工具是否减少维护负担。

注意每个决策都带”事后验证”——没有验证环节的决策回顾只是回忆录,有验证的才是工程复盘。

复盘的第二块:用数据说话

复盘里所有”做得好/不好”都要落成数字。把散落在各课实验记录里的关键指标收拢成一张总表:

维度指标数值出处
数据规模去重后论文数待测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
局限清单写成自我表扬“缺点是太追求完美”式套路每条局限必须可验证、配改进路径
指标表各处数字打架没有单一出处总表收拢,所有对外材料从这里取数
叙事全是技术没有观众没回答”谁在乎”每个决策绑定一个业务/用户体验后果

练习

  1. 画出你项目的架构图,标注每个组件对应的里程碑。
  2. 写 6 条架构决策记录,每条严格按”选项→理由→验证”三段。
  3. 收拢指标总表,找出两个数字出处不一致的地方并修正。
  4. 写 5 条局限,每条配”为什么没做”和”怎么做”。

面试常问

Q:复盘和总结的区别? 总结罗列做了什么;复盘追问决策为什么、结果是否验证、教训是什么。复盘的标志物是决策记录、验证证据和诚实的局限清单——三者缺一就是总结。

Q:怎么证明项目是你自己做的? 细节密度:能讲清某个决策当时的备选方案、能背出关键指标及其置信区间、能说出失败样本的具体样子。背出来的项目经不住”为什么不用 X”的追问,自己做的项目每个决策都有来路。

Q:项目里最大的技术挑战是什么(怎么答)? 别答”调通某个库”。答有决策含量的:比如”多源数据实体对齐——DOI 覆盖率不足,设计了强弱两档匹配规则并用抽样验证精确率”,或者”融合策略的选择——做了消融实验证明全文反而有害”。挑战的价值在于展示你解决问题的方法论。

Q:局限清单在面试里怎么用? 主动在”下一步计划”里讲:它不是认怂,是展示你对系统的理解深度(知道边界在哪)和演进判断力(知道哪步先做)。被问”有什么不足”时直接命中准备过的答案。


下一课(全课程收官):综合项目与求职交付 03:求职答辩——简历、面试话术与作品集链路。

💬 评论

这套方案在哪一步卡住了?也欢迎补充你的实现方式或踩坑经验。

正在连接评论服务,首次访问可能需要几秒…