如何写论文复现笔记:从 Reproduction Report 到博客草稿

如何写论文复现笔记:从 Reproduction Report 到博客草稿

系列 :AI 论文精读与复现训练营

日期 :2026-07-29

适合读者 :研究生、科研新人、有工程背景的 AI 读者

本篇目标:把零散实验记录整理成可审计的 reproduction report,再转写成一篇对读者有帮助的中文技术博客。

本篇给出一套面向研究生的写作方法:先写 claim map,再写 artifact audit,然后维护 run logbook,最后把 reproduction report 转写成博客草稿。核心原则是:博客可以有叙事,但底层必须有报告;结论可以简洁,但证据链不能断。

目录

  1. 为什么复现笔记不能等到实验结束再写
  2. 三种文档:实验日志、reproduction report、博客草稿
  3. 写作前先定义复现范围
  4. Reproduction report 的七个核心模块
  5. 从 report 转写成博客的五步流程
  6. 代表资料与写作路线图
  7. 方法与实验记录对比表
  8. 可操作检查清单
  9. 常见误区
  10. 适合研究生继续做的选题
  11. 总结
  12. 参考资料

为什么复现笔记不能等到实验结束再写

复现笔记最容易被误解成"实验做完后的总结"。这会导致三个问题。

第一,很多关键信息只在实验当下可见。比如你第一次跑通代码时使用的仓库 commit、下载数据时的 revision、某个依赖自动解析出的版本、一次失败运行中的报错、一次指标异常时的 raw output。如果不当场记录,几周后很难还原。

第二,复现结论常常依赖负结果。论文主表是否能复现当然重要,但"哪一步跑不起来""哪个超参数论文没写""哪个 baseline 需要额外 patch""哪个 metric parser 会吞掉异常样本"同样是证据。MLRC 2026 的官方说明特别强调,负结果和部分复现失败也有科学价值,关键是要清楚说明尝试过什么、发现了什么、结论边界在哪里。

第三,博客写作需要比个人日志更强的结构。读者不会关心你所有的安装细节,但会关心:这篇论文的主张是否值得信?如果我要继续做这个方向,应该避开哪些坑?如果我用更小资源复现,哪些实验最值得优先跑?这要求你在实验过程中就按"未来读者会问什么"来组织材料。

因此,复现笔记应该从第一天开始写。它不是最后的包装,而是复现实验的一部分。

三种文档:实验日志、Reproduction Report、博客草稿

建议把复现写作拆成三层,不要混在一个文件里。

实验日志面向自己,记录事实。它可以粗糙,但必须及时:命令、配置、commit、数据版本、报错、修改、GPU 时间、seed、raw output、metric 文件路径。实验日志不追求文采,追求可追溯。

Reproduction report面向审阅者,记录证据链。它要回答:复现范围是什么?主张如何拆解?哪些工件可得?方法如何实现?结果如何比较?哪些结论被确认、部分确认、未能确认或无法判断?它的读者可能是导师、课程助教、reviewer 或未来的自己。

博客草稿面向更广泛的科研读者,记录可迁移经验。它不应堆满所有日志,而要把关键路径讲清楚:为什么选这篇论文,怎么拆 claim,复现中遇到什么证据问题,结果如何影响你对方法的理解,下一步可以做什么研究。

这三层的关系是:日志提供原始证据,report 形成审计结论,博客负责教学表达。不要直接从日志跳到博客,否则文章容易变成"踩坑日记";也不要只写博客不留 report,否则结论缺少可核验底座。

写作前先定义复现范围

正式写 report 前,先用一句话定义范围:

本复现尝试检验论文 P 中 claim C:在数据集 D、split S、metric M、模型或方法 A、baseline B、训练/推理预算 R 和环境 E 下,A 是否产生论文报告的方向性结果或数值结果。

这句话看似繁琐,却能避免大多数复现报告的模糊表达。比如"我们复现了某篇 RAG 论文"太宽;"我们复现了表 2 中方法 X 在 HotpotQA distractor split 上相对 BM25 + FiD 的 EM/F1 改进,并在无法取得原始检索索引时使用作者 release 的索引快照替代"才是可审计目标。

复现范围可以分四类:

