---
# System prepended metadata

title: AI攻防对抗子系统约定
tags: [Work]

---

---
title: AI攻防对抗子系统约定
tags: Work
description: View the slide with "Slide Mode".
---


# AI攻防对抗子系统约定

## 1. System Definition

### 1.1 系统页面说明

1. 训练数据导入、管理页面
2. 神经网络导入、管理页面
3. 第三方包导入、管理页面
4. AI任务增、删、改、查页面
5. AI进程管理、展示页面（展示会显示AI执行参数、状态、输入、输出等）
6. 攻防对抗展示页面

### 1.2 调度说明
> // ...还没想好


### 1.3 第三方包约定

*输出文件的地址，在配置文件中写出，一般为绝对目录*

需包含文件以及说明如下：
1. requirements.txt - python依赖包文件
2. conf.json - 包信息文件，包含接口等说明
```json=
{
    name: String,
    version: String,
    note: String,         // 包说明，可以省略
    interface: String,    // 调研接口，e.g.,  attack.Attack.run
    release: Datetime,    // 修改日期，e.g., 2021.03.01
    output: String,       // 输出文件的目录，绝对目录
    aicycle: String,      // 参考AI生命周期9步骤
    dtype: String,        // 支持的数据格式：graph, image, language.
    dataset: [String,..]  // 支持的数据集：CIFAR10, Imagenet, CelebA.
                          // some other configures...
}
```
3. params.json - 算法的参数，根据算法而制定的默认参数（格式不定）
```json=
{
    learning_rate: Float,
    optimizer: String,
                         // some other configures...   
}
```
4.建议目录格式：
```shell=
    |--/conf.json
    |--/torchattcks/
    |----/main.py
    |----/params.json
    |----/output/
    ...
```

---
## 2.DB(Redis) Definition

1. user - dict -- 系统用户，关闭注册
```json=
{
    uid: Int,
    uname: String,
    upass: String,
    login: Datetime,    // last login
    utype: Int,         // 1=admin, 2=user, 3=guest, other=not login
}
```


2. process - dict - 运行的AI进程
```json=
{
    id: Int,
    pid: Int,
    state: Int,       // from AI life cycle
    name: String,     // definition
    conf: String,     // json config file path
}
```

3. task - dict - 预设任务，只读
```json=
{
    id: Int,
    dataset: list,    // e.g., CIFAR10, Tinyimagenet, etc.
    network: list,    // e.g., VGG-face, Resnet, etc. (only id)
}
```

4. network - dict - 预设神经网络，只读
```json=
{
    id: Int, 
    name: String,
    hash: String,     // data hash id
    download: String, // download url
    path: String,     // saved path
    note: String,     // note of network
    dtype: String,    // e.g., graph, image, language, etc.
}
```

5. dataset - dict - 预设数据集，只读
```json=
{
    id: Int,
    name: Int,
    hash: String,
    download: String,
    path: String,
    note: String,
    classes_num: Int,     // num of class number
    feature_num: Int,     // num of feature
    data_shape: [],       // input shape
    dtype: String,        // e.g., graph, image, language, etc.
}
```

6. package - dict - 第三方数据包，可读写 (待进一步确定)
```json=
{
    id: Int,
    name: String,
    hash: String,
    mtime: Datetime,     // modify time
    atime: Datetime,     // add time
    priority: Int,       // 调用的优先顺序，越小越先调用，约定1最小
    ai_cycle: Int,       // AI cycle 时间段，对应AI生命周期
    ai_role: Int,        // AI 攻防对抗双方
    path: String,        // 存放的地址
    download: String,    // 是否可以下载，可以即为url，不可以即为空
}
```

7. output - dict - 输出数据定义，可读写
```json=
{
    id: Int, 
    pid: Int,             // process id, 对应进程id
    pack_id: Int,         // 来源的第三方工具包名称
    pack_name: String,    // 来源的第三方工具包名称
    atime: Datetime,      // add time
    ai_cycle: Int,        // AI cycle 时间段，对应AI生命周期
    path: String,         // 存放的地址
    dtype: String,              // 输出数据格式，e.g., table, image, etc.
}
```


8. message - list - 系统消息队列
```json=

```

9. running - list - 系统执行进程队列
```json=

```




<br>

---
## 3.Element Definition

训练数据类型：
- graph
- image
- language

<br>

业务场景分类：
- 人脸识别
- 图像识别
- 语言分析
- 自动驾驶
- 图网络分析

<br>

AI生命周期：
1. data_collecting 数据收集
2. data_cleaning 数据清洗
3. data_transformation 数据标准化
4. model_training 模型训练
5. model_pruning 模型精修
6. model_testing 模型测试
7. model_deployment 模型部署
8. platform_compatible 系统兼容
9. platform_testing 系统测试



<br>

数据库元素：
- process
- task (dataset/network/conf...)


---

## 4.Reference



<br><br><br><br><br><br><br><br><br><br><br><br>
-- 2021.03.03