我研究了最熱門的200種AI工具,卻發現這個行業有點飽和

AIBigbull2050發表於2020-07-24

在 LinkedIn 上,很多你申請的機器學習職位都有超過 200 名競爭者。在 AI 工具上人們也有這麼多選擇嗎?

為了完整了解機器學習技術應用的現狀,畢業於史丹佛大學,曾就職於英偉達的工程師 Chip Huyen 決定評測目前市面上所有能找到的 AI / 機器學習工具。

在搜尋各類深度學習全棧工具列表,接受人們的推薦之後,作者篩選出了 202 個較為熱門的工具進行評測。最近,她的統計結果讓機器學習社群感到有些驚訝。


首先要注意的是:


這一列表是在 2019 年 11 月列出的,最近開源社群可能會有新工具出現。

有些科技巨頭的工具列表龐大,無法一一列舉,比如 AWS 就已經提供了超過 165 種機器學習工具。

有些創業公司已經消失,其提出的工具不為人們所知。

作者認為泛化機器學習的生產流程包括 4 個步驟:

專案設定

資料 pipeline

建模和訓練

服務

作者依據所支援的工作步驟將工具進行分類。專案設定這一步沒有算在內,因為它需要專案管理工具,而不是機器學習工具。由於一種工具可能不止用於一個步驟,所以分類並不簡單。「我們突破了資料科學的極限」,「將 AI 專案轉變為現實世界的商務成果」,「允許資料像您呼吸的空氣一樣自由移動」,以及作者個人最喜歡的「我們賴以生存和呼吸的資料科學」,這些模稜兩可的表述並沒有讓問題變得更簡單。

工具的時間演變歷程

作者追溯了每種工具釋出的年份。如果是開源專案,則檢視首次提交,以檢視專案開始公開的時間。如果是一家公司,則檢視該公司在 Crunchbase 上的創辦年份。然後她繪製了隨著時間的推移,每個類別中工具數量的變化曲線。具體如下圖所示:

我研究了最熱門的200種AI工具,卻發現這個行業有點飽和

不出所料,資料表明,隨著 2012 年深度學習的復興,該領域才開始呈爆炸式增長。


AlexNet 之前(2012 年之前)

直到 2011 年,該領域仍然以建模訓練工具為主導,有些框架(比如 scikit-learn)仍然非常流行,有些則對當前的框架(Theano)產生了影響。2012 年以前開發出來且至今仍在使用的一些工具要麼完成 IPO(如 Cloudera、Datadog 和 Alteryx),要麼被收購(Figure Eight),要麼成為受社群歡迎並積極開發的開源專案(如 Spark、Flink 和 Kafka)。

開發階段(2012-2015)

隨著機器學習社群採用「let’s throw data at it」的方法,機器學習空間就變成了資料空間。當調查每個類別中每年開發出的工具數量時,這一點更加明顯。2015 年,57%(82 個工具中有 42 個)的工具都是資料 pipeline 工具。具體如下圖所示:

生產階段(2016 年至今)

每個人都知道越基礎的研究越重要,但大多數公司都無法支援研究人員進行純技術方向的探索——除非能夠看到短期商業利益。隨著機器學習研究、資料和已訓練模型數量的增多,開發者和機構的需求增加,市場對於機器學習工具的需求也有了巨大的增長。

2016 年,谷歌宣佈將神經機器學習技術應用到谷歌翻譯中,這是深度學習在現實世界裡首次落地的重要標誌。


這一全景圖仍不完整

AI 創業公司現在已經有很多了,但它們大多數都面向技術的落地(提供面向消費者的應用),而不是提供開發工具(如向其他公司售賣框架和軟體開發包)。用風險投資的術語來說,大多數初創公司都是垂直 AI 領域裡的。在福布斯 2019 年公佈的 50 大 AI 初創公司裡,只有 7 家是以機器學習開發工具為主業的。

對於大多數人來說,應用更為直觀。你可以走進一家公司說:「我們可以讓你們的一半客服工作實現自動化。」工具實現的價值總是間接的,但又深入整個生態系統。在一個市場中,很多公司都可以提供相同的應用,但其背後用到的工具卻只有寥寥幾種。

