TL;DR:你大概以為 AI 每次都挑「機率最高的下一個字」,所以同樣的問題該給一樣的答案才對。其實它沒有。它每生一個字,是從一排各有機率的候選字裡「照機率抽一個」——像一場加權抽籤,機率高的容易中、但不是每次都中。這個刻意留的隨機性叫 sampling,背後有個旋鈕叫 temperature。所以重問會飄是正常的、是設計成這樣的。但「飄」跟「一本正經唬爛」是兩回事,別搞混。

前幾天我想幫一個小側專案弄句標語,懶得自己想,就丟給 AI:「幫我的技術部落格想一句 slogan,中文,給我一句就好。」覺得不夠好,按了重生,再來一句,又重生一次。三次拿到三句完全不一樣的——「以技術之力探索未來」、「以技術為筆,寫下每一次的成長軌跡」、「用技術探索世界,用文字記錄思考」。

你大概也遇過這種事。重問一次想找回剛剛那個比較好的答案,結果再也回不去了。問題是,如果它真的像大家說的「挑機率最高的字」,那同一個問題、同一個開頭,它每次不是都該挑出一模一樣的字、給你一模一樣的答案嗎?怎麼會每次都不一樣?

它根本沒在挑「最高分」那個

關鍵就在這句被講得太順的話:LLM 其實從頭到尾就在做一件事,預測下一個字。這句沒錯,但很多人會自動腦補成「它每次都挑機率最高的那個字」。它沒有。

把它生成一個字的那一瞬間放慢來看:它手上其實是一整排候選字,每個都帶著一個機率。比方說「我今天很」這個開頭,後面接「開心」40%、「累」25%、「忙」15%,再來還拖著一長串機率越來越低的字。如果它每次都死板地挑那個 40% 的,那它的確會變成一台每次都吐一樣答案的機器。但它不是這樣選的——它比較像拿這排機率去抽籤,機率高的字分到的籤多、容易中,機率低的字也有幾張籤,偶爾就會中一次。(它眼裡的「字」其實是一種叫 token 的小塊,這個我在 Token 是什麼 裡聊過,這篇不看也不影響。)

一個字這樣抽,下一個字又從新的一排機率裡抽,整段話就是這樣一路抽出來的。前面抽到的字稍微不一樣,後面接的整排機率就跟著變,越走越岔。所以你才會看到,同一個問題重問,開頭往往有點像、後面整個飄掉。

那個「要多敢抽」,有個旋鈕

它要乖乖挑最高分,還是放膽去抽冷門的字——這件事是可以調的,這個旋鈕叫 temperature(你在各家 API 文件裡都查得到這個參數)。

調低,它越乖,越偏向每次都挑機率最高的那個,答案保守、重複性高;調高,它越放得開,越敢去抽那些機率沒那麼高的字,答案就更跳、更有想像力。寫詩、想 slogan、要它給你沒想到的點子,你會希望它高一點;叫它照固定格式整理一份資料,你會希望它低一點、別亂發揮。

只是你平常打字聊天的那個輸入框——ChatGPT、Claude、Gemini 那種——通常不會把這個旋鈕擺在你面前。它在背後設了一個預設值,落在中間:留一點變化,但不會亂跑。你感受到的大概就是:它每次都有點不一樣,但也不會離題到哪去。(你可能會想,那把它設到 0 不就穩了?沒那麼簡單——我另外寫了一篇 把 temperature 設成 0,AI 就會每次都一樣嗎? 聊這件意外的事。)

順帶講個我自己試出來的小細節。我把同一句 slogan 的要求拿去問現在的幾家模型,有一家三次裡有兩次,開頭那幾個字幾乎一樣,只是後面才岔開。這其實滿合理的——開頭那個位置,機率最高的字遙遙領先,抽籤抽來抽去都中它;要到中後段,幾個候選字機率咬得比較近,才有空間抽出不同的路。它飄,但不是亂飄。

「飄」跟「唬爛」是兩回事

還有一個東西,很容易跟這個搞混。

它每次答得不一樣,是上面講的這個抽籤機制,是設計成這樣的,跟它「對不對」沒什麼關係。這跟它有時候一本正經地把錯的東西講得很篤定,是另一回事——那篇講的是它分不清「順」跟「對」。一個是它「每次走的路不一樣」,一個是它「不知道自己在不在亂講」。會飄不代表它在唬你,講得篤定也不代表它沒在飄。

所以下次重問拿到不一樣的答案,先別急著覺得它不靠譜。它只是又抽了一次籤而已。真正要留意的,是另一件事:它這次給你的答案,不管飄不飄,你都還是得自己判斷它對不對。

English version: Why Does AI Give a Different Answer Every Time You Ask?