ML in SE: Enable new experimental models for files/actions/classes (IJPL-161034/IJPL-161035/IJPL-161030)

GitOrigin-RevId: 8798a6a75a26e56ff129266c520adae14d343524
This commit is contained in:
Fatima-Zahra El Akkary
2024-09-07 10:21:42 +00:00
committed by intellij-monorepo-bot
parent fc7f21fa45
commit 7f9e4afa2b
7 changed files with 33 additions and 42 deletions

View File

@@ -6,20 +6,20 @@
- name: $MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-action-model/231.0.0/find-action-model-231.0.0.jar
size: 236768
find-action-model-experimental:
- name: $MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-action-model/233.0.1/find-action-model-233.0.1.jar
size: 314360
- name: $MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-action-model/243.0.1/find-action-model-243.0.1.jar
size: 401889
find-file-model:
- name: $MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-file-model/232.1.1/find-file-model-232.1.1.jar
size: 70478
find-file-model-experimental:
- name: $MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-file-model/233.1.1/find-file-model-233.1.1.jar
size: 139933
- name: $MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-file-model/243.0.1/find-file-model-243.0.1.jar
size: 526417
find-classes-model:
- name: $MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-classes-model/231.0.0/find-classes-model-231.0.0.jar
size: 146583
find-classes-model-experimental:
- name: $MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-classes-model/233.1.1/find-classes-model-233.1.1.jar
size: 527225
- name: $MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-classes-model/243.0.1/find-classes-model-243.0.1.jar
size: 1166068
find-all-model-experimental:
- name: $MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-all-model/232.1.1/find-all-model-232.1.1.jar
size: 188471

View File

@@ -41,19 +41,19 @@
</orderEntry>
<orderEntry type="module-library">
<library name="find-action-model-experimental" type="repository">
<properties maven-id="org.jetbrains.intellij.deps.searchEverywhere.model:find-action-model:233.0.1">
<properties maven-id="org.jetbrains.intellij.deps.searchEverywhere.model:find-action-model:243.0.1">
<verification>
<artifact url="file://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-action-model/233.0.1/find-action-model-233.0.1.jar">
<sha256sum>43cb632e587e80524b0379d337db0980cab595683b17ee03ebe95ed4b3fe8687</sha256sum>
<artifact url="file://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-action-model/243.0.1/find-action-model-243.0.1.jar">
<sha256sum>9cb70f89f95ff50c6d9e16f2fae6a4052a2cf3c5e158222afc8f4573d676f436</sha256sum>
</artifact>
</verification>
</properties>
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-action-model/233.0.1/find-action-model-233.0.1.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-action-model/243.0.1/find-action-model-243.0.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-action-model/233.0.1/find-action-model-233.0.1-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-action-model/243.0.1/find-action-model-243.0.1-sources.jar!/" />
</SOURCES>
</library>
</orderEntry>
@@ -77,19 +77,19 @@
</orderEntry>
<orderEntry type="module-library">
<library name="find-file-model-experimental" type="repository">
<properties maven-id="org.jetbrains.intellij.deps.searchEverywhere.model:find-file-model:233.1.1">
<properties maven-id="org.jetbrains.intellij.deps.searchEverywhere.model:find-file-model:243.0.1">
<verification>
<artifact url="file://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-file-model/233.1.1/find-file-model-233.1.1.jar">
<sha256sum>f515467efb76d7f3d14a602c9b08c68395e3f2b906a635c0e7644c36b646feff</sha256sum>
<artifact url="file://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-file-model/243.0.1/find-file-model-243.0.1.jar">
<sha256sum>1f72666aab8b4cc3f77ee474ee1aad5e5c7886082cc23a2a6d1f0be6f9662aa8</sha256sum>
</artifact>
</verification>
</properties>
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-file-model/233.1.1/find-file-model-233.1.1.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-file-model/243.0.1/find-file-model-243.0.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-file-model/233.1.1/find-file-model-233.1.1-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-file-model/243.0.1/find-file-model-243.0.1-sources.jar!/" />
</SOURCES>
</library>
</orderEntry>
@@ -113,19 +113,19 @@
</orderEntry>
<orderEntry type="module-library">
<library name="find-classes-model-experimental" type="repository">
<properties maven-id="org.jetbrains.intellij.deps.searchEverywhere.model:find-classes-model:233.1.1">
<properties maven-id="org.jetbrains.intellij.deps.searchEverywhere.model:find-classes-model:243.0.1">
<verification>
<artifact url="file://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-classes-model/233.1.1/find-classes-model-233.1.1.jar">
<sha256sum>3856658cb0812f1ba2c00260631fb80270368f426ff9adb2bbc3bd738069eaed</sha256sum>
<artifact url="file://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-classes-model/243.0.1/find-classes-model-243.0.1.jar">
<sha256sum>1cd8278c965d549c0843befa80914b74f659f47b5268a8b39f7535dd6a2ebcd6</sha256sum>
</artifact>
</verification>
</properties>
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-classes-model/233.1.1/find-classes-model-233.1.1.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-classes-model/243.0.1/find-classes-model-243.0.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-classes-model/233.1.1/find-classes-model-233.1.1-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/searchEverywhere/model/find-classes-model/243.0.1/find-classes-model-243.0.1-sources.jar!/" />
</SOURCES>
</library>
</orderEntry>

View File

