À propos du projet

SMILE (Statistical Machine Intelligence & Learning Engine) est un framework d'apprentissage automatique pour la JVM, avec des API idiomatiques pour Java, Scala et Kotlin. La version 5+ nécessite Java 25, la v4.x nécessite Java 21, et les versions antérieures nécessitent Java 8. Il est organisé en modules : base (structures de données, mathématiques, algèbre linéaire, statistiques, I/O), core (algorithmes de ML), deep (deep learning et LLM), nlp, plot, serve, studio, scala, kotlin, json et spark. Les capacités principales incluent la classification (SVM, arbres de décision, forêt aléatoire, AdaBoost, gradient boosting, régression logistique, réseaux de neurones, réseaux RBF, MaxEnt, KNN, Naive Bayes, LDA/QDA/RDA), la régression (SVR, processus gaussien, arbres de régression, GBDT, forêt aléatoire, RBF, OLS, LASSO, ElasticNet, Ridge), le clustering (BIRCH, CLARANS, DBSCAN, DENCLUE, recuit déterministe, K-Means, X-Means, G-Means, gaz neuronal, hiérarchique, SOM, spectral, entropie minimale), l'apprentissage de variétés (IsoMap, LLE, eigenmap laplacien, t-SNE, UMAP, PCA, kernel PCA, projection aléatoire, ICA), l'ingénierie des caractéristiques (sélection par algorithme génétique, sélection d'ensemble, TreeSHAP, transformations, API de formule), NLP (tokenisation, tests de bigrammes, extraction de phrases et mots-clés, racinisation, étiquetage POS, classement de pertinence), l'extraction de règles d'association via FP-growth, l'apprentissage de séquences (HMM, CRF), les structures de plus proches voisins (BK-tree, cover tree, KD-tree, SimHash, LSH), les méthodes numériques (algèbre linéaire, optimisation BFGS/L-BFGS, interpolation, ondelettes, distributions, tests d'hypothèses), et la visualisation via des graphiques Swing et des graphiques déclaratifs Vega-Lite. Le module deep ajoute des opérations tensorielles basées sur LibTorch, des couches de réseaux de neurones, des pertes, des optimiseurs, la classification d'images EfficientNet-V2, l'inférence LLaMA-3 avec un tokenizer BPE tiktoken, et l'inférence ONNX Runtime incluant des modèles de chat GenAI. SMILE Serve est un serveur d'inférence basé sur Quarkus exposant des modèles de ML classiques, des modèles ONNX et des complétions de chat compatibles OpenAI avec streaming SSE, plus une interface web React intégrée. SMILE Studio est un IDE agentique pour la science des données avec des points d'entrée CLI tels que smile, smile shell, smile scala, smile train, smile predict et smile serve. Les modèles sont généralement sérialisables, et une intégration Spark permet d'utiliser les modèles SMILE dans les pipelines ML Spark. L'installation est disponible via Maven, SBT et Gradle, avec des bibliothèques natives BLAS/LAPACK nécessaires pour certains algorithmes.