AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing haifengl/smile in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewStatistical Machine Intelligence & Learning Engine Goal ## SMILE (Statistical Machine Intelligence & Learning Engine) is a fast and comprehensive machine learning framework in Java. SMILE v5.x requires Java 25, v4.x requires Java 21, and all previous versions require Java 8. SMILE also provides APIs in Scala and Kotlin with corresponding language paradigms. With advanced data structures and algorithms, SMILE delivers state-of-art performance. SMILE covers every aspect of machine learning, including deep learning, large language models, classification, regression, clustering, association rule mining, feature selection and extraction, manifold learning, multidimensional scaling, genetic algorithms, missing value imputation, efficient nearest neighbor search, etc. Furthermore, SMILE also provides advanced algorithms for graph, linear algebra, numerical analysis, interpolation, computer algebra system for symbolic manipulations, and data visualization. Features ## SMILE implements the following major machine learning algorithms: • **LLM:** Native Java implementation of Llama 3.1, tiktoken tokenizer, high performance LLM inference server with OpenAI-compatible APIs and SSE-based chat streaming, fully functional frontend. • **Deep Learning:** Deep learning with CPU and GPU. EfficientNet model for image classification. • **Classification:** Support Vector Machines, Decision Trees, AdaBoost, Gradient Boosting, Random Forest, Logistic Regression, Neural Networks, RBF Networks, Maximum Entropy Classifier, KNN, Naïve Bayesian, Fisher/Linear/Quadratic/Regularized Discriminant Analysis. • **Regression:** Support Vector Regression, Gaussian Process, Regression Trees, Gradient Boosting, Random Forest, RBF Networks, OLS, LASSO, ElasticNet, Ridge Regression. • **Feature Selection:** Genetic Algorithm based Feature Selection, Ensemble Learning based Feature Selection, TreeSHAP, Signal Noise ratio, Sum Squares ratio. • **Clustering:** BIRCH, CLARANS, DBSCAN, DENCLUE, Deterministic Annealing, K-Means, X-Means, G-Means, Neural Gas, Growing Neural Gas, Hierarchical Clustering, Sequential Information Bottleneck, Self-Organizing Maps, Spectral Clustering, Minimum Entropy Clustering. • **Association Rule & Frequent Itemset Mining:** FP-growth mining algorithm. • **Manifold Learning:** IsoMap, LLE, Laplacian Eigenmap, t-SNE, UMAP, PCA, Kernel PCA, Probabilistic PCA, GHA, Random Projection, ICA. • **Multi-Dimensional Scaling:** Classical MDS, Isotonic MDS, Sammon Mapping. • **Nearest Neighbor Search:** BK-Tree, Cover Tree, KD-Tree, SimHash, LSH. • **Sequence Learning:** Hidden Markov Model, Conditional Random Field. • **Natural Language Processing:** Sentence Splitter and Tokenizer, Bigram Statistical Test, Phrase Extractor, Keyword Extractor, Stemmer, POS Tagging, Relevance Ranking License ## SMILE employs a dual license model designed to meet the development and distribution needs of both commercial distributors (such as OEMs, ISVs and VARs) and open source projects. For details, please see LICENSE. To acquire a commercial license, please contact smile.sales@outlook.com. Issues/Discussions ## • **Discussion/Questions**: If you wish to ask questions about SMILE, we're active on GitHub Discussions and Stack Overflow. • **Docs**: SMILE is well documented and our docs are available online, where you can find tutorial, programming guides, and more information. If you'd like to help improve the docs, they're part of this repository in the directory. Java Docs, Scala Docs, Kotlin Docs, and Clojure Docs are also available. • **Issues/Feature Requests**: Finally, any bugs or features, please report to our issue tracker. Installation ## You can use the libraries through Maven central repository by adding the following to your project pom.xml file. For deep learning and NLP, use the artifactId and , respectively. For Scala API, please add the below into your sbt script. For Kotlin API, add the below into the section of Gradle build script. Some algorithms rely on BLAS and LAPACK (e.g. manifold learning, some clustering algorithms, Gaussian Process regression, MLP, etc.). To use these algorithms in SMILE v5.x, you should install OpenBLAS and ARPACK for optimized matrix computation. For Windows, you can find the pre-built DLL files from the directory of release packages. Make sure to add this directory to PATH environment variable. To install on Linux (e.g., Ubuntu), run On Mac, we use the BLAS library from the Accelerate framework provided by macOS. But you should install ARPACK by running However, macOS System Integrity Protection (SIP) significantly impacts how JVM handles dynamic library loading by purging dynamic linker (DYLD) environment variables like DYLD_LIBRARY_PATH when launching protected processes. A simple workaround is to copy /opt/homebrew/lib/libarpack.dylib to your working directory so that JVM can successfully load it. For SMILE v4.x, OpenBLAS and ARPACK libraries can be added to your project with the following dependencies. In this example, we include all supported 64-bit platforms and filter out 32-bit platforms. The user should include only the needed platforms to save spaces. Studio ## SMILE Studio is an interactive desktop application to help you be more productive in building and serving models with SMILE. Similar to Jupyter Notebooks, SMILE Studio is a REPL (Read-Evaluate-Print-Loop) containing an ordered list of input/output cells. Download pre-packaged SMILE from the releases page. After unziping the package and cd into the directory of SMILE in a terminal, type to enter SMILE Studio. If you work in a headless environment without graphical interface, you may run to enter SMILE Shell for Java, which pre-imports all major SMILE packages. If you prefer Scala, type to enter SMILE Shell for Scala. By default, the Studio/Shell uses up to 4GB memory. If you need more memory to handle large data, use the option or . For example, You can also modify the configuration file for the memory…