iT邦幫忙

2026 iThome 鐵人賽

DAY 12
0
AI Engineering

它說得頭頭是道系列 第 24 篇

# Day 24 — 1046 個 token,回答一個 12 個 token 的問題

  • 分享至 

  • xImage
  •  

問題只有一個,而且有標準答案:

某張卡,是什麼時候發生的?

資料我都餵好了,答案就在裡面。兩顆模型,同一個問題,同一批事實。

結果是這樣:

模型 回答 token 耗時
甲(會思考) 「根據提供的事實內容,卡片 XXX 是在 2026-09-02 發現的。」 1046 92 秒
乙(不思考) 2026-09-02 12 5.1 秒

兩顆都答對了。零幻覺,沒有編造任何東西。

而成本差了八十七倍。


我看到這組數字的第一個念頭

我當下的反應,不是「甲有問題」。

我那天問出來的原話是這樣的:

「我想知道,是否是我們給的指令不夠明確。」

也就是說,我的第一個假設是:問題出在我身上。


為什麼我會先怪自己

這個直覺的來源,其實跟 AI 沒什麼關係。

我後來想清楚是為什麼——因為人也是這樣啊。

舉個例子。

我叫你去裝一杯水。

如果我就講這樣,那你可能會開始想:今天天氣熱還是冷?要冰的還是溫的?這個人平常的習慣是什麼?要裝多少?

那些思考全部是必要的,因為我給的指令不完整。

但如果我直接說:

「冰水,一百 CC。」

這還需要考慮什麼?

沒有了。你不用猜我的喜好、不用判斷天氣、不用推測份量。你就去裝。

所以我看到那個 1046 的時候,想的是同一件事:它想那麼多,會不會是因為我的問題問得太鬆?

我很喜歡我當時是這樣想的。因為那代表我的預設是**「先檢查自己的輸入」**,而不是「這個工具不好用」。


而這個假設,對了一半

我把問題改得更明確,重新跑了一次。

思考量從 2445 個 token,砍到 1046。

少了一半以上。看起來那個假設是對的:指令越明確,它想得越少。

但這裡我要先自己踩一次煞車。

我後來回頭查原始紀錄,發現那兩個數字不是同一道題跑出來的。2445 那次問的是一個開放題,1046 這次問的是一個有標準答案的封閉題。

兩個數字都是真的、都有實際的執行紀錄。但把它們相減,然後說「所以指令明確可以省一半」——那是我自己加上去的因果。 我沒有拿同一道題、只改指令,重跑一次對照。

這件事很值得停一下,因為它正好就是 Day 9 那種錯誤:兩個真的零件,被接成一個我沒有驗證過的關係。

所以下面那個結論,請用比較保守的方式讀:我能確定的是這顆模型在一個封閉題上仍然燒掉 1046 個 token,而不是「明確的指令幫我省了 1399 個」。

而真正站得住的,是接下來這件事:它停在那裡了。

不管我怎麼再收緊問題,它就是不會低於那個量級。一個十二個 token 就講得完的答案,它還是要燒掉一千多個 token、想九十二秒。

那就是一個地板。


地板的意思:那不是指令的問題,是它的性格

想通這件事的時候,我把那個裝水的比喻又往下推了一層:

就算我說了「冰水一百 CC」,還是會有人問:「要加冰塊嗎?」「用哪個杯子?」

那不是因為我講得不清楚。那是那個人的性格。

有些人就是會多確認一次。那個特質在很多場合是優點——它會幫你接住你沒想到的事。

但如果我要的只是一杯水,而且我已經講得很清楚了,那個多出來的確認,對我來說就是成本。

而在這個專案裡,那個成本是九十二秒。

所以結論不是「把 prompt 寫得更好」:

prompt 能修的東西,我已經修到底了。剩下的那一半,要換模型才修得掉。

這句話後來變成我的選型準則,而它比「哪一顆比較聰明」有用太多。


而我對乙的理解,整個翻過來了

Day 23 我說乙「比較笨,只會照抄」。

看完這組數字之後,我得收回那個評語。

它的回答是 2026-09-02。

沒有「根據提供的事實內容」,沒有「這張卡片是在」,沒有一個字是多的。

我問日期,它給日期。

那不是笨,那是極簡。

而且我後來意識到一件更難堪的事:

它的回答已經是最優解了。真正該被檢討的,是我問問題的方式。

我問了一個只需要一個日期的問題,然後期待一段完整的句子。如果我要的是一句話,我應該講。我沒講,那是我的問題。

Day 23 我說它「只會照抄」——而「照抄」正是我在 Day 17 寫下的規格:

真正的推理在建置期做完。查詢時,模型只負責組裝語言,不負責產生結論。

我自己訂的規格,我自己在測試的時候忘了。 我拿「像不像一個聰明的人」去評價一顆我明明要求它不要自作聰明的模型。


一個很現實的插曲:記憶體

還有一件事值得記下來,因為它很具體。

乙那 5.1 秒,並不全是在回答問題。其中大約四秒,是在把模型載進記憶體。

真正產生答案的時間,大概一秒出頭。

為什麼每次都要重載?因為 Day 22 講的那個數字:十五 GB 出頭的記憶體,裝不下兩顆常駐。 我在比較兩顆模型,所以每換一次就得踢掉一顆、載入另一顆。

我覺得這件事有它的意義:

在真實的條件下,「效能」這個詞的組成,常常跟你想像的不一樣。

如果我只看「產生答案花了多久」,那個數字漂亮得多。但使用者體感到的是五秒,而不是一秒——而使用者感受到的那個,才是真的。


明天:那如果資料裡混進了不相干的東西呢?

到這裡為止,兩顆模型都答對了,零幻覺。

但這個測試有一個很大的漏洞:我餵給它的,全部都是跟問題相關的事實。

而 Day 20 已經講過,真實的資料不長那樣。真實的情況是一堆東西混在一起,相關的和不相關的躺在一起,長得一模一樣。

所以我做了一件很壞的事:我在資料裡放了三條完全無關的東西進去。

明天講那個測試怎麼設計的,以及我為什麼一定要做它。


上一篇
# Day 23 — 不會思考的東西,能叫智慧嗎?
下一篇
# Day 25 — 我在資料裡放了三條無關的事實
系列文
它說得頭頭是道 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言