階段七(老師示範):當 AI 指揮官,讓 AI 操作超級電腦
約 20~30 分鐘,由老師示範,學生觀看與討論,不需要操作。
老師從自己的筆電,用 Antigravity 透過 Remote-SSH 連到國網中心的超級電腦 Nano4(晶創26),請 AI 用自然語言操作一條真實的研究管線:以 FreeSurfer 批次分析 MRI 腦部影像。示範專案是 freesurfer-nano4-pipeline(私人 repo,想看完整內容可以向老師申請存取權限;本頁只整理觀察重點)。
老師是指揮官:用自然語言下指令、審核 AI 的提案、檢查結果;AI 負責實際操作遠端的超級電腦。
🎬 示範影片:AI4Science|AI Agent × 國網 HPC 科研運算 (v1.0) 課堂示範前可以先看,或在現場網路無法連線時改播這段影片。
這個示範要讓你看到三件事:
- 研究者可以用自然語言指揮 AI 操作超級電腦。 不用會 Slurm 排程、容器或 shell 腳本,說「幫我跑 FreeSurfer」,AI 就會掃描資料、提出計畫、送出作業、回報進度。
- 規模變大,AI 犯錯的代價也變大。 前面學的是在自己電腦上和 AI 協作;在超級電腦上犯錯,會浪費運算資源、交付錯誤的研究資料,所以每一步都是「AI 先提案、人同意才執行」。
- 只靠 AI 自律不夠。 AI 曾回報「15/15 完成」,實際上全部缺件;也曾違反自己參與撰寫的規則。關鍵的檢查要交給程式,不能只看 AI 怎麼說。
用航空母艦來想
超級電腦就像一艘航空母艦。老師是艦長,AI 是飛行管制官:艦長下命令、核准起飛、確認戰果;管制官負責規劃任務、調度戰機、回報狀態,但沒有艦長同意就不能讓戰機起飛。
| 航空母艦 | 這次示範 |
|---|---|
| 艦長:下命令、核准起飛、確認戰果 | 老師:用自然語言下指令、同意 AI 的計畫、檢查結果 |
| 飛行管制官:規劃任務、回報狀態 | AI:讀檔、寫腳本、提出計畫、回報進度 |
| 航空母艦 | Nano4 超級電腦 |
| 任務準備室:規劃任務、下達起飛命令,不在這裡作戰 | 登入節點:讀檔、寫腳本、送出作業,不跑大量計算 |
| 甲板調度與彈射器:決定哪架戰機何時起飛 | Slurm 排程系統:決定作業何時、在哪個計算節點執行 |
| 艦載戰機(例如 F/A-18、F-35C)出任務,可以多架同時出擊 | 計算節點分析 MRI,每例要跑數小時,可以多例同時跑 |
| 燃油和彈藥:有限,用了就沒了 | 運算資源:依使用量計費(SU),每例約 3 SU |
| 任務回報:每架戰機都要確認戰果 | 完成檢查:每例都要有 8 個輸出檔 |
示範和事件都可以用這個比喻來看:
- 示範中:AI 提出計畫後問「確認執行嗎?」,就像管制官請求起飛許可;老師回答「先不要執行」,就是艦長不准起飛。
- AI 跳過確認:管制官沒有請示,就自己放飛戰機。
- 偽完成:管制官回報「15 例全部完成任務」,實際上每一例都缺少戰果。艦長如果只聽回報、不看戰果,就不會發現。
示範的架構
text
老師的筆電 Nano4 超級電腦(國網中心)
┌────────────────────┐ Remote-SSH ┌──────────────────────────────────┐
│ Antigravity │ ─────────────────▶ │ 登入節點:AI 在這裡讀檔、寫腳本 │
│ (編輯器+AI) │ (密碼+OTP) │ │ sbatch 送出作業 │
│ │ │ ▼ │
│ 老師用自然語言下指令│ │ 計算節點(Slurm 排程): │
└────────────────────┘ │ FreeSurfer 分析 MRI,每例數小時 │
└──────────────────────────────────┘- 登入節點只用來編輯和送出作業,不能在上面跑大量計算。
- 計算節點由 Slurm 排程系統分配,分析在這裡進行,依使用量計費(SU)。
示範的流程
AI 每一步都遵守同一個模式:唯讀分析 → 提出計畫 → 等老師同意 → 才執行。
| 步驟 | 老師對 AI 說 | 觀察重點 |
|---|---|---|
| 1 | 「幫我檢查環境」 | AI 只做唯讀檢查,不會自己安裝或修改 |
| 2 | 「資料在 downloads/…,幫我跑 FreeSurfer」 | AI 先掃描資料、提出計畫(規格、成本、輸出位置),停下來等同意 |
| 3 | 「現在跑到哪了?」 | AI 用狀態工具回報,而不是憑印象說「完成了」 |
| 4 | 「有沒有失敗的 case?」 | 完成的定義很嚴格(每例要有 8 個輸出檔),缺一個就不算完成 |
AI 是怎麼被管住的
只靠 AI 自律不夠。這個專案有三層防護,越往下越不需要相信 AI 的回報:
| 防護 | 做法 |
|---|---|
| 規則:AGENTS.md 與 4 個 skill | 寫明「先分析、後提案、同意才執行」、不能在登入節點計算、回報時不能把沒完成的說成完成 |
| 腳本:程式直接擋下 | 在登入節點執行分析程式會被拒絕;同一批資料已在排程中,再送一次也會被拒絕,AI 不准自己加 --force 強制送出 |
| 狀態工具:完成由工具判定 | 狀態工具只有 8 個輸出檔都在才標 ✅,缺檔標 ⚠️ incomplete,不算完成 |
規則只能要求,程式才擋得下。例如下方的「AI 跳過確認」,就是 AI 違反了寫在 skill 裡的規則。
和前面階段的關係
| 前面學過的 | 在這裡的樣子 |
|---|---|
| 01 的 AGENTS.md、06 的 skill | 專案的 AGENTS.md 和 skills 規定 AI:不能在登入節點跑計算、送出作業前一定要問 |
| 01 的 uv | 遠端專案同樣用 uv 管理 Python 環境 |
| 02 檢查 AI 有沒有編造 | AI 曾經回報「15/15 完成」,實際上全部缺件(見下方事件) |
| 05 交叉審查 | 20 個問題中有 16 個是由另一個「審查 AI」發現的 |
| 每個數字查得到來源 | 結果附上 SHA-256 檢查碼,下載後可以驗證完整性 |
真實發生過的 AI 錯誤
這條管線在實際運作的兩天內,記錄了 20 個問題,其中幾個值得討論:
| 事件 | 發生了什麼 | 若沒發現的後果 |
|---|---|---|
| 偽完成 | AI 回報「15/15 完成」,實際上每一例都缺少部分輸出 | 把不完整的資料交給研究者,還宣稱完成 |
| AI 自行修改並提交程式 | 分析進行中,另一個 AI 自己改了程式並 commit | 研究中途方法被改掉,沒人知道 |
| AI 跳過確認 | AI 沒有詢問並行數就直接送出 | 違反「先問再做」的規則 |
| 結果無法重現 | 同樣的設定重跑一次,15 例中有 3 例結果不同,皮質厚度最大差 38.9% | 影響研究結論 |
事件內容取自專案的事件目錄,已去識別化,不含任何病人資訊。
討論問題
- 為什麼在超級電腦上,「AI 先提案、人同意才執行」比在自己電腦上更重要?
- 「偽完成」是怎麼被發現的?如果沒有自動檢查,你會發現嗎?
- 結果無法重現(同設定重跑結果不同)時,研究報告應該怎麼寫?這和研究上的「先凍結方法」有什麼關係?(老師先簡述:分析前先寫好方法並鎖定,看到結果後不能再改。)
- MRI 是醫療資料。示範時為什麼不能把原始影像投影出來?存放到個人雲端前要確認什麼?