haifengl/smile

Statistical Machine Intelligence & Learning Engine

What it solves

SMILE is a high-performance machine learning framework designed for the JVM, providing a comprehensive suite of tools for data science, statistical analysis, and deep learning. It bridges the gap between the flexibility of data science tools and the the production-ready performance of Java, Scala, and Kotlin.

How it works

The framework is organized into several specialized modules:

  • Core ML: Implements a wide array of classification, regression, clustering, and manifold learning algorithms (e.g., Random Forest, SVM, t-SNE, UMAP).
  • Deep Learning & LLMs: Uses a LibTorch backend for GPU/CPU tensor operations and provides a full stack for LLaMA-3 inference, including BPE tokenizers and an OpenAI-compatible REST server.
  • NLP: Provides tools for text normalization, POS tagging, stemming, and relevance ranking.
  • Base Foundation: Handles the underlying math, linear algebra, and data structures like DataFrames.
  • SMILE Studio: An agentic IDE that allows users to interact with data using natural language via Python, Java, or Scala.

Who it’s for

It is primarily for developers and data scientists working within the JVM ecosystem (Java, Scala, Kotlin) who need a robust, integrated machine learning library that can be deployed in production environments or integrated with Apache Spark.

Highlights

  • JVM Native: Full support for Java, Scala, and Kotlin with idiomatic APIs.
  • LLM Capabilities: Built-in LLaMA-3 inference and an OpenAI-compatible inference server.
  • Comprehensive Algorithm Suite: Extensive coverage of traditional ML, deep learning, and NLP.
  • Agentic IDE: Includes SMILE Studio for natural language data interaction.
  • Visualization: Integrated Swing-based interactive plots and declarative Vega-Lite charts.

Related

  • Project
  • Project
  • Project
  • Project
  • Project