Train Vowpal Wabbit Version 7-4 Model (entrenar un modelo de Vowpal Wabbit versión 7-4)

Entrena un modelo usando la versión 7-4 del sistema de aprendizaje automático de Vowpal Wabbit

Categoría: Text Analytics

Nota

Se aplica a: machine learning Studio (clásico)

Este contenido solo pertenece a Studio (clásico). Se han agregado módulos similares de arrastrar y colocar al diseñador de Azure Machine Learning. Obtenga más información en este artículo comparativa de las dos versiones.

Información general sobre el módulo

En este artículo se describe cómo usar el módulo entrenar Vowpal Wabbit versión 7-4 en Azure machine learning Studio (clásico) para crear un modelo de aprendizaje automático mediante una instancia de Vowpal Wabbit (versión 7-4).

Para usar Vowpal Wabbit para machine learning, formatee la entrada según los requisitos de Vowpal Wabbit y guarde los datos en un BLOB de Azure. Use este módulo para especificar los argumentos de la línea de comandos de Vowpal Wabbit.

Cuando se ejecuta el experimento, se carga una instancia de Vowpal Wabbit en el tiempo de ejecución del experimento, junto con los datos especificados. Una vez que se completa el entrenamiento, el modelo se vuelve a serializar en el área de trabajo. Puede usar el modelo de inmediato para puntuar los datos. El modelo entrenado también se conserva en Azure Storage para poder usarlo más adelante sin tener que volver a procesar los datos de entrenamiento.

Para entrenar incrementalmente un modelo existente en nuevos datos, conecte un modelo guardado a la entrada de modelo previamente entrenado y agregue los nuevos datos a la otra entrada.

Nota

Azure Machine Learning Studio (clásico) hospeda varias versiones del marco de trabajo de Vowpal Wabbit. En este módulo se usa la versión 7-4 de Vowpal Wabbit. Si crea un modelo mediante este módulo, debe usar el modelo de puntuación correspondiente: score Vowpal Wabbit 7-4.

Para la versión más reciente, use el modelo entrenar Vowpal Wabbit versión 8, junto con su módulo de puntuación, puntuación Vowpal Wabbit 8.

¿Qué es Vowpal Wabbit?

Vowpal Wabbit (VW) es un marco de aprendizaje automático rápido y en paralelo que desarrolló Yahoo! Research para la computación distribuida. Más adelante, John Langford (Microsoft Research) lo llevó a Windows y lo adaptó para la informática científica en arquitecturas paralelas.

Las características de Vowpal Wabbit que son importantes para el aprendizaje automático incluyen el aprendizaje continuo (aprendizaje en línea), la reducción de dimensiones y el aprendizaje interactivo. Vowpal Wabbit también es una solución de problemas cuando no puede ajustar los datos del modelo en la memoria.

Los principales usuarios de Vowpal Wabbit en Azure Machine Learning son científicos de datos que han usado previamente el marco de trabajo para tareas de aprendizaje automático, como la clasificación, la regresión, el modelado de temas o la factorización de matriz. El contenedor de Azure para Vowpal Wabbit tiene características de rendimiento muy similares a la versión local, lo que significa que los usuarios pueden seguir compilando modelos, reentrenar y puntuar mediante las eficaces características y el rendimiento nativo de Vowpal Wabbit, a la vez que obtienen la capacidad de publicar fácilmente el modelo entrenado como un servicio de operaciones.

El módulo hash de características también incluye la funcionalidad proporcionada por Vowpal Wabbit que permite transformar los conjuntos de datos de texto en características binarias mediante un algoritmo hash.

Cómo configurar el modelo Vowpal Wabbit versión 8

En esta sección se describe cómo entrenar un modelo nuevo y cómo agregar datos nuevos a un modelo existente.

A diferencia de otros módulos de Studio (clásico), este módulo especifica los parámetros del módulo y entrena el modelo. Si tiene un modelo existente, puede agregarlo como entrada opcional para entrenar el modelo de forma incremental.

