人工智能正在改變軟件開發(fā)的模式
如今,很多軟件開發(fā)人員正在使用人工智能技術(shù)幫助編寫和審查代碼、檢測錯誤、測試軟件,并優(yōu)化開發(fā)項目。這幫助企業(yè)更有效地部署新軟件,并使新一代開發(fā)人員更輕松地學(xué)習(xí)編程。
這是調(diào)研機(jī)構(gòu)德勤公司最近發(fā)布的一份有關(guān)軟件開發(fā)采用人工智能技術(shù)的調(diào)查報告得出的結(jié)論。報告的作者David Schatsky和Sourabh Bumb描述了在過去的18個月中多家公司如何推出幾十個人工智能驅(qū)動的軟件開發(fā)工具。并且其市場正在增長。致力于軟件開發(fā)的人工智能初創(chuàng)企業(yè)在2019年獲得了7.04億美元的投資。
新工具可以幫助軟件開發(fā)人員減少工作量,在編寫軟件時檢測錯誤,并自動執(zhí)行許多確認(rèn)軟件質(zhì)量的測試。在當(dāng)今越來越依賴開放源代碼的時代,這一點(diǎn)很重要,因為開放源代碼可能會帶來一些錯誤。
盡管有些人擔(dān)心采用自動化技術(shù)可能會使編程人員失去工作,但調(diào)查報告的這兩位作者認(rèn)為不太可能。
Schatsky說:“在很大程度上,這些人工智能工具是在幫助和增強(qiáng)人類的能力,而不是取代他們。這些工具有助于使編碼和軟件開發(fā)民主化,使一些編程新手能夠填補(bǔ)人才缺口,學(xué)習(xí)新技能。人工智能技術(shù)還可以進(jìn)行代碼審查,并提供質(zhì)量保證。”
調(diào)研機(jī)構(gòu)Forrester公司在2018年進(jìn)行的一項研究發(fā)現(xiàn),從事軟件開發(fā)的企業(yè)中,37%的企業(yè)正在使用由人工智能驅(qū)動的編碼工具。Tara、DeepCode、Kite、Functionize和Deep TabNine等許多公司提供自動化編程服務(wù),而在2020年這一比例將會更高。
成功應(yīng)用似乎正在加快這一趨勢。Schatsky說:“除了節(jié)省成本和時間以外,許多采用這些人工智能工具的企業(yè)還改善了最終產(chǎn)品的質(zhì)量。”
德勤公司的研究表明,人工智能可以幫助緩解軟件開發(fā)人才長期短缺的現(xiàn)象。去年,軟件質(zhì)量不良使美國企業(yè)損失了3190億美元。人工智能的應(yīng)用具有緩解這些挑戰(zhàn)的潛力。德勤公司的分析人員認(rèn)為人工智能可以在軟件開發(fā)的許多階段提供幫助,其中包括:項目要求、編碼審查、錯誤檢測和解決,以及通過測試、部署和項目管理提供的更多幫助。
IBM工程師從Watson項目中學(xué)到的人工智能開發(fā)經(jīng)驗
IBM公司的杰出工程師Bill Higgins是IBM Watson開發(fā)人工智能任務(wù)團(tuán)隊負(fù)責(zé)人,有著20年的軟件開發(fā)工作經(jīng)驗。他最近發(fā)表了一篇有關(guān)人工智能對軟件開發(fā)的影響的研究報告。
Higgins說,“企業(yè)需要放棄以往開發(fā)軟件的模式。如果開發(fā)人員難以適應(yīng),那么企業(yè)適應(yīng)的難度將遠(yuǎn)遠(yuǎn)超出開發(fā)人員。事實(shí)證明,企業(yè)管理人員缺乏人工智能方面的經(jīng)驗也是一種優(yōu)勢。因為他必須經(jīng)歷這一學(xué)習(xí)過程,因此對需要適應(yīng)的開發(fā)人員有了更深刻的理解和同情。”
他表示,為了了解軟件開發(fā)中的人工智能,他研究了其他人如何應(yīng)用人工智能(提出問題)以及使用人工智能優(yōu)于其他替代方法(解決方案)的情況。這對于理解可能發(fā)生的情況并避免誤區(qū)很重要。
他說,自從在賓夕法尼亞州立大學(xué)獲得計算機(jī)科學(xué)學(xué)位以來,學(xué)習(xí)人工智能這一過程是他感到最緊張、最困難的一次學(xué)習(xí)經(jīng)歷。他說:“讓我重新思考從經(jīng)驗中改進(jìn)軟件系統(tǒng)實(shí)在是太困難了,而軟件系統(tǒng)只做開發(fā)人員讓它們做的事情。”
IBM公司開發(fā)了一種概念模型來幫助開發(fā)人員思考基于人工智能的轉(zhuǎn)型,稱之為人工智能階梯(AI Ladder)。這個階梯有四個梯級:收集、組織、分析和注入。大多數(shù)企業(yè)擁有大量數(shù)據(jù),這些數(shù)據(jù)通常是以孤立的IT工作或通過收購的形式組織起來的。例如一家企業(yè)可能有20個數(shù)據(jù)庫和3個數(shù)據(jù)倉庫,其中包含冗余和不一致的客戶信息。其他數(shù)據(jù)類型(如訂單、員工和產(chǎn)品信息)也是如此。Higgins說:“IBM公司使AI Ladder從概念上擺脫了困境。”
在注入階段,該公司致力于將訓(xùn)練的機(jī)器學(xué)習(xí)模型集成到生產(chǎn)系統(tǒng)中,并設(shè)計反饋循環(huán),以便可以從經(jīng)驗中不斷改進(jìn)模型。注入式人工智能的一個示例是Netflix推薦系統(tǒng),該系統(tǒng)由復(fù)雜的機(jī)器學(xué)習(xí)模型提供支持。
IBM公司已確定API、預(yù)先構(gòu)建的機(jī)器學(xué)習(xí)模型和可選工具的組合,以封裝、收集、組織和分析用于常見機(jī)器學(xué)習(xí)域的人工智能階梯(AI Ladder),例如自然語言理解、與虛擬代理的對話、視覺識別、語音和企業(yè)搜索等。
例如,Watson的自然語言理解變得豐富而復(fù)雜。機(jī)器學(xué)習(xí)現(xiàn)在擅長于理解語言的許多方面,其中包括概念、概念之間的關(guān)系以及情感內(nèi)容。現(xiàn)在可以通過完善的API和支持的SDK,向開發(fā)人員提供基于機(jī)器學(xué)習(xí)的自然語言處理的NLU服務(wù)和研發(fā)工具。
Higgins 說:“因此,即使開發(fā)人員沒有進(jìn)行數(shù)據(jù)科學(xué)或機(jī)器學(xué)習(xí)方面的培訓(xùn),他們現(xiàn)在也可以開始在應(yīng)用程序中利用某些類型的人工智能。雖然這并沒有消除人工智能的學(xué)習(xí)曲線,但會使其變得更平緩。”