@@ -296,7 +296,7 @@ object SearchEverywhereMLStatisticsCollector : CounterUsagesCollector() {
return true
}
private val GROUP = EventLogGroup("mlse.log", 104, MLSE_RECORDER_ID)
private val GROUP = EventLogGroup("mlse.log", 105, MLSE_RECORDER_ID)
private val IS_INTERNAL = EventFields.Boolean("isInternal")
private val ORDER_BY_ML_GROUP = EventFields.Boolean("orderByMl")

View File

@@ -14,6 +14,7 @@ import com.intellij.ide.actions.searcheverywhere.SemanticSearchEverywhereContrib
import com.intellij.searchEverywhereMl.ranking.core.features.SearchEverywhereElementFeaturesProvider.Companion.BUFFERED_TIMESTAMP
import com.intellij.searchEverywhereMl.settings.SearchEverywhereMlSettings
import com.intellij.ui.components.JBList
import com.intellij.util.PlatformUtils
import org.jetbrains.annotations.ApiStatus
import java.util.concurrent.atomic.AtomicInteger
import java.util.concurrent.atomic.AtomicReference
@@ -41,12 +42,18 @@ class SearchEverywhereMlRankingService : SearchEverywhereMlService {
internal fun shouldUseExperimentalModel(tab: SearchEverywhereTabWithMlRanking): Boolean {
return when (experiment.getExperimentForTab(tab)) {
SearchEverywhereMlExperiment.ExperimentType.ENABLE_SEMANTIC_SEARCH -> {
tab == SearchEverywhereTabWithMlRanking.ACTION ||
tab == SearchEverywhereTabWithMlRanking.FILES ||
tab == SearchEverywhereTabWithMlRanking.CLASSES && PlatformUtils.isPyCharm() && PlatformUtils.isIntelliJ()
}
SearchEverywhereMlExperiment.ExperimentType.USE_EXPERIMENTAL_MODEL -> true
SearchEverywhereMlExperiment.ExperimentType.NO_RECENT_FILES_PRIORITIZATION -> true
else -> false
}
}
internal fun getCurrentSession(): SearchEverywhereMLSearchSession? {
if (isEnabled()) {
return activeSession.get()

View File

@@ -6,12 +6,11 @@ import com.intellij.internal.ml.FeaturesInfo
import com.intellij.internal.ml.ResourcesModelMetadataReader
import com.intellij.searchEverywhere.model.actions.PredictionModel
import com.intellij.searchEverywhereMl.SearchEverywhereTabWithMlRanking
import com.intellij.searchEverywhere.model.actions.exp.PredictionModel as ExperimentalPredictionModel
internal class SearchEverywhereActionsRankingModelLoader : SearchEverywhereMLRankingModelLoader() {
private val standardResourceDirectory = "actions_features"
private val expResourceDirectory = "actions_features_exp"
private val expModelDirectory = "actions_model_exp"
override val supportedTab = SearchEverywhereTabWithMlRanking.ACTION
@@ -31,10 +30,5 @@ internal class SearchEverywhereActionsRankingModelLoader : SearchEverywhereMLRan
}
}
private fun getExperimentalModel(): SearchEverywhereMLRankingDecisionFunction {
val metadata = FeaturesInfo.buildInfo(ResourcesModelMetadataReader(this::class.java, expResourceDirectory))
return object : SearchEverywhereMLRankingDecisionFunction(metadata) {
override fun predict(features: DoubleArray?): Double = ExperimentalPredictionModel.makePredict(features)
}
}
private fun getExperimentalModel(): DecisionFunction = getCatBoostModel(expResourceDirectory, expModelDirectory)
}

View File

@@ -1,29 +1,20 @@
package com.intellij.searchEverywhereMl.ranking.core.model
import com.intellij.internal.ml.DecisionFunction
import com.intellij.internal.ml.FeaturesInfo
import com.intellij.internal.ml.ResourcesModelMetadataReader
import com.intellij.searchEverywhere.model.classes.exp.PredictionModel
import com.intellij.searchEverywhereMl.SearchEverywhereTabWithMlRanking
internal class SearchEverywhereClassesRankingModelLoader : SearchEverywhereMLRankingModelLoader() {
private val resourceDirectory = "classes_features"
private val modelDirectory = "classes_model"
private val expResourceDirectory = "classes_features_exp"
private val expModelDirectory = "classes_model_exp"
override val supportedTab = SearchEverywhereTabWithMlRanking.CLASSES
override fun getBundledModel(): DecisionFunction {
return if (shouldProvideExperimentalModel())
getExperimentalModel()
getCatBoostModel(expResourceDirectory, expModelDirectory)
else
getCatBoostModel(resourceDirectory, modelDirectory)
}
private fun getExperimentalModel(): SearchEverywhereMLRankingDecisionFunction {
val metadata = FeaturesInfo.buildInfo(ResourcesModelMetadataReader(this::class.java, expResourceDirectory))
return object : SearchEverywhereMLRankingDecisionFunction(metadata) {
override fun predict(features: DoubleArray?): Double = PredictionModel.makePredict(features)
}
}
}

View File

@@ -38,7 +38,6 @@ class SearchEverywhereMlExperiment {
private val tabExperiments = hashMapOf(
SearchEverywhereTabWithMlRanking.ACTION to Experiment(
1 to ExperimentType.ENABLE_SEMANTIC_SEARCH,
2 to ExperimentType.USE_EXPERIMENTAL_MODEL,
3 to ExperimentType.ENABLE_TYPOS,
),