大型語言模型並非更高層次的抽象

Hacker News·

我認為大型語言模型與傳統程式編寫的抽象化不同,因為它們產出的是機率而非確定的結果,這可能在生成過程中引入你未要求且具危險性的副作用。

背景

本文探討了當前科技圈盛行的一種觀點:大型語言模型(LLM)是程式開發中更高層級的抽象,如同從組合語言演進到 C 語言或 Python 的下一個階段。作者對此提出強烈質疑,認為傳統抽象層級具備輸入與輸出之間確定的函數關係,而 LLM 則是機率性的,其輸出的不確定性與潛在的副作用(如安全漏洞)使其本質上不符合電腦科學中「抽象」的定義。

社群觀點

Hacker News 的討論圍繞著「確定性」是否為抽象層級的必要條件展開。許多支持作者觀點的評論者指出,電腦存在的初衷是為了消除人類處理資訊時的模糊性與錯誤機率,將模糊的任務交給人類,將精確的計算交給機器。然而,LLM 的出現打破了這種平衡,讓開發者陷入一種「開盲盒」式的成癮行為中,甚至有工程師為了追求模型生成的結果而產生類似賭博的多巴胺反應。這種非確定性帶來了巨大的風險,因為傳統傳輸錯誤的影響範圍通常是可預測且受控的(如超時或斷線),但 LLM 的「推理錯誤」卻可能產生看似正確、實則包含毀滅性邏輯錯誤的程式碼,其破壞範圍難以估計。

然而,另一派觀點則認為作者對抽象的定義過於狹隘。有留言指出,抽象的本質是為了隱藏細節以管理複雜度,而 LLM 確實能處理 C++ 等語言無法表達的高階概念,例如使用者的最終意圖。部分技術背景深厚的討論者反駁,LLM 在數學模型層面上其實是確定的,只要將溫度參數設為零並固定隨機種子,理論上可以得到重複的結果。目前的非確定性更多是來自於硬體運算(如 GPU 浮點數誤差)或雲端服務商的產品設計,而非模型本身的缺陷。此外,也有人以網路通訊協定為例,指出 TCP 也是建立在不可靠、充滿雜訊的物理層抽象之上,因此在不穩定的基礎上建立可靠的抽象層,本就是工程領域的常態。

更有趣的討論點在於,LLM 究竟是「抽象」還是「委派」。有評論者諷刺地表示,這種所謂的抽象階梯其實是從個體貢獻者轉向技術管理,最後甚至轉行開餐館的過程。這反映出部分開發者並非在尋求電腦科學意義上的抽象,而是希望將「思考」這項任務外包給第三方。這種「洩漏的抽象」讓開發者必須依賴模型去「猜對」意圖,導致最終交付的產物往往是難以維護的程式碼,而非可重複利用的邏輯模型。

延伸閱讀

在討論中,有參與者提到 Thinking Machines Lab 的部落格曾針對 LLM 的確定性與運算模型有深入探討。此外,關於編譯器是否能保證完全確定的輸出,可參考「可重複構建」(Reproducible Builds)領域的相關研究,這能幫助理解傳統抽象層在現實操作中也並非完美無瑕。

Hacker News

相關文章

  1. 大型語言模型可以,但不應該是編譯器

    3 個月前

  2. 大型語言模型作為新的高階語言

    3 個月前

  3. 使用大型語言模型進行確定性編程

    2 個月前

  4. 如果AI既非常優秀又不那麼顛覆呢?

    3 個月前

  5. AI 讓程式開發變得更有趣

    3 個月前