核心能力
1. Paired Data Generation
对同一设计状态同时记录 AI 预测和确定性金标结果。每当 Agent 通过 Model Router 调用 AI 模型做预测时,Oracle 异步触发同状态上的确定性引擎执行,生成金标 ground truth。每对数据包含:input(设计状态特征)、ai_prediction、gold_result、delta(误差分析)。
2. Active Learning
选择最有信息量的样本送确定性引擎标注。支持三种选择策略:uncertainty(选 AI 预测置信度最低的样本)、diversity(选覆盖未充分代表的 design 区域的样本)、hybrid(综合考虑 uncertainty + diversity)。主动学习循环最小化确定性引擎的计算开销——只对最有价值的样本求金标。
3. Lineage Tracking
记录每条数据的设计来源、工具版本、工艺条件、场景参数。完整 lineage 链:设计来源(design_id + commit)→ 工具版本(tool + version + config_hash)→ 工艺条件(PDK node + corner + temperature)→ 场景参数(utilization、frequency target 等)。数据集的 provenance 完全透明。
4. Applicability
标记每条数据的适用范围。design_family(riscv/vliw/soc/...)、PDK(sky130/nangate45/asap7/...)、scenario_type(congestion_fix/timing_opt/power_reduction/...)。Model Router 利用 applicability 标签判断模型的适用域——训练数据不覆盖的 domain 自动触发 OOD 检测。
5. Quality Gate
数据必须通过 coverage 和 correctness gate 才能进入训练集。Coverage gate:检查数据是否覆盖了新 design/scenario 区域(避免同质化冗余)。Correctness gate:检查金标结果是否来自可信的确定性引擎版本(过期版本的结果标记为 degraded)。通过双闸的数据获得 certified 标签。
Agent 调用方式
Data Oracle 提供两种核心操作——paired data generation(触发配对数据生成)和 active learning sample selection(主动学习采样)。
Python SDK
from ieda.oracle import DataOracle oracle = DataOracle("http://localhost:9130") # Generate paired data: record AI prediction + gold result samples = oracle.generate( design_ref="snap_7f3a", tools=["iPL", "iSTA"], scenarios=["congestion_fix", "timing_opt"], ) print(len(samples)) # 42 paired samples # Active learning: select most informative samples selected = oracle.select( selection_strategy="uncertainty", top_k=100, model_family="congestion_nn", ) # Check data lineage lineage = oracle.get_lineage(sample_id="pair_7f3a_042") print(lineage.design_source) # "snap_7f3a (commit a1b2c3)" print(lineage.tool_version) # "iPL v2.1.0 (config hash: f3a9)"
输入/输出契约
OracleRequest
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
design_ref | string | 是 | 目标设计快照引用 |
tools[] | string[] | 是 | 需要生成金标结果的确定性工具列表 |
scenarios[] | string[] | 是 | 场景标签——congestion_fix, timing_opt, power_reduction 等 |
selection_strategy | "random" | "uncertainty" | "diversity" | 是 | 主动学习选择策略——random 随机、uncertainty 选最不确定、diversity 选覆盖面 |
OracleResult
| 字段 | 类型 | 说明 |
|---|---|---|
paired_samples[] | PairedSample[] | 配对数据列表——每条含 input、ai_prediction、gold_result、delta |
lineage_manifest | object | 血缘清单——design_source、tool_version、pdk_node、scenario_params |
selection_metadata | object | 采样元数据——strategy、uncertainty_scores、diversity_grid |