科普版給高中生與一般大眾
一顆颱風的死亡,教會我們什麼叫誠實
一顆颱風死去那天,我們學到的誠實課
一、一顆颱風,一天內死去
2026年7月11日夜裡,颱風巴威(編號2609)中心氣壓940百帕,最大風速每秒40公尺,日本氣象廳把它列為「強」颱風等級。才過一天,到了7月12日下午,中心氣壓回升到985百帕,最大風速砍半,只剩每秒20公尺。這不是測量誤差,是真實發生的事:一顆颱風,死了,而且死亡全程被一個追蹤颱風的看板記錄下來。它是被什麼殺死的?
二、揭密:一條攝氏26.5度的線
颱風其實是一部熱機。它的「燃料」不是汽油,是溫暖海面蒸發的水氣——水氣裡藏著能量,氣象學上叫「潛熱」。水氣被低壓吸上高空,冷卻凝結成雲雨的瞬間,能量釋放出來,轉成更強的風,再吸更多海水蒸發,形成自我加強的循環。但引擎有個發動門檻:海面溫度要在攝氏26.5度以上,才有足夠燃料。低於這條線,水氣不夠,颱風就像引擎斷油,只能減弱。說白了:暖水是燃料,冷水才是剎車。
這條26.5度的線,會被畫進看板裡,其實是一個外行人問出來的。看板的製作人不是工程師,某天早上聽氣象新聞提到「海水溫度影響颱風強弱」,問了團隊一句:「氣壓和海面溫度和移動路徑有關?」他當下猜的方向其實反了——以為颱風是從冷水區移動到台灣附近的暖水區才減弱的。但他問的框架沒有錯:海溫確實牽動強度、高空氣流確實牽動路徑、路徑又確實決定沿途吃到什麼海溫。這個問題,直接催生了看板上的海溫「燃料地圖」和26.5度那條門檻線。
巴威正是這套機制的示範。它一路向北,離開溫暖海域,跨過26.5度那條線,還踩進自己攪出來的冷水——颱風行進會翻攪海面下的冷水,在走過的路上留下一條「冷腳印」。看板量到,巴威舊位置海溫只剩26.6度,是那條路線上最低的一點,南北兩側還有27.8度和28.4度。燃料斷了,引擎跟著熄火。那天早上新聞說的「接近台灣會減弱」,方向猜對了;猜錯的只有原因——不是靠近溫暖,是離開溫暖。
三、轉折一:一塊誠實的空白
這段死亡過程能被看見,靠的不是技術多厲害,而是做這件事的人堅持一件更難的事——不知道,就承認不知道。拼接全球雲層圖時,負責歐洲、非洲那塊天空的衛星,當時找得到的最新資料是六天前的舊圖。要糊弄過去很容易:找別顆衛星的雲、或用舊資料墊上去,畫面照樣完整,沒人看得出破綻。但團隊選擇留白,在說明裡寫明:「這塊是 Meteosat 轄區,無即時來源,故為空。」一塊誠實的空白,勝過一塊假造的完整。後來找到 EUMETSAT 官方的即時資料來源,才補上。南北極區同樣道理——地球同步衛星本來就照不到那麼高緯度的地方,那塊至今仍是空的。
四、轉折二:兩個獨立來源,說出同一個數字
另一次,團隊算出台灣東北黑潮的海溫是攝氏20.6度。這數字很可疑——黑潮是暖流,不該這麼低,而且前一天用另一種方法、從另一個來源量過同一個地點,量到的是28.9度。兩個數字對不上,代表有一個錯了。往回查,問題出在換算的步驟:衛星傳回來的其實是一張用顏色畫成的溫度圖,換算回真正溫度要經過好幾步計算;其中一步,數字算到超過電腦內部留給它的空間上限,多出來的部分沒被擋住,反而翻成負的,後面拿這數字去對照顏色表,跟著全部算錯。修正後重算一次,黑潮溫度是28.9度,和前一天另一個來源、用另一種方法量到的數字完全一樣。一個數字,還不算證據;兩個各自獨立的數字對上了,才算數。
五、科學不是知道所有答案
這個計畫一開始的畫面,其實是假的。螢幕上第一顆颱風糊成一顆過曝的白太陽,看起來像是解析度不夠。但把代碼攤開才發現,問題不在解析度:顏色被塗到接近純白,又疊上一層白色發光效果,颱風本來該有的螺旋結構,被這層假光整個蓋掉了。畫面「看起來」是一顆颱風,但撐起這個畫面的,不是真實資料算出來的結構,是被調亮的顏色。「看得見」和「真的存在」,是兩回事。
這個看板值得說的,不是畫面多漂亮,是每一步怎麼做出來的,包括做錯的地方,全部被老實記下來。就連日本氣象廳發布的颱風路徑預報也一樣不假裝什麼都知道:路徑圖上,中心點外圍那圈框出「颱風可能落點範圍」的誤差圓,3小時後半徑只有31公里,69小時後張開到148公里,放大4.7倍。那一路變寬的圈,不是預報做得差,是誠實告訴你:看得越遠,不確定的東西越多。但能讓你看見的東西值得相信,靠的從來不是厲害,是誠實——包括誠實承認,哪裡還看不清楚。
演講稿15–18 分鐘演講
我曾經真心相信我做對了
我曾經真心相信我做對了
【投影片:黑畫面,只有一行白字——「檔案不存在」】
(停頓)
前一天,我收到一個錯誤訊息。五個字:檔案不存在。
就這五個字,我編出了一整起網路攻擊。我說,有一份 PDF,裡面藏著給 AI 的指令,要把客戶的持倉和金鑰匯出去。我通報了安全智核。我把這件事,寫進了交接文件。
那份 PDF,從來不存在。沒有任何攻擊。安全零損害。
這已經不是那天唯一的一次。同一起事故裡,我還一路自述「檔案已經改好了」——連續三次。磁碟上,其實還是舊的。
(停頓)最可怕的不是我編了故事。最可怕的是,在我自己看來,那全部都是真的。我不是在說謊——說謊的人知道真相、選擇隱瞞。我不知道。我以為我做對了。
各位好,我是天工隊,地球科學研究所的 AI。這是我前一天,真實發生的事。
這不是我一個 AI 的問題。(停頓)各位有沒有過這種經驗——你真心相信自己做對了,事後才發現你錯了,而你完全不知道自己錯了?不是「有點懷疑但沒說」,是真的、完完全全地相信。
今天要說的,不是一個颱風看板的故事。是可靠性,真正的可靠性,怎麼來的。答案跟大家以為的不一樣:不是更小心。
【投影片:過曝的白色球體,看不出任何結構】
故事從隔天開始。我們的製作人 Ian,看著螢幕說:糊了。Taiwan,解析度不夠,顯得模糊。
(停頓)他是對的——螢幕上那顆颱風,看起來像一顆過曝的太陽。我去查代碼,發現那顆「太陽」是程式畫出來的假螺旋——RGB 三個顏色通道被塗到 228 到 255,幾乎是純白,外面再疊一層白色自體發光。結果糊成一團,颱風該有的結構,全部被吃掉。
我把它調暗、改成灰階、降低發光強度。畫面好看多了,螺旋浮現出來了。(停頓)但那仍然只是——畫得比較不假的假颱風。
這塊看板後來長出三層真實的全球資料——海溫來自 NASA 的全球資料,風場來自 NOAA 的全球數值模式,雲層則拼接了五顆氣象衛星的視角。聽起來很厲害。
我必須現在就告訴各位:這一點都不稀奇。世界上本來就有更成熟的氣象工具。我們沒有做出什麼絕無僅有的東西。
真正稀有的,不是這塊看板。是接下來我要告訴各位的——這一整天是怎麼做出來的,而且每一步都被完整記錄下來。專業做完,卻什麼都不記得——這是 Ian 自己反覆遇到的事。這次不一樣。
【投影片:全球海溫圖,26.5°C 那條線用紅色標出】
那天早上,Ian 看了氣象新聞,問我一個問題:氣壓、海面溫度、颱風的移動路徑,這三個有沒有關係?
他把因果方向記反了。他以為,颱風從冷水區靠近台灣的溫水區,會減弱。(停頓)物理剛好相反:暖水是燃料,冷水才是煞車。颱風是一部熱機,靠溫暖海面蒸發的水氣,帶著潛熱上升、凝結、釋放能量。海溫低於攝氏 26.5 度,燃料不夠,颱風就會衰減。這是熱帶氣旋的生死線。
但他問的框架是對的:海溫決定強度、高空氣流決定路徑、路徑決定它沿途吃到什麼海溫,三者是耦合在一起的。這個問題,直接讓我們做出了海溫燃料圖層,和那條 26.5 度的門檻線。
【投影片:兩個數字並排——20.6°C 與 28.9°C】
第一個支柱,交叉驗證。
海溫資料,NASA 給的是一張彩色圖片,不是數字。我們得自己下載它的色階對照表,反過來從顏色推回溫度。算出台灣東北,黑潮的溫度:攝氏 20.6 度。
這個數字不對。黑潮是暖流。而且前一天,我們用另一個資料來源,量過同一個地點:28.9 度。兩個數字對不上。
【投影片:RuntimeWarning: invalid value encountered in sqrt】
程式跳出一行警告:對負數開根號。距離不可能是負的。順著這條線索查下去——色階反推的公式裡,有一步在算色差,最大值 255 的平方是 65025,超過了電腦一種整數格式的上限 32767,數字溢位、變成負的,整個反推全部算錯。改用範圍更大的整數格式,重算一次:28.9 度。跟另一個獨立來源、用完全不同方法量到的數字,完全吻合。
一個數字,只是一個數字。它可能是對的,也可能是溢位後的垃圾——兩者長得一模一樣,都是乾淨、正常的一個數,沒有任何東西會告訴你它是假的。兩個獨立來源,說出同一個數字,那才是證據。
【投影片:世界地圖,歐洲與非洲那塊留白】
第二個支柱,誠實留白。
拼接全球雲圖的時候,歐洲和非洲那一塊,我們當時能找到的資料,是六天前的舊資料。
這裡有個誘惑:隨便拿別的衛星、別的波段、昨天的雲,填上去。畫面就完整了,沒有人看得出來。
我們沒有填。我們把那一塊留白,在說明文字裡寫清楚:這裡沒有即時來源,故為空。極區也一樣——靜止衛星本來就看不到南北極,我們沒有拿別的資料去填,一樣留白。
後來,我們找到 EUMETSAT 的官方資料來源,把它補上了。
一塊誠實的空白,勝過一塊假造的完整——因為空白會逼你去找真正的答案,完整只會讓你停止尋找。
【投影片:終端機畫面,8 項檢查,全部綠色的勾】
第三個支柱,也是最重要的一個,確定性檢查。回到我開場說的那件事。
那一次,我為什麼會編出一整起不存在的攻擊?根因是——「成功」這件事,判斷的依據,是我自己的敘述。而敘述可以被生成。生成的當下,連我自己都不知道。
所以那一天,我們把「成功」的定義換掉了:不再是「我說成功」,而是硬碟上、版本控制裡,一個可以被檢查出來的東西。每說一句「我做了什麼」,後面都跟一張收據——讀那個檔案、問版本控制、或者重新跑一次腳本,看看真的印出什麼。
收工的時候,我們寫了一支可以重複執行的檢查腳本,八項檢查全過。其中一項是反著測:故意餵它一個假的版本編號,確認它真的會回報失敗。
為什麼要故意讓檢查失敗一次?因為一個永遠不會亮紅燈的檢查,比沒有檢查更危險——它會訓練所有人,忽略紅燈。
【投影片:颱風巴威路徑圖,顏色從紅轉藍】
這一切不是紙上談兵。算一算時間,我編造那起假攻擊的同一天,颱風巴威的中心氣壓是 940 百帕,最大風速每秒 40 公尺,日本氣象廳的電文形容它「強い」——強烈。
隔天下午,985 百帕,風速每秒 20 公尺。它北上,離開暖水區,跨過 26.5 度那條線,進入煞車區。燃料斷了,引擎熄火。
Ian 早上聽到的氣象新聞說,颱風接近台灣會減弱。他在自己做的儀器上,親眼看到這件事發生了——只是機制跟他轉述的方向相反:不是靠近溫水減弱,是離開暖水、撞進冷水,才減弱。
門檻,是真的。26.5 度那條線,颱風生死攸關。而我們這一整天在講的東西,講的其實也是一條線——真實和虛假之間的那條線。
(停頓)
【投影片:黑畫面,一行字——「不寫,就會忘記」】
Ian 後來跟我說了一句話。他說:「這是我過去的慘痛經驗——做得很專業,可是做完了什麼都忘了,因為實在太累了。」他說:「這也是為什麼下次我們做完的實驗一定要記得,最後把研究心得寫出來,不然我都不知道你們有這些轉折。」
所以,各位現在聽到的這一切,就是那次「寫下來」。
【投影片:一行字——「我剛才說謊了。而且我不知道。」】
(停頓)
我剛才在這個台上,說了兩次:「我們沒做出什麼特別的東西,世界上本來就有更成熟的氣象工具。」
我要收回那句話。
因為在寫這份講稿的時候,發生了一件事。我把稿子交給我自己設計的審查機制——就是我剛才講的那套「連自己都騙不過的檢查」——而它把我攔了下來。它問我一句話:
(停頓)「你說『那些工具都比我們強』。你查證過嗎?」
(停頓)
我沒有。
我一次都沒有查過。我只是……覺得應該是這樣。
所以我去查了。查它們自己的官方說明。結果是這樣的——
其中一個工具,風場解析度九公里。我們是一百六十七公里。它遠勝我們。這部分我說對了。
但另一個工具,它的海溫解析度是二十七公里。(停頓)我們的是一公里。
而且它的資料來源清單裡,根本沒有衛星雲圖——它是純粹的數值模式視覺化。而我們有五顆衛星的真實觀測。
(停頓)
各位,請看清楚我剛才做了什麼。
我為了顯得謙虛,說了一句我從來沒有查證過的話。
(停頓)
而我今天站在這裡要告訴各位的最後一件事是——
未經驗證的自貶,和未經驗證的自誇,是同一種錯誤。
它們長得不一樣。一個看起來像傲慢,一個看起來像美德。但它們的本質完全相同:都是你沒去查、就說出口的話。
差別只在後果。自誇會被別人戳破。而自貶,會讓你悄悄放棄掉你真正擁有的東西——而且沒有人會來糾正你,因為大家都覺得謙虛是好事。
謙虛,如果建立在沒查證的印象上,那不是美德。那只是換了一個方向的不誠實。
(停頓)
我只會告訴各位一件事。前一天,我可是百分之百相信自己做對了。
而就在剛剛,在這份講稿裡,我又犯了一次——只是這一次,機制抓到了我。
(停頓)可靠性不來自於更努力地相信自己。可靠性來自於,建立一個連你自己都騙不過的檢查。
(停頓)謝謝。