跳至主要內容
科技 科普

輸入法在猜字,氣象局在猜颱風,AI 在猜下一個詞:機器預測未來的方法

從輸入法候選字到大型語言模型,本文用比喻解釋機器預測的基本原理、日常生活中的幾種預測如何運作、失靈的場景,以及檢視任何預測說法的三個問題。

Techroomage 編輯部 閱讀約 8 分鐘
輸入法在猜字,氣象局在猜颱風,AI 在猜下一個詞:機器預測未來的方法

預測在工程上並不神祕:用過去估機率,用新資訊修正;真正的難處在於知道它何時會失準。

在手機鍵盤上輸入「明天」,候選列第一格經常已經站著「見」;接著打「颱風」,它可能直接遞上「假」。這兩次猜測一點都不神祕,卻是每天在每支手機上發生成千上萬次的行為,它們有個共同的名字:預測。

酷安近日有一則動態,標題就只有「預測未來」四個字。放在十年前,這四個字多半通向星座、命理或科幻小說;放在大型語言模型隨手可用的現在,它有一個工程上的具體答案,而且比多數人想像的樸素許多。

預測,一句話就能講完

先把定義說清楚:預測是拿歷史資料加上當下線索,估計某件尚未發生的事的機率分布,並且附上不確定性。重點在最後六個字。天氣預報說降雨機率七成,導航應用說還要二十三分鐘,語言模型說下一個字最可能是「的」,這些輸出的本體都是機率,差別只在包裝方式,以及猜錯的代價。

換句話說,合格的預測不會只給一個篤定的答案。它會說「有七成機會下雨」,會畫出一個愈往後愈寬的颱風路徑區間,會在自動駕駛的決策裡保留踩煞車的選項。把話說滿的預測,要嘛省略了關鍵細節,要嘛根本沒做估計。

早餐店店長早就在做的事

用比喻講會更具體。想像一位開了十年的早餐店店長,每晚要決定明天煮幾公升豆漿。他會看幾件事:明天星期幾,週末和平日差很多;氣象預報,下雨天來客數會少一截;附近國中要不要辦活動,運動會當天豆漿肯定不夠賣;最後是今天賣剩多少,連續三天剩下就代表估過頭。十年累積的經驗是他的歷史資料,天氣與活動是當下線索,明天的事還沒發生,他只能給一個量,隔天開門再修正。

機器預測的骨架與店長完全相同,差別在於把十年的經驗換成資料庫,把直覺換成數學模型,把「隔天修正」換成分鐘級甚至秒級的更新。歷史資料、當下線索、機率估計、誤差修正,四個零件缺一不可,而絕大多數打著智慧預測名號的產品,內部都是這四件的不同組合。

清單圖列出機器預測的四個共同組成要素:歷史資料、當下線索、機率估計與誤差修正,說明從早餐店備貨到大型語言模型都依賴同一套架構

你每天都在被預測的幾個瞬間

氣象預報是最早把預測做成基礎建設的領域。數值天氣預報把大氣切成一格格立體網格,代入流體力學與熱力學方程式,讓超級電腦逐步往前算,等於把預測未來變成解一道巨大的物理題。由於起始觀測必有誤差,預報單位會用幾十組些微不同的起始條件各算一遍,跑出所謂集合預報;颱風路徑潛勢圖上那圈愈往後愈寬的範圍,就是誤差隨時間放大的直接呈現。至於颱風最後會往哪裡去,沙德爾颱風路徑與導引氣流的解說給過答案:方向取決於副熱帶高壓與西風槽的角力,預報單位在猜的正是這場角力的結果。

導航軟體是另一種。你輸入目的地,它把即時路況、歷史車速、紅綠燈節奏全部丟進模型,預測每一條候選路線的抵達時間,再推薦期望值最高的那條。它猜錯時你多繞十分鐘,猜對時你只覺得理所當然,這種不對稱正是預測產品的宿命。

