這種方法可稱為“顯式編程”,從大型機到智能手機,從互聯(lián)網(wǎng)熱潮到移動革命,它都不可或缺。它促進了一個全新市場的誕生,使蘋果、微軟、谷歌、Facebook等公司家喻戶曉。
然而,還是少了些東西。早期計算機時代作家設想的智能系統(tǒng),如,菲利普?迪克《銀翼殺手》中的機器人出租車和喬治?盧卡斯《星球大戰(zhàn)系列》的C-3PO機器人,仍然是科幻小說的內(nèi)容。看似簡單的任務也頑固地拒絕哪怕最有才華的計算機科學家設計的自動化方法。專家們指責硅谷在面對這些挑戰(zhàn)時,回避這些基本問題上的進展,卻專注于增量業(yè)務或熱門業(yè)務。
當然,這即將發(fā)生改變。Waymo的自動駕駛汽車最近完成了800萬英里的路測里程。微軟的翻譯引擎在中譯英任務中幾乎接近實現(xiàn)人類譯員的準確程度。初創(chuàng)公司在智能助理、工業(yè)自動化、欺詐檢測等領域正不斷取得新突破。
這些新技術有望從不同方面各自影響我們的日常生活。總的來說,它們代表了我們對軟件開發(fā)的看法的巨大變化,與顯式編程模式明顯不同。
這些進步背后的核心突破是深度學習,這是一種受人類大腦結(jié)構(gòu)啟發(fā)的人工智能技術。它最初只是用途相對較窄的數(shù)據(jù)分析工具,現(xiàn)在已幾乎發(fā)揮著一種通用計算平臺的作用。在廣泛的任務范圍內(nèi),它的性能優(yōu)于傳統(tǒng)軟件,最終可能催生長久以來計算機科學家難以實現(xiàn)的智能系統(tǒng)。媒體有時會夸大其詞地報道人工智能技術的這些前景。
然而,在對深度學習的大肆宣傳中,許多觀察者都遺漏了對其未來持樂觀態(tài)度的最大理由:深度學習需要編碼人員編寫非常少的實際代碼。深度學習系統(tǒng)并非依賴預設規(guī)則,而是根據(jù)過去的范例自動編寫規(guī)則。軟件開發(fā)人員只需要創(chuàng)建一個“粗糙的骨架”,然后讓計算機完成其余工作。例如,特斯拉聘請了深度學習和計算機視覺專家安德烈?卡帕斯(Andrej Karpathy),正是希望他在自動駕駛業(yè)務中融入深度學習技術。
在這個新世界中,開發(fā)人員不再需要為每個問題設計特有的算法。相反,大多數(shù)工作的重點是生成反映所需行為和管理訓練進程的數(shù)據(jù)集。來自谷歌TensorFlow團隊的皮特?沃頓(Pete Warden)早在2014年就指出這一點:他寫道,“我曾是一名程序員,現(xiàn)在我教電腦自己編寫程序。”
當今,驅(qū)動最重要的軟件進步的編程模型不需要大量的實際編程。
這對軟件開發(fā)的未來意味著什么?
編程和數(shù)據(jù)科學將日益趨同。在可預見的未來,大多數(shù)軟件將不采用“端到端”學習系統(tǒng),而是依靠數(shù)據(jù)模型提供核心的認知能力和明確的邏輯,以便與用戶交互及闡釋結(jié)果。一個問題將越來越多地被提出:“我應該使用人工智能還是傳統(tǒng)方法解決這個問題?”實際上,智能系統(tǒng)的設計者將需要精通這兩方面。
人工智能從業(yè)者將成為搶手的人才。人工智能技術的研發(fā)難度大。普通的人工智能開發(fā)人員將成為未來軟件公司最寶貴的資源之一。對傳統(tǒng)的編碼人員而言,這確實有一絲諷刺意味。20世紀50年代開始,他們使其他行業(yè)的工作自動化了,而現(xiàn)在他們自己的工作卻被部分自動化了。對他們工作的需求肯定不會降低,但那些想要保持前沿地位的人必須以適度的懷疑態(tài)度來試水人工智能。
我們需要構(gòu)建人工智能工具鏈。 Lyft的機器學習主管吉爾?阿爾迪蒂(Gil Arditi)對這個問題闡述得很清楚。他說,“機器學習處于初始階段。它類似于上世紀80年代早期或70年代末期的數(shù)據(jù)庫。你必須成為全球?qū)<也拍茏屗鼈冋_\作。” 研究還表明,許多人工智能模型很難解釋,很容易被欺騙,容易受到偏見。掌握解決這些問題的工具對于發(fā)掘人工智能開發(fā)人員的潛力是必要的。
我們都需要接受不可預測的行為。開發(fā)人員和用戶都已習慣計算機“指令”這個比喻。“指令”強化了這樣一種信念,即計算機完全按照我們的指令行事,輸入總能產(chǎn)生近似等量的輸出。相比之下,人工智能模型就像有生命的呼吸系統(tǒng)。新型工具將使它們更像顯式編程,特別在關鍵的安全設置中,但如果我們把限制設置得太嚴密,我們就會面臨一種風險——喪失這些人工智能系統(tǒng)的特殊價值,如AlphaGo的意外棋步。我們開發(fā)和使用人工智能應用時,需要理解并接受各種概率結(jié)果。
希望世界被人工智能接管的可能性幾近為零。