Prácticas recomendadas de entrenamiento de modelos - Amazon Neptune

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Prácticas recomendadas de entrenamiento de modelos

Hay cosas que puede hacer para mejorar el rendimiento de los modelos de Neptune ML.

Selección de la propiedad de nodo correcta

Es posible que no todas las propiedades del gráfico sean significativas o relevantes para las tareas de machine learning. Debe excluirse cualquier propiedad irrelevante durante la exportación de datos.

A continuación le presentamos algunas prácticas recomendadas:

  • Recurra a expertos en la materia para que le ayuden a evaluar la importancia de las características y la viabilidad de utilizarlas para hacer predicciones.

  • Elimine las características que considere redundantes o irrelevantes para reducir el ruido en los datos y las correlaciones sin importancia.

  • Realice iteraciones a medida que crea el modelo. Ajuste las características, las combinaciones de características y ajuste los objetivos a medida que avanza.

En la sección Procesamiento de características de la Guía para desarrolladores de Amazon Machine Learning se proporcionan directrices adicionales para el procesamiento de características que son relevantes para Neptune ML.

Gestión de puntos de datos atípicos

Un valor atípico es un punto de datos que difiere bastante del resto de datos. Los valores atípicos de los datos pueden confundir o engañar al proceso de entrenamiento, lo que se traduce en un tiempo de entrenamiento más prolongado o en modelos menos precisos. A menos que sean realmente importantes, debe eliminar los valores atípicos antes de exportar los datos.

Eliminación de los nodos y bordes duplicados

Los gráficos almacenados en Neptune pueden tener nodos o bordes duplicados. Estos elementos redundantes introducirán ruido durante el entrenamiento de modelos de ML. Elimine los nodos o bordes duplicados antes de exportar los datos.

Ajuste de la estructura del gráfico

Al exportar el gráfico, puede cambiar la forma en que se procesan las características y cómo se crea el gráfico para mejorar el rendimiento del modelo.

A continuación le presentamos algunas prácticas recomendadas:

  • Cuando una propiedad de borde tiene el significado de categorías de bordes, en algunos casos, merece la pena convertirla en tipos de borde.

  • La política de normalización predeterminada que se utiliza para una propiedad numérica es min-max, pero, en algunos casos, otras políticas de normalización funcionan mejor. Puede preprocesar la propiedad y cambiar la política de normalización, tal y como se explica en Elementos de un archivo model-HPO-configuration.json.

  • El proceso de exportación genera automáticamente tipos de características en función de los tipos de propiedad. Por ejemplo, trata las propiedades de String como características categóricas y las propiedades de Float y Int como características numéricas. Si fuera necesario, puede modificar el tipo de característica después de la exportación (consulte Elementos de un archivo model-HPO-configuration.json).

Ajuste de los rangos y valores predeterminados de los hiperparámetros

La operación de procesamiento de datos infiere los rangos de configuración de los hiperparámetros a partir del gráfico. Si los rangos de hiperparámetros y los valores predeterminados del modelo generados no funcionan bien con los datos del gráfico, puede editar el archivo de configuración de HPO para crear su propia estrategia de ajuste de hiperparámetros.

A continuación le presentamos algunas prácticas recomendadas:

  • Al ampliar el gráfico, es posible que el tamaño predeterminado de la dimensión oculta no sea lo suficientemente grande como para incluir toda la información. Puede cambiar el hiperparámetro num-hidden para controlar el tamaño de la dimensión oculta.

  • En el caso de los modelos de incrustación de gráficos de conocimientos (KGE), es posible que desee cambiar el modelo específico que se utiliza en función del presupuesto y la estructura del gráfico.

    Los modelos de TrainsE tienen dificultades para tratar relaciones de uno a muchos (1-N), de muchos a uno (N-1) y de muchos a muchos (N-N). Los modelos de DistMult tienen dificultades para tratar las relaciones simétricas. RotatE es una buena opción para modelar todo tipo de relaciones, pero es más caro que TrainsE y DistMult durante el entrenamiento.

  • En algunos casos, cuando la identificación del nodo y la información de las características del nodo son importantes, debe utilizar `concat-node-embed` para indicar al modelo de Neptune ML que obtenga la representación inicial de un nodo mediante la concatenación de sus características con sus incrustaciones iniciales.

  • Si obtiene un rendimiento razonablemente bueno con algunos hiperparámetros, puede ajustar el espacio de búsqueda de hiperparámetros en función de estos resultados.

Detención temprana del proceso de entrenamiento de modelos en Neptune ML

La detención temprana puede reducir considerablemente el tiempo de ejecución del entrenamiento de modelos y los costos asociados sin degradar el rendimiento de los modelos. También evita que el modelo se sobreajuste a los datos de entrenamiento.

La detención temprana depende de las mediciones periódicas del rendimiento del conjunto de validación. Inicialmente, el rendimiento mejora a medida que avanza el entrenamiento, pero cuando el modelo comienza a sobreajustarse, vuelve a disminuir. La característica de detención temprana identifica el punto en el que el modelo comienza a sobreajustarse y detiene el entrenamiento del modelo en ese momento.

Neptune ML supervisa las llamadas a las métricas de validación y compara la métrica de validación más reciente con el promedio de las métricas de validación de las últimas evaluaciones de n, donde n es un número establecido mediante el parámetro window-for-early-stop. En cuanto la métrica de validación es inferior al promedio, Neptune ML detiene el entrenamiento del modelo y guarda el mejor modelo hasta el momento.

Puede controlar la detención temprana mediante los siguientes parámetros:

  • window-for-early-stop: el valor de este parámetro es un número entero que especifica el número de puntuaciones de validación recientes que se van a promediar cuando se decide si realizar una detención temprana. El valor predeterminado es 3.

  • enable-early-stop: utilice este parámetro booleano para desactivar la característica de detención temprana. De forma predeterminada su valor es true.

Detención temprana del proceso de HPO en Neptune ML

La característica de detención temprana de Neptune ML también detiene los trabajos de entrenamiento que no tienen un buen rendimiento en comparación con otros trabajos, mediante la característica de inicio en caliente de HPO de SageMaker. Esto también puede reducir los costos y mejorar la calidad de HPO.

Consulte Ejecución de un trabajo de ajuste de hiperparámetros de inicio en caliente para obtener una descripción de su funcionamiento.

El inicio en caliente permite transferir la información aprendida en trabajos de entrenamiento anteriores a trabajos de entrenamiento posteriores y ofrece dos ventajas bien diferenciadas:

  • En primer lugar, los resultados de los trabajos de entrenamiento anteriores se utilizan para seleccionar combinaciones correctas de hiperparámetros para realizar búsquedas en el nuevo trabajo de ajuste.

  • En segundo lugar, permite una detención temprana para acceder a más ejecuciones del modelo, lo que reduce el tiempo de ajuste.

Esta característica se habilita automáticamente en Neptune ML y le permite lograr un equilibrio entre el tiempo de entrenamiento del modelo y el rendimiento. Si está satisfecho con el rendimiento del modelo actual, puede utilizar ese modelo. De lo contrario, ejecute más HPO que se inicien en caliente con los resultados de ejecuciones anteriores para descubrir un modelo mejor.

Obtener servicios de soporte profesional

AWS ofrece servicios de soporte profesional para ayudarle con los problemas del machine learning en los proyectos de Neptune. Si se queda bloqueado, póngase en contacto con AWS Support.