|
|
@@ -65,6 +65,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
|
|
|
+import static org.elasticsearch.xpack.inference.services.elasticsearch.ElasticsearchInternalService.MULTILINGUAL_E5_SMALL_MODEL_ID;
|
|
|
+import static org.elasticsearch.xpack.inference.services.elasticsearch.ElasticsearchInternalService.MULTILINGUAL_E5_SMALL_MODEL_ID_LINUX_X86;
|
|
|
import static org.hamcrest.Matchers.containsString;
|
|
|
import static org.hamcrest.Matchers.hasSize;
|
|
|
import static org.hamcrest.Matchers.instanceOf;
|
|
|
@@ -167,17 +169,12 @@ public class ElasticsearchInternalServiceTests extends ESTestCase {
|
|
|
ElasticsearchInternalServiceSettings.NUM_THREADS,
|
|
|
4,
|
|
|
ElasticsearchInternalServiceSettings.MODEL_ID,
|
|
|
- ElasticsearchInternalService.MULTILINGUAL_E5_SMALL_MODEL_ID
|
|
|
+ MULTILINGUAL_E5_SMALL_MODEL_ID
|
|
|
)
|
|
|
)
|
|
|
);
|
|
|
|
|
|
- var e5ServiceSettings = new MultilingualE5SmallInternalServiceSettings(
|
|
|
- 1,
|
|
|
- 4,
|
|
|
- ElasticsearchInternalService.MULTILINGUAL_E5_SMALL_MODEL_ID,
|
|
|
- null
|
|
|
- );
|
|
|
+ var e5ServiceSettings = new MultilingualE5SmallInternalServiceSettings(1, 4, MULTILINGUAL_E5_SMALL_MODEL_ID, null);
|
|
|
|
|
|
service.parseRequestConfig(
|
|
|
randomInferenceEntityId,
|
|
|
@@ -201,7 +198,7 @@ public class ElasticsearchInternalServiceTests extends ESTestCase {
|
|
|
ElasticsearchInternalServiceSettings.NUM_THREADS,
|
|
|
4,
|
|
|
ElasticsearchInternalServiceSettings.MODEL_ID,
|
|
|
- ElasticsearchInternalService.MULTILINGUAL_E5_SMALL_MODEL_ID,
|
|
|
+ MULTILINGUAL_E5_SMALL_MODEL_ID,
|
|
|
"not_a_valid_service_setting",
|
|
|
randomAlphaOfLength(10)
|
|
|
)
|
|
|
@@ -435,19 +432,14 @@ public class ElasticsearchInternalServiceTests extends ESTestCase {
|
|
|
ElasticsearchInternalServiceSettings.NUM_THREADS,
|
|
|
4,
|
|
|
ElasticsearchInternalServiceSettings.MODEL_ID,
|
|
|
- ElasticsearchInternalService.MULTILINGUAL_E5_SMALL_MODEL_ID,
|
|
|
+ MULTILINGUAL_E5_SMALL_MODEL_ID,
|
|
|
ServiceFields.DIMENSIONS,
|
|
|
1
|
|
|
)
|
|
|
)
|
|
|
);
|
|
|
|
|
|
- var e5ServiceSettings = new MultilingualE5SmallInternalServiceSettings(
|
|
|
- 1,
|
|
|
- 4,
|
|
|
- ElasticsearchInternalService.MULTILINGUAL_E5_SMALL_MODEL_ID,
|
|
|
- null
|
|
|
- );
|
|
|
+ var e5ServiceSettings = new MultilingualE5SmallInternalServiceSettings(1, 4, MULTILINGUAL_E5_SMALL_MODEL_ID, null);
|
|
|
|
|
|
MultilingualE5SmallModel parsedModel = (MultilingualE5SmallModel) service.parsePersistedConfig(
|
|
|
randomInferenceEntityId,
|
|
|
@@ -950,6 +942,31 @@ public class ElasticsearchInternalServiceTests extends ESTestCase {
|
|
|
assertThat(model, is(expectedModel));
|
|
|
}
|
|
|
|
|
|
+ public void testModelVariantDoesNotMatchArchitecturesAndIsNotPlatformAgnostic() {
|
|
|
+ {
|
|
|
+ var architectures = Set.of("Aarch64");
|
|
|
+ assertFalse(
|
|
|
+ ElasticsearchInternalService.modelVariantValidForArchitecture(architectures, MULTILINGUAL_E5_SMALL_MODEL_ID_LINUX_X86)
|
|
|
+ );
|
|
|
+
|
|
|
+ assertTrue(ElasticsearchInternalService.modelVariantValidForArchitecture(architectures, MULTILINGUAL_E5_SMALL_MODEL_ID));
|
|
|
+ }
|
|
|
+ {
|
|
|
+ var architectures = Set.of("linux-x86_64");
|
|
|
+ assertTrue(
|
|
|
+ ElasticsearchInternalService.modelVariantValidForArchitecture(architectures, MULTILINGUAL_E5_SMALL_MODEL_ID_LINUX_X86)
|
|
|
+ );
|
|
|
+ assertTrue(ElasticsearchInternalService.modelVariantValidForArchitecture(architectures, MULTILINGUAL_E5_SMALL_MODEL_ID));
|
|
|
+ }
|
|
|
+ {
|
|
|
+ var architectures = Set.of("linux-x86_64", "Aarch64");
|
|
|
+ assertFalse(
|
|
|
+ ElasticsearchInternalService.modelVariantValidForArchitecture(architectures, MULTILINGUAL_E5_SMALL_MODEL_ID_LINUX_X86)
|
|
|
+ );
|
|
|
+ assertTrue(ElasticsearchInternalService.modelVariantValidForArchitecture(architectures, MULTILINGUAL_E5_SMALL_MODEL_ID));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private ElasticsearchInternalService createService(Client client) {
|
|
|
var context = new InferenceServiceExtension.InferenceServiceFactoryContext(client);
|
|
|
return new ElasticsearchInternalService(context);
|