關(guān)于人工智能有很多的炒作,但企業(yè)是否真地開始使用人工智能技術(shù)了?我們在今年早些時候發(fā)布的一項調(diào)查中發(fā)現(xiàn),就職于企業(yè)的超過60%的受訪者計劃將部分IT預(yù)算投入人工智能中。我們還發(fā)現(xiàn)投入的多少取決于公司已經(jīng)擁有的人工智能技術(shù)的經(jīng)驗,而在成熟度曲線之上的企業(yè)則有計劃大幅增加投資。至于目前人工智能被采用的水平,答案取決于企業(yè)所在的行業(yè)。我們發(fā)現(xiàn),在多個行業(yè)中,30%或更多的受訪者將其機構(gòu)描述為具有成熟的人工智能實踐:
?
圖1 人工智能技術(shù)被采用的階段(按行業(yè)劃分)。圖片來源:Ben Lorica
哪些領(lǐng)域或業(yè)務(wù)在應(yīng)用人工智能技術(shù)?與任何新技術(shù)一樣,人工智能被用于許多與研發(fā)相關(guān)的活動。但我們也開始看到人工智能和機器學(xué)習(xí)在客戶服務(wù)和IT等領(lǐng)域獲得關(guān)注。在最近的一篇文章中,我們概述了在和客戶體驗相關(guān)的許多領(lǐng)域里,與人工智能相關(guān)的技術(shù)開始產(chǎn)生影響。這包括數(shù)據(jù)質(zhì)量、個性化、客戶服務(wù)以及影響客戶體驗的許多其他因素。

圖2 人工智能被采用的領(lǐng)域(按照采用階段劃分)。圖片來源:Ben Lorica
我本人特別感興趣的一個領(lǐng)域是人工智能和自動化技術(shù)在數(shù)據(jù)科學(xué)、數(shù)據(jù)工程和軟件開發(fā)中的應(yīng)用。我們之前概述了在軟件開發(fā)中 “人參與流程”技術(shù)的一些初步表現(xiàn),其中機器學(xué)習(xí)的初始應(yīng)用開始改變?nèi)藗儤?gòu)建和管理軟件系統(tǒng)的方式。自動化也已成為數(shù)據(jù)科學(xué)和機器學(xué)習(xí)(AutoML)中最熱門的話題之一,研究人員和從業(yè)者也正在積極構(gòu)建可以對機器學(xué)習(xí)管道各個階段進行自動化的工具。
對于一個典型的數(shù)據(jù)科學(xué)家、數(shù)據(jù)工程師或開發(fā)人員來說,有太多的工具和API要他們使用并“精通”。數(shù)據(jù)科學(xué)家需要學(xué)Python、Pandas、numpy,scikit-learn、一種或多種深度學(xué)習(xí)框架、Apache Spark和更多內(nèi)容。根據(jù)Khaliq Gant最近發(fā)表的博客文章,一位網(wǎng)絡(luò)開發(fā)人員通常被希望有在“瀏覽終端、HTML、CSS、JavaScript、云基礎(chǔ)架構(gòu)、部署策略、數(shù)據(jù)庫、HTTP協(xié)議等方面的能力,而這僅僅是個開始”。而數(shù)據(jù)工程師額外還需要掌握幾個基礎(chǔ)架構(gòu)。
數(shù)據(jù)科學(xué)家、數(shù)據(jù)工程師和開發(fā)人員如何應(yīng)對這種工具和API的爆炸式增長? 他們通常使用搜索(Google)或在論壇(Stack Overflow、Slack、郵件列表)中發(fā)帖。在這兩種情況下,它都需要一些基礎(chǔ)知識來構(gòu)建問題并能夠辨別出哪個答案是“最佳選擇”。在論壇的場景里,在獲得足夠的回答之前可能會有很長的等待期。 擁有更多資源和更多時間的人可以利用免費或付費的學(xué)習(xí)資源,如書籍、視頻或培訓(xùn)課程。
已經(jīng)出現(xiàn)了一些自動化工具,它們可以大大提高軟件開發(fā)人員的效率和生產(chǎn)力。在最近舉行的人工智能北京大會上的主題演講中,加州大學(xué)伯克利分校RISELab的主任Ion Stoica教授展示了一個新的研究項目,暗示了一種軟件開發(fā)人員前進的可能。項目的初步結(jié)果就是AutoPandas。這是Pandas的程序代碼合成引擎,而Pandas是當(dāng)今使用最廣泛的數(shù)據(jù)科學(xué)庫之一。正如微軟和華盛頓大學(xué)合作的一篇論文所述,程序代碼合成是計算機科學(xué)中一個長期的研究領(lǐng)域:
程序代碼合成是在底層編程語言中自動查找滿足以某種需求形式表達的用戶意圖的程序的任務(wù)。自20世紀(jì)50年代人工智能出現(xiàn)以來,這個問題一直被認為是計算機科學(xué)界的圣杯。
AutoPandas用戶只需指定輸入和輸出數(shù)據(jù)結(jié)構(gòu)(例如,dataframe),AutoPandas就能自動合成出一個最佳程序,從給定輸入產(chǎn)生所需的輸出。 AutoPandas依賴于一個“程序生成器”來獲取對API的約束以減少搜索空間(可能的候選程序空間是巨大的),神經(jīng)網(wǎng)絡(luò)模型則被用來預(yù)測API調(diào)用的參數(shù),分布式計算框架Ray被用來擴展搜索的范圍。