类型 目标 适合写成什么结论
Exact reproduction 使用作者代码、数据和配置重跑主结果 "在相同工件下,主结果可/不可重复"
Partial reproduction 关键工件缺失或资源不足,只复现子集 "在受限设定下,方向性证据支持/不支持 claim"
Independent reimplementation 不用作者代码,独立实现方法 "论文描述是否足以支持第三方实现"
Replication / generalization 换数据、模型、硬件或任务测试 "claim 是否能推广到新设定"

很多研究生项目其实是 partial reproduction 或 independent reimplementation,却在标题里写"复现某某论文"。这会夸大结论。更好的写法是把范围写清楚:复现了哪张表、哪条 claim、哪组 ablation;没复现的部分为什么没做。

Reproduction Report 的七个核心模块

1. Reproducibility Summary

报告第一页建议保留一个固定摘要。Papers with Code 组织的 ML Reproducibility Challenge 2022 曾要求报告首页包含 scope、methodology、results、what was easy、what was difficult。这个模板非常适合训练,因为它迫使作者把复现贡献压缩成可读的证据摘要。

可以使用下面的中文版本:

字段 应该写什么 不要写什么
Scope of reproducibility 复现哪个 claim、表格、图或实验设定 "复现整篇论文"
Methodology 使用作者代码还是重写,改了哪些地方 "参考论文实现"
Results 与论文结果的方向、数值、方差和差异 只写"基本一致"
What was easy 作者工件中降低复现成本的部分 礼貌性夸奖
What was difficult 缺失、歧义、资源限制、环境问题 把所有失败归咎于作者
Communication 是否联系作者、issue、邮件或讨论区 隐去关键澄清来源
Verdict 确认、部分确认、未确认、无法判断 二元化"成功/失败"

摘要不是引言。它应该让读者在一分钟内知道这次复现的范围和可信度。

2. Original Claims

复现报告必须把原论文主张拆成编号列表。每条 claim 都要对应证据来源,例如论文摘要、引言贡献段、方法章节、表格、图、附录或项目页。

推荐格式:

text 复制代码
Claim 1: 方法 A 在 benchmark D 上优于 baseline B。
Evidence in original paper: Table 2, Section 4.1.
Reproduction target: rerun official evaluation with released checkpoint.
Status: tested / partially tested / not tested.

注意,claim 不等于论文贡献点的中文翻译。它必须能被实验检验。如果一条 claim 写成"方法很有效",说明还没有拆到位;应该改成"在 X 数据集、Y metric、Z baseline 下,方法 A 的结果方向优于 B"。

3. Artifact Inventory

Artifact inventory 是 report 的骨架。它回答"读者能否重建你的实验现场"。

至少记录:

  • 论文 PDF、OpenReview / arXiv / ACL Anthology / proceedings 链接和版本;
  • 作者代码仓库、commit hash、release tag、license;
  • 数据集名称、版本、split、下载时间、hash 或样本数;
  • 模型权重、tokenizer、adapter、quantization、revision;
  • 环境:OS、Python、CUDA、GPU、关键依赖;
  • 配置:训练、推理、评测、prompt、post-processing;
  • 日志:原始命令、stdout/stderr、metric 输出、raw generations;
  • 修改:本地 patch、bug fix、替代实现、无法使用的原始工件。

2025 年 NeurIPS Datasets & Benchmarks Track 要求数据和 benchmark code 在提交时可访问,并引入 Croissant metadata 要求;ICLR 2025 Author Guide 也鼓励作者提交代码并写 reproducibility statement。这些会议要求可以反过来成为复现者的审计清单:作者有没有给足足以复现的材料?缺口在哪里?

4. Environment and Execution

环境记录不要只写"Python 3.10 + PyTorch"。要写到别人能定位差异:

text 复制代码
OS: Ubuntu 22.04
GPU: A100 80GB x 1
Driver / CUDA: ...
Python: ...
Key packages: torch, transformers, datasets, accelerate, vllm, peft
Repo commit: ...
Command: bash scripts/eval_x.sh --config configs/y.yaml
Seed policy: 3 seeds, seed = 13 / 21 / 42

如果你改了代码,必须把 diff 放入附录或仓库,并在正文说明改动意图。不要把"修了几个 bug"写成一句话。复现报告关心的是:这些改动是否改变了论文方法?是否只修正环境兼容性?是否可能解释结果差异?

5. Results and Deviation Analysis

