raven-ml/raven
Modern scientific computing for OCaml
解決的問題
Raven 為 OCaml 語言提供了一個完整的數值計算、機器學習與資料科學的函式庫生態系。其目標是將 Python 科學計算堆疊(如 NumPy、JAX 和 PyTorch)的功能帶入 OCaml,同時維持語言的強型別安全性。
如何運作
Raven 由多個專門處理 ML 流程不同部分的套件組成:
- nx: 處理多維陣列與線性代數。
- tolk: 用於 GPU 張量計算的最小 ML 編譯器。
- rune: 提供自動微分與函數式轉換。
- rune 和 kaun: 一起用於建構與訓練神經網路。
- brot: 實作快速且相容 HuggingFace 的分詞。
- talon: 提供型別安全的資料框。
- hugin: 用於產生出版品質的繪圖。
- quill: 用於探索的互動式 REPL 與 Markdown 記事本。
- munin: 帶有 TUI 面板的本地實驗追蹤。
- sowilo: 可微分的電腦視覺。
- fehu: 強化學習環境。
適用對象
希望在 OCaml 中進行科學計算與機器學習的開發者與研究人員,可受益於型別安全與函數式程式設計範式。
亮點
- 全棧 ML 生態系:涵蓋從資料框(Talon)與分詞(Brot)等,與 Python 生態系方式一致。
- 型別安全操作:利用 OCaml 的型別系統重建科學計算工具。
- GPU 加速:透過 Tolk 提供 GPU 張量計算的編譯器。
- 自動微分:透過 Rune 集成自動微分。
- 整合性:支援 HuggingFace 相容分詞與強化學習環境。
相關
- 專案
- 專案
- 專案
- 專案
- 專案