圖3 AutoPandas的用戶指定輸入和輸出的數(shù)據(jù)結(jié)構(gòu),基于神經(jīng)網(wǎng)絡(luò)的生成器輸出一個優(yōu)化的程序。圖片來源:Ben Lorica
雖然我們?nèi)匀惶幱诜浅T缙诘碾A段,但基于神經(jīng)網(wǎng)絡(luò)的生成器是進行實用的程序代碼合成的極有希望的一步。 請注意,雖然RISELab的研究人員最初專注于Pandas,但AutoPandas所依賴的技術(shù)和工具是可以被應(yīng)用于其他的API的(例如,numpy、TensorFlow等)。因此,開發(fā)人員、數(shù)據(jù)科學(xué)家或數(shù)據(jù)工程師使用的任何流行工具都可以通過程序合成,在一定程度上從自動化中獲益。
編程工具總是隨著時間的推移而改變(例如,我不再使用Perl),并且技術(shù)人員總是被希望能夠適應(yīng)最新的工具和方法。程序合成工具的不斷進步意味著自動化將改變數(shù)據(jù)科學(xué)家、數(shù)據(jù)工程師或開發(fā)人員的工作方式??梢韵胂?,未來掌握個別工具和API的重要性會降低,技術(shù)人員可以專注于架構(gòu)設(shè)計和構(gòu)建端到端系統(tǒng)和應(yīng)用。隨著工具和API變得更容易使用,雇主不會過多關(guān)心你在工作中所會的工具,他們會期望你擁有“軟技能”(包括不易自動化的技能)、領(lǐng)域知識和專業(yè)知識,以及整體思考的能力。
相關(guān)內(nèi)容
- 使用Ray來構(gòu)建強化學(xué)習(xí)模型和人工智能應(yīng)用:在2019年9月9日至12日舉辦的人工智能圣何塞大會上的一個教學(xué)課程
- 企業(yè)里人工智能的采用
- 機器學(xué)習(xí)里的深度自動化
- 人工智能和機器學(xué)習(xí)是如何改進用戶體驗的?
- 機器學(xué)習(xí)對于軟件開發(fā)意味著什么?
- Ray的演化和應(yīng)用的擴展
- 人工智能和機器學(xué)習(xí)將會對你的整個機構(gòu)進行重新訓(xùn)練
Ben Lorica
Ben Lorica是O’Reilly Media公司的首席數(shù)據(jù)科學(xué)家,同時也是Strata數(shù)據(jù)會議和O’Reilly人工智能會議的內(nèi)容日程主管。他曾在多種場景下應(yīng)用商業(yè)智能、數(shù)據(jù)挖掘、機器學(xué)習(xí)和統(tǒng)計分析技術(shù),這些場景包括直銷、消費者與市場研究、定向廣告、文本挖掘和金融工程。他的背景包括在投資管理公司、互聯(lián)網(wǎng)初創(chuàng)企業(yè)和金融服務(wù)公司就職。