结果部分要同时报告"数值"和"解释"。建议每张结果表后面加三段:

  1. Matched parts:哪些结果与原论文一致;
  2. Divergent parts:哪些结果不同,差异有多大;
  3. Likely causes:可能原因是什么,还需要什么实验才能区分。

不要编造 SOTA 或排名结论。对于复现报告,更重要的是"证据强度"而不是"漂亮数字"。如果只跑了一个 seed,就写一个 seed;如果只跑了 10% 数据,就标明 scale;如果没有原始测试集,就写无法完整比较;如果复现失败但无法定位原因,就写"无法判断",不要写"论文错误"。

6. Error Log and Decision Log

高质量 report 通常有两种附录:error log 和 decision log。

Error log 记录失败运行:错误类型、复现步骤、解决方案、是否影响最终结果。Decision log 记录人为判断:为什么换数据 split、为什么降低 batch size、为什么把 fp32 改成 bf16、为什么跳过某个 baseline。

这两个日志的价值在于减少"事后合理化"。很多复现结论看起来清楚,是因为作者把不方便解释的路径删掉了。科研训练应该反过来:保留关键失败路径,并说明它如何改变你对论文的理解。

7. Verdict and Recommendations

结论建议避免"成功复现 / 未成功复现"的二元表述,改用四级 verdict:

Verdict 含义 示例表达
Confirmed 主要 claim 在约定范围内得到支持 "主表方向和量级均接近原文"
Partially confirmed 部分设定支持,部分设定不支持 "小模型成立,大模型或新数据未确认"
Not confirmed 复现实验与主 claim 冲突 "同一配置下未观察到论文报告优势"
Inconclusive 工件缺失或资源不足,无法判断 "缺少测试集标签,无法比较主 metric"

最后给作者、复现者和后续研究者各写一条建议。比如作者应公开 evaluation script 和 raw outputs;复现者应固定数据 revision;后续研究可以做多 seed 方差分析或跨硬件测试。

从 Report 转写成博客的五步流程

第一步:把 claim map 改写成读者问题

Report 写给审阅者,博客写给学习者。转写时先把每个 claim 改成读者会问的问题:

  • 这篇论文真正想证明什么?
  • 证据来自哪张表或哪组实验?
  • 这个证据依赖哪些隐藏条件?
  • 如果复现资源有限,最小可验证实验是什么?
  • 结果差异会如何影响后续选题?

博客开头不要复述摘要。更好的开头是讲清楚"为什么这篇论文值得复现,以及复现它能训练哪种科研能力"。

第二步:把 artifact audit 改写成可学习的检查清单

Report 中的 artifact inventory 可能很细,博客中不必全部展开,但要保留模式。比如可以把"环境、数据、权重、seed、日志"写成一张 checklist,并配合具体例子说明。

博客读者最需要的不是你的完整 conda list,而是学会问:

  • 论文有没有提供不可变版本的代码?
  • 数据集是否可能在 Hub 上发生 revision 漂移?
  • checkpoint 与 tokenizer 是否匹配?
  • baseline 是作者重跑的,还是引用过去论文数字?
  • metric script 是否与 leaderboard 一致?
  • raw outputs 是否可以复查?

这样写,文章就从"我的复现经历"变成"读者可迁移的方法"。

第三步:把 run logbook 改写成关键转折

实验日志里有大量噪声。博客只保留改变判断的节点:

  • 第一次 minimal run 暴露了什么问题;
  • 哪个配置差异解释了主要结果偏差;
  • 哪个失败样本揭示了 metric 或 prompt 的脆弱性;
  • 哪个 ablation 让你改变了对方法机制的理解;
  • 哪个缺失工件导致结论只能 partial。

写作时可以采用"问题 -> 排查 -> 证据 -> 结论边界"的段落结构。不要写成"上午装环境,下午跑脚本,晚上报错"的时间线。

第四步:把结果表改写成证据强度

博客里的表格不要只是复制 report 数字。每个结果都要告诉读者它支持什么、不能支持什么。

建议用下面的表格:

观察 支持的结论 不能推出的结论 下一步实验
方法在 3 个 seed 上方向一致 claim 在本设定下较稳 不代表跨数据集泛化 换数据或换模型
baseline 与论文数字差异大 评测 pipeline 可能不同 不等于作者结果错误 复查 split 和 parser
ablation 方向不稳定 机制解释较弱 不等于主方法无效 增加 seed 和样本量

