프로젝트 소개

SMILE(Statistical Machine Intelligence & Learning Engine)은 JVM을 위한 머신러닝 프레임워크로, Java, Scala, Kotlin에 대한 관용적인 API를 제공합니다. 버전 5 이상은 Java 25가 필요하고, v4.x는 Java 21이 필요하며, 이전 버전은 Java 8이 필요합니다. 이는 base(데이터 구조, 수학, 선형 대수, 통계, I/O), core(ML 알고리즘), deep(딥러닝 및 LLM), nlp, plot, serve, studio, scala, kotlin, json, spark 모듈로 구성됩니다. 핵심 기능에는 분류(SVM, 의사결정 트리, 랜덤 포레스트, AdaBoost, 그래디언트 부스팅, 로지스틱 회귀, 신경망, RBF 네트워크, MaxEnt, KNN, 나이브 베이즈, LDA/QDA/RDA), 회귀(SVR, 가우시안 프로세스, 회귀 트리, GBDT, 랜덤 포레스트, RBF, OLS, LASSO, ElasticNet, Ridge), 클러스터링(BIRCH, CLARANS, DBSCAN, DENCLUE, 결정적 어닐링, K-Means, X-Means, G-Means, 뉴럴 가스, 계층적, SOM, 스펙트럴, 최소 엔트로피), 매니폴드 학습(IsoMap, LLE, 라플라시안 아이겐맵, t-SNE, UMAP, PCA, 커널 PCA, 랜덤 프로젝션, ICA), 피처 엔지니어링(유전 알고리즘 선택, 앙상블 선택, TreeSHAP, 변환, 수식 API), NLP(토큰화, 바이그램 테스트, 구문 및 키워드 추출, 스테밍, 품사 태깅, 관련성 순위), FP-growth를 통한 연관 규칙 마이닝, 시퀀스 학습(HMM, CRF), 최근접 이웃 구조(BK-tree, 커버 트리, KD-tree, SimHash, LSH), 수치적 방법(선형 대수, BFGS/L-BFGS 최적화, 보간, 웨이블릿, 분포, 가설 검정), Swing 플롯과 선언적 Vega-Lite 차트를 통한 시각화가 포함됩니다. deep 모듈은 LibTorch 기반 텐서 연산, 신경망 레이어, 손실 함수, 옵티마이저, EfficientNet-V2 이미지 분류, tiktoken BPE 토크나이저를 사용한 LLaMA-3 추론, GenAI 채팅 모델을 포함한 ONNX Runtime 추론을 추가합니다. SMILE Serve는 클래식 ML 모델, ONNX 모델, SSE 스트리밍을 지원하는 OpenAI 호환 채팅 완성을 노출하는 Quarkus 기반 추론 서버이며, 번들로 제공되는 React 웹 UI도 포함합니다. SMILE Studio는 smile, smile shell, smile scala, smile train, smile predict, smile serve와 같은 CLI 진입점을 갖춘 데이터 과학을 위한 에이전트 기반 IDE입니다. 모델은 일반적으로 직렬화 가능하며, Spark 통합을 통해 Spark ML 파이프라인 내에서 SMILE 모델을 사용할 수 있습니다. 설치는 Maven, SBT, Gradle을 통해 가능하며, 일부 알고리즘에는 네이티브 BLAS/LAPACK 라이브러리가 필요합니다.