Download Latest Version 7.1.0 source code.zip (87.0 MB) Google Add to Preferred Sources
Home / v7.1.0
Name Modified Size InfoDownloads / Week
Parent folder
smile-7.1.0.zip 2026-10-20 1.1 GB
7.1.0 source code.tar.gz 2026-10-20 84.6 MB
7.1.0 source code.zip 2026-10-20 87.0 MB
README.md 2026-10-20 6.4 kB
Totals: 4 Items   1.3 GB 4

SMILE 7.1.0 Release Notes

New Features

Explainable AI & Core ML (smile-core, smile-scala, smile-kotlin)

  • Model-Agnostic KernelSHAP: Added KernelSHAP (smile.feature.importance.KernelSHAP) to bring SHAP feature attributions to all DataFrame and linear models—including Logistic Regression, LDA, QDA, RDA, Fisher, MLP, SVM, RBF networks, OLS, Lasso, ElasticNet, Ridge, and Gaussian Process models—alongside existing TreeSHAP support.
  • Uses exact coalition enumeration for small feature sets and priority symmetric shell enumeration with antithetic paired sampling for larger feature sets.
  • Exposes Scala and Kotlin API wrappers in smile.feature.importance.
  • Per-Request KernelSHAP Tuning: Added KernelSHAP.Options overloads to shap(...) and infer(...) on SHAP, DataFrameClassifier, DataFrameRegression, ClassificationModel, and RegressionModel so callers can customize coalition sample budgets and L2 ridge regularization at inference time without rebuilding background state.

Linear Algebra (smile-base)

  • Pure-Java BLAS & LAPACK Fallback: smile.tensor now works out of the box on machines without native OpenBLAS or system BLAS/LAPACK installed, instead of failing with UnsatisfiedLinkError.
  • Added pure-Java Level-1/2/3 BLAS (JBlas) and LAPACK decompositions and solvers (JLapack: LU, Cholesky, QR, SVD, symmetric/general EVD, packed symmetric, and banded solvers) for both Float64 and Float32.
  • Added NativeLibrary.isBlasAvailable() and NativeLibrary.isLapackAvailable() runtime probes, plus backend selection via the smile.linalg.backend system property or SMILE_LINALG_BACKEND environment variable (auto, native, or java).

SMILE Serve (smile-serve)

  • Interactive SHAP Visualizations in the Web UI: Added an inline SHAP explanation pane to the Predictions panel supporting Waterfall, Force, and Decision plots for both 1D regression and 2D multi-class classification outputs. Clicking any prediction row updates the explanation plot dynamically.
  • Per-Request SHAP Controls in API & Web UI:
  • POST /api/v1/smile/{id} and POST /api/v1/smile/{id}/stream now accept ?samples and ?ridge query parameters as well as shapSamples, shapRidge, and nested shap request payload fields.
  • The Web UI displays the active explanation method (TreeSHAP, LinearSHAP, or KernelSHAP) and provides inline Samples and Ridge controls when running KernelSHAP.
  • Four Container Image Flavors (latest, -gpu, -native, -micro):
  • Dockerfile.micro (-micro, ~205 MB): New single-stage UBI 10 micro GraalVM native image built with the micro profile for lightweight, inference-only deployments (SMILE .sml and ONNX models + Web UI, excluding chat, auth, and JDBC/database overhead).
  • Dockerfile.native (-native, ~375 MB): GraalVM native image with CPU chat powered by ONNX Runtime GenAI, trimming image size from 891 MB to 375 MB.
  • Dockerfile (latest, ~575 MB): Leaner CPU JVM image with ONNX Runtime GenAI support for CPU chat (down from 1.25 GB).
  • Dockerfile.gpu (-gpu): Self-contained multi-stage build with full GPU/CUDA and S3 blob storage support.
  • Pluggable Blob Storage SPI: Extracted S3 blob storage into an optional plugin (serve-plugins/blob-s3 and serve-plugins/blob-spi) selectable at build time via -Pserve.plugins=..., keeping the AWS SDK out of CPU JVM and native images.
  • New local Quarkus Profile: Added a dedicated local profile (embedded H2 in the model directory without PostgreSQL) and restricted quarkus-jdbc-postgresql to the prod profile.

Security

  • OS Credential Store for Studio API Keys (smile-studio): Replaced plain-text Java Preferences storage and plain text fields with SecretStore integration (photos.sluice:secret-store).
  • Stores AI provider API keys in the native OS credential manager (macOS Keychain, Windows Credential Manager, Linux Secret Service), with environment variable overrides and owner-restricted file fallback (~/.smile/credentials).
  • Automatically migrates and scrubs legacy keys from Java Preferences.
  • Masked API key inputs in SettingsDialog using JPasswordField with a reveal toggle and storage-tier status indicator across all 5 supported locales.

Improvements

  • Lighter smile-base Runtime Footprint: Scoped optional I/O and SQL dependencies (duckdb_jdbc, Apache Arrow, Avro, Snappy, Parso, and lsp4j) as compileOnly / Provided in smile-base so downstream consumers no longer inherit ~170 MB of optional libraries unless explicitly needed.
  • SMILE Studio Agent Workspace (smile-studio): Added localized welcome and capability banners for the Evangelist (@julien) and Sales (@mike) agents, expanded the Java and Python Coder capability banners across all locale bundles, and reordered agent tabs.
  • Developer Experience (smile-serve): Configured ./gradlew :serve:quarkusDev to run from the root repository directory with pre-configured test models out of the box.
  • Dependency Updates: Upgraded FasterXML / Jackson dependencies (2.22.3 / Jackson v3 migration in smile.io.JSON).

Bug Fixes

  • JSON I/O (smile-base): Migrated smile.io.JSON from residual Jackson v2 imports (com.fasterxml.jackson.*) to Jackson v3 (tools.jackson.*), fixing a NoClassDefFoundError at runtime in downstream modules that only inherit smile-base's api dependency.
  • Banded Matrix Multiplication (smile-base): Fixed BandMatrix.mv with UPLO.LOWER in the native CBLAS path to slice band storage at offset ku.
  • Native Image Reflection & FFM Registration (smile-serve):
  • Registered OnnxModelInfo.NodeDescriptor[] for GraalVM native reflection, resolving a MissingReflectionRegistrationError on GET /api/v1/onnx/{id}.
  • Registered ChatCompletionChunk and ChatMessageObject for reflection so streaming SSE chat chunks serialize properly in native images instead of emitting empty data:{} frames.
  • Updated FFM reachability metadata generation to emit critical(allowHeapAccess) for BLAS/LAPACK downcalls and added the missing libopenblas.so symlink in container images so BLAS-backed models (such as LDA) run in native and GPU containers without link errors.
Source: README.md, updated 2026-10-20