El uso de este módulo requiere la autenticación en una cuenta de almacenamiento de Azure.

Preparar los datos de entrada

Para entrenar un modelo mediante este módulo, el conjunto de datos de entrada debe constar de una sola columna de texto en uno de los dos formatos admitidos: LibSVM o VW. Esto no significa que Vowpal Wabbit solo analice datos de texto, sino que solo que las características y los valores deben estar preparados en el formato de archivo de texto requerido.

Los datos se deben leer desde Azure Storage. No es posible usar exportar datos para guardar directamente el archivo de entrada en Azure para su uso con Vowpal Wabbit, ya que el formato requiere algunas modificaciones adicionales. Debe asegurarse de que los datos tienen el formato correcto y, a continuación, cargar los datos en Azure BLOB Storage.

Sin embargo, como método abreviado, puede utilizar el módulo convertir a SVMLight para generar un archivo de formato SVMLight. Después, puede cargar el archivo de formato SVMLight en el almacenamiento de blobs de Azure y usarlo como entrada, o puede modificar el archivo ligeramente para ajustarse a los requisitos del archivo de entrada Wabbit de Vowpal.

El formato de datos de Vowpal Wabbit tiene la ventaja de que no requiere un formato de columnas, que ahorra espacio al tratar con datos dispersos. Para más información sobre este formato, consulte la página wiki de Vowpal Wabbit.

Crear y entrenar un modelo de Vowpal Wabbit

  1. Agregue el módulo entrenar Vowpal Wabbit versión 7-4 al experimento.

  2. Especifique la cuenta en la que se almacenan los datos de entrenamiento. El modelo entrenado y el archivo de hash se almacenan en la misma ubicación.

    • En nombre de la cuenta de Azure Storage, escriba el nombre de la cuenta de almacenamiento de Azure.

    • Para la clave de almacenamiento de Azure, copie y pegue la clave que se proporciona para acceder a la cuenta de almacenamiento.

    Si no tiene una clave, consulte Cómo regenerar las claves de acceso de almacenamiento .

  3. En nombre de contenedor de Azure, escriba el nombre de un único contenedor en la cuenta de almacenamiento de Azure especificada en la que se almacenan los datos de entrenamiento del modelo. No escriba el nombre de la cuenta ni ningún prefijo de protocolo.

    Por ejemplo, si la ruta de acceso completa del contenedor y el nombre es https://myaccount.blob.core.windows.net/vwmodels , debe escribir simplemente vwmodels . Para obtener más información sobre los nombres de contenedor, vea asignar nombres y hacer referencia a contenedores, blobs y metadatos.

  4. En el cuadro de texto Argumentos de VW, escriba los argumentos de la línea de comandos para el ejecutable de Vowpal Wabbit.

    Por ejemplo, puede agregar –l para especificar la velocidad de aprendizaje o -b para indicar el número de bits de hash.

    Para obtener más información, vea la sección parámetros .

  5. Nombre del archivo VW de entrada: escriba el nombre del archivo que contiene los datos de entrada. El archivo debe ser un archivo existente en el almacenamiento de blobs de Azure, ubicado en la cuenta de almacenamiento y el contenedor especificados anteriormente. El archivo debe haberse preparado con uno de los formatos admitidos.

  6. Nombre del archivo de modelo legible de salida (--readable_model): escriba el nombre de un archivo en el que se debe guardar el modelo entrenado. El archivo debe guardarse en la misma cuenta de almacenamiento y en el mismo contenedor que el archivo de entrada.

    Este argumento corresponde al parámetro --readable_model en la línea de comandos de VW.

  7. Nombre del archivo hash invertido de salida (--invert_hash): escriba el nombre del archivo en el que se debe guardar la función de hash invertida. El archivo debe guardarse en la misma cuenta de almacenamiento y en el mismo contenedor que el archivo de entrada.

    Este argumento corresponde al parámetro --invert_hash en la línea de comandos de VW.

  8. Especifique el tipo de archivo: indique el formato que utilizarán los datos de entrenamiento. Vowpal Wabbit admite estos dos formatos de archivo de entrada:

    • VW representa el formato interno usado por Vowpal Wabbit.

    • SVMLight es un formato que usan algunas de las otras herramientas de aprendizaje automático.

  9. Seleccione la opción usar resultados almacenados en caché si no desea cargar los datos desde el almacenamiento cada vez que se vuelva a reun. Si no ha cambiado ningún otro parámetro y se encuentra una caché válida, Studio (clásico) usa una versión en caché de los datos.

    Si se anula la selección de esta opción, el módulo siempre lee los datos del almacenamiento.

  10. Ejecute el experimento.

  11. Una vez generado el modelo, haga clic con el botón derecho en la salida de entrenar Vowpal Wabbit versión 7-4 y seleccione Guardar como modelo entrenado para que pueda volver a usar y volver a entrenar el modelo más adelante.