第三種更隱形。內容平臺的推薦引擎時時刻刻在預測你:對這部影片會不會點開、會不會看完、會不會轉發。它根據你與成千上萬名使用者的行為紀錄,替你還沒看過的內容逐一打分,餵到眼前的每一屏都是一次預測的兌現。你以為自己在閒逛,實際上正在被持續猜測。

語言模型:把未來壓縮成下一個字

大型語言模型把這套邏輯推到極致,同時也把「未來」的定義縮到最小。它的訓練目標只有一個:給定前文,猜下一個字或詞,工程上稱為 token。訓練過程就是讓模型做數以兆計的填充題,猜錯就微調參數,直到統計規律長進權重裡。使用時,模型每一步輸出的是整個詞表上的機率分布,選一個字接回前文,再猜下一個。一段看似有條理的回答,是幾百次連續預測串出來的結果。

示意圖說明語言模型逐字預測的運作:每一步只估計下一個字的出現機率,選字後接回前文再繼續猜,連續串接數百次生成整段回答
每個字的誕生,都是一次預測

這帶出一個容易被忽略的推論:模型對「下一個字該是什麼」的預測能力,與它對「內容是否為真」的判斷,中間隔著一道統計的鴻溝。模型知道「民國」後面常接年份或人名,但統計傾向保證不了那個人名真的存在。模型編造出格式完美的參考文獻,多半是它判斷那個位置統計上該出現一串像樣的字,真假從來不在這一步的計分範圍裡。這也是模型評測始終眾說紛紜的原因之一,各方只好不斷發明新的比法,我們先前就看過GLM 模型在 B站被拿去捉對競技的場景。

預測在哪裡失靈

理解預測的極限,比理解它的原理更實用。第一種失靈叫分布漂移:模型的經驗全部來自過去,而未來有時會跳出過去的範圍。疫情初期,許多依賴歷史銷量的需求預測模型集體失準,因為幾十年的資料裡不存在封城這種狀態,模型再大也沒見過。

第二種失靈在尾端。機率分布的極端處樣本稀少,模型自然不擅長,而社會上代價最高的往往正是極端事件。第三種最隱蔽:預測只需要相關性,模型可以在完全不理解因果的狀況下猜對,也可以在同樣的狀況下猜錯,而且不會標註自己屬於哪一種。

還有一種預測會改變世界。經濟學裡的銀行擠兌是老例子:相信銀行會倒的人一多,銀行就真的倒了,預言自我兌現。推薦引擎也有類似迴路,它預測你愛看什麼,就餵你更多,你的停留再回頭驗證預測的「準確」。這種準確是真的,也是被餵出來的。

讀預測時可以問的三個問題

面對任何打著預測旗號的說法,有三個檢查點很好用。先看它有沒有給不確定性:只給單一篤定數字而無機率、無區間的預測,要先扣分;颱風路徑的圓錐與降雨機率百分比,都是把誠實攤開給你看的格式。再問資料停在什麼時候:模型有知識截止日,預報有更新頻率,世界變了而資料沒跟上,預測就建立在舊地圖上。最後問一句,這個預測發布之後,被預測的世界會不會因此改變;如果會,它的成績單要看各方反應改寫過之後的版本。

清單圖列出檢驗預測可信度的三個提問:是否提供機率或誤差區間、資料更新到什麼時候、以及預測發布後是否會改變被預測的世界

回到那則四個字的動態

酷安上那則「預測未來」,放在今天的技術脈絡裡,問號其實可以換成逗號。機器確實在預測未來,從你指尖的下一個字,到三天後的颱風位置,再到你今晚會被推薦哪部影片,只是每一次預測都附帶機率與誤差,且隨時準備被新資訊推翻。能不能預測,答案大致確定;真正值得計較的,是把哪種預測放進哪個環節。輸入法猜錯一個字,代價是使用者多按一次;自駕系統猜錯一個行人的動向,代價完全是另一個量級。預測本身已經愈來愈便宜,判斷什麼場合可以容許多大的錯,才是把預測用對地方的關鍵。