0%
第十五章 人工進化 15.9 工程霸權的終結

第十五章 人工進化

15.9 工程霸權的終結

艾克利的電話系統是由進化出來的軟體管理的,它是「活」的。當它出問題時,沒有人能排除故障,因為程序以一種無法理解的方式埋藏在一個由小機器組成的未知網路中。不過,當它出問題時,它會自行修復。
當電話系統由適應性很強的進化軟體來運行時,是沒有一種所謂的正確方式的。艾克利繼續道:「說一個系統是『正確的』,聽起來就像是官話、空話。人們評判一個系統,是根據其對意外情況的反應力以及應對措施的創造性。」與其正確,不如靈活,不如耐久;所謂「好死不如賴活」。艾克利說:「小而專且正確的程序就像螞蟻,對身處的世界茫然無知;而反應靈敏的程序往往是失控的龐然大物,僅把百分之一的精力花在你要解決的問題上。孰優孰劣,不言自喻。」
但是,正如本書標題所點明的,進化的代價就是——失控。湯姆·雷說道:「進化系統的一個問題就是,我們放棄了某些控制。」
丹尼·希利斯也得出了相同的結論。他很認真地表示,想讓自己的「連接機」進化出商務軟體。「我們想讓這些系統解決一個我們只知如何陳述卻不知如何解決的問題。」一個例子就是如何編寫出數百萬行駕駛飛read.99csw.com機的程序。希利斯提議建立一個群系統,以進化出「駕駛技巧」更優秀的軟體,系統中有一些微小的寄生蟲程序會試圖墜毀飛機。正如他的實驗所展示的,寄生蟲會促使系統更快地向無差錯和抗干擾強的導航程序收斂。希利斯說:「我們寧肯花更多時間在編製更好的寄生蟲上,也不願花上無數個小時去做設計代碼和查錯這些事情。」
即使技術人員成功地設計出一款龐大的程序,譬如導航軟體,要想對其進行徹底的測試也是不可能的。但進化出來的東西則不同。「這種軟體的成長環境里充斥著成千上萬專職的挑刺者,」希利斯說著,又想起了自己的寄生蟲,「凡是在它們手下躲過一劫的,都經受住了嚴酷的考驗。」除了能夠創造我們製造不出來的東西以外,進化還有一點值得誇耀:它能造出來缺陷更少的東西。「我寧願乘坐由進化出來的軟體駕駛的飛機,也不願乘坐由我自己編製的軟體駕駛的飛機。」作為一名非凡的程序員,希利斯如是說道。
人工進化是工程霸權的終結。進化能使我們超越自身的規劃能力;進化能雕琢出我們做不出來的東西;進化能達到更完美的境界;進化https://read.99csw.com能看護我們無法看護的世界。
這就是進化的交易。我們舍控制而取力量。對我們這些執著于控制的傢伙來說,這無異於魔鬼的交易。
在施樂公司帕洛阿爾托研究中心,拉爾夫·默克勒正在製造能夠自我複製的極小分子。由於這些分子的尺度為納米級別(比細菌還小),因此這種技術被稱為納米技術。在不久的將來,納米技術的工程技能與生物技術的工程技能將趨於一致:它們都把分子看成是機器。對純粹的生命來說,納米技術可以看作是生物工程;對人工進化來說,納米技術則等同於生物分子。默克爾告訴我,「我可不想讓納米技術進化。我希望把它限制在一定的框架內,並且受到國際公約的制約。對納米技術來說,最危險https://read•99csw•com的事情莫過於交配。是的,我想,應該有個國際公約來限制在納米技術中使用交配。一旦交配,就有了進化;只要進化,就會有麻煩。」
隨著軟體越來越大,生存變得越重要,同時也越來越困難。要想在日復一日的使用中存活下來,就意味著必須能夠適應和進化,而這需要做更多的工作。只有不斷地分析自己的狀況,修正自己的代碼以適應新的需要,凈化自己,不斷地排除異常情況,並保持適應與進化,程序才能生存下來。計算必須有生命力和活力。艾克利稱之為「軟體生物學」或「活力計算」。程序員即使24小時都開著尋呼機,也不能確保數十億行的代碼能夠不出故障。人工進化也許是唯一能使軟體保持生命力和活力的方法。
當計算機程序膨脹到幾十億行代碼時,僅僅是維護程序、保持正常運行本身就會成為一個主要負擔。有太多的經濟活動和人的生命會依賴於這種數十億行的程序,因此不能讓它們有哪怕片刻的失效。戴維·艾克利認為,可靠性和無故障運行時間將成為軟體最首要的任務。「我敢說,對真正複雜的程序來說,僅僅是為了存活下來就要消耗更多的資源。」目前,一個大型程序中只有一小部九-九-藏-書分致力於維護、糾錯和清理工作。「將來,」艾克利預言道,「百分之九十九的原始計算機周期都將被用在讓這個怪獸自我監視以維持其正常運轉上。只有剩餘的百分之一將被用於執行用戶任務——電話交換或其他什麼。要知道,這個怪獸只有活下來,才能完成用戶任務。」
長途電話公司的呼叫路由程序總共有200萬行代碼。而這200萬行代碼中的三行錯誤代碼就導致了1990年夏天全國電話系統的連鎖崩潰。現在,200萬行已經不算多了。裝載在海軍海狼潛艇上的作戰計算機包含了360萬行代碼。1993年微軟發布的新操作系統「NT」總共包含400萬行代碼。一億行的程序也離我們不遠了。
丹尼·希利斯所乘航班的駕駛程序是進化出來的,沒有人能弄懂這個軟體。它就像一團千絲萬縷的亂麻,也許真正需要的只是其中的一小部分,但是它能夠確保無故障地運行。
而這些東西必須被淡化,因為真實的世界是一個充滿不測風雲的世界,是一個千變萬幻的世界;生存在這個世界里,需要一點模糊、鬆弛、更多適應力和更少精確度的態度。生命是無法控制的;活系統是不可預測的;活的造物不是非此即彼的。談起複雜程序九*九*藏*書時,艾克利表示:「『正確』是水中月,是小系統的特性。在巨大的變化面前,『正確』將被『生存能力』所取代。」
「你做不到的。」考夫曼坦率地回答。
有一次,在斯圖亞特·考夫曼的課上,一個學生問他,「對於你不想要的東西,你的進化是如何處理的?我知道你能讓一個系統進化出你想要的東西,可是,你又怎麼能肯定它不會製造出你不想要的東西?」問得好,孩子。我們能足夠準確地定義我們想要的東西,從而將它培育出來。然而,我們往往不知道我們不想要什麼。即使知道,這些不受歡迎者的名單也長得不切實際。我們怎樣才能剔除那些不利的副作用呢?
我們曾經抵制住過魔鬼的誘惑嗎?
放棄控制吧,我們將人工進化出一個嶄新的世界和夢想不到的富裕。放手吧,它會開花結果的。
進化並未完全超脫我們的控制;放棄某些控制只不過是為了更好地利用它。我們在工程中引以為傲的東西——精密性、可預測性、準確性以及正確性——都將為進化所淡化。
沒有人能把握住湯姆·雷的培養液的最終歸宿。它們精於設計各種小技巧,卻沒人告訴它們下一步需要什麼技巧。唯有進化能應付我們所創造的複雜性,但進化卻不受我們的節制。