Files
iAOP/core/model-framework/README.md
T

72 lines
3.0 KiB
Markdown
Raw Normal View History

# iAOP-Core · 模型框架层(AI Model Framework)
对应 PRD 5.3「③ AI 模型框架」与 EPIC #5「内核平台化改造」。
本层把化工 AI 的「模型资产」统一注册、版本化、阶段化管理:模型 / 配方 /
估计器是资产,需要注册表统一管理——注册、加载、版本、阶段(灰度)、回滚、审计。
## 当前已交付
| 模块 | 对应 issue | PRD 5.3 模型 | 说明 |
|------|-----------|-------------|------|
| `template_registry` | #41 | ③ 模型模板注册/加载/版本机制 | 多版本 + 阶段(dev/staging/prod) + 提升 + 回滚 + 审计 + 持久化 |
## 模板注册表(`template_registry.py`)
模板化之后,模型 / 配方是「资产」,需要注册表统一管理:
- **注册**:登记一个模型模板(含主干、超参、特征列、指标、版本);
- **加载**:按 name + version/别名/stage 取出;
- **版本**:同模板多版本共存,可回滚、可审计;
- **阶段**:版本带 stage 标签(dev/staging/prod),灰度发布可控。
### 核心组件
- **`ModelTemplate`**:模型模板数据对象(name/version/backbone/hyperparams/
feature_columns/metrics/stage),不可变、可序列化往返。
- **`TemplateRegistry`**:注册表核心 API:
- `register`(校验完整性 + 同版本号拒重复,force 可覆盖)
- `get`(按 version / stage / 默认最新加载)
- `promote`(dev→staging→prod 逐级提升)
- `rollback`(stage 指针回退,保留历史可审计)
- `set_stage`(直接设 stage,紧急回滚)
- `list_versions` / `list_by_stage` / `stage_pointer` / `history`
- `save` / `load`(JSON 持久化,重启恢复)
- **`Stage`**:阶段枚举(DEV / STAGING / PROD),PRD 灰度三段制。
- **`is_valid_version`**:语义化版本号校验(v1 / 1.0.0 / v1.2-rc1)。
### 快速开始
```python
from template_registry import ModelTemplate, Stage, TemplateRegistry
reg = TemplateRegistry()
reg.register(ModelTemplate(
name="ti-quality", version="v1.0", backbone="quality_forecast",
feature_columns=("furnace_temp", "cl2_flow"),
metrics={"accuracy": 0.91}, stage="dev"))
reg.register(ModelTemplate(name="ti-quality", version="v1.1",
backbone="quality_forecast", metrics={"accuracy": 0.94}))
reg.promote("ti-quality", "v1.1") # dev -> staging
reg.promote("ti-quality", "v1.1") # staging -> prod
reg.rollback("ti-quality", Stage.PROD, "v1.0") # 紧急回滚
serving = reg.get("ti-quality", stage=Stage.PROD) # 按阶段加载
reg.save("registry.json") # 持久化审计
```
## 测试
```bash
cd core/model-framework
python -m unittest discover -s tests -v
python _sanity_check.py
```
## 与规划模块的关系
接口风格对齐 #34(Model Recipe)、#36(quality_forecast)、#38
(cross_process_optimizer)、#40(pipeline)。本模块是 #40 `ModelRegistry`
的完整版(多阶段 + 回滚 + 持久化),#40 的 `RegisterStep` 未来可直接对接本
注册表,业务侧零改动。