iT邦幫忙

2023 iThome 鐵人賽

DAY 2
1
AI & Data

Rust 加 MLOps,你說有沒有搞頭?系列 第 2

[Day 02] - 從 Python 🐍 到 Rust 🦀|超級概覽,那 Mojo🔥呢?

  • 分享至 

  • xImage
  •  

今日份 Ferris

在進入正題前,先奉上今日份的熟螃蟹,本來想用 Stable diffusion 生成整個圖,但嘗試了幾次結果都太詭異了,最終只成功生成了背景哈哈哈
https://ithelp.ithome.com.tw/upload/images/20230917/20141304yx1ndzZ64J.jpg

Rust 的優勢

這次挑戰想要盡可能讓內容維持 bite-sized,所以今天先條列幾項 Rust 的優點,接下來再慢慢詳細展示,最後再提提 Mojo🔥。

  1. 首先,Rust 的一大優勢是它是最近建立的(2010),因此學習了其他語言的最佳實踐,能夠博採眾家之長。
  2. Packaging 也是 Rust 的最大優勢之一,不得不說 Cargo 真的很方便好用。
  3. 在性能方面,Rust 的表現確實是 C、C++ 級別的性能,以及能源效率,因此在需要節省成本、能源效率時,Rust 絕對是最佳選擇。
  4. 另一個優點是並行性,Python 的 全域直譯器鎖 (GIL) 一直是性能的一大痛點 (雖然 PEP 703 說要移除,但不知道要等多久),這代表我們無法使用所有核心,但 Rust 卻可以通過幾行程式碼就實現預設的多執行緒,且編譯器將保護我們免受多執行緒可能引起的許多問題,而這剛好可以帶到下一點 —— 安全性。
  5. Rust 是最安全的語言之一,它本來就設計成 System Programming Language。因此,許多安全功能都內置在語言中,這就是為什麼 Linux 內核正在採用一些 Rust,而 Google 也開始使用了不少 Rust。
  6. 最後一個 Rust 超棒的原因是,假設我們有一個用來分類花生的 Python 腳本,想要提供給非技術人員執行,例如爺爺或奶奶,即使他們有一些技術背景,他們也會苦惱如何運行這個腳本。
    但是,對於 Rust 二進制文件,默認情況下,一旦編譯之後,就能直接在 target/debug/ 資料夾中找到並執行。
    實際上,從 Rust 交付二進制可執行文件是 MLOps 流程中非常大的優勢。
    https://ithelp.ithome.com.tw/upload/images/20230917/20141304nBFaCg83yo.png

另外值得注意的一點是 JetBrains 即將推出 Rust 開發專用 IDE RustRover,從過往 JetBrains 推出產品的趨勢來看,可以預期 Rust 的未來會是一片光明的!

那 Mojo🔥 呢?

https://ithelp.ithome.com.tw/upload/images/20230917/20141304p084h4yIaY.png
拖到最後才開賽的缺點就是 Mojo 在 9/7 正式發布了,所以這裡也簡單說一下未來 AI 會是哪個語言稱霸的個人看法,事實上 Modular 在官方部落格的文章 Rust or Mojo for the future of AI? 就討論過這個議題,Mojo 官方的觀點總的來說就是 Rust 很好,但生態系不足,Mojo 把 Python 生態系整碗端走,才是 AI 的未来。

但目前為止,Mojo 還需要時間來成熟,例如官方標準庫還沒建立,使用 Mojo 進行開發的話,還需要懂得 MLIR,學習曲線或許比 Rust 還要陡峭,不見得會受到 Python 開發者青睞。

反觀 Rust,除了連續拿下 8 年 Stack Overflow Survey 的 most admired language,今年大 LLM 時代資本大量湧入,在等待 Mojo 兌現天賦的這段時間,也許多人將目光放在 Rust 之上,所以我想應該還是挺值得學習的,況且不聽我的也可以聽聽馬一龍的:
https://ithelp.ithome.com.tw/upload/images/20230917/20141304ilg2RHUUfH.png

AI 時代的新策略

事實上,隨著各種 AI 助手的出現 (例如 GitHub Copilot),由 Python 轉換到 Rust 並不會是一個從零開始的異世界生活。
很多我們在 Python 中熟悉的概念,像是 linting、formatting、testing 等,都已經包含在 Rust 中,而 AI 助手則能幫助我們度過語法不熟悉的關卡,所以真的不需要太過擔心!!

好啦,明天就來看看 Rust 與 Python 實際使用上的差別吧。
/images/emoticon/emoticon34.gif


上一篇
[Day 01] - 身為一個 ML 工程師,身上有一隻熟螃蟹是很正常的!
下一篇
[Day 03] - 從 Python 🐍 到 Rust 🦀|上工啦!安裝、環境與函式庫相依管理
系列文
Rust 加 MLOps,你說有沒有搞頭?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
彼得叩叩
iT邦新手 4 級 ‧ 2023-09-17 18:15:42

期待mojo的表現,話說Rust對於新手是不是相對不友善?

chihying iT邦新手 4 級 ‧ 2023-09-18 09:33:59 檢舉

對啊,Mojo真的滿酷的
Rust相較於Python來說是需要在意比較多細節,但我覺得沒有那麼不友善,只是需要花一點時間習慣

我要留言

立即登入留言