核心能力
1. Model Registry
注册所有 AI 模型的完整元信息:类型(NN/RL/GBDT/GNN/LLM)、版本、适用域(design family、PDK node、scenario type)、训练数据范围、已知限制。每个模型有唯一的 model_tag,路由决策基于 Registry 中的校准数据而非硬编码规则。
2. Calibration
学习各模型的 calibrated probability 和误差关联矩阵。不只记录模型精度——记录模型在各类输入下的系统偏置模式(例如某个 model 总是高估 small design 的 congestion、某个 model 在 7nm 数据上偏乐观)。误差关联矩阵用于 ensemble:两个独立误差的模型融合效果优于两个同向偏差的模型。
3. OOD Detection
检测输入是否在模型适用域内。使用 Mahalanobis distance + density-based 双重检测——输入特征到训练分布中心的马氏距离超过阈值(默认 3.0),或落入密度空白区域,即标记为 OOD。OOD 时强制回落确定性引擎,不做有风险的预测。
4. F0-F4 Routing
按 fidelity 档位路由——F0(estimate NN,快速粗糙预测)→ F2(in-design hybrid,中精度辅助决策)→ F4(correlated deterministic,高精度确定性执行)。Agent 在 experiment 早期用 F0 快速筛选 candidate,收窄后用 F2 精细评估,最终由 F4 确定性工具出金标结果。
5. Ensemble
多模型融合时考虑误差相关性,不做简单投票。两个完全独立的模型(误差相关性 ~0)融合效果好于两个 co-linear 模型(误差相关性高)。Router 在 ensemble 时优先选择误差独立性高的模型组合,最大化融合增益。
Agent 调用方式
Model Router 暴露统一的 inference 入口——Agent 不需要知道自己最终用的是哪个具体模型,只需描述需求。
Python SDK
from ieda.router import ModelRouter router = ModelRouter("http://localhost:9120") # Register a new model router.register( model_tag="congestion_nn_v3.1", model_type="NN", applicable_domain={ "design_family": ["riscv", "soc"], "pdk": ["sky130", "nangate45"], }, ) # Route inference request result = router.route( model_family="congestion_nn", input_features=design_features, required_fidelity="F2", fallback_policy="deterministic", ) print(result.selected_model) # "congestion_nn_v3.1" print(result.confidence) # 0.87 print(result.ood_flag) # False print(result.fallback_triggered) # False
输入/输出契约
RouteRequest
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
model_family | string | 是 | 模型族名称——如 "congestion_nn"、"timing_nn"、"macro_placer" |
input_features | object | 是 | 输入特征向量——由 AiEDA Library 导出的结构化特征 |
required_fidelity | "F0" | "F1" | "F2" | "F3" | "F4" | 是 | 要求的保真度档位 |
fallback_policy | "deterministic" | "best_effort" | "reject" | 是 | fallback 策略——deterministic 回落引擎;best_effort 选同类最优;reject 拒绝预测 |
RouteResult
| 字段 | 类型 | 说明 |
|---|---|---|
selected_model | string | 选中的模型 tag |
confidence | float | 校准后的置信度 (0.0 ~ 1.0) |
calibration_metadata | object | ECE (Expected Calibration Error)、bias 等校准指标 |
ood_flag | boolean | 输入是否被判定为 OOD |
fallback_triggered | boolean | 是否触发了 fallback |