这种写法比"我们跑出了 X 分"更适合科研训练。

第五步:把 verdict 改写成选题入口

一篇好的复现博客,结尾不只是"总结经验",还应该提出 follow-up idea。复现过程中发现的问题,往往正是研究选题来源:

  • 如果结果依赖 prompt,可以做 prompt sensitivity study;
  • 如果缺少 raw outputs,可以做 evaluation trace standard;
  • 如果 baseline 复现困难,可以做 benchmark implementation audit;
  • 如果多 seed 方差很大,可以做 variance-aware evaluation;
  • 如果小模型和大模型趋势相反,可以做 scaling-dependent mechanism study;
  • 如果作者工件质量参差不齐,可以做 artifact quality checklist 或自动审计工具。

这样,复现笔记就不只是练习,而是通向 proposal 的材料库。

代表资料与写作路线图

1. NeurIPS 2019 Reproducibility Program:制度化复现的起点

Pineau 等人在 JMLR 2021 的报告总结了 NeurIPS 2019 reproducibility program:code submission policy、community-wide reproducibility challenge 和 ML reproducibility checklist 共同构成制度化尝试。对写作训练来说,它提醒我们:复现不是个人"跑代码能力"的问题,而是论文写作、工件发布、会议审查和社区反馈的组合问题。

读这篇报告时,重点不在历史细节,而在三个问题:会议如何要求作者报告?复现挑战如何组织学生和社区?checklist 如何把"可复现"拆成可检查项?

2. MLRC 2026:复现成为正式研究贡献

MLRC 2026 官网显示,它将作为 NeurIPS 2026 官方 track 举办;NeurIPS 博客在 2026 年 5 月说明,复现论文需要先在 TMLR 接受,并且欢迎确认、部分复现、失败复现、泛化研究、元复现研究、AI-assisted reproducibility 等类型。对研究生来说,这改变了复现笔记的定位:它不再只是课程作业,也可能是可以继续打磨的研究产物。

写 report 时可以借鉴 MLRC 的精神:不要把失败藏起来。只要范围清楚、证据充分、原因分析谨慎,部分失败也能产生知识。

3. ReproEvalCard:LLM Pipeline 的评测工件标准

ACL 2026 的 ReproEvalCard 审计了 2022-2025 年 pipeline-based LLM 论文,并指出 prompt、judge configuration、retrieval snapshot、intermediate traces 等是复现评测所需的关键工件。它还报告了随机性控制和中间 trace 缺失会限制评测复现。

这对博客写作有直接启发:如果你复现的是 RAG、agent、tool-use、LLM-as-judge 或 prompt-chain 论文,正文必须单独写"评测工件"。不要只写模型和数据。没有 prompt、judge、检索库快照和执行轨迹,很多 LLM 系统结果只能被部分审计。

4. PaperBench:把复现拆成可评分任务

OpenAI 在 2025 年发布 PaperBench,要求 agent 从头复现 20 篇 ICML 2024 Spotlight / Oral 论文,并用分层 rubric 拆成大量可评分子任务。它对普通研究生最有价值的不是 agent 分数,而是 rubric 思想:复现不是一个动作,而是由 paper understanding、implementation、experiment execution、result matching、analysis 等子任务组成。

写复现笔记时,可以给自己做一个小型 rubric:理解贡献 20 分,工件审计 20 分,最小运行 15 分,主结果 25 分,误差分析 20 分。这样能避免只追最终数字。

5. Papers with Code Research Code Checklist:代码工件的最低线

Papers with Code 的 research code checklist 把依赖、训练代码、评测代码、预训练模型、README 与复现命令列为核心项。虽然它最初面向作者发布代码,但复现者也可以倒过来用:如果一个仓库缺训练脚本、缺评测脚本、缺精确命令、缺权重或缺依赖说明,report 中就应该明确标注。

6. DeepSeek-R1 之后的 replication studies:开放细节不足时如何写

2025 年 arXiv 综述"100 Days After DeepSeek-R1"总结了 DeepSeek-R1 发布后大量 reasoning model replication studies,指出部分实现细节未完全开源,因此社区围绕 SFT、RLVR、数据构造和训练过程进行了复刻。这个案例很适合训练"开放权重不等于完整可复现"的判断:当训练数据、过滤策略、奖励细节或算力配置缺失时,报告应写成 replication / approximation,而不是 exact reproduction。

