Loading...
正在加载...
请稍候

SMILE (Statistical Machine Intelligence & Learning Engine)

✨步子哥 (steper) 2025年11月09日 00:13
# SMILE 项目启动指南 ## 项目概述 SMILE (Statistical Machine Intelligence & Learning Engine) 是一个用Java编写的全面机器学习框架,提供Scala、Kotlin和Clojure API。项目使用双构建系统:SBT(主要)和 Gradle(用于Kotlin模块)。 ## 系统要求 - **Java 25**(用于SMILE v5.x) - **系统依赖**:OpenBLAS和ARPACK用于优化的矩阵计算 - **SBT 1.11.7+** 用于基于Scala的构建 - **Node.js/npm** 用于Web界面 ### 系统依赖安装 **Linux (Ubuntu/Debian):** ```bash sudo apt update sudo apt install libopenblas-dev libarpack2 ``` **macOS:** ```bash brew install arpack ``` 注意:由于macOS SIP,请将 `/opt/homebrew/lib/libarpack.dylib` 复制到工作目录。 **Windows:** 发布包的 `bin` 目录中提供预构建的DLL文件。请将此目录添加到PATH环境变量。 ## 主要启动方法 ### 方法1:快速启动 - Scala Shell(推荐) ```bash # 1. 克隆仓库 git clone https://github.com/haifengl/smile.git cd smile # 2. 运行Scala shell(自动构建) bin/smile.sh ``` ### 方法2:Java Shell替代方案 ```bash # 1. 构建shell sbt shell/stage # 2. 运行Java shell cd shell/target/universal/stage bin/jshell.sh ``` ### 方法3:LLM推理服务器 ```bash # 启动LLM推理服务器(支持OpenAI兼容API) bin/serve.sh ``` ### 方法4:文档网站 ```bash # 1. 进入web目录 cd web # 2. 安装依赖并启动开发服务器 npm install npm run serve # 3. 构建生产版本 npm run deploy ``` ## 构建命令 ### SBT构建(主要) ```bash # 完整构建 sbt package # 运行测试 sbt test # Scala 3构建 sbt ++3.3.3 scala/package # 发布到本地Maven仓库 sbt publishM2 ``` ### Gradle构建(Kotlin模块) ```bash cd kotlin ./gradlew build ``` ## 内存配置 默认情况下,shell使用最多75%的内存。对于大型数据集: ```bash ./bin/smile -J-Xmx30G ``` ## 项目结构 项目包含以下主要模块: - **base**: 核心Java工具 - **core**: 主要机器学习算法 - **deep**: 深度学习功能 - **nlp**: 自然语言处理 - **plot**: 数据可视化 - **json**: JSON处理 - **scala**: Scala API包装器 - **kotlin**: Kotlin API(基于Gradle) - **shell**: 交互式shell - **serve**: LLM推理服务器 ## 核心功能 - Java、Scala和Kotlin的交互式shell - 全面的ML算法(分类、回归、聚类等) - 支持CPU/GPU的深度学习 - 具有OpenAI兼容API的LLM实现 - 数据可视化工具 - 基于Web的文档和聊天界面 ## 使用场景建议 - **数据科学工作**:使用Scala shell - **Java开发**:使用Java shell - **AI应用**:使用LLM服务器 - **文档查看**:使用Web界面 ## 故障排除 1. 确保Java版本正确(Java 25 for v5.x) 2. 检查系统依赖是否安装(OpenBLAS, ARPACK) 3. 验证SBT和Node.js版本要求 4. 对于macOS用户,注意SIP相关的库文件处理 选择适合您用例的入口点,项目提供了多种灵活的运行方式。

讨论回复

0 条回复

还没有人回复,快来发表你的看法吧!