summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-06-23 17:15:54 +0200
committerGitHub <noreply@github.com>2021-06-23 17:15:54 +0200
commitcf0b960886abf6be85ab45025af7150465153f6f (patch)
tree76e7a645a154733264c3135369f6e5e37c5ffee5 /searchcore
parent9171799dc67a80afa0dd9ec49aa20e740123b5b3 (diff)
parent6558fa641b2b762f710c02448c887c40e60b1d18 (diff)
Merge pull request #18386 from vespa-engine/havardpe/onnx-dry-run-impl
dry run onnx models on setup
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/apps/verify_ranksetup/verify_ranksetup.cpp4
-rw-r--r--searchcore/src/tests/proton/verify_ranksetup/verify_ranksetup_test.cpp23
-rw-r--r--searchcore/src/vespa/searchcore/proton/matching/onnx_models.cpp1
3 files changed, 26 insertions, 2 deletions
diff --git a/searchcore/src/apps/verify_ranksetup/verify_ranksetup.cpp b/searchcore/src/apps/verify_ranksetup/verify_ranksetup.cpp
index 853395be3e1..7a3803626c8 100644
--- a/searchcore/src/apps/verify_ranksetup/verify_ranksetup.cpp
+++ b/searchcore/src/apps/verify_ranksetup/verify_ranksetup.cpp
@@ -67,7 +67,7 @@ RankingExpressions make_expressions(const RankingExpressionsConfig &expressionsC
if (auto file = get_file(entry.fileref, myCfg)) {
expressions.add(entry.name, file.value());
} else {
- LOG(warning, "could not find file for ranking expression '%s' (ref:'%s')",
+ LOG(warning, "could not find file name for ranking expression '%s' (ref:'%s')",
entry.name.c_str(), entry.fileref.c_str());
}
}
@@ -81,7 +81,7 @@ OnnxModels make_models(const OnnxModelsConfig &modelsCfg, const VerifyRanksetupC
model_list.emplace_back(entry.name, file.value());
OnnxModels::configure(entry, model_list.back());
} else {
- LOG(warning, "could not find file for onnx model '%s' (ref:'%s')",
+ LOG(warning, "could not find file name for onnx model '%s' (ref:'%s')",
entry.name.c_str(), entry.fileref.c_str());
}
}
diff --git a/searchcore/src/tests/proton/verify_ranksetup/verify_ranksetup_test.cpp b/searchcore/src/tests/proton/verify_ranksetup/verify_ranksetup_test.cpp
index fc70bafed7f..c13440de4d5 100644
--- a/searchcore/src/tests/proton/verify_ranksetup/verify_ranksetup_test.cpp
+++ b/searchcore/src/tests/proton/verify_ranksetup/verify_ranksetup_test.cpp
@@ -188,6 +188,7 @@ struct Setup {
out.fmt("model[%zu].output[%zu].as \"%s\"\n", idx, idx2, output.second.c_str());
++idx2;
}
+ out.fmt("model[%zu].dry_run_on_setup %s\n", idx, entry.second.dry_run_on_setup() ? "true" : "false");
++idx;
}
}
@@ -269,6 +270,10 @@ struct OnnxSetup : Setup {
.input_feature("attribute_tensor", "rankingExpression(at)")
.input_feature("bias_tensor", "rankingExpression(bt)")
.output_name("output", "result"));
+ add_onnx_model(OnnxModel("fragile", TEST_PATH("../../../../../searchlib/src/tests/features/onnx_feature/fragile.onnx"))
+ .dry_run_on_setup(true));
+ add_onnx_model(OnnxModel("unfragile", TEST_PATH("../../../../../searchlib/src/tests/features/onnx_feature/fragile.onnx"))
+ .dry_run_on_setup(false));
}
};
@@ -417,6 +422,24 @@ TEST_F("require that onnx model can have inputs and outputs mapped", OnnxSetup()
f.verify_valid({"onnxModel(mapped).result"});
}
+TEST_F("require that fragile model can pass verification", OnnxSetup()) {
+ f.rank_expr("in1", "tensor<float>(a[2]):[1,2]");
+ f.rank_expr("in2", "tensor<float>(a[2]):[3,4]");
+ f.verify_valid({"onnxModel(fragile)"});
+}
+
+TEST_F("require that broken fragile model fails verification", OnnxSetup()) {
+ f.rank_expr("in1", "tensor<float>(a[2]):[1,2]");
+ f.rank_expr("in2", "tensor<float>(a[3]):[3,4,31515]");
+ f.verify_invalid({"onnxModel(fragile)"});
+}
+
+TEST_F("require that broken fragile model without dry-run passes verification", OnnxSetup()) {
+ f.rank_expr("in1", "tensor<float>(a[2]):[1,2]");
+ f.rank_expr("in2", "tensor<float>(a[3]):[3,4,31515]");
+ f.verify_valid({"onnxModel(unfragile)"});
+}
+
//-----------------------------------------------------------------------------
TEST_F("cleanup files", Setup()) {
diff --git a/searchcore/src/vespa/searchcore/proton/matching/onnx_models.cpp b/searchcore/src/vespa/searchcore/proton/matching/onnx_models.cpp
index ed80ca28bd6..43e29e37b62 100644
--- a/searchcore/src/vespa/searchcore/proton/matching/onnx_models.cpp
+++ b/searchcore/src/vespa/searchcore/proton/matching/onnx_models.cpp
@@ -46,6 +46,7 @@ OnnxModels::configure(const ModelConfig &config, Model &model)
for (const auto &output: config.output) {
model.output_name(output.name, output.as);
}
+ model.dry_run_on_setup(config.dryRunOnSetup);
}
}