方法与实验记录对比表

记录对象 低质量写法 高质量写法 博客转写方式
复现目标 "复现论文结果" "复现 Table 3 的 Claim 2,使用官方 checkpoint 和 dev split" 用读者问题开头
环境 "按 README 安装" 记录 OS、GPU、CUDA、依赖、commit、命令 提炼为环境审计清单
数据 "使用 GSM8K" 记录来源、版本、split、preprocess、样本数、hash 说明数据漂移风险
权重 "使用 Qwen 模型" 记录 repo、revision、tokenizer、adapter、quantization 解释权重配对关系
失败运行 "报错很多" 记录错误、原因、patch、是否影响结论 只写改变判断的失败
结果 "基本一致" 报告数值、方差、scale、差异和可能原因 写成证据强度
结论 "复现成功" Confirmed / Partially confirmed / Not confirmed / Inconclusive 引出 follow-up idea

可操作检查清单

写 reproduction report 前,逐项检查:

  • 我是否列出了 1-3 条可测试 claim?
  • 每条 claim 是否对应论文中的表、图、段落或附录?
  • 我是否说明了复现类型:exact、partial、independent reimplementation 或 replication?
  • 作者代码是否记录了 commit、branch、license 和本地 patch?
  • 数据是否记录了来源、版本、split、预处理和样本数?
  • 权重是否记录了 checkpoint revision、tokenizer、adapter、量化和 license?
  • 评测是否记录了 prompt、metric、parser、judge、raw outputs?
  • seed 是否不只写一个数字,而是说明随机源和多 seed 策略?
  • 结果是否区分数值差异、方向性差异和统计不确定性?
  • 失败运行是否保留了足够的信息,让别人知道你尝试过什么?
  • 结论是否避免把资源限制误写成论文错误?
  • 博客是否把个人经历转化成读者可复用的方法?

写博客草稿前,再检查:

  • 开头是否说明"为什么复现这篇论文值得学"?
  • 是否用一张图或一张表展示复现路线?
  • 是否减少安装流水账,保留关键证据节点?
  • 是否明确哪些内容待人工核验?
  • 是否在文末给出参考资料和检索日期?

常见误区

误区一:把 README 跑通当作复现。 跑通 demo 只能说明 artifact 可执行,不能说明论文主张被复现。真正的 report 必须连接 claim 和 evidence。

误区二:只报告最好的 run。 如果跑了多个 seed,只写最高分,会把复现报告变成选择性报告。至少要说明 run 数、均值、方差和选择 checkpoint 的规则。

误区三:把实现差异藏起来。 研究生常担心写出 patch 会显得"不够纯"。恰恰相反,透明记录 patch 是 report 可信的前提。

误区四:把不可得工件写成小问题。 数据、权重、prompt、judge、检索索引、评测脚本缺任何一个,都可能改变结论。不要用"由于资源限制略过"一笔带过。

误区五:博客写成论文摘要翻译。 复现博客的价值不是告诉读者论文说了什么,而是告诉读者你如何检查这些说法,以及检查后学到了什么。

误区六:用"论文错了"制造冲突。 复现失败可能来自环境、依赖、硬件、seed、metric、数据版本、baseline 实现或资源不足。除非证据非常充分,否则更严谨的表达是"在本复现范围内未确认该 claim"。

适合研究生继续做的选题

  1. 复现报告模板自动化:设计一个脚本,从 git commit、conda env、GPU 信息、运行命令和 metric 文件自动生成 report skeleton。

  2. LLM 评测 trace 标准:针对 RAG 或 agent 论文,定义 prompt、retrieval snapshot、tool calls、judge config、raw output 的最小保存格式。

  3. 论文 claim 抽取工具:让模型从论文 PDF 中抽取可测试 claim,并要求每条 claim 绑定表格、图和实验设定,再由人工核验。

  4. Benchmark parser audit:系统比较不同开源评测脚本对同一 raw output 的解析差异,评估分数漂移。

  5. 复现成本估计模型:基于论文工件完整度、模型规模、数据规模和依赖复杂度,预测一篇论文的复现成本。

  6. 负结果写作规范:收集 MLRC、ACL、ICLR、NeurIPS 中的 reproduction / negative results 论文,分析高质量负结果如何组织证据。

