Python machine learning library built on SciPy and NumPy, offering classification, regression, clustering, and model selection tools under a BSD license.
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
Add the smile-core library from Maven Central to your build (see the Installation section of the README)
- 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
Orange is an open-source visual programming tool for data mining, analysis and visualization, built around drag-and-drop workflows.
A suite of Python and web UI tools for assessing and debugging ML models for error patterns, fairness, interpretability and causal effects.
Python machine learning framework built on scikit-learn and pandas, with modules for market trading systems and sports prediction.
An open-source Python toolkit for quantitatively evaluating neural network explanations with 30+ XAI metrics across PyTorch and TensorFlow.
A deep learning server, Python wheel and CLI for training and running models on images, text, tabular and time-series data via a REST API.