From 9a4fc8eb55df849ea823909b34338506e7a1b44f Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Tue, 2 Jan 2024 11:18:12 +0100 Subject: Add ModelInfo constructor with non-optional OnnxModelOptions --- config-model-api/abi-spec.json | 2 ++ .../java/com/yahoo/config/model/api/OnnxModelCost.java | 14 +++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'config-model-api') diff --git a/config-model-api/abi-spec.json b/config-model-api/abi-spec.json index c3e20e534ff..8c5bf410015 100644 --- a/config-model-api/abi-spec.json +++ b/config-model-api/abi-spec.json @@ -1501,7 +1501,9 @@ "record" ], "methods" : [ + "public void (java.lang.String, long, long, com.yahoo.config.model.api.OnnxModelOptions)", "public void (java.lang.String, long, long, java.util.Optional)", + "public com.yahoo.config.model.api.OnnxModelOptions options()", "public final java.lang.String toString()", "public final int hashCode()", "public final boolean equals(java.lang.Object)", diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/OnnxModelCost.java b/config-model-api/src/main/java/com/yahoo/config/model/api/OnnxModelCost.java index d70b751eba0..650ce1ac14c 100644 --- a/config-model-api/src/main/java/com/yahoo/config/model/api/OnnxModelCost.java +++ b/config-model-api/src/main/java/com/yahoo/config/model/api/OnnxModelCost.java @@ -18,8 +18,10 @@ public interface OnnxModelCost { interface Calculator { long aggregatedModelCostInBytes(); + // TODO: Unused, remove when 8.263.7 is oldest model in use void registerModel(ApplicationFile path); void registerModel(ApplicationFile path, OnnxModelOptions onnxModelOptions); + // TODO: Unused, remove when 8.263.7 is oldest model in use void registerModel(URI uri); void registerModel(URI uri, OnnxModelOptions onnxModelOptions); Map models(); @@ -28,7 +30,17 @@ public interface OnnxModelCost { void store(); } - record ModelInfo(String modelId, long estimatedCost, long hash, Optional onnxModelOptions) {} + record ModelInfo(String modelId, long estimatedCost, long hash, Optional onnxModelOptions) { + + public ModelInfo(String modelId, long estimatedCost, long hash, OnnxModelOptions onnxModelOptions) { + this(modelId, estimatedCost, hash, Optional.of(onnxModelOptions)); + } + + public OnnxModelOptions options() { + return onnxModelOptions.orElseThrow(() -> new IllegalStateException("No onnxModelOptions exist")); + } + + } static OnnxModelCost disabled() { return new DisabledOnnxModelCost(); } -- cgit v1.2.3 From ad34380cb7eec0fa49534bbd8c8423157b0bfa64 Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Tue, 2 Jan 2024 11:27:51 +0100 Subject: Make unused methods default implementations and simplify (cannot remove until methods are not used by old models anymore) --- config-model-api/abi-spec.json | 6 ++---- .../main/java/com/yahoo/config/model/api/OnnxModelCost.java | 10 ++++++---- .../model/application/validation/JvmHeapSizeValidatorTest.java | 7 ------- .../RestartOnDeployForOnnxModelChangesValidatorTest.java | 6 ------ 4 files changed, 8 insertions(+), 21 deletions(-) (limited to 'config-model-api') diff --git a/config-model-api/abi-spec.json b/config-model-api/abi-spec.json index 8c5bf410015..692780f3eb3 100644 --- a/config-model-api/abi-spec.json +++ b/config-model-api/abi-spec.json @@ -1457,9 +1457,9 @@ ], "methods" : [ "public abstract long aggregatedModelCostInBytes()", - "public abstract void registerModel(com.yahoo.config.application.api.ApplicationFile)", + "public void registerModel(com.yahoo.config.application.api.ApplicationFile)", "public abstract void registerModel(com.yahoo.config.application.api.ApplicationFile, com.yahoo.config.model.api.OnnxModelOptions)", - "public abstract void registerModel(java.net.URI)", + "public void registerModel(java.net.URI)", "public abstract void registerModel(java.net.URI, com.yahoo.config.model.api.OnnxModelOptions)", "public abstract java.util.Map models()", "public abstract void setRestartOnDeploy()", @@ -1481,9 +1481,7 @@ "public void ()", "public com.yahoo.config.model.api.OnnxModelCost$Calculator newCalculator(com.yahoo.config.application.api.ApplicationPackage, com.yahoo.config.provision.ApplicationId)", "public long aggregatedModelCostInBytes()", - "public void registerModel(com.yahoo.config.application.api.ApplicationFile)", "public void registerModel(com.yahoo.config.application.api.ApplicationFile, com.yahoo.config.model.api.OnnxModelOptions)", - "public void registerModel(java.net.URI)", "public void registerModel(java.net.URI, com.yahoo.config.model.api.OnnxModelOptions)", "public java.util.Map models()", "public void setRestartOnDeploy()", diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/OnnxModelCost.java b/config-model-api/src/main/java/com/yahoo/config/model/api/OnnxModelCost.java index 650ce1ac14c..69f2b6b6dce 100644 --- a/config-model-api/src/main/java/com/yahoo/config/model/api/OnnxModelCost.java +++ b/config-model-api/src/main/java/com/yahoo/config/model/api/OnnxModelCost.java @@ -19,10 +19,14 @@ public interface OnnxModelCost { interface Calculator { long aggregatedModelCostInBytes(); // TODO: Unused, remove when 8.263.7 is oldest model in use - void registerModel(ApplicationFile path); + default void registerModel(ApplicationFile path) { + registerModel(path, OnnxModelOptions.empty()); + } void registerModel(ApplicationFile path, OnnxModelOptions onnxModelOptions); // TODO: Unused, remove when 8.263.7 is oldest model in use - void registerModel(URI uri); + default void registerModel(URI uri) { + registerModel(uri, OnnxModelOptions.empty()); + } void registerModel(URI uri, OnnxModelOptions onnxModelOptions); Map models(); void setRestartOnDeploy(); @@ -47,9 +51,7 @@ public interface OnnxModelCost { class DisabledOnnxModelCost implements OnnxModelCost, Calculator { @Override public Calculator newCalculator(ApplicationPackage appPkg, ApplicationId applicationId) { return this; } @Override public long aggregatedModelCostInBytes() {return 0;} - @Override public void registerModel(ApplicationFile path) {} @Override public void registerModel(ApplicationFile path, OnnxModelOptions onnxModelOptions) {} - @Override public void registerModel(URI uri) {} @Override public void registerModel(URI uri, OnnxModelOptions onnxModelOptions) {} @Override public Map models() { return Map.of(); } @Override public void setRestartOnDeploy() {} diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/JvmHeapSizeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/JvmHeapSizeValidatorTest.java index 0b32194e257..31e4c661151 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/JvmHeapSizeValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/JvmHeapSizeValidatorTest.java @@ -126,15 +126,8 @@ class JvmHeapSizeValidatorTest { @Override public boolean restartOnDeploy() { return false;} @Override public void store() {} @Override public long aggregatedModelCostInBytes() { return totalCost.get(); } - @Override public void registerModel(ApplicationFile path) {} @Override public void registerModel(ApplicationFile path, OnnxModelOptions onnxModelOptions) {} - @Override - public void registerModel(URI uri) { - assertEquals("https://my/url/model.onnx", uri.toString()); - totalCost.addAndGet(modelCost); - } - @Override public void registerModel(URI uri, OnnxModelOptions onnxModelOptions) { assertEquals("https://my/url/model.onnx", uri.toString()); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/RestartOnDeployForOnnxModelChangesValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/RestartOnDeployForOnnxModelChangesValidatorTest.java index d0f5f01d61e..13389689de5 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/RestartOnDeployForOnnxModelChangesValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/RestartOnDeployForOnnxModelChangesValidatorTest.java @@ -87,15 +87,9 @@ public class RestartOnDeployForOnnxModelChangesValidatorTest { @Override public long aggregatedModelCostInBytes() { return estimatedCost; } - @Override - public void registerModel(ApplicationFile path) {} - @Override public void registerModel(ApplicationFile path, OnnxModelOptions onnxModelOptions) {} - @Override - public void registerModel(URI uri) {} - @Override public void registerModel(URI uri, OnnxModelOptions onnxModelOptions) { models.put(uri.toString(), new OnnxModelCost.ModelInfo(uri.toString(), estimatedCost, hash, onnxModelOptions)); -- cgit v1.2.3