Los modelos de clasificación personalizados le permiten entrenar modelos de ranking de aprendizaje automático con sus propios datos de negocio, como clics de búsqueda, conversiones de compra o calificaciones. De este modo, OpenSearch devuelve resultados ordenados según lo que realmente importa a sus usuarios, y no solo por relevancia de palabras clave. Por ejemplo, un sitio de comercio electrónico puede mostrar primero los artículos más vendidos, mientras que una plataforma de medios puede promover el contenido mejor calificado para cada consulta.
Cada instancia admite hasta tres modelos de clasificación personalizados.
Cómo funciona
La creación de un modelo de clasificación personalizado consta de cuatro etapas secuenciales:
Crear una descripción de características: defina las señales (características) que el modelo utilizará para clasificar los documentos.
Crear una descripción del modelo: escriba el script de Python que define la estructura del modelo y la lógica de entrenamiento.
Crear y entrenar un modelo de clasificación: combine la descripción de características con la descripción del modelo y, a continuación, inicie el entrenamiento.
Crear una política de clasificación basada en Cava: integre el modelo entrenado en una política de clasificación para que influya en los resultados de búsqueda en tiempo real.
Todas las etapas se realizan en la consola de OpenSearch Industry Algorithm Edition, en Search Algorithm Center > Sort Configuration.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Una instancia de OpenSearch Industry Algorithm Edition del tipo Exclusive Cluster
(Opcional) Conocimiento de los tipos de características disponibles; consulte Feature configuration attributes for custom sorting models
(Opcional) Lógica de script de Python o TensorFlow de ejemplo; consulte Developer guide for custom sorting models
Crear una descripción de características
Una descripción de características define las señales de entrada a partir de las cuales aprende el modelo, tales como atributos del documento (precio, calificación) o puntuaciones de relevancia entre consulta y documento (BM25).
Inicie sesión en la consola de OpenSearch Industry Algorithm Edition. En el panel de navegación izquierdo, seleccione Search Algorithm Center > Sort Configuration. En el panel izquierdo, haga clic en Customize Sorting Model. En la pestaña Feature Description, haga clic en Create.
Introduzca un nombre para la descripción de características y agregue las características que debe usar el modelo. Para cada característica, especifique su nombre, seleccione un tipo de característica y elija la característica correspondiente.
Para obtener detalles sobre los tipos de características disponibles, consulte Feature configuration attributes for custom sorting models . Para obtener orientación sobre cómo seleccionar características específicas, consulte Basic built-in features .
Crear una descripción del modelo
Una descripción del modelo contiene el script de Python que define la arquitectura del modelo y la lógica de entrenamiento.
En el panel izquierdo de Sort Configuration, haga clic en Customize Sorting Model. En la pestaña Model Description, haga clic en Create.
Introduzca un nombre para la descripción del modelo, escriba su script de Python en el editor y haga clic en Submit.
Para consultar código de ejemplo y directrices de desarrollo, véase Developer guide for custom sorting models.
Crear y entrenar un modelo de clasificación
En la consola de OpenSearch Industry Algorithm Edition, dentro del panel de navegación izquierdo, seleccione Search Algorithm Center > Sort Configuration > Customize Sorting Model. Haga clic en la pestaña Sorting Model y, a continuación, haga clic en Create.
-
Complete los siguientes parámetros:
Target Application: Seleccione la aplicación destino.
Model Name: Introduzca un nombre para el modelo (de 1 a 30 caracteres).
Model Type: Seleccione Custom Sorting Model.
Scheduled Training: Habilite o deshabilite esta opción según sea necesario.
Feature Description: Seleccione la descripción de características que creó previamente.
Model Description: Seleccione la descripción del modelo que creó previamente.
Cuando termine, haga clic en Submit.
En la pestaña Sorting Model, localice el modelo y haga clic en Train en la columna Actions.
Una vez iniciado el entrenamiento, abra la página de detalles del modelo para supervisar el progreso.
-
Cuando finalice el entrenamiento, compruebe el estado del modelo:
Available: el modelo está listo para usarse. Continúe con Crear una política de clasificación basada en Cava.
Unavailable: el modelo no alcanzó el umbral de calidad de datos requerido. Abra la página de detalles del modelo y revise las condiciones listadas en la sección Data Verification. Ajuste el modelo para cumplir dichas condiciones y vuelva a entrenarlo al día siguiente.
Si el modelo permanece no disponible después de realizar ajustes, envíe un ticket para ponerse en contacto con el soporte técnico.
Crear una política de clasificación basada en Cava
Los modelos de clasificación personalizados solo pueden utilizarse en complementos basados en Cava. Este paso crea una política de clasificación que carga e invoca el modelo entrenado durante la ejecución de consultas.
En el panel de navegación izquierdo, seleccione Search Algorithm Center > Sort Configuration. En el panel izquierdo, haga clic en Policy Management y, a continuación, haga clic en Create.
Introduzca un nombre para la política. En la lista desplegable Scope, seleccione Fine Sort. En la lista desplegable Type, seleccione Cava Script. Haga clic en Next.
Haga clic en Add Script File y pegue su script de Cava en el editor. Haga clic en Compile. Si la compilación es exitosa, haga clic en Save y luego en Publish.
El siguiente script de ejemplo muestra cómo cargar e invocar un modelo de clasificación personalizado. Reemplace "Name of your custom sorting model" con el nombre real del modelo que entrenó.
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
import com.aliyun.opensearch.cava.features.algo.AlgoModel;
class BasicSimilarityScorer {
// You can define member variables.
boolean init(OpsScorerInitParams params) {
// Initialize variables related to a search request.
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
double score = 10;
// Assign the score result to the score parameter.
doc.trace("double value:", score);
return score;
}
};
class IntelligenceAlgorithmScorer {
AlgoModel _algoModel;
boolean init(OpsScorerInitParams params) {
// tf_checkpoint is a fixed parameter name — do not change it.
_algoModel = AlgoModel.create(params, "tf_checkpoint", "rank", "Name of your custom sorting model");
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
double modelScore = _algoModel.evaluate(params);
doc.trace("rankModelScore: ", modelScore);
double score = modelScore + 700;
return score;
}
};
Ejecutar una prueba de búsqueda
Después de publicar la política de clasificación, compruebe que el modelo afecta los resultados de búsqueda como se espera.
En el panel de navegación izquierdo, seleccione Feature Extensions > Search Test.
-
En la página Search Test, especifique los siguientes parámetros obligatorios:
Parámetro
Descripción
queryLa cadena de consulta de búsqueda
second_rank_typeEl tipo de la etapa de clasificación secundaria
second_rank_nameEl nombre de la política de clasificación que publicó
raw_queryUna consulta de búsqueda única e independiente que devuelve resultados. También es obligatoria en las condiciones de actualización del modelo; consulte Demo code for implementing the search feature
-
Por ejemplo, para comprobar que el script de clasificación fina está activo, introduzca los siguientes valores:
En la barra de consulta, establezca la cláusula query en
default:'黑白'y la cláusula config enstart:0,hit:10,format:fulljson,trace:debug.En el área de parámetros, establezca second_rank_name en
xc, second_rank_type encava_scripty nv_query en黑白.
Después de enviar la búsqueda, revise la información de clasificación en la respuesta. Si la sección SecondRank muestra
rankModeScore:0.5, significa que el script de clasificación fina ha surtido efecto.
Notas de uso
El entrenamiento de un modelo de clasificación personalizado genera cargos adicionales. Para más detalles, consulte Billing overview.
Para consultar operaciones de API y SDK relacionados, véase Algorithms.
Pasos siguientes
Best practices: Create a custom sorting model: ejemplos de extremo a extremo con datos de entrenamiento reales
Feature configuration attributes for custom sorting models: referencia completa de tipos de características y parámetros
Developer guide for custom sorting models: guía de creación de scripts de Python