內容解說投影片
建立一張圖片,講述一項技術工作的故事:發現了什麼、哪裡出了問題、做了什麼以及每個步驟為什麼有效、每個數字的來源、以及它達成了什麼並教會了我們什麼。
標準是 對初級工程師而言 100% 清晰且直觀,而非 100% 詳細。 這個標準來自真實的審查回合:每次當一個術語未定義、一個數字沒有可見的來源、一個步驟的理由藏在註腳裡、或一張卡片有空白區域,讀者就會回問「這是什麼?」、「30 從哪裡來?」、「為什麼這樣做?」——而投影片就需要另一輪修改。以下所有內容都是為了在讀者提問之前,在投影片上就回答這些問題。
一個完整的投影片規劃範例(神經網路「神經元手術」實驗)位於 references/worked-example.md。在規劃你的第一張投影片之前,請先閱讀一次;它展示了在應用規則後每張卡片的外觀。
步驟 0 — 詢問輸出格式,然後建立事實表
詢問格式(在繪製之前,詢問一次)
詢問使用者他們想要的輸出格式,除非他們已經指定:
- 透過 matplotlib 生成 PNG (Python) — 當輸入包含資料、模型、日誌或結果檔案時最佳,因為腳本可以直接從這些檔案計算投影片上的每個數字(無需手動輸入數字)。也會匯出一個 JPG 副本。
- HTML/SVG 頁面渲染成 PNG — 當輸入僅為文字(論文、文件、筆記)時最佳,或者當排版和佈局精緻度比計算數字更重要時。使用無頭 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 網格)。每個單元格從上到下都有相同的三個區塊:
- 標題(什麼) — 一個具體的行動,說明什麼與什麼進行比較:「將一張新圖片(它從未見過的)與步驟 2 的模式進行比較」,而不是「它被匹配」。
- 圖片 — 使用來自資料或來源的真實範例構建:實際輸入、實際中間結果、實際分數。真實範例是讓抽象步驟變得可信的關鍵;通用圖示什麼也教不了。
- 為什麼框 — 全寬、固定高度、風格明顯(帶有「為什麼?」標籤的著色背景)。它說明為什麼該步驟有效。
「為什麼」必須顯著地放在圖片中。在審查中,放在註腳中的推理每次都會被忽略,讀者不得不反覆詢問。在單元格內部,回答讀者會問的問題:
- 為什麼選擇這個而不是顯而易見的那個?(例如,為什麼減去正確類別的平均值)
- 這不會影響什麼,為什麼不影響?(例如,「它只能降低『3』;如果另一個類別已經勝出,什麼也不會改變」)
將機制顯示為之前 → 之後:一個小的分數/狀態面板(之前),一個箭頭,之後的面板,在勝出者旁邊打上 ✓/✗,並在箭頭上添加簡短說明(「第二名獲勝」)。如果面板標題無法放在其下方,則放在其旁邊。
如果圖片簡化了現實(它顯示像素,而實際計算使用內部特徵),請在註腳中說明——誠實地說明簡化只需一行,並能防止「這不是它的運作方式」的評論。
將一個工作範例標記為 「範例:」 並說明通用規則(「對所有 30 個檢測器使用相同配方」),否則讀者會認為該方法僅涵蓋這一個案例。
步驟 5 — 讓每個數字都可追溯
- 將每個數字的來源顯示為可見的鏈條:「21 個範例 → 3 種風格 → 3 個檢測器」、「11 + 19 = 30 / 36(6 個備用)」。總和必須明顯相加,並且剩餘的部分需要一個原因。
- 說明產生計數的選擇規則和閾值(「一種風格需要 ≥2 個範例」、「少於 3 個範例的錯誤被跳過,因為樣本太少無法學習」)。
- 如果資料來自不同的來源(標記的 vs. 挖掘的,測量的 vs. 估計的),請以視覺方式顯示(深色 vs. 淺色長條)並附上圖例。
- 第一次出現時解釋任何符號(「×N = 該錯誤的 N 個風格檢測器」)。
- 在資料模式下,腳本計算每個數字;字串使用變數(f-string / 模板值)。手動輸入的數字會與資料不同步——這曾導致一個真正的錯誤投影片。
步驟 6 — 誠實的結果,解釋每個變化
- 從未用於建構方法的資料上的之前 → 之後;如果存在第二組未使用的資料,則在其上確認。
- 說明收益和損失(「34 個已修復,9 個損壞」)。只有收益的結果看起來像是挑選過的。
- 用簡單的語言說明統計數據(「大約六百萬分之一的運氣成分」),技術形式以小字或放在註腳中。
- 一個逐項變化的圖表(之後 − 之前,以正 / 負 / 零顏色標記)加上一個「每個變化的原因」面板:收益發生的原因、損失發生的原因、任何額外的副作用。列出損失卻不說明原因,會引來最糟糕的解釋。
步驟 7 — 簡單、一致的詞彙
- 在首次使用時,用簡單的幾個字定義每個術語,或者用一個簡單的字取代它。
- 在整張投影片中,一個概念只用一個詞(到處都用「預測的」,絕不有時用「回答的」)。
- 沒有內部的暱稱(「集合 A」、「轉折點」、「幸運副作用」、「×3」),除非已在投影片上定義。
- 每個主張都必須與其圖表匹配。如果圖表顯示了一些文字未提及的奇怪現象,請處理它。
步驟 8 — 圖例和顏色
- 在出現的地方解釋每一種顏色、色調、箭頭和符號。分歧影像獲得「紅色 = 僅在 X 中,藍色 = 僅在 Y 中」。
- 在整張投影片中保持一種顏色含義:例如,紅色 = 問題/已移除,綠色 = 已修復/良好,灰色 = 中性。卡片強調色與這些語義顏色分開。
- 分組的項目(同一錯誤的不同風格,同一步驟的不同變體)放置在可見的邊框中,以免各組混在一起。
步驟 9 — 結論和教訓橫幅
- 結論橫幅(綠色色調):展示了什麼,包括其規模和限制(「微小但真實的收益,並在新的資料上保持」)。
- 教訓橫幅(投影片底部):讀者可以應用到其他問題的內容。
步驟 10 — 佈局
- 16:9(例如,在 150 dpi 下為 16×9 英寸,或 1600×900 像素的畫布)。卡片以故事順序從左到右閱讀。
- 根據內容調整卡片大小——方法卡片通常最寬。沒有大的空白區域:如果一張卡片有剩餘空間,請加寬其圖表或將其文字面板移到該空間中。
- 沒有重疊的文字;標籤保持在它們的框內。長行要換行,而不是將字體縮小到低於手機可讀性(≈7.5 pt,在 16×9 英寸時為下限)。
- 閱讀
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可以根據完成的投影片產出貼文或動畫版本。