經過大量搜尋和比對,在這裡作者只列出了 200 餘個 AI 工具,相對於傳統計算機軟體工程來說這個數字很小。如果你想評測傳統的 Python 應用開發,你可以用谷歌幾分鐘內找出至少 20 個工具,但如果你想試試機器學習模型,事情就完全不一樣了。


機器學習工具面臨的問題

很多傳統的軟體工具都可以用於開發機器學習應用。但是在機器學習應用中,也有很多挑戰是獨有的,需要特殊的工具。

在傳統軟體開發流程中,寫程式碼是最難的一步,但在機器學習工作中,寫程式碼只是整個流程中耗費精力較小的一部分。開發一個可以帶來很大效能提升,並且在現實世界中可以落地的新模型非常耗費時間和資金。大多數公司都會選擇不去開發新模型,而是直接拿來就用。

對於機器學習來說,使用最多 / 最好資料的應用總會獲勝。所以與其專注於提升深度學習演算法,大多數公司都會花費大量時間提升資料的質量。因為資料的變化總是很快,機器學習應用也需要快速的開發和部署。在很多例子中,你甚至需要每天都部署新的模型。

此外,ML 演算法的規模也是一個問題。預訓練的大規模 BERT 模型具有 3.4 億引數,大小為 1.35GB。即使 BERT 模型可以擬合手機等消費類裝置,但在新樣本上執行推理所耗費的大量時間就使其對於現實世界的眾多應用毫無用處。

試想,如果自動補全模型提示下一個字元所花費的時間比使用者自己鍵入的時間還要長,那麼有什麼必要用這個模型呢?

Git 透過逐行的差異比較實現了版本控制,因而對大多數傳統軟體工程程式的效果很好。但是,Git 並不適用於資料庫或者模型檢查點的版本控制。Panda 對大多數傳統資料框操作的效果很好,但在 GPU 上不起作用。

CSV 等基於行的資料格式對於使用較少資料的應用有很好的效果。但是,如果你的樣本具有很多特徵,並且你只想利用其中的一個子特徵,則使用基於行的資料格式依然需要你載入所有的特徵。PARQUET 和 OCR 等柱狀檔案格式針對這種用例進行了最佳化。

ML 應用面臨的一些問題如下所示:

監測:怎麼知道你的資料分佈已經改變以及需要重新訓練模型?

資料標註:如何快速地標註新資料,或者為新模型重新標註現有資料?

CI/CD 測試:由於你不能花幾天的時間等著模型訓練和收斂,所以如何執行測試以確保每次改變後模型像期望地那樣執行?

部署:如何封裝和部署新模型或者替換現有模型?

模型壓縮:如何壓縮 ML 模型使其擬合消費類裝置?

推理最佳化:如果加速模型的推理時間?是否可以將所有操作融合在一起?是否可以採用更低精度?縮小模型或許可以加速推理過程。

邊緣裝置:硬體執行 ML 演算法速度快且成本低。

隱私:如何在保護隱私的同時利用使用者資料來訓練模型?如何使流程符合《通用資料保護條例》(GDPR)?


在下圖中,作者根據開發工具能夠解決的主要問題列出了它們的數量:

一大部分集中在資料 pipeline,包括資料管理、貼標籤、資料庫 / 查詢、資料處理和資料生成。資料 pipeline 工具可能也想成為一體化平臺(all-in-one platform)。由於資料處理是專案中最耗費資源的階段,一旦有人在你的平臺上放置他們的資料,那就很有可能給他們提供預構建或預訓練的模型。

建模和訓練工具大多是框架。當前深度學習框架之爭有所平靜,主要集中在 PyTorch 和 TensorFlow 這兩者之間,以及基於這兩者解決 NLP、NLU 和多模態問題等特定任務的更高階的框架。分散式訓練領域也有一些框架。還有一個出自谷歌的新框架 JAX,每個討厭 TensorFlow 的谷歌員工都力捧這個框架。

存在一些用於實驗追蹤的獨立工具,一些流行深度學習框架還有內建的實驗追蹤功能。超引數調整很重要,所以出現專門用於超引數調整的工具並不奇怪,但是它們似乎沒有一個流行起來。因為超引數調整的瓶頸不是設定,而是執行它所需的算力。

