内容讲解幻灯片 是做什么的?
构建一张图片,讲述一项技术工作的故事:注意到了什么、哪里出了问题、做了什么以及每一步为什么有效、每个数字从何而来、取得了什么成果、学到了什么教训。
标准是 100% 清晰直观,适合初级工程师,而非 100% 详尽。 这个标准来自真实的评审轮次:每次当术语未定义、数字来源不可见、步骤原因隐藏在脚注中或卡片存在空白区域时,读者都会追问“这是什么?”、“30 从哪里来?”、“为什么这样做有效?”——然后幻灯片就需要再修改一轮。以下所有内容都是为了在读者提问之前,在幻灯片上回答这些问题。
一个完整的幻灯片设计工作示例(关于神经网络“神经元手术”实验)位于 references/worked-example.md。在规划你的第一张幻灯片之前先阅读它;它展示了应用规则后每张卡片的样子。
步骤 0 — 询问输出格式,然后构建事实表
询问格式(一次,在绘制之前)
询问用户他们想要哪种输出格式,除非他们已经说过:
- 通过 matplotlib (Python) 生成 PNG — 当输入包含数据、模型、日志或结果文件时效果最佳,因为脚本可以直接从这些文件计算幻灯片上的每个数字(无需手动输入数字)。同时也会导出一份 JPG 副本。
- HTML/SVG 页面渲染为 PNG — 当输入仅为文本(论文、文档、笔记)时效果最佳,或者当排版和布局的精美程度比计算数字更重要时。使用 headless Chrome/Edge 渲染为 PNG。
- 两者都生成 — 相同的幻灯片设计,两种呈现方式。
说明你的建议及其原因(数据输入 → matplotlib;文本输入 → HTML)。如果无法询问用户(自动运行),则按此规则选择,并说明你选择了哪一种及其原因。
构建事实表
在设计任何内容之前,列出幻灯片可能使用的每个事实。对于每个事实,记录:
| 事实 | 值 | 在何处测量(哪个数据/哪个章节) | 来源(文件 + 脚本,或论文页/表) |
|---|
然后:
- 交叉核对事实,确保事实之间以及与任何草稿文本(帖子、摘要、README)保持一致。立即解决每个不一致之处——一张幻灯片说 38 而帖子说 36 会破坏信任,这种不一致通常源于两个地方以不同方式计算了“同一个”数字(不同的样本量、不同的阈值)。
- 记录数据划分:哪些数据用于构建方法,哪些数据被留出用于测试方法。幻灯片必须说明这一点,因为“结果是否在从未见过的数据上成立?”是技术读者首先会问的问题。
- 两种模式:
- 数据模式(存在结果、模型、CSV、日志):绘图脚本加载它们并在渲染时计算每个数字。
- 来源模式(纯文本):每个数字均从来源复制,事实表需注明其位置(页、表、图)。不要编造或四舍五入数字,除非来源已明确说明。
将事实表保存在幻灯片旁边(<名称>_facts.md),以便后续编辑保持一致。
步骤 1 — 找到故事(3–6 张编号卡片)
针对每个问题写一句话。每个答案成为一张卡片:
- 发现/背景——注意到了什么,或者背景是什么。
- 问题——出了什么问题或缺少什么,要进行量化。如果有多个问题,命名它们(问题 A、问题 B)。说明要解决什么,以及故意不解决什么及其原因——读者如果在图表中看到一个薄弱项而没有解释,会认为这是一个错误。
- 方法——针对一个实例的配方,作为步骤列出。
- 从一个实例到所有实例——配方如何应用于所有情况,决定数量的规则,以及数量统计。将每个修复与其解决的问题配对(“修复 A → 问题 A”)。
- 结果 + 课程——发生了什么变化,有多确定,它教会了我们什么。
合并内容重复的卡片(每次评审中冗余卡片都会被移除)。对于较小的输入,卡片 3 和 4 可以合并,或者幻灯片可以是 3 张卡片:问题 → 方法 → 结果。最多不超过 6 张——超过这个数量就变成了演示文稿,而不是单张幻灯片。
步骤 2 — 标题
顶部的一行或两行文字:一个令人惊讶的事实 + 采取的行动,例如“M 个零件中的 N 个无所事事。所以它们被安排了工作。”标题让人停止滚动;卡片让人信任它。标题中的数字来自事实表/脚本变量,绝不要手动输入。
步骤 3 — 卡片骨架(每张卡片相同)
- 编号 + 强调色。 每张卡片都有一个大的编号(1–5)和其自己的强调色,用于其边框和高亮。编号提供阅读顺序;颜色让后面的卡片可以回溯引用(“卡片 4 中的 11 个检测器”)。
- 标题 = 该卡片回答的问题。
- 一句加粗的要点句 = 答案。
- 一个主要图表。 方法卡片可以使用步骤单元格的网格;结果卡片可以使用图表加解释面板。
- 数据标签——该卡片使用哪些数据以及为什么使用这些数据(“60,000 张训练图像中的 18,000 张 (30%)——其余保持不可见,以便最终检查公平”)。
- 简短脚注——仅限注意事项。推理过程绝不要放在脚注中(见步骤 4)。
步骤 4 — 方法卡片:做什么 / 图 / 为什么 单元格
将方法拆分为 3–5 个编号的单元格(4 个时为 2×2 网格)。每个单元格从上到下具有相同的三个部分:
- 说明 (做什么) — 一个具体的动作,说明 什么与什么进行比较:“将一张 NEW 图像(它从未见过的)与步骤 2 的模式进行比较”,而不是“它被匹配”。
- 图片 — 使用来自数据或来源的真实示例构建:实际输入、实际中间结果、实际分数。真实示例使抽象步骤变得可信;通用的图标毫无意义。
- 为什么框 — 全宽,固定高度,视觉风格明显(着色背景,“为什么?”标签)。它说明了该步骤为什么有效。
“为什么”必须放在图片中,并且要突出。在评审中,放置在脚注中的推理每次都会被遗漏,读者不得不反复提问。在单元格内,回答读者会提出的问题:
- 为什么选择这个方案而不是显而易见的那个?(例如,为什么减去正确类别的平均值)
- 这不会影响什么,为什么?(例如,“它只能降低‘3’;如果另一个类别已经胜出,则没有任何变化”)
将机制显示为之前 → 之后:一个小的分数/状态面板(之前),一个箭头,然后是一个面板(之后),在胜出者上标记 ✓/✗,在箭头上添加简短说明(“第二高者胜出”)。如果面板标题不适合放在下方,则将其放在旁边。
如果图片简化了现实(它显示像素,而实际计算使用内部特征),请在脚注中说明——诚实地说明简化只需一行,可以防止“不是这样工作”的评论。
将工作示例标记为 “示例:” 并说明一般规则(“所有 30 个检测器均采用相同配方”),否则读者会认为方法只覆盖了这一个案例。
步骤 5 — 使每个数字都可追溯
- 将每个数字的来源显示为可见链条:“21 个示例 → 3 种样式 → 3 个检测器”,“11 + 19 = 36 个中的 30 个(6 个备用)”。总数必须明显相加成立,并且剩余部分需要有原因。
- 说明产生计数的选择规则和阈值(“一种样式需要 ≥2 个示例”,“少于 3 个示例的错误因太少而无法学习,故跳过”)。
- 如果数据来自不同来源(标记 vs. 挖掘,测量 vs. 估计),请用视觉方式显示(深色 vs. 浅色条)并附上图例。
- 首次出现时解释任何符号(“×N = 该错误的 N 个样式检测器”)。
- 在数据模式下,脚本计算每个数字;文本字符串使用变量(f-string / 模板值)。手动输入的数字会与数据不同步——这曾导致过真正的错误幻灯片。
步骤 6 — 诚实的结果,解释每个变化
- 用于构建方法的数据的之前 → 之后对比;如果存在第二个未使用的数据集,则在其上确认。
- 同时给出收益和损失(“修复了 34 个,破坏了 9 个”)。只显示收益的结果会被认为是经过挑选的。
- 用通俗语言表述统计结果(“大约每百万个中有 6 个是靠运气”),技术形式放在小字或脚注中。
- 逐项变化图表(之后 − 之前,用颜色标记正/负/零)加上一个“每项变化原因”面板:为何产生收益,为何产生损失,以及任何额外副作用。列出损失而不解释其原因会引发最坏的解读。
步骤 7 — 平实一致的用词
- 首次使用时用几个简单的词语定义每个术语,或者用一个简单的词语替换它。
- 整个幻灯片中一个概念对应一个词(处处使用“预测的”,不要有时用“回答的”)。
- 没有内部昵称(“集合 A”、“转折点”、“幸运副作用”、“×3”),除非在幻灯片上进行了定义。
- 每个论断必须与其图表匹配。如果图表显示了文本未解决的奇怪内容,请解决它。
步骤 8 — 图例和颜色
- 每种颜色、色调、箭头和符号都在其出现处进行解释。对比图像需注明“红色 = 仅存在于 X,蓝色 = 仅存在于 Y”。
- 整个幻灯片中一种颜色对应一个含义:例如红色 = 问题/已移除,绿色 = 已修复/良好,灰色 = 中性。卡片的强调色与这些语义颜色分开。
- 分组的项目(一种错误的多个样式,一个步骤的多个变体)应放置在可见的框内,以免各组之间界限模糊。
步骤 9 — 结论和经验横幅
- 结论横幅(绿色背景):展示了什么,包括其规模和限制(“微小但真实的收益,且在新数据上成立”)。
- 经验横幅(幻灯片底部):读者可以将其应用于其他问题的内容。
步骤 10 — 布局
- 16:9 比例(例如 16×9 英寸,150 dpi,或 1600×900 像素的画布)。卡片按故事顺序从左到右阅读。
- 根据内容调整卡片大小——方法卡片通常最宽。没有大的空白区域:如果某张卡片有剩余空间,可以加宽其图表或将其文本面板移到空间中。
- 文本无重叠;标签保持在其框内。长行应换行,而不是将字体缩小到低于手机可读性(≈16×9 英寸下 7.5 pt 是下限)。
- 阅读
references/matplotlib-recipes.md(PNG)或references/html-recipes.md(HTML)以获取布局代码。scripts/slide_kit.py提供了 matplotlib 辅助工具(卡片、步骤单元格、为什么框、前后分数面板、横幅、PNG+JPG 导出)——请导入它而不是重写它们。
步骤 11 — 渲染、检查、修复、重复
- 渲染图像。
- 查看实际图像——打开 PNG 并放大到每张卡片(如果需要,可裁剪)。“应该”合适的代码常常并不合适;重叠和裁剪的文本只有在渲染后才可见。
- 像初级工程师第一次看到它一样,逐张卡片检查
references/checklist.md。 - 修复、重新渲染、重新检查。不要向用户展示未通过检查清单的幻灯片。
步骤 12 — 变体和最终检查
- 为技术读者提供详细版本(包含所有数字)。为普通受众提供简单版本:相同的故事,更少的精确数字。
- 导出 JPG 副本(无透明度)用于 LinkedIn/X。
- 在发布前,验证幻灯片或配套帖子上的每个外部声明或引用;标记任何你无法验证的内容。
- 交付:PNG(+ JPG)、绘图脚本或 HTML 源代码以及事实表。提及
linkedin-arabic-science-post、tweet-post或figure-animator可以根据完成的幻灯片生成帖子或动画版本。