总结

论文复现笔记的目标不是记录"我做了什么",而是留下"别人如何判断我的复现结论是否可信"的证据链。实验日志负责保留事实,reproduction report 负责组织证据,博客草稿负责把方法教给读者。

如果你是研究生,建议从下一篇论文开始就使用固定模板:先写 claim map,再做 artifact audit,然后维护 run logbook,最后给出 verdict 和 follow-up idea。这样训练一个月后,你得到的不只是 30 篇读书笔记,而是一套可以长期复用的科研阅读与复现实践系统。

参考资料

检索日期:2026-07-29。

  1. Koustuv Sinha 等,MLRC 2026 官方网站:https://reproml.org/
  2. NeurIPS Blog,MLRC 2026: Reproducibility as an Official Track at NeurIPS,2026-05-04:https://blog.neurips.cc/2026/05/04/mlrc-2026-reproducibility-as-an-official-track-at-neurips/
  3. Priyaranjan Pattnayak, Apoorv Bhatia,ReproEvalCard: A Reporting Standard for Reproducible Evaluation of LLM Pipelines,ACL 2026:https://aclanthology.org/2026.acl-short.22/
  4. Giulio Starace 等,PaperBench: Evaluating AI's Ability to Replicate AI Research,OpenAI,2025-04-02:https://openai.com/index/paperbench/
  5. OpenAI frontier-evals GitHub repository:https://github.com/openai/frontier-evals
  6. ICLR 2025 Author Guide,Reproducibility section:https://iclr.cc/Conferences/2025/AuthorGuide
  7. NeurIPS 2025 Datasets & Benchmarks Track Call for Papers:https://neurips.cc/Conferences/2025/CallForDatasetsBenchmarks
  8. Papers with Code,Tips for Publishing Research Code:https://github.com/paperswithcode/releasing-research-code
  9. Joelle Pineau 等,Improving Reproducibility in Machine Learning Research: A Report from the NeurIPS 2019 Reproducibility Program,JMLR 2021:https://www.jmlr.org/papers/v22/20-303.html
  10. Chong Zhang 等,100 Days After DeepSeek-R1: A Survey on Replication Studies and More Directions for Reasoning Language Models,arXiv:2505.00551,2025:https://arxiv.org/abs/2505.00551
  11. National Academies of Sciences, Engineering, and Medicine,Reproducibility and Replicability in Science,2019:https://www.ncbi.nlm.nih.gov/books/NBK547531/
  12. ACL 2026 Main Conference Call for Papers:https://2026.aclweb.org/calls/main_conference_papers/

来源说明:本文引用的会议政策、项目页、论文页面和代码仓库均在 2026-07-29 检索。会议时间、track 规则、OpenReview 状态、代码仓库 commit、benchmark 结果和模型工件可能随时间变化;正式发表前应再次核对。OpenReview 页面如遇访问挑战或状态变化,请以会议官网、ACL Anthology、arXiv、TMLR/JMLR 页面和作者仓库为准。

相关推荐
春生野草17 小时前
个人笔记——C语言字符串、树
c语言·开发语言·笔记
九硕智慧建筑一体化厂家18 小时前
无线动能开关|校园教学空间便捷智能控电方案
笔记·智慧城市
摇滚侠18 小时前
Codebuddy 官网 Codebuddy IntelliJ IDEA 插件 阅读笔记 2
java·笔记·intellij-idea
Daimuovo18 小时前
盘古模型热带气旋快速增强预报评估
经验分享·笔记·其他
神明不懂浪漫18 小时前
【第三章】链表
开发语言·数据结构·经验分享·笔记·链表
今儿敲了吗19 小时前
Python——模块、异常、面向对象
开发语言·笔记·python
kdxiaojie20 小时前
Linux 驱动研究 —— V4L2 (15)
linux·运维·笔记·学习
摇滚侠20 小时前
Java 全栈开发实战教程 课程笔记 39-56
java·开发语言·笔记
EntyIU21 小时前
Flowable流程开发笔记
笔记·flowable
杨逢昌工厂6S管理21 小时前
44-6S 管理回潮问题根治:归位三定闭环法的体系化落地路径|杨逢昌
经验分享·笔记·职场和发展·学习方法