# Android-Ai **Repository Path**: qianjianfeng/android-ai ## Basic Information - **Project Name**: Android-Ai - **Description**: 一个在Android设备上运行的小型AI语言模型训练和推理应用。该项目实现了完整的神经网络架构,支持在移动设备上进行模型训练和文本生成。 - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-19 - **Last Updated**: 2025-08-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AndroidAI - 移动端AI语言模型 一个在Android设备上运行的小型AI语言模型训练和推理应用。该项目实现了完整的神经网络架构,支持在移动设备上进行模型训练和文本生成。 ## 🚀 主要特性 ### 核心功能 - **📱 移动端优化**: 专为Android设备设计,支持低内存和有限计算资源环境 - **🧠 完整神经网络**: 实现了嵌入层、LSTM层和全连接层的完整架构 - **🎯 实时训练**: 支持在设备上进行模型训练,无需云端服务 - **💬 文本生成**: 基于训练的模型生成连贯的文本内容 - **💾 模型管理**: 支持模型的保存、加载和版本管理 ### 技术特性 - **🔧 自适应配置**: 根据设备性能自动调整模型参数 - **📊 性能监控**: 实时监控内存使用和训练进度 - **🗜️ 数据压缩**: 支持模型文件压缩存储 - **🔄 备份恢复**: 自动创建模型备份,防止数据丢失 - **📱 现代UI**: 使用Jetpack Compose构建的现代化用户界面 ## 🏗️ 项目架构 ### 模型架构 ``` 输入文本 → 分词处理 → 嵌入层 → LSTM层(多层) → 全连接层 → 输出概率 ``` ### 主要组件 - **TextProcessor**: 文本预处理和词汇表管理 - **LanguageModel**: 核心神经网络模型 - **NeuralLayers**: 神经网络层实现(嵌入层、LSTM层、全连接层) - **PerformanceOptimizer**: 性能优化和内存管理 - **FileManager**: 文件管理和模型持久化 ## 📱 界面功能 ### 1. 模型训练页面 - 训练数据输入 - 示例数据加载 - 训练进度监控 - 实时日志显示 - 训练控制(开始/停止) ### 2. 文本生成页面 - 提示文本输入 - 生成参数调节 - 实时文本生成 - 结果展示 ### 3. 模型状态页面 - 模型状态监控 - 性能指标显示 - 模型保存/加载 - 系统信息查看 ## 🛠️ 技术栈 - **开发语言**: Kotlin - **UI框架**: Jetpack Compose - **架构模式**: MVVM - **异步处理**: Kotlin Coroutines - **数据序列化**: Gson - **机器学习**: 自实现神经网络 ## 📋 系统要求 - **最低Android版本**: Android 7.0 (API 24) - **推荐内存**: 3GB RAM或以上 - **存储空间**: 至少100MB可用空间 - **处理器**: 4核心或以上推荐 ## 🚀 快速开始 ### 1. 克隆项目 ```bash git clone https://github.com/your-username/AndroidAI.git cd AndroidAI ``` ### 2. 在Android Studio中打开项目 - 打开Android Studio - 选择 "Open an existing project" - 选择项目目录 ### 3. 构建和运行 - 等待Gradle同步完成 - 连接Android设备或启动模拟器 - 点击运行按钮 ### 4. 开始使用 1. **加载示例数据**: 在训练页面点击"示例数据"按钮 2. **开始训练**: 点击"开始训练"按钮,等待训练完成 3. **生成文本**: 切换到文本生成页面,输入提示文本并生成 ## 📖 使用指南 ### 训练自定义模型 1. **准备训练数据** - 准备中文或英文文本数据 - 每行一个句子,用标点符号分隔 - 建议至少100个句子以获得较好效果 2. **配置训练参数** - 应用会根据设备性能自动调整参数 - 低端设备会使用较小的模型配置 - 高端设备可以使用更复杂的模型 3. **监控训练过程** - 观察训练进度和损失值 - 训练完成后模型会自动保存 ### 生成文本 1. **输入提示文本** - 输入几个词作为生成的起始 - 模型会基于训练数据生成后续内容 2. **调整生成参数** - 温度参数控制生成的随机性 - 较低温度生成更保守的文本 - 较高温度生成更有创意的文本 ## ⚡ 性能优化 ### 自动优化特性 - **内存管理**: 自动监控内存使用,防止OOM - **设备适配**: 根据设备性能调整模型大小 - **批次优化**: 动态调整训练批次大小 - **垃圾回收**: 智能内存清理 ### 手动优化建议 - 关闭其他应用释放内存 - 使用较小的词汇表大小 - 减少LSTM层数 - 降低嵌入维度 ## 🔧 配置选项 ### 模型配置 ```kotlin ModelConfig( vocabSize = 1000, // 词汇表大小 embeddingDim = 128, // 嵌入维度 hiddenDim = 256, // 隐藏层维度 numLayers = 2, // LSTM层数 maxSequenceLength = 100, // 最大序列长度 dropoutRate = 0.1f, // Dropout率 learningRate = 0.001f, // 学习率 batchSize = 16, // 批次大小 epochs = 5 // 训练轮数 ) ``` ## 📊 性能指标 ### 典型性能表现 - **训练时间**: 100句子约需2-5分钟(取决于设备) - **内存使用**: 通常在200-500MB之间 - **模型大小**: 压缩后约1-10MB - **生成速度**: 每秒约5-20个词 ## 🐛 故障排除 ### 常见问题 **Q: 训练过程中应用崩溃** A: 可能是内存不足,尝试: - 减少批次大小 - 使用更小的模型配置 - 关闭其他应用 **Q: 生成的文本质量不好** A: 可能需要: - 增加训练数据量 - 延长训练时间 - 检查训练数据质量 **Q: 训练速度很慢** A: 可以尝试: - 减少模型复杂度 - 使用更小的词汇表 - 在高性能设备上训练 ## 🤝 贡献指南 欢迎提交Issue和Pull Request! 1. Fork项目 2. 创建特性分支 3. 提交更改 4. 推送到分支 5. 创建Pull Request ## 📄 许可证 本项目采用MIT许可证 - 查看[LICENSE](LICENSE)文件了解详情。 ## 🙏 致谢 - 感谢Android开发社区的支持 - 感谢Jetpack Compose团队提供的优秀UI框架 - 感谢所有贡献者和测试用户 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 提交GitHub Issue - 发送邮件至:[your-email@example.com] --- **注意**: 这是一个教育和研究项目,生成的模型可能不如商业级AI模型效果好。建议用于学习和实验目的。