Skip to content

Commit 7149c4b

Browse files
authored
[ML] Explicitly set chunking settings in preconfigured endpoints (#117327) (#117502)
1 parent 617644f commit 7149c4b

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

x-pack/plugin/inference/qa/inference-service-tests/src/javaRestTest/java/org/elasticsearch/xpack/inference/DefaultEndPointsIT.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,14 @@ public void tearDown() throws Exception {
4343
super.tearDown();
4444
}
4545

46+
public void testGet() throws IOException {
47+
var elserModel = getModel(ElasticsearchInternalService.DEFAULT_ELSER_ID);
48+
assertDefaultElserConfig(elserModel);
49+
50+
var e5Model = getModel(ElasticsearchInternalService.DEFAULT_E5_ID);
51+
assertDefaultE5Config(e5Model);
52+
}
53+
4654
@SuppressWarnings("unchecked")
4755
public void testInferDeploysDefaultElser() throws IOException {
4856
var model = getModel(ElasticsearchInternalService.DEFAULT_ELSER_ID);
@@ -71,6 +79,7 @@ private static void assertDefaultElserConfig(Map<String, Object> modelConfig) {
7179
adaptiveAllocations,
7280
Matchers.is(Map.of("enabled", true, "min_number_of_allocations", 0, "max_number_of_allocations", 32))
7381
);
82+
assertDefaultChunkingSettings(modelConfig);
7483
}
7584

7685
@SuppressWarnings("unchecked")
@@ -105,6 +114,17 @@ private static void assertDefaultE5Config(Map<String, Object> modelConfig) {
105114
adaptiveAllocations,
106115
Matchers.is(Map.of("enabled", true, "min_number_of_allocations", 0, "max_number_of_allocations", 32))
107116
);
117+
assertDefaultChunkingSettings(modelConfig);
118+
}
119+
120+
@SuppressWarnings("unchecked")
121+
private static void assertDefaultChunkingSettings(Map<String, Object> modelConfig) {
122+
var chunkingSettings = (Map<String, Object>) modelConfig.get("chunking_settings");
123+
assertThat(
124+
modelConfig.toString(),
125+
chunkingSettings,
126+
Matchers.is(Map.of("strategy", "sentence", "max_chunk_size", 250, "sentence_overlap", 1))
127+
);
108128
}
109129

110130
public void testMultipleInferencesTriggeringDownloadAndDeploy() throws InterruptedException {

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/elasticsearch/ElasticsearchInternalService.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -861,6 +861,7 @@ public void updateModelsWithDynamicFields(List<Model> models, ActionListener<Lis
861861
);
862862
}
863863

864+
@Override
864865
public void defaultConfigs(ActionListener<List<Model>> defaultsListener) {
865866
preferredModelVariantFn.accept(defaultsListener.delegateFailureAndWrap((delegate, preferredModelVariant) -> {
866867
if (PreferredModelVariant.LINUX_X86_OPTIMIZED.equals(preferredModelVariant)) {
@@ -891,7 +892,7 @@ private List<Model> defaultConfigs(boolean useLinuxOptimizedModel) {
891892
new AdaptiveAllocationsSettings(Boolean.TRUE, 0, 32)
892893
),
893894
ElserMlNodeTaskSettings.DEFAULT,
894-
null // default chunking settings
895+
ChunkingSettingsBuilder.DEFAULT_SETTINGS
895896
);
896897
var defaultE5 = new MultilingualE5SmallModel(
897898
DEFAULT_E5_ID,
@@ -903,7 +904,7 @@ private List<Model> defaultConfigs(boolean useLinuxOptimizedModel) {
903904
useLinuxOptimizedModel ? MULTILINGUAL_E5_SMALL_MODEL_ID_LINUX_X86 : MULTILINGUAL_E5_SMALL_MODEL_ID,
904905
new AdaptiveAllocationsSettings(Boolean.TRUE, 0, 32)
905906
),
906-
null // default chunking settings
907+
ChunkingSettingsBuilder.DEFAULT_SETTINGS
907908
);
908909
return List.of(defaultElser, defaultE5);
909910
}

0 commit comments

Comments
 (0)