iT邦幫忙

2026 iThome 鐵人賽

DAY 12
0
AI Engineering

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

# Day 17 — 我本來想做 fine-tune,而勸退我的是 AI 自己

  • 分享至 

  • xImage
  •  

Phase 3 講完了邊界。從今天開始講,東西到底怎麼做出來。

而第一個問題就是最根本的那個:

要用什麼方式,讓一個模型懂我們公司的事?

常見的路有三條:

路線 做法
Fine-tune 拿我們的資料去訓練模型,讓知識變成模型的一部分
查詢時檢索 模型不動,問問題的時候臨時去撈相關資料給它
靜態預生成 事先把答案整理好,模型只負責把現成的東西講成人話

我最後走的是第三條。

但這篇真正想講的不是那個結果,是——我原本想走第一條,而且我到現在都還覺得那個念頭有道理。


我想 fine-tune 的理由,跟技術沒什麼關係

先說清楚:我不是因為 fine-tune 聽起來比較厲害。

我的理由很具體,而且有點狼狽:

我想把自己從這個流程裡拿掉。

回頭看前面幾天寫的東西,你會發現每一步都卡著一個我:

  • 哪些資料可以給?我判斷(Day 12)
  • 它講的話可不可信?我追問五次(Day 11)
  • 東西改了怎麼辦?我去發現(Day 12)
  • 那個能問問題的介面?跑在我的機器上(Day 13)

這不是一個系統,這是一個我用手撐起來的東西。

而 fine-tune 在當時看起來,就是那個出口:

訓練一次,之後它自己會跑。 我不用每一次都在那邊過濾資料、確認、追問。知識進到模型裡,就不用我了。

我想要的從來不是一個更聰明的模型。我想要的是一個不需要我的東西。


而把我勸退的,是它

我把這個想法丟出去討論的時候,得到的回應大意是這樣:

比起找一個聰明但需要大量訓練的,不如找一個沉默、有點呆的,直接告訴它要說什麼。

我第一時間覺得這句話有點消極。都已經在做 AI 專案了,結論是「找個笨一點的」?

但它是對的,而且我後來才想清楚為什麼。


拆解那句話:為什麼「呆」反而是規格

第一,fine-tune 是把知識焊進去

訓練完之後,那些知識就變成模型的一部分了。

聽起來很好——直到你想改它。

而我的資料每天都在變:卡片被更新、程式碼被合併、測試環境長出新的畫面。

Day 12 我寫過,知識庫最大的敵人不是錯,是過期。

而 fine-tune 做的事情,等於是把「過期」這件事,變成了最貴的一種:資料變了,你不能改一行,你得重訓。

我要解決的問題是資料一直在動,而我選的方法卻是把它焊死。

第二,也是更致命的一條:焊進去的東西沒有來源

這一條是我後來覺得真正該把 fine-tune 刷掉的理由。

Day 11 我寫過那五個追問:

你幫我查查 B 頁面有沒有自己的卡片?A 那張票卡有沒有寫明?你是怎麼認定的?這是最新的嗎?有沒有其他票卡有附註?

那五個問題有一個共同的前提——它手上有原始資料可以指。

而一顆被 fine-tune 過的模型,你問它「你這個說法是從哪來的」,它答不出來。那個知識已經化進權重裡了,它沒有一份可以翻回去的原文。

換句話說:

fine-tune 會把我唯一的驗證手段拆掉。

Day 14 的結論在這裡又撞上來一次:能不能把一件事交出去,不取決於它做得好不好,而是做錯的時候我有沒有辦法知道。

fine-tune 讓「有沒有辦法知道」直接歸零。

我不是不敢用它,是用了之後我就瞎了。

第三,「呆」是一個規格,不是一個缺點

所以那句話真正的意思是:

我要的不是一個會自己思考的模型,是一個不會自己加戲的模型。

如果所有的推理、比對、判斷,都已經在建置的時候做完了——那查詢的當下,模型只剩一件事要做:把現成的事實講成人話。

而做這件事,聰明是沒有用的。聰明在這裡甚至是風險:一個很會推理的模型,拿到一堆事實之後,會忍不住幫你多推一步。而那多出來的一步,就是 Day 9 那種「每個零件都是真的,只是組錯位置」的來源。

這個結論後來變成整個專案的核心規格:

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

(這條規格後來直接決定了我選哪一顆模型,而那個過程本身有一個滿大的翻車,在後面幾天。)


但我必須誠實:我原本想解決的問題,並沒有被解決

這篇如果寫到上面就結束,它會是一個很漂亮的決策故事:我想走 A,聽了建議走 B,B 是對的。

但那樣就漏掉了最重要的一件事。

我一開始想 fine-tune,是為了把自己拿掉。

而現在這個架構:

  • 決定哪些資料可以進去的,還是我
  • 判斷它講的對不對的,還是我
  • 發現東西過期了的,還是我

我得到的是一個更可靠的東西,但它沒有變得比較自動。

某種程度上,它還更依賴我了——因為 Day 12 那條「只給我理解的資料」,直接把我的理解範圍變成了整個系統的上限。

我沒有解決那個問題,我只是換了一個比較安全的地方繼續扛著它。

我不想在這裡硬給一個振奮的結論。這個問題我還沒有答案,而它會在後面再出現一次——因為它其實跟 Day 13 那個「東西綁在我的筆電上」是同一件事的不同面向。


順帶一提:這已經是它第二次把我拉回比較笨的做法

寫到這裡我才注意到一個模式。

Day 16 那句「先不要全讀,需要時再查」——我說過,我懷疑那句話不是我寫的。

今天這句「不如找一個沉默有點呆的」——這句確定不是我想出來的。

兩次都是它把我從一個比較聰明、比較大、比較自動的方案,拉回一個比較保守的做法。

而兩次它都是對的。

我覺得這件事有點反直覺,值得記下來:

在這個專案裡,AI 給我最有價值的貢獻,不是它產出的內容。是它擋下來的那幾個決定。

而那幾次它擋我的時候,講的都是同一件事:你想要的東西太大了,而你驗不了那麼大的東西。

(不過這個模式後來有一次例外,而且代價滿具體的。那是 Day 30 的事。)


明天:那資料到底要從哪裡抓

路線定了:事實要先整理好,存成一份可以被引用的東西。

那下一個問題就很實際了——這些事實現在散在哪裡?

明天講抓取。而那篇會有一段我寫得不太舒服的內容:有些東西,已經抓不到了。


上一篇
# Day 16 — 「先不要全讀」:一句我以為是我學到的經驗
下一篇
# Day 18 — 知識散在八個地方,而其中一份已經沒了
系列文
它說得頭頭是道 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言