尚未解決但最令人興奮的問題在部署和服務空間中。缺少服務方法的原因之一是研究人員與生產工程師之間缺乏溝通。在有能力進行人工智慧研究的公司(常常是大公司),研究團隊與部署團隊是分開工作的,兩個團隊僅透過 P 打頭的經理:產品經理、程式經理、專案經理互相交流進行溝通。而員工可以看到整個堆疊的小公司就會受到即時產品需求的限制。

只有少數幾家初創公司能夠縮小差距,這些公司通常是由已有成就的研究人員建立,並且有足夠的資金僱傭優秀的工程師。而這樣的初創公司將會佔據人工智慧工具市場很大一部分。


開源和開放核心(open-core)

作者選擇的 202 種工具中有 109 種是開源軟體(Open Source Software, OSS),並且沒有開源的工具也常常與其他開源工具綁在一起。

開源軟體的出現和發展由多種原因促成,以下是所有開源軟體支持者談論數年的一些原因,包括透明度、協作、靈活性以及合乎倫理道德。客戶可能不希望使用無法獲取原始碼的新工具。否則,如果不開放原始碼的工具無法使用,則必須重寫程式碼。這是初創公司經常出現的狀況。

開源軟體並不意味著非盈利和免費,開發者有其更深遠的目的。需要看到,開源軟體的維護耗時且花費不菲。傳聞 TensorFlow 團隊的成員數接近 1000 人。一家企業提供開源軟體肯定有其商業目的,舉例而言,越來越多的人使用某家公司的開源軟體,那麼該公司的名頭就會越來越響,人們也就更加信任這家公司的專業技術,最終可能會購買他們的專有工具,甚至加入他們的團隊。

這樣的例子比比皆是。谷歌不遺餘力地推廣他們的工具,其目的是想使用者使用其雲服務。英偉達維護 cuDF,旨在售賣更多的 GPU。Databricks 免費提供 MLflow,但也售賣他們的資料分析平臺。

此外,網飛公司最近成立了專門的機器學習團隊,並推出了自己的 Metaflow 框架,從而也加入到了機器學習(ML)的發展大潮中,以吸引人才。Explosion 免費提供 SpaCy,但同時對 Prodigy 收費。HuggingFace 是一個特例,它免費提供 transformer,但不清楚究竟如何盈利。

隨著軟體開源成為一種標準,初創公司找到一種行之有效的商業模式變得很困難。任何剛起步的工具類公司都必須與現有開源工具競爭。所以,如果初創公司選擇開源核心的商業模式,則必須決定開源軟體中涵蓋哪些功能,付費版本中包含哪些內容才不顯得貪得無厭,以及如何讓免費使用工具的使用者開始付費。


未來展望

關於 AI 泡沫是否破裂的討論此起彼伏。很大一部分的 AI 投資流向了自動駕駛汽車,但我們已瞭解完全自動駕駛的車輛離落地應用還有很長的路要走,一些人猜測投資者將會對 AI 完全喪失信心。

谷歌暫停了 ML 研究人員的招聘,優步也解僱了 AI 團隊中一半的研究人員。這些決策都是在新冠肺炎爆發之前做出的。此外,有傳言稱,由於選擇攻讀機器學習的人數太多了,市場上 ML 的工作需求卻遠遠少於掌握 ML 技術的人才。

那麼問題來了,現在進入 ML 領域還是好時機嗎?不可否認,AI 炒作確實存在,在某種程度上,這種熱度需要「降溫」。這一點可能已經發生了。然而,作者並不認為 ML 會消失。可能越來越少的企業能夠支撐得起 ML 研究,但依然會有企業需要工具將它們的 ML 付諸生產。

由此,如果必須在工程和 ML 兩者之間選擇,作者建議選擇工程。優秀的工程師學習 ML 知識更加容易,但 ML 專家想要成為優秀的工程師就比較困難了。如果可以成為一位能夠構建優秀 ML 工具的工程師,那真是再好不過了!


【編輯推薦】




https://blog.csdn.net/weixin_42137700/article/details/107558572



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2706705/,如需轉載,請註明出處,否則將追究法律責任。

相關文章