武大双模研发

wmy a45e70e24a 1:修正文件 10 mesiacov pred
.idea 2ededf55d4 Initial commit 11 mesiacov pred
api 2ededf55d4 Initial commit 11 mesiacov pred
ci 2ededf55d4 Initial commit 11 mesiacov pred
common 2ededf55d4 Initial commit 11 mesiacov pred
models a45e70e24a 1:修正文件 10 mesiacov pred
README.md 23ebb466f7 1:修正文件 10 mesiacov pred
env.example 05d5ef48e5 1:项目结构修正 10 mesiacov pred
requirements-dev.txt 2ededf55d4 Initial commit 11 mesiacov pred
requirements.txt 2ededf55d4 Initial commit 11 mesiacov pred

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 文件。

联系方式

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

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