11 min read

軟體正在改變 - Software 2.0

軟體正在改變 - Software 2.0
工程師的角色正在改變。資料將成為程式碼。訓練將成為編譯。權重將成為法律或道德標準。

在軟體世界裡,版本號碼往往象徵著一次代際的更替。1.0 是穩定的起點,2.0 則標誌著一種新的範式革命。2017 年,Andrej Karpathy 提出了 Software 2.0 的觀點:神經網路不是「另一個演算法」,而是徹底改變我們編寫軟體的方式。

在我看來,這並非單純的技術語彙,而是一種程式開發模式轉變。 傳統的 Software 1.0 是人類顯式編寫規則的時代;Software 2.0 則是透過數據驅動、神經網路權重承載邏輯的新時代。

這種轉變,就像從蒸汽機到電力,或從打字機到電腦。對軟體工程師、產業企業、甚至人類社會來說,都是一場工業革命。

Software 1.0 的局限

Software 1.0 的核心是:人類設計演算法 → 編寫規則 → 電腦執行指令。

這樣的模式有三個主要瓶頸:

  1. 複雜度爆炸:要設計能處理所有邊界情況的程式碼幾乎不可能。例如影像辨識,手工定義「邊緣、顏色、形狀」的特徵,維護成本極高。
  2. 不可擴展性:即便花費數百人年寫出專業系統,也難以擴展到新領域。從醫療影像到自駕車,每個場景都需要完全不同的手工規則。
  3. 人力瓶頸:程式的複雜度取決於開發者智慧與耐心,軟體工程的「人月神話」在這裡依舊成立。

當人類試圖處理 感知、語言、決策 這類高維度且充滿不確定性的問題時,Software 1.0 的範式顯得格外笨拙而緩慢。原因在於這些任務往往無法用明確的邏輯規則完整描述:

例如,讓電腦「看懂一張貓的照片」,我們很難逐條寫下規則去涵蓋「耳朵的形狀」、「毛色的變化」、「不同角度的姿態」;要讓機器理解語言,我們更難以透過 if-else 判斷式去解析語境、諷刺、情緒或跨文化隱喻。

決策問題更為複雜,像是自駕車要在突發狀況中選擇剎車或閃避,傳統程式碼幾乎無法覆蓋所有可能的組合情境。

於是,在 1.0 的範式下,開發者必須投入龐大的心力去撰寫和維護複雜的規則庫,但結果往往仍然脆弱、效率低落,甚至一旦環境稍有變動就需要重新設計。這種困境,正是 Software 2.0 誕生的背景——唯有透過數據驅動與神經網路自我學習,才能在這些無法由人類顯式規則全面定義的領域,找到更具彈性與可擴展性的解法。

Software 2.0 的誕生

Software 2.0 的核心是:程式碼不是工程師一行行寫的,而是透過訓練資料與網路架構自動生成的權重。程式碼 → 權重矩陣。

流程變成:

  1. 定義目標(分類正確、翻譯流暢、遊戲勝利)。
  2. 設計模型架構(CNN、Transformer、RNN 等)。
  3. 提供數據集(清理、標註、擴充)。
  4. 訓練模型 → 得到一組權重(即程式)。

在這個世界裡,資料就是程式碼,而「訓練」就像 1.0 的「編譯」。

這就是 Karpathy 所說的「Software 2.0」——程式設計模式的根本變革。

這個比喻的核心在於:在傳統軟體工程裡,工程師透過撰寫明確的程式碼邏輯,然後透過編譯器將它轉換為可以執行的二進位檔案;而在 Software 2.0 的世界,工程師並不直接編寫規則,而是蒐集大量資料、設計模型架構,最終透過「訓練」這個過程,把資料轉化為一組權重矩陣,這些權重就是新的「程式碼」。

舉例來說,在影像分類問題裡,1.0 的作法可能是工程師手動撰寫演算法來檢測邊緣、顏色與形狀,最後再透過決策樹或其他演算法來判斷影像屬於哪一類

但在 2.0 的作法裡,我們只需要收集數百萬張標註好的圖片,交給類神經網路去學習,最後訓練出來的權重矩陣就能完成同樣的分類任務。

再例如語音辨識,以前需要語言學家設計音素規則、聲學模型、語法樹;而今天的深度學習模型只需丟進大量語音資料與對應文字,就能自動學會「聽懂」人類語音。這些例子突顯出 Software 2.0 的根本變革:

我們不再「告訴」電腦該怎麼做,而是讓電腦透過數據自己學會該怎麼做。

為什麼這是一場革命?

  1. 泛用性爆發:一旦我們擁有了資料與訓練框架,AI 模型就能跨領域泛化。從醫療診斷到語音助手,從自駕車到遊戲 AI,同一個底層范式皆可適用。
  2. 工程效率的再分配:過去 90% 的時間花在寫程式碼。現在,90% 的時間花在整理數據、設計架構、優化訓練。工程師角色從「規則制定者」變成「數據與目標設計者」。
  3. 人類智慧的放大:Software 1.0:靠工程師的顯式規則。 Software 2.0:靠數據驅動的隱式知識。

當 AlphaGo Zero 能自學圍棋並超越人類時,我們看見的不是一個演算法,而是 一個能自我生成程式碼的框架。

在傳統 Software 1.0 的思維裡,如果要打造一個下棋程式,工程師必須設計複雜的規則系統,例如「如果棋盤上形成某種形狀,則優先考慮某一步」;然而這些規則永遠不可能覆蓋圍棋中幾乎無窮的可能局面。AlphaGo Zero 展現的驚人之處在於,它不需要任何顯式規則,而是透過深度神經網路和蒙地卡羅樹搜尋,逐步從隨機落子演化出高水準的戰略。

