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 兼容分词和强化学习环境。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目