2022 年,你會選擇哪一種程式語言呢?
前幾年就流傳著這樣一種說法:Julia會取代 Python,成為新的最受歡迎的程式語言之一。我們暫且對這種說法持觀望態度,但作為科學計算方面的強大工具,Julia優勢已然顯現,這意味著程式設計師的選擇又多了一種。
在資料科學、人工智慧等領域,仔細對比Julia和Python,我們會發現:相同的任務,只要Python 能實現的的,Julia都可以做,而且效率高得多,語法也簡潔優雅,只是在傳播度上,名氣不如Python。
近日,reddit 上的一則熱帖引來廣大網友的討論,這個帖子提到,最近,一些Julia語言包的開發人員討論了Julia中ML 的當前狀態,並將其狀態與Python ML 生態系統進行了比較。
原文貼網址:
https://www.reddit.com/r/MachineLearning/comments/s1zj44/r_julia_developers_discuss_the_current_state_of /
來自烏得勒支大學的JordiBolibar 認為,「Julia確實在機器學習方面擁有巨大的潛力,但它目前的狀態有點喜憂參半。更具體地說,我在SciML 中堅持使用Julia的主要原因是,DifferentialEquations.jl 庫工作得非常好,但在Python 中沒有發現任何類似的東西。然而,對於我的研究來說,真正痛苦的是AD 部分。自從我開始使用Julia,我在Zygote 中遇到了兩個錯誤,這使我的工作速度減慢了幾個月。但我仍然認為Julia是SciML 的最佳選擇,但這些庫(及其文件)應該優化的更加用戶友好。」
網友@jgreener64 表示:「Julia中的ML 在某些領域應用非常強大,Julia一切都有可能。Julia面臨的問題是:Julia中的ML 需要大量現有知識或大量時間搜尋/ 反覆試驗。在個人層面上,我目前正在用Julia開發新穎的可微分演算法。」
#除了網友的熱烈討論外,Julia軟體包開發人員Christopher Rackauckas 圍繞著以下7 個問題,解答了網友比較關心的內容。 Rackauckas 是 MIT 和馬裡蘭大學的數學家和藥理學家,主要以Julia程式設計。 Rackauckas 為Julia、數學和隨機生物學開設了專門博客,來介紹相關內容,並且 Rackauckas 在Julia中開發了一些庫,包括(但不限於)DifferentialEquations.jl 和 Pumas。
Christopher Rackauckas
下文中我們挑選了幾個大家比較關心的問題來回報:
問題 3:Julia在「標準 ML」中的表現如何? ######Julia的核心速度很好:在 CPU 上,我們做得非常好,在 GPU 上,每個人都只是呼叫相同的 cudnn 等;Julia的 AD 速度也很好。不過 Zygote 可能會有一些開銷,但與 Jax/PyTorch/TensorFlow相比,Zygote 在大多數情況下速度是很快的。具體來說,PyTorch 開銷要高得多,在標準 ML 工作流程中甚至無法測量。一個足夠大的矩陣乘法會解決分配問題或其他 O(n) 問題;Julia不融合內核,因此在大多數基準測試中,如果使用者查看它,就會發現它沒有融合 conv 或 RNN cudnn 呼叫。
問題 4:我們應該追蹤哪些重要的實驗和基準?
XLA 的分散式調度器非常好。當我們考慮擴展時,我們應該忽略 PyTorch,去考慮 DaggerFlux 與TensorFlow/Jax。 XLA 有更多的靈活性來改變操作,所以我認為 XLA 才是贏家,我們需要使用 e-graphs 技巧來匹配它。另一件需要注意的事情就是「自動微分中缺少中間部分」,這種情況還需要解決。
問題 7:有什麼推薦的軟體套件?
我傾向於在需要時使用 Flux,但大家還是盡量使用 DiffEqFlux。就現有核心而言,Flux 是最完整的,但它的風格讓我感到厭倦。我希望有一個 Flux 不使用隱式參數,而是使用顯式參數。我希望這些參數由 ComponentArrays 表示。
以上是開發者親自上場:Julia語言搞機器學習和Python比,哪個好用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!