Repolode
haifengl

haifengl/smile

A JVM machine learning and AI platform covering classical ML, deep learning, NLP, visualization, and LLM/ONNX inference for Java, Kotlin and Scala.

Stars
6,430
Forks
1,149
Open issues
3
Last commit
yesterday

What is it?

SMILE is a machine learning library and AI platform for the JVM, with APIs usable from Java, Kotlin and Scala. It provides a broad set of classification, regression, clustering, manifold learning, anomaly detection, time series, NLP and statistical algorithms that can be called in-process inside an application without running a separate Python service.

Beyond the core library, the project includes SMILE Serve, a Quarkus-based inference server that hosts serialized SMILE models, ONNX models and LLMs behind OpenAI-compatible endpoints with SSE streaming, Prometheus metrics and a bundled web UI. SMILE Studio is a desktop workspace with notebooks and AI agents for exploring data, training models and exporting artifacts. Explanation support includes TreeSHAP and KernelSHAP for local feature attributions.

The project is dual-licensed: open-source licenses (GPLv3, AGPLv3, and BSL for Studio) apply by default, with commercial licenses offered by HALO.AI for proprietary distribution.

Key features

  • 01Classification, regression, clustering and manifold learning algorithms callable from Java, Kotlin and Scala
  • 02Deep learning with a LibTorch/GPU backend and ONNX Runtime inference
  • 03LLM serving with OpenAI-compatible chat completions, tool calling and streaming
  • 04TreeSHAP and KernelSHAP for explaining model predictions
  • 05DataFrame, CSV/Parquet/Arrow/JDBC I/O and data transformation utilities
  • 06Swing and Vega-Lite plotting for visualization

Use cases

  • Embedding predictive models inside an existing JVM microservice without a Python sidecar
  • Serving classical ML, ONNX and LLM models from a self-hosted inference server
  • Running scoring and model updates on edge or air-gapped machines
  • Exploring data and training models in an interactive notebook environment

Quick start

  1. 1

    Add the smile-core library from Maven Central to your build (see the Installation section of the README)

  2. 2

    Follow the Quick Start section of the README to run your first example

Things to know

  • The latest versions require Java 25, while v4.x supports Java 21 and earlier versions support Java 8.
  • The metadata does not clearly identify the license, so check the license terms before use.
  • The README says open-source licensing carries copyleft and source-disclosure obligations, and commercial licensing from HALO.AI is offered to avoid them.

In collections

Topics

FAQ

What is smile?
A JVM machine learning and AI platform covering classical ML, deep learning, NLP, visualization, and LLM/ONNX inference for Java, Kotlin and Scala. SMILE is a machine learning library and AI platform for the JVM, with APIs usable from Java, Kotlin and Scala. It provides a broad set of classification, regression, clustering, manifold learning, anomaly detection, time series, NLP and statistical algorithms that can be called in-process inside an application without running a separate Python service.
Is smile free to use? What license does it have?
smile is open source under the Other license. Check the license terms before using it in commercial products.
Is smile still maintained?
Actively maintained. The last commit to smile was on Nov 6, 2026.
What can I use smile for?
Embedding predictive models inside an existing JVM microservice without a Python sidecar Serving classical ML, ONNX and LLM models from a self-hosted inference server Running scoring and model updates on edge or air-gapped machines Exploring data and training models in an interactive notebook environment
How do I install smile?
Add the smile-core library from Maven Central to your build (see the Installation section of the README) Follow the Quick Start section of the README to run your first example
Where can I get smile?
The source code and installation instructions are on GitHub: https://github.com/haifengl/smile

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects