raven-ml/raven

Modern scientific computing for OCaml

解決的問題

Raven 為 OCaml 語言提供了一個完整的數值計算、機器學習與資料科學的函式庫生態系。其目標是將 Python 科學計算堆疊(如 NumPy、JAX 和 PyTorch)的功能帶入 OCaml,同時維持語言的強型別安全性。

如何運作

Raven 由多個專門處理 ML 流程不同部分的套件組成:

  • nx: 處理多維陣列與線性代數。
  • tolk: 用於 GPU 張量計算的最小 ML 編譯器。
  • rune: 提供自動微分與函數式轉換。
  • runekaun: 一起用於建構與訓練神經網路。
  • brot: 實作快速且相容 HuggingFace 的分詞。
  • talon: 提供型別安全的資料框。
  • hugin: 用於產生出版品質的繪圖。
  • quill: 用於探索的互動式 REPL 與 Markdown 記事本。
  • munin: 帶有 TUI 面板的本地實驗追蹤。
  • sowilo: 可微分的電腦視覺。
  • fehu: 強化學習環境。

適用對象

希望在 OCaml 中進行科學計算與機器學習的開發者與研究人員,可受益於型別安全與函數式程式設計範式。

亮點

  • 全棧 ML 生態系:涵蓋從資料框(Talon)與分詞(Brot)等,與 Python 生態系方式一致。
  • 型別安全操作:利用 OCaml 的型別系統重建科學計算工具。
  • GPU 加速:透過 Tolk 提供 GPU 張量計算的編譯器。
  • 自動微分:透過 Rune 集成自動微分。
  • 整合性:支援 HuggingFace 相容分詞與強化學習環境。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案