AI News HubLIVE
站內改寫4 分鐘閱讀

為什麼在人工智能經濟中軟件需求變得更容易

隨着人工智能代理之間的交互日益增多,而非與人類交互,收集軟件需求的挑戰將減少,因為程序更具可預測性且具有明確定義的規範。這種轉變可能降低傳統需求收集的重要性,從而實現更快、更可靠的開發。

來源Hacker News AI作者: matt_d

在人工智能經濟中,軟件需求收集的難度可能會顯著降低,原因在於需求來源的變化。傳統上,軟件工程中最耗時的部分是從人類用户那裏獲取確切需求,這往往充滿歧義和不確定性。然而,隨着越來越多的軟件系統由人工智能代理驅動,這些代理之間的交互逐漸取代了人與系統的直接交互。由於程序本身具有明確的形式化語義,它們能夠清晰表達自己的功能需求,從而大大簡化了需求收集過程。

文章首先介紹了形式化驗證的概念,即通過數學證明系統滿足形式化要求,這被認為是防止AI系統在遞歸自我改進過程中失控的最佳保護措施之一。但自然障礙在於需要足夠詳細地寫出我們想要執行的規則,這些描述被稱為規範。隨着AI在經濟中的作用不斷增強,一方面需要仔細執行規則的計算機系統數量增加,但另一方面,編寫正確規則的工作卻變得更容易。作者先前曾論證,隨着AI的普及,設計包含僅AI之間交互的“氣泡”的經濟是有意義的,並且用户界面的規約也會變得更容易。現在,作者進一步論證,系統需求的更廣泛挑戰也從根本上變得更容易,基本優勢在於需求中需要形式化的意圖來源。從脆弱的人類那裏獲取需求可能非常困難,但當新需求的來源主要是其他已在運行的程序時,情況就不同了。

作者回顧了軟件工程的難點。即使在AI編碼助手改變軟件工程師時間分配之前,該領域的一個公認事實是最耗時的活動是理解用户的真實需求,即需求收集。隨着日常編碼的大量自動化,人們可能認為需求收集的核心地位只會增加。但作者認為,進一步依賴自動化後,需求收集的重要性反而會下降。文章回顧了20世紀60年代分析師與程序員的分工,以及瀑布模型和敏捷方法的演進。瀑布模型強調在編寫代碼前反覆迭代需求文檔,而敏捷方法則更快地構建可運行程序以獲取用户反饋,但即使軟件專家也難以枚舉複雜程序的所有相關場景,這些場景往往依賴於用户的專業知識,而用户又缺乏抽象和系統性的思考能力。亨利·福特的名言(可能是杜撰的)完美説明了這一挑戰:如果問顧客想要什麼,他們會説更快的馬,而不是汽車。這揭示了兩個問題:用户難以詳細解釋模糊的目的,以及不瞭解開發可行性。

好消息是,當請求功能的用户通常不是人類時,這些挑戰會大大減少。更準確地説,在代理生態系統的少數部分,舊的需求收集挑戰依然存在,甚至可能更具挑戰性,但在其餘部分則可以很大程度上避免。作者解釋了為什麼比了解人的意圖更容易瞭解程序的“意圖”。人類的進化沒有讓思維易於被他人建模,而程序則必須對運行它的計算機是可解釋的,即需要無歧義的語義。此外,人類編寫和維護程序也需要理解代碼。這些選擇壓力使得程序易於理解。現在,這些優勢在程序中體現為它們能夠請求編寫新代碼以更好地完成工作。

這種優勢的最佳體現是經濟中只包含AI與AI交互的領域,而非與人類交互。這樣的環境可以最大化自動推理的可讀性。一個自動化工作生態系統可以朝着預先設定的規範遞歸自我改進,或者一組競爭和合作的代理可以共同進化出它們自己的規範。無論哪種方式,我們都能輕鬆獲得機器可讀的基本目標描述,並定期將其轉化為新程序的需求。作者用示意圖説明:左側是當今世界,大量AI代理需要直接與人類協調,迫使從難以表達需求的利益相關者那裏收集需求;右側是未來世界,大部分經濟由AI代理處理,它們自然形成集羣,只有少數守門人需要與人類交互。集羣內部是秩序和清晰需求的場所,絕大多數程序處於內部並受益於清晰的需求來源。

關鍵在於,我們不是事後才去描述代理生態系統的行為和期望,而是有機會從早期就將形式化規範和驗證融入其設計之中。我們的挑戰變成編寫覆蓋整個AI生態系統的規範,迫使其中的參與者以符合我們目標和價值觀的方式進化。這一需求收集挑戰至少和以往一樣困難,但作者指出,在這樣的AI氣泡內部,許多其他工程項目變得更容易框定,並且應該成為持續軟件工程工作的主體。

這種現象已經以更温和的形式存在,例如實現新Web瀏覽器的團隊受現有技術標準的約束,互聯網標準中已經包含了大量需求。隨着更多經濟由AI代理處理,更多的上下文將類似地被標準化或至少體現在可分析的現有代碼中。值得注意的是,當今最流行的AI軟件——深度學習,有一個明顯劣勢:個體程序(包括學習到的元素如模型權重)幾乎沒有明顯的結構,難以理解。作者認為,這應該促使我們更多地使用其他旨在可理解性和能夠用數學論證精確界定行為的方法。我們可能有一個短暫的窗口來決定是生活在一個不可解釋的學習系統世界,還是推動那些被證明滿足明確要求的系統。第二條道路不僅對防止惡意AI至關重要,而且對AI自我改進的效率也至關重要。

最後,作者具體説明了軟件工程的早期階段如何變得更便宜。假設用户程序遵循良好實踐並擁有完善的需求文檔,那麼請求新程序的程序可以簡單地複製其需求中的相關內容。而人類用户則不會以機器可讀的形式全面發佈其人生目標。更廣泛地看,技術創新經濟可以被視為計算機科學意義上的分佈式系統,不同代理在一組重疊的優化問題中合作與競爭。軟件參與者更可能擁有嚴格的形式化規範。這種經濟系統在某種程度上是一個不斷自我優化的程序。例如,一個計算特定數學函數的程序可以注意到改進自身結構的途徑,以更高效地計算該函數。未來的軟件工程項目將更多類似於這種自我優化,而不是我們所習慣的模式。一個擁有目標但對如何實現只有模糊概念的程序將請求編寫新的代碼來幫助其更好地完成任務。

總之,雖然為整個AI生態系統制定頂層規範仍然困難,但內部的軟件工程任務將變得更容易,因為需求來源明確且易於自動化處理。這一轉變有望顯著降低軟件開發成本並提高可靠性。