SMILE:JVM 上的统计机器学习与 AI 引擎

数学 2026-10-30 5 阅读

SMILE 是一个面向 JVM 的机器学习与 AI 平台,用 Java 编写并提供 Kotlin、Scala 惯用 API,可在本地完成建模、推理与解释。

这个工具是什么

SMILE 全称 Statistical Machine Intelligence & Learning Engine,是运行在 JVM 上的机器学习与 AI 平台,基于 Java 25 构建(v4.x 支持 Java 21,更早版本支持 Java 8),并提供 Kotlin 与 Scala 的惯用 API。项目定位是让智能计算留在数据所在的机器上:JVM 微服务、边缘网关、支付终端或离线节点,而不必依赖云端往返或外部 Python 栈。核心引擎是自包含的 JVM 字节码,采用紧凑、缓存友好的数据结构,在硬件可用时可选用 OpenBLAS/LAPACK、ONNX Runtime、LibTorch/CUDA 等原生加速。项目以开源许可支持学术研究,同时提供商业许可选项。

核心能力

  • 覆盖分类、回归、聚类、流形学习、时间序列、异常检测、NLP、统计检验、线性代数、深度学习与计算机视觉等数百种算法。
  • 提供 TreeSHAP 与模型无关的 KernelSHAP,在进程内与预测一同计算局部特征归因,便于审计。
  • 支持在边缘或应用数据上直接训练与更新随机森林、梯度提升、K-Means、DBSCAN 等模型,而非仅做静态推理。
  • AutoML 工作流可生成可逐行检查的 Java、Scala、Kotlin 或 Python notebook,便于复核建模过程。

科研中的典型用法

  • 在 JVM 微服务中直接调用分类、回归、聚类与可视化接口,无需另起服务或桥接 Python 环境。
  • 对树集成模型用 TreeSHAP、对任意分类器或回归器用 KernelSHAP 计算局部特征归因,支撑高风险的决策解释。
  • 在边缘网关或离线节点上,用实时数据增量训练与更新异常检测器、聚类或树模型,保持本地自治。

快速上手

核心库通过 Maven Central 发布,坐标如 com.github.haifengl:smile-core,可在 Java、Scala、Kotlin 项目中作为依赖引入。入门时先按官方文档配置构建工具依赖,再从分类、回归或聚类等基础示例入手,在进程内调用 API 建模与预测;需要原生加速时再按需接入 OpenBLAS/LAPACK、ONNX Runtime 或 LibTorch/CUDA。

生态与相近工具

同领域可对比 scikit-learn、Weka、Spark MLlib 与 H2O:scikit-learn 生态在 Python 侧更广,Weka 偏教学与实验,Spark MLlib 面向集群规模数据处理,H2O 侧重分布式建模。若主要工作负载已在 JVM 上、希望模型与推理留在本机进程内,SMILE 的嵌入方式更直接;若团队以 Python 为主,则需权衡跨语言成本。

项目信息


本文属于《学科研究工具知识库 · 数学》第 8 篇(按 GitHub 星标排序)。收录标准:该学科公开可获取的开源研究工具,星标与活跃度为主要参考,不代表对其性能或适用性的背书;选型前请结合自身场景评估。

评论 共 0 条

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部