作者簡介作者目前擔任凌群電腦資通技術處經理,現專職AI解決方案規劃與領導AI專案開發,並主導凌群AI開發團隊之研究方向。
Software 1.0在過去的幾十年裡,軟體開發的核心邏輯一直非常穩固,無論是寫一個簡單的網頁表單,還是複雜的金融交易系統,我們所依賴的思維模式都是「規則驅動(Rule-based)」。
這階段我們習慣稱之為 Software 1.0。
在Software 1.0的世界裡,工程師是絕對的上帝,我們撰寫明確的程式碼(Code),告訴電腦在什麼情況下(If),該執行什麼動作(Then);所有的邏輯都是被定義、顯性的與確定的,而如果程式跑出來的結果不如預期,那一定是程式碼寫錯了(Bug),我們只要進去把那行邏輯修正過來,問題就解決了。
因此過去的Software 1.0時代,這是一個乾淨、邏輯分明且可控的領域。
然而,當我們踏入 AI 與機器學習的領域——也就是 OpenAI共同創辦人之一的Andrej Karpathy 所提出的 Software 2.0 時代,這一切規律與慣性都被打破了。
(註:Karpathy又於2025年6月提出Software 3.0,但今日我們僅討論2.0)
什麼是 Software 2.0?我們想像一下,今天有一個需求是寫一個程式來「辨識圖片中是否有貓」?
- Software 1.0 的做法: 我們會試圖尋找貓的特徵;如果(If)有兩個尖尖的三角形(耳朵),且(And)有圓圓的形狀(臉),且(And)有鬍鬚... 你會發現這行不通,因為貓的姿勢、顏色、光影有無數種變化,我們無法用窮舉的 If-Else 來定義「什麼是貓」。
- Software 2.0 的做法: 我們不再手寫規則,相反地,我們準備兩堆圖片:一堆有貓,一堆沒貓。我們設計一個演算法架構(這是「骨架」),然後把這些圖片(資料集)丟進去,定義一個目標函數(由演算法自己去判斷對錯)。
接著,透過大量的運算(訓練),演算法會自己調整內部的權重參數,直到它能準確分辨貓為止。

《圖說》圖片來源:AI示意圖-Nano Banana Pro
這意味著什麼?這意味著,程式碼(Code)不再是人類寫的,而是由資料集(Data)訓練出來的。
在這個新典範中,資訊業中軟體工程師的角色發生了最劇烈的轉變:
- 從「建築師」變成「老師」: 以前我們像建築師,精準規劃每一塊磚頭的位置;現在我們像老師,提供教材(資料集)給學生(模型),我們無法控制學生腦袋裡(神經網絡)的神經元具體是如何連結的,我們只能通過考試結果(驗證集)來評估他學得好不好。
- 從「確定性」變成「機率性」: 這是傳統開發者最痛苦的跨越,在 Software 1.0,輸入 A 必定得到 B,若不是就是錯;但在AI專案中,模型告訴你「這張圖 95% 是貓」,這不是 Bug,這是一個特徵!AI 本質上是在處理不確定性,我們追求的不再是邏輯上的完美,而是統計上的準確。
為什麼這個認知很重要?很多企業在導入或開發AI時成效不彰或是失敗,正是因為試圖用管理/開發Software 1.0的方式來管理/開發Software 2.0的專案。
當老闆問:「為什麼這個模型有時候會講錯話?你去把那個 Bug 修掉。」 但在 AI 的世界裡,可能根本沒有一行特定的程式碼讓我們去「修Bug」,要改善表現,我們要做的可能是資料清洗、調整架構,甚至是重新定義情境;這不是一個單純的「除錯(Debug)」,而是一個「實驗(Experiment)」過程。

《圖說》圖片來源:AI示意圖-Nano Banana Pro
企業必須要能理解這一點是進行 AI 應用開發與導入的第一步,如果不能接受程式碼變成一個巨大且難以完全解釋的黑盒子,如果不能容忍輸出的不確定性,那麼AI專案從一開始就註定其終點會遙遙無期;既然AI的應用開發像是一場科學實驗,那麼很顯然的,我們需要的團隊編制,將不再僅僅是一群只會寫 Code 的工程師,系統分析師與工程師在未來也需具備「邏輯思維」、「問題解決能力」與「創新的意識」。
本期的核心概念在於:傳統程式開發(Software 1.0)是「人類寫規則給機器執行」;AI 開發(Software 2.0)是「人類提供目標與數據,讓機器自己找出規則」。在下一期的專欄中,我們將深入探討:為什麼做 AI 應用開發,你一定需要一個「研究團隊」?