Reciclaje de un modelo existente de Vowpal Wabbit

Vowpal Wabbit admite el entrenamiento incremental al agregar datos nuevos a un modelo existente. Hay dos maneras de obtener un modelo existente para el reentrenamiento:

  • Use la salida de otro módulo Train Vowpal Wabbit versión 7-4 en el mismo experimento.

  • Busque un modelo guardado en el panel de navegación izquierdo del grupo de modelos entrenados (clásico) y arrástrelo al experimento.

  1. Agregue el módulo entrenar Vowpal Wabbit versión 7-4 al experimento.

  2. Conecte el modelo entrenado previamente al puerto de entrada de Train Vowpal Wabbit versión 7-4.

  3. En el panel de propiedades de entrenar Vowpal Wabbit versión 7-4, especifique la ubicación y el formato de los nuevos datos de entrenamiento.

  4. Especifique un nombre para el archivo de salida del modelo legible y otro nombre para el archivo hash asociado al modelo actualizado.

    Nota

    Si hay un modelo de Vowpal Wabbit o un archivo hash existente en la ubicación especificada, el nuevo modelo entrenado sobrescribe los archivos de forma silenciosa. Para conservar los modelos intermedios al volver a entrenar, debe cambiar la ubicación de almacenamiento o hacer una copia local de los archivos de modelo.

  5. Ejecute el experimento.

  6. Haga clic con el botón derecho en el módulo y seleccione Guardar como modelo entrenado para conservar el modelo actualizado en el área de trabajo Azure machine learning. Si no especifica un nombre nuevo, el modelo actualizado sobrescribe el modelo guardado existente.

Ejemplos

Para obtener ejemplos de cómo se puede usar Vowpal Wabbit en el aprendizaje automático, consulte la Azure AI Gallery:

  • Ejemplo de Vowpal Wabbit

    Este experimento muestra la Prepration de datos, el entrenamiento y la operacionalización de un modelo VW.

Además, consulte estos recursos:

Notas técnicas

Esta sección contiene detalles de implementación, sugerencias y respuestas a las preguntas más frecuentes.

Ventajas de Vowpal Wabbit

Vowpal Wabbit proporciona un aprendizaje extremadamente rápido sobre características no lineales como n gramos.

Vowpal Wabbit usa técnicas de aprendizaje en línea, como descenso de gradiente estocástico (SGD), para ajustar un modelo a un registro en cada momento. Por lo tanto, itera muy rápidamente sobre datos sin procesar y puede desarrollar un buen predictor más rápido que la mayoría de otros modelos. Este enfoque también evita tener que leer todos los datos de entrenamiento en la memoria.

Vowpal Wabbit convierte todos los datos en hashes, no solo los datos de texto, sino otras variables de categorías. El uso de hashes hace que la búsqueda de pesos de regresión sea más eficaz, que es fundamental para el descenso de gradiente estocástico.

Durante el entrenamiento, el módulo realiza llamadas en un contenedor Vowpal Wabbit desarrollado para Azure. Los datos de entrenamiento se descargan en bloques de Azure, usando el alto ancho de banda entre los roles de trabajo que ejecutan los cálculos y el almacén, y se transmiten a los profesionales del VW. El modelo resultante suele ser muy compacto debido a la compresión interna realizada por VW. El modelo se vuelve a copiar en el área de trabajo del experimento, donde se puede usar como otros modelos en Azure Machine Learning.

Parámetros compatibles y no compatibles

No puede usar los siguientes argumentos de línea de comandos en Azure Machine Learning Studio (clásico).

  • Las opciones de entrada/salida especificadas en https://github.com/JohnLangford/vowpal_wabbit/wiki/Command-line-arguments

    El módulo ya configura automáticamente estas propiedades.

  • Tampoco se permite ninguna opción que genere o acepte varias salidas. Estas incluyen --cbt , --lda y --wap .

  • Solo se admiten algoritmos de aprendizaje supervisado. Por lo tanto, no se admiten estas opciones: –active , --rank, --search etc.

Se permiten todos los argumentos distintos de los descritos anteriormente.

Para ver una lista completa de los argumentos, consulte la página wiki de Vowpal Wabbit.

Restricciones

Como el objetivo del servicio es admitir usuarios experimentados de Vowpal Wabbit, los datos de entrada se deben preparar con anterioridad con el formato de texto nativo de Vowpal Wabbit en lugar del formato del conjunto de datos que usan otros módulos.

En lugar de usar datos en el área de trabajo de aprendizaje automático de Azure, los datos de entrenamiento se transmiten directamente desde Azure, para un rendimiento máximo y una sobrecarga de análisis mínima. Por esta razón, solo hay una interoperabilidad limitada entre los módulos del VW y otros módulos en aprendizaje automático de Azure.

Parámetros del módulo

Nombre Intervalo Tipo Valor predeterminado Descripción
Nombre de la cuenta de almacenamiento de Azure cualquiera String ninguno Escribir el nombre de la cuenta de almacenamiento de Azure
Claves de Azure Storage cualquiera SecureString ninguno Proporcionar la clave de almacenamiento de Azure
Nombre del contenedor de Azure cualquiera String ninguno Escribir el nombre del contenedor de Azure
Argumentos de VW cualquiera String ninguno Especificar cualquier argumento de Vowpal Wabbit

El argumento – f no se admite.
Nombre del archivo de VW de entrada cualquiera String ninguno Especificar el nombre de un archivo de entrada con el formato de Vowpal Wabbit
Nombre del archivo del modelo legible de salida (--readable_model) cualquiera String Si se especifica, vuelve a generar un modelo legible en el contenedor de Azure.

Este argumento es opcional.
Nombre del archivo hash invertido de salida (--invert_hash) cualquiera String Si se especifica, vuelve a generar un archivo que contiene la función hash invertida en el contenedor de Azure.

Este argumento es opcional.
Especifique el tipo de archivo. VW

SVMLight
DataType VW Indica si el tipo de archivo utiliza el formato SVMLight o el formato Vowpal Wabbit.

Salidas

Nombre Tipo Descripción
Modelo entrenado Interfaz ILearner Aprendiz entrenado

Excepciones

Excepción Descripción
Error 0001 Se produce una excepción si no se encontraron una o más columnas especificadas del conjunto de datos.
Error 0003 Se produce una excepción si una o varias de las entradas son NULL o están vacías.
Error 0004 Se produce una excepción si el parámetro es menor o igual que el valor especificado.
Error 0017 Se produce una excepción si una o varias columnas especificadas tienen un tipo no compatible con el módulo actual.

Para obtener una lista de los errores específicos de los módulos de Studio (clásico), consulte Machine Learning de los códigos de error.

Para obtener una lista de excepciones de API, consulte códigos de error de la API de REST de machine learning.

Vea también

Text Analytics
Hash de características
Reconocimiento de entidades con nombre
Puntuar Vowpal Wabbit modelo 7-4
Entrenar Vowpal Wabbit
Lista de módulos A-Z