換句話說,這個系統並不是「被寫死」的,它在訓練過程中實際上生成了一組組權重,這些權重就相當於自動形成的「下棋程式碼」。這與人類工程師逐行撰寫規則的模式完全不同:人類提供的是框架與學習規則(遊戲規則、獎懲機制、網路架構),而真正的「程式」——即能在棋盤上決策的邏輯——則由 AI 自己生成。這正是 Software 2.0 的核心精神:我們不再直接編寫解法,而是建立一個能自我產生解法的系統。

產業中的 Software 2.0

  1. 影像識別
    • 從手工特徵(SIFT、HOG)→ CNN + ImageNet → 自動搜尋架構(NAS)。
    • 軟體邏輯已由「工程師寫規則」轉向「資料驅動權重」。
  1. 語音與 NLP
    • 語音辨識:GMM-HMM → DNN/LSTM → Transformer。
    • 機器翻譯:統計式 SMT → Seq2Seq → 多語大型模型(GPT、mT5)。
  1. 遊戲 AI:從手工設計棋譜 → AlphaGo Zero 自我博弈 → 端到端強化學習。
  2. 資料 庫與系統軟體:研究顯示,神經網路可取代傳統索引結構(如 B-Tree),效能提升 70%,記憶體消耗減少十倍。這意味著 基礎設施級別的軟體也將被 2.0 化。
  3. 硬體與晶片:矩陣乘法與 ReLU 成為核心計算。這讓專用 AI 晶片(TPU、GPU、NPU)能針對單一運算模式最佳化,推動效能百倍提升。

Software 2.0 的優勢

Software 2.0 相較於傳統軟體最大的優勢,在於它將過去複雜的邏輯運算統一為單純的矩陣乘法與非線性運算,極大地簡化了計算模式,讓演算法能更容易被最佳化與標準化。

這種統一性使得硬體支援更為高效,從專用 ASIC、FPGA 到日常使用的手機晶片,都能流暢地執行深度學習模型,推動了 AI 在各種場景的普及。同時,模型在運算上的資源消耗相對固定,記憶體需求都能預估,避免了傳統軟體中動態配置帶來的不確定性。再加上深度學習模型具備高度的可攜性,不僅能在雲端運行,也能被部署到邊緣裝置甚至瀏覽器之中,帶來前所未有的靈活性。

此外,不同任務的網路模組能透過反向傳播自動協調與整合,這種模組化特性讓複雜系統能以較低成本構建與維護。最關鍵的是,在影像分類、語音辨識等領域,AI 自動生成的「程式」(即權重矩陣)已經在效能上超越人類工程師所能手寫的規則,這標誌著程式設計的優勢已經逐步由人類轉移到機器本身。

在影像分類、語音辨識等任務中,AI 生成的「程式」已經勝過人工手寫程式。

Software 2.0 的挑戰

然而,Software 2.0 並非沒有代價。雖然 2.0 展示了令人振奮的潛力,但它的黑箱性、脆弱性、偏見問題與人才轉型,將決定我們能否真正駕馭這個新範式。

  1. 可解釋性,在 1.0 世界,bug 可以透過程式碼行數追溯。 在 2.0 世界,bug 是一組權重矩陣的「黑箱」,錯誤往往藏在龐大的權重矩陣之中,成為難以理解。
  2. 偏見與責任:資料集即程式碼。資料集的偏見(性別、種族、地區)會直接投射到程式中,造成倫理與法律挑戰。而當 AI 系統決策出錯,責任歸屬模糊。
  3. 人才斷層:大多工程師習慣 1.0 的程式思維。2.0 需要新型態的「數據工程師、AI 訓練師、模型維護員」。
  4. 能源成本:大型模型的訓練與推理需要巨量電力,會成為限制。大型模型如 GPT-4o、Claude 3.5、Gemini Ultra,每次訓練都需要上千顆 GPU、數億美元的電力與基礎設施。這讓 AI 發展與環境永續之間出現了尖銳矛盾。

金融產業也同樣感受到 Software 2.0 的力量。許多銀行與交易所已經用深度學習模型取代傳統風控與信用評分系統,並嘗試讓 AI 驅動 RWA(Real World Assets, 真實世界資產)代幣化市場的定價與流動性管理。這些模型能夠即時分析市場數據與用戶行為,比人工寫規則更靈活。

趨勢與未來

  1. 任何可透過「大量數據 + 可重複試驗」定義的任務,最終都會被 2.0 接管。
  2. 軟體工程職能轉型:從寫規則的工程師 → 設計目標與管理數據的「AI 工程監督」。
  3. 若要構建通用人工智慧(AGI),2.0 的資料驅動範式是唯一可能的基礎。
  4. 社會治理挑戰:當法律、教育、醫療都開始「用權重取代程式碼」,人類需要新的規範與倫理框架。

Karpathy 的 Software 2.0 並非僅僅是一篇技術文章,而是一種「哲學上的宣言」。它告訴我們軟體的本質正在改變。工程師的角色正在改變。資料將成為程式碼。訓練將成為編譯。權重將成為法律或道德標準。

當人類把知識與邏輯交給機器去學習,我們自己會退化還是升級?

個人是偏向技術樂觀主義,Software 2.0 不僅是一個技術趨勢,而是未來數十年人類社會的底層基礎。 它會讓更多產業自動化,也會重塑教育、勞動、法律、甚至政治。人類的各方面會再狠狠地升級。

參考資料

  1. Andrej Karpathy, Software 2.0, Medium, 2017.
  2. Jeff Dean, Google Research Talks (2018–2023)
  3. Papers with Code: Neural Index Structures, 2018–2021.
  4. Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, MIT Press, 2016.