SuperAPI AI 工具集

genie-benchmark-evaluator

测试与质量

查看项目

更新于 10-15 20:33

技能介绍

用途:针对基准问题评估 Genie Space 的回答准确度,比较不同优化迭代的评估结果,在 bundle 部署后做验证,并测试 Genie SQL 生成的重复性。

主要能力:采用三层评审架构,全部 8 个评分器运行在 mlflow.genai.evaluate() 中。第一层质量评审始终运行,包括 syntax_validity(EXPLAIN 代码)、schema_accuracy、logical_accuracy、semantic_equivalence、completeness(LLM 评审)与 asset_routing(前缀匹配);第二层 result_correctness 读取预计算的 comparison;第三层 arbiter_scorer 仅在结果不一致时触发 LLM,返回 skipped、genie_correct、ground_truth_correct、both_correct 或 neither_correct。SQL 执行集中在 genie_predict_fn,每行只运行一次,评分器不直接调用 spark.sql()。

使用方式:输入来自编排器,包括 space_id、eval_dataset_name、experiment_name、iteration、model_id、uc_schema、eval_scope 与 patched_objects。评估范围由 eval_scope 控制:full、slice、p0、held_out。作业模式使用 databricks bundle run genie_evaluation_job,适合生产、CI/CD 与不少于 10 个基准;内联模式适合快速迭代与少于 10 个基准。评估器将每个评审的 eval_{judge}_pct 记录为 MLflow 运行指标,并把 ASI 结果写入 genie_eval_asi_results UC 表。

适用场景:Genie Space 准确度评分、优化迭代对比、部署后验证与 SQL 生成重复性测试。

限制:需要 mlflow[databricks]>=3.9.0;评分器必须使用 @scorer 并调用 .register(),不可叠加 @mlflow.trace;SQL 必须先经 sanitize_sql() 与 resolve_sql();make_judge() 仅支持 {{ inputs }}、{{ outputs }}、{{ trace }}、{{ expectations }}、{{ conversation }} 等模板变量;predict_fn 必须使用关键字参数签名;重复性检查仅在最终测试阶段运行。其余细节暂未提供。