武大双模研发

wmy a45e70e24a 1:修正文件 4 ヶ月 前
.idea 2ededf55d4 Initial commit 5 ヶ月 前
api 2ededf55d4 Initial commit 5 ヶ月 前
ci 2ededf55d4 Initial commit 5 ヶ月 前
common 2ededf55d4 Initial commit 5 ヶ月 前
models a45e70e24a 1:修正文件 4 ヶ月 前
README.md 23ebb466f7 1:修正文件 4 ヶ月 前
env.example 05d5ef48e5 1:项目结构修正 5 ヶ月 前
requirements-dev.txt 2ededf55d4 Initial commit 5 ヶ月 前
requirements.txt 2ededf55d4 Initial commit 5 ヶ月 前

README.md

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. 克隆项目

    git clone <repository-url>
    cd DualFlow
    
  2. 创建虚拟环境

    python -m venv venv
    source venv/bin/activate  # Linux/Mac
    # 或
    venv\Scripts\activate     # Windows
    
  3. 安装依赖

    pip install -r requirements.txt
    pip install -r requirements-dev.txt  # 开发环境
    
  4. 环境配置

    cp env.example .env
    # 编辑 .env 文件,配置相关环境变量
    

运行模型

异常检测模型

cd models/anomaly_detection
python detection.py

因果推理模型

cd models/causal-inference
python main.py

压力预测模型

# 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

超滤强化学习模型

# 训练
cd models/uf-rl/超滤训练源码
python DQN_train.py

# 推理
cd models/uf-rl/Ultrafiltration_model
python loop_main.py

API服务启动

# 启动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. 创建模型目录

    mkdir models/new_model
    cd models/new_model
    
  2. 创建标准文件

    touch README.md main.py config.py requirements.txt
    mkdir -p data models tests
    
  3. 实现模型代码

    • main.py中实现模型逻辑
    • config.py中定义配置参数
    • README.md中编写详细文档
  4. 添加测试

    # 在tests/目录下创建测试文件
    pytest tests/
    

代码规范

  • 代码格式化: 使用 Black 进行代码格式化

    black .
    
  • 导入排序: 使用 isort 进行导入排序

    isort .
    
  • 类型检查: 使用 mypy 进行类型检查

    mypy .
    
  • 代码质量: 使用 flake8 进行代码检查

    flake8 .
    
  • 提交前检查: 使用 pre-commit hooks

    pre-commit install
    

测试

# 运行所有测试
pytest

# 运行特定模型测试
pytest models/anomaly_detection/tests/

# 生成测试覆盖率报告
pytest --cov=models --cov-report=html

部署指南

Docker部署

  1. 构建镜像

    docker build -t dualflow:latest .
    
  2. 运行容器

    docker run -d -p 8000:8000 --name dualflow-app dualflow:latest
    

生产环境部署

  1. 使用CI/CD流程

    # 构建模型
    ./ci/scripts/model_build.yml
    
    # 部署模型
    ./ci/scripts/model_deploy.yml
    
  2. 监控和日志

  3. 使用 Prometheus 进行指标监控

  4. 使用结构化日志记录运行状态

API文档

启动服务后,访问以下地址查看API文档:

主要API端点

  • GET /health - 健康检查
  • GET /models - 获取模型列表
  • POST /models/{model_name}/predict - 模型预测
  • GET /models/{model_name}/status - 模型状态

性能优化

模型优化

  • 使用 TensorRT 进行GPU加速
  • 实现模型量化和剪枝
  • 批处理优化

系统优化

  • Redis缓存热点数据
  • 异步处理提高并发
  • 负载均衡和水平扩展

贡献指南

我们欢迎所有形式的贡献!请遵循以下步骤:

  1. Fork 项目
  2. 创建功能分支

    git checkout -b feature/your-feature-name
    
  3. 提交更改

    git commit -m "Add your feature description"
    
  4. 推送分支

    git push origin feature/your-feature-name
    
  5. 创建 Pull Request

  6. 提供清晰的PR描述

  7. 确保所有测试通过

  8. 更新相关文档

问题反馈

如果您遇到任何问题或有改进建议,请:

  1. 查看现有的 Issues
  2. 如果没有相关问题,请创建新的 Issue
  3. 提供详细的问题描述和复现步骤

更新日志

v1.0.0 (2025-01-10)

  • 初始版本发布
  • 集成四个核心模型
  • 完整的API接口
  • CI/CD流程支持

许可证

本项目采用 MIT 许可证。详情请查看 LICENSE 文件。

联系方式

  • 项目维护者: [您的姓名]
  • 邮箱: [您的邮箱]
  • 项目主页: [项目链接]

注意: 本项目仍在持续开发中,部分功能可能存在不稳定情况。建议在生产环境使用前进行充分测试。