# 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 条回复还没有人回复,快来发表你的看法吧!