# DualFlow - 多模型协作平台 ## 项目简介 DualFlow 是一个专业的多模型协作平台,专注于工业场景下的智能模型集成与部署。平台集成了异常检测、因果推理、压力预测和超滤强化学习等多个核心机器学习模型,为工业生产过程提供智能化解决方案。 ## 核心特性 - 🤖 **多模型集成**: 支持异常检测、因果推理、压力预测、强化学习等多种模型类型 - 🏭 **工业场景优化**: 针对工业生产过程的实际需求进行深度优化 - 🔧 **模块化设计**: 各模型独立开发部署,便于维护和扩展 - 📊 **统一API接口**: 提供标准化的模型服务接口 - 🚀 **CI/CD支持**: 完整的模型构建、部署和监控流程 ## 项目结构 ``` DualFlow/ ├── models/ # 机器学习模型 │ ├── anomaly_detection/ # 异常检测模型 │ │ ├── detection.py # 检测算法实现 │ │ └── *.pkl # 预训练模型文件 │ ├── causal-inference/ # 因果推理模型 │ │ ├── gat.py # 图注意力网络 │ │ ├── rl_optimizer.py # 强化学习优化器 │ │ └── *.pth # 训练好的模型权重 │ ├── pressure-predictor/ # 压力预测模型 │ │ ├── gat-lstm_model/ # GAT-LSTM混合模型 │ │ ├── 20分钟TMP预测模型源码/ # 20分钟短期预测 │ │ ├── 90天TMP预测模型源码/ # 90天长期预测 │ │ └── 90天TMP预测模型源码修改/ # 改进版预测模型 │ └── uf-rl/ # 超滤强化学习模型 │ ├── Ultrafiltration_model/ # 超滤生产模型 │ ├── dqn_model/ # 深度Q网络模型 │ └── 超滤训练源码/ # 训练源码和文档 ├── common/ # 公共模块 │ ├── data/ # 数据处理模块 │ │ └── loader.py # 数据加载器 │ ├── preprocessing/ # 数据预处理 │ │ ├── image.py # 图像预处理 │ │ └── text.py # 文本预处理 │ ├── metrics/ # 评估指标 │ │ ├── classification.py # 分类指标 │ │ └── regression.py # 回归指标 │ └── utils/ # 工具函数 │ ├── config.py # 配置管理 │ └── logger.py # 日志工具 ├── api/ # API接口 │ └── routers/ # 路由模块 │ ├── health.py # 健康检查 │ ├── models.py # 模型管理 │ └── users.py # 用户管理 ├── ci/ # CI/CD配置 │ ├── model_build.yml # 模型构建流程 │ ├── model_deploy.yml # 模型部署流程 │ └── scripts/ # 部署脚本 │ └── deploy_model.sh # 模型部署脚本 ├── requirements.txt # 项目依赖 ├── requirements-dev.txt # 开发依赖 ├── env.example # 环境变量示例 └── README.md # 项目说明 ``` ## 模型说明 ### 1. 异常检测模型 (Anomaly Detection) - **功能**: 基于孤立森林和三西格玛方法的异常检测 - **算法**: Isolation Forest, Three Sigma - **应用场景**: 工业生产过程中的异常监控 ### 2. 因果推理模型 (Causal Inference) - **功能**: 基于图神经网络的因果推断和强化学习优化 - **算法**: Graph Attention Network (GAT), Reinforcement Learning - **应用场景**: 生产参数优化和决策支持 ### 3. 压力预测模型 (Pressure Predictor) - **功能**: 多时间尺度的跨膜压力(TMP)预测 - **算法**: GAT-LSTM混合神经网络 - **预测周期**: 20分钟短期预测、90天长期预测 - **应用场景**: 超滤系统的压力预测和维护预警 ### 4. 超滤强化学习模型 (UF-RL) - **功能**: 基于深度Q网络的超滤生产优化 - **算法**: Deep Q-Network (DQN) - **应用场景**: 超滤生产过程的智能化控制和优化 ## 快速开始 ### 环境要求 - Python 3.9+ - CUDA 11.0+ (GPU训练) - Git - Docker (可选,用于容器化部署) ### 安装和配置 1. **克隆项目** ```bash git clone cd DualFlow ``` 2. **创建虚拟环境** ```bash python -m venv venv source venv/bin/activate # Linux/Mac # 或 venv\Scripts\activate # Windows ``` 3. **安装依赖** ```bash pip install -r requirements.txt pip install -r requirements-dev.txt # 开发环境 ``` 4. **环境配置** ```bash cp env.example .env # 编辑 .env 文件,配置相关环境变量 ``` ### 运行模型 #### 异常检测模型 ```bash cd models/anomaly_detection python detection.py ``` #### 因果推理模型 ```bash cd models/causal-inference python main.py ``` #### 压力预测模型 ```bash # 20分钟预测 cd models/pressure-predictor/20分钟TMP预测模型源码 python main.py # 90天预测 cd models/pressure-predictor/90天TMP预测模型源码 python main.py # GAT-LSTM混合模型 cd models/pressure-predictor/gat-lstm_model python api_main.py ``` #### 超滤强化学习模型 ```bash # 训练 cd models/uf-rl/超滤训练源码 python DQN_train.py # 推理 cd models/uf-rl/Ultrafiltration_model python loop_main.py ``` ### API服务启动 ```bash # 启动FastAPI服务 uvicorn api.main:app --host 0.0.0.0 --port 8000 --reload ``` ## 开发指南 ### 代码结构规范 每个模型目录应包含以下标准结构: ``` model_name/ ├── README.md # 模型说明文档 ├── main.py # 主程序入口 ├── config.py # 配置文件 ├── requirements.txt # 模型特定依赖 ├── data/ # 数据目录 ├── models/ # 模型文件 └── tests/ # 测试文件 ``` ### 添加新模型 1. **创建模型目录** ```bash mkdir models/new_model cd models/new_model ``` 2. **创建标准文件** ```bash touch README.md main.py config.py requirements.txt mkdir -p data models tests ``` 3. **实现模型代码** - 在`main.py`中实现模型逻辑 - 在`config.py`中定义配置参数 - 在`README.md`中编写详细文档 4. **添加测试** ```bash # 在tests/目录下创建测试文件 pytest tests/ ``` ### 代码规范 - **代码格式化**: 使用 Black 进行代码格式化 ```bash black . ``` - **导入排序**: 使用 isort 进行导入排序 ```bash isort . ``` - **类型检查**: 使用 mypy 进行类型检查 ```bash mypy . ``` - **代码质量**: 使用 flake8 进行代码检查 ```bash flake8 . ``` - **提交前检查**: 使用 pre-commit hooks ```bash pre-commit install ``` ### 测试 ```bash # 运行所有测试 pytest # 运行特定模型测试 pytest models/anomaly_detection/tests/ # 生成测试覆盖率报告 pytest --cov=models --cov-report=html ``` ## 部署指南 ### Docker部署 1. **构建镜像** ```bash docker build -t dualflow:latest . ``` 2. **运行容器** ```bash docker run -d -p 8000:8000 --name dualflow-app dualflow:latest ``` ### 生产环境部署 1. **使用CI/CD流程** ```bash # 构建模型 ./ci/scripts/model_build.yml # 部署模型 ./ci/scripts/model_deploy.yml ``` 2. **监控和日志** - 使用 Prometheus 进行指标监控 - 使用结构化日志记录运行状态 ## API文档 启动服务后,访问以下地址查看API文档: - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc ### 主要API端点 - `GET /health` - 健康检查 - `GET /models` - 获取模型列表 - `POST /models/{model_name}/predict` - 模型预测 - `GET /models/{model_name}/status` - 模型状态 ## 性能优化 ### 模型优化 - 使用 TensorRT 进行GPU加速 - 实现模型量化和剪枝 - 批处理优化 ### 系统优化 - Redis缓存热点数据 - 异步处理提高并发 - 负载均衡和水平扩展 ## 贡献指南 我们欢迎所有形式的贡献!请遵循以下步骤: 1. **Fork 项目** 2. **创建功能分支** ```bash git checkout -b feature/your-feature-name ``` 3. **提交更改** ```bash git commit -m "Add your feature description" ``` 4. **推送分支** ```bash git push origin feature/your-feature-name ``` 5. **创建 Pull Request** - 提供清晰的PR描述 - 确保所有测试通过 - 更新相关文档 ## 问题反馈 如果您遇到任何问题或有改进建议,请: 1. 查看现有的 [Issues](../../issues) 2. 如果没有相关问题,请创建新的 Issue 3. 提供详细的问题描述和复现步骤 ## 更新日志 ### v1.0.0 (2025-01-10) - 初始版本发布 - 集成四个核心模型 - 完整的API接口 - CI/CD流程支持 ## 许可证 本项目采用 MIT 许可证。详情请查看 [LICENSE](LICENSE) 文件。 ## 联系方式 - 项目维护者: [您的姓名] - 邮箱: [您的邮箱] - 项目主页: [项目链接] --- **注意**: 本项目仍在持续开发中,部分功能可能存在不稳定情况。建议在生产环境使用前进行充分测试。