iT邦幫忙

2022 iThome 鐵人賽

DAY 19
0

AI in rust
接下來幾天筆者會開始實作gobblet的 AI. 在進入實作的部分前, 我們可以先來聊聊 rust 或著更擴展的說其他語言相較於 python 開發到底有任何優勢嗎?

..... 老實說真目前真的沒有具體的產業大老開始使用rust作為ai 產品的一部分.

到底機會在哪裡?

在AI領域上,或著說機器學習的領域中, train/learn v.s interference/prediction 是兩個很不同的任務.
舉凡推薦系統, 自動車駕駛. 多數都是將這兩個過程切開. 有多開? 可能連機器/硬體都不一樣. 我認為在interference上會有很有趣的機會.

果不起然有實驗用的benchmark:

2019年 EuroPython Conference的影片.
很有意思的點出作為一個不需要garbege collection的程式語言. 在interference上極限的速度和大小差異, 有興趣可以去點開來看.但我們這邊快轉到數量級的比較.
感謝YT的留言.

If my math isn't wrong it was about 1357x faster ( Python: 13:00 Rust: 20:15 ). Mind blown. ~209s vs ~154ms, and the RAM footprint was about 8.75x smaller at the peak (34MB vs ~4MB)

https://ithelp.ithome.com.tw/upload/images/20221002/20151505HGWNDLWMV7.png
https://ithelp.ithome.com.tw/upload/images/20221002/20151505EEePZXl3S5.png

以 AWS lambda服務為例, 收費方式採用 ram size * execution time. 若是作為成本考量有 10^3 數量級的縮減. 這樣的成本優勢是不是很有吸引力呢?


最大打包Size也是外一個考量,
Rust in the Browser for JavaScripters: New Frontiers, New Possibilities
提到 Minimal runtime. Go是 2mb+ TinyGo是 10kb+. Rust則是一開始就設計作為embed language就 kb+等級. 節制總歸在這邊產生句的應用好處.

Deepl learning Framework

在這幾十年的發展下, deep learning的framework 日漸推陳出新.
但這邊就筆者最推薦開始使用的兩個, 也是多數 code with paper可以找到的, 分別是 pytorch 與 tensorflow.
使用這兩個基本上不會成為技術孤兒, 在stackoverflow 上面也容易找到同樣問題的解答.

安裝的話這邊提供m1/m2的安裝指南:
如果按照官方的做法會希望重新 build lib, tensorflow 底層還是c++. brew 有 prebuild 的版本可以直接安裝.

brew install libtensorflow # for tensorflow install
brew install libtorch # for tch(pytorch) 
export LIBTORCH=/path/to/libtorch
export LD_LIBRARY_PATH=${LIBTORCH}/lib:$LD_LIBRARY_PATH

to ~/.profile (any equivalent file). Default terminal for mac user is zsh, that is , ~/.zshrc

General ML task?

像是sklearn這樣強大的工具, 目前不好說rust裏頭有相對應的open source ML領頭羊. Awesome-Rust-MachineLearning
是筆者目前優先參考的內容. 但就算是最熱們的幾個repository都說不算是超級熱門.目前還是屬於開荒階段.


上一篇
[D18] Multithreading
下一篇
[D20] Gobblet對戰AI 知識補全
系列文
大閘蟹料理指南(rust)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言