爲何數據科學家應該開始學習Swift?

做者 | Jameson Toole
譯者 | 胡紅星
編輯 | Natalie
AI 前線導讀: Python 由於其易用性在數據分析和機器學習領域廣受歡迎,但性能問題一直是它的短板。從谷歌推出 Swift for TensorFlow 開始,事情彷佛發生了一些變化。Swift 會成爲比 Python 更適合數據分析和機器學習領域的編程語言嗎?

更多幹貨內容請關注微信公衆號「AI 前線」,(ID:ai-front)


在密歇根大學第一年物理課程的一週後,一位教授佈置了一些須要模擬多體系統的問題。這些問題必須在星期五完成。那是我學習第一門編程語言 Matlab 的那一週。算法

這就是我爲什麼在過去十年中零星學習了十幾種語言的緣由。除了入門級 CS 課程中學習的 C++ 和研究生階段學習的基於 Java 的數據庫課程外,我從未接觸過軟件工程方面的任何正式學習。對我而言,編碼是完成做業,分析數據來回答問題,或者用來實現個人想法。有時這意味着要熟悉算法或數據結構的細節,但我歷來沒有發現本身爲了編碼而編碼。我對泛型沒有意見(不要 @我)。我認爲這描述了我所知道的絕大多數數據科學家和機器學習工程師。針對要解決的問題在選擇工具時,咱們一般會優先考慮可用性和效率,而不是軟件基礎。數據庫

快進到 2018 年,Python 已經獲得了機器學習和數據科學社區的承認。Python 的語法很容易入門,它是一門優秀的腳本語言,當你想要優化性能時,能夠直接與底層 C 語言庫打交道。然而,對我來講,Python 最吸引人的部分是它能用於創建端到端的整個系統。用於科學計算的包如 Numpy,Pandas,Matplotlib 和 Jupyter notebooks 擁有巨大的社區支持。而且,當須要圍繞你的工做構建應用程序時,Flask 和 Django 等框架的性能足以擴展至數以億計的用戶。我可使用一種編程語言來構建整個系統。編程

過去 10 年我很喜歡使用 Python。但我認爲將來不會再使用它了,接下來我會使用 Swift。swift

在 2018 年的 TensorFlow 開發峯會上,來自 Google 的 Chris Lattner 宣佈 TensorFlow 即將支持 Swift。不要認爲 TensorFlow for Swift 僅僅是對 TensorFlow 進行了簡單的包裝以方便 iOS 設備使用。這遠不止於此。該項目試圖改變整個機器學習和數據科學生態系統所使用的默認工具。數組

在我熟悉 Python 技術棧時,背後隱藏的另外兩種技術趨勢在慢慢滲透:人工智能經過神經網絡和深度學習的復興以及人工智能的應用場景轉向數十億智能手機和物聯網設備。這兩種技術都須要高性能計算,Python 看起來不太合適。微信

深度學習須要向長鏈網絡傳遞海量的數據,這致使深度學習的計算量很是大。爲了快速執行這些計算,軟件必須針對具備數千個線程和核心的專用處理器進行編譯。這些問題在很是關注功耗和熱量的移動設備上更加明顯。要在更慢的處理器、更少的內存上進行優化是極具挑戰的。到目前爲止,Python 未能提供太多幫助。網絡

這對於數據科學家和機器學習研究人員來講是個很大的問題。咱們最終採用黑客工做方式使用 GPU 進行計算,而咱們許多人都在爲移動應用程序開發而苦惱。學習一種新語言並非不可能的,但轉換成本很高。看看 Node.js 和 React-Native 這樣的跨平臺項目就能知道轉換成本有多大。我曾經計劃永遠堅持個人 numpy 數組,可是如今,不放棄 Python 已經沒法完成任務。它再也不是一個足夠好的解決方案。數據結構

在由機器學習和邊緣計算主導的世界中,Python 沒法成爲端到端語言是 Swift for TensorFlow 背後的動力。 Chris Lattner 認爲 Python 的動態類型和解釋器阻礙了咱們更進一步。用他的話說,工程師須要一種把機器學習看成「一等公民」的語言。雖然他深入地闡述了技術上的緣由,爲何須要採用新的編譯器分析方法來改變使用 TensorFlow 的程序的構建和執行方式,他的論點最引人注目的是編程人員的經驗。框架


可以更容易作機器學習的編程語言應該包括的特性有:機器學習

  • 可讀,高效的語法

  • 腳本能力

  • Notebook-like 的接口

  • 活躍社區構建的第三方庫

  • 能自動編譯針對從 TPU 到移動芯片特定硬件的代碼

  • 能在移動設備上運行

  • 接近 C 的性能

Lattner 和他的團隊正在用 Swift for TensorFlow 添加全部這些特性。Swift 語法幾乎和 Python 同樣高效,擁有一個用於腳本的解釋器。最重要的是,爲了方便移植,能夠運行任何 Python 代碼,而且由於 Swift 如今是 iOS 應用程序開發的默認開發語言,因此部署到移動設備很容易。Swift 的開源編譯器和靜態類型使得針對特定 AI 芯片組進行構建成爲可能。做爲 Swift 的創始人之一,Lattner 可能會有偏見,但我深信他對機器學習的理解。

你能夠在這裏看到 Chris Lattner 的整個演講。

閱讀原文:

https://heartbeat.fritz.ai/why-data-scientists-should-start-learning-swift-66c3643e0d0d

相關文章
相關標籤/搜索