Repetición del entrenamiento e implementación de un servicio web de Studio (clásico)Retrain and deploy a classic Studio (classic) web service

SE APLICA A: Marca de verificación verde.Machine Learning Studio (clásico) La X indica "no".Azure Machine LearningAPPLIES TO: Green check mark.Machine Learning Studio (classic) X indicating no.Azure Machine Learning

Una forma de garantizar que los modelos de Machine Learning siguen siendo precisos y se basan en los datos más adecuados disponibles, es volver a entrenarlos.Retraining machine learning models is one way to ensure they stay accurate and based on the most relevant data available. En este artículo se muestra cómo volver a entrenar un servicio web de Studio clásico.This article will show you how to retrain a classic Studio (classic) web service. Para más información acerca de cómo volver a entrenar un nuevo servicio web de Studio (clásico), consulte este artículo de procedimientos.For a guide on how to retrain a new Studio (classic) web service, view this how-to article.

Requisitos previosPrerequisites

En este artículo se asume que tiene un experimento de reciclaje y un experimento de predicción.This article assumes you already have both a retraining experiment and a predictive experiment. Estos pasos se explican en Reciclaje de un modelo de Azure Machine Learning Studio.These steps are explained in Retrain and deploy a machine learning model. Sin embargo, en lugar de implementar el modelo de Machine Learning como un servicio web nuevo, implementará el experimento de predicción como un servicio web clásico.However, instead of deploying your machine learning model as a new web service, you will deploy your predictive experiment as a classic web service.

Adición de un punto de conexión nuevoAdd a new endpoint

El servicio web de predicción que ha implementado contiene un punto de conexión de puntuación predeterminado que se mantiene sincronizado con el entrenamiento original y el modelo entrenado de experimentos de puntuación.The predictive web service that you deployed contains a default scoring endpoint that is kept in sync with the original training and scoring experiments trained model. Para actualizar el servicio web a un nuevo modelo entrenado, debe crear un nuevo punto de conexión para la puntuación.To update your web service to with a new trained model, you must create a new scoring endpoint.

Hay dos formas en que puede agregar un nuevo punto de conexión a un servicio web:There are two ways in which you can add a new end point to a web service:

  • De manera programáticaProgrammatically
  • Mediante el portal de Azure Web ServicesUsing the Azure Web Services portal

Nota

Asegúrese de agregar el punto de conexión al servicio web predictivo y no al de entrenamiento.Be sure you are adding the endpoint to the Predictive Web Service, not the Training Web Service. Si ha implementado correctamente un servicio web predictivo y otro de entrenamiento, debería ver dos servicios web independientes.If you have correctly deployed both a Training and a Predictive Web Service, you should see two separate web services listed. El servicio web predictivo debe terminar con "[predictive exp.]".The Predictive Web Service should end with "[predictive exp.]".

Incorporación de un punto de conexión mediante programaciónProgrammatically add an endpoint

También puede agregar puntos de conexión de puntuación mediante el código de ejemplo proporcionado en este repositorio de GitHub.You can add scoring endpoints using the sample code provided in this GitHub repository.

Uso del portal de Azure Web Services para agregar un punto de conexiónUse the Azure Web Services portal to add an endpoint

  1. En Machine Learning Studio (clásico), en la columna de navegación izquierda, haga clic en Servicios web.In Machine Learning Studio (classic), on the left navigation column, click Web Services.
  2. En la parte inferior del panel de servicios web, haga clic en Manage endpoints preview(Administrar versión preliminar de puntos de conexión).At the bottom of the web service dashboard, click Manage endpoints preview.
  3. Haga clic en Agregar.Click Add.
  4. Escriba un nombre y una descripción para el nuevo punto de conexión.Type a name and description for the new endpoint. Seleccione el nivel de registro y si los datos de ejemplo están habilitados.Select the logging level and whether sample data is enabled. Para más información sobre los registros, vea Habilitar el registro para los servicios web de Machine Learning.For more information on logging, see Enable logging for Machine Learning web services.

Actualización del modelo entrenado del punto de conexión agregadoUpdate the added endpoint's trained model

Recuperación de URL de PATCHRetrieve PATCH URL

Para obtener el valor correcto de URL de PATCH mediante el portal web, siga estos pasos:Follow these steps to get the correct PATCH URL using the web portal:

  1. Inicie sesión en el portal Servicios web Azure Machine Learning.Sign in to the Azure Machine Learning Web Services portal.
  2. Haga clic en Web Services (Servicios web) o Classic Web Services (Servicios web clásicos) en la parte superior.Click Web Services or Classic Web Services at the top.
  3. Haga clic en el servicio web de puntuación con el que trabaja (si no ha modificado el nombre predeterminado del servicio web, terminará en "[Scoring Exp.]").Click the scoring web service you're working with (if you didn't modify the default name of the web service, it will end in "[Scoring Exp.]").
  4. Haga clic en + NUEVO.Click +NEW.
  5. Una vez agregado el punto de conexión, haga clic en su nombre.After the endpoint is added, click the endpoint name.
  6. En la dirección URL de Revisión, haga clic en API Help (Ayuda de API) para abrir la página de ayuda de la aplicación de revisiones.Under the Patch URL, click API Help to open the patching help page.

Nota

Si ha agregado el punto de conexión al servicio web de entrenamiento en lugar de al de predicción, verá el siguiente mensaje de error al hacer clic en el vínculo Update Resource (Actualizar recurso): "Sorry, but this feature is not supported or available in this context." (Lo sentimos, pero esta característica no se admite ni está disponible en este contexto).If you added the endpoint to the Training Web Service instead of the Predictive Web Service, you will receive the following error when you click the Update Resource link: "Sorry, but this feature is not supported or available in this context. Este servicio web no tiene ningún recurso actualizable.This Web Service has no updatable resources. Sentimos las molestias. Estamos trabajando en mejorar este flujo de trabajo."We apologize for the inconvenience and are working on improving this workflow."

La página de ayuda sobre PATCH contiene el valor de PATCH URL que debe usar y proporciona un código de ejemplo que puede usar para realizar la llamada.The PATCH help page contains the PATCH URL you must use and provides sample code you can use to call it.

PATCH URL.

Actualización del punto de conexiónUpdate the endpoint

Ahora puede usar el modelo entrenado para actualizar el punto de conexión de puntuación que creó anteriormente.You can now use the trained model to update the scoring endpoint that you created previously.

El código de ejemplo siguiente muestra cómo utilizar BaseLocation, RelativeLocation, SasBlobToken y el valor de PATCH URL para actualizar el punto de conexión.The following sample code shows you how to use the BaseLocation, RelativeLocation, SasBlobToken, and PATCH URL to update the endpoint.

private async Task OverwriteModel()
{
    var resourceLocations = new
    {
        Resources = new[]
        {
            new
            {
                Name = "Census Model [trained model]",
                Location = new AzureBlobDataReference()
                {
                    BaseLocation = "https://esintussouthsus.blob.core.windows.net/",
                    RelativeLocation = "your endpoint relative location", //from the output, for example: "experimentoutput/8946abfd-79d6-4438-89a9-3e5d109183/8946abfd-79d6-4438-89a9-3e5d109183.ilearner"
                    SasBlobToken = "your endpoint SAS blob token" //from the output, for example: "?sv=2013-08-15&sr=c&sig=37lTTfngRwxCcf94%3D&st=2015-01-30T22%3A53%3A06Z&se=2015-01-31T22%3A58%3A06Z&sp=rl"
                }
            }
        }
    };

    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);

        using (var request = new HttpRequestMessage(new HttpMethod("PATCH"), endpointUrl))
        {
            request.Content = new StringContent(JsonConvert.SerializeObject(resourceLocations), System.Text.Encoding.UTF8, "application/json");
            HttpResponseMessage response = await client.SendAsync(request);

            if (!response.IsSuccessStatusCode)
            {
                await WriteFailedResponse(response);
            }

            // Do what you want with a successful response here.
        }
    }
}

Se puede obtener apiKey y endpointUrl para la llamada desde el panel del punto de conexión.The apiKey and the endpointUrl for the call can be obtained from endpoint dashboard.

El valor del parámetro Name de Resources debe coincidir con el nombre del recurso del modelo entrenado guardado en el experimento predictivo.The value of the Name parameter in Resources should match the Resource Name of the saved Trained Model in the predictive experiment. Para obtener el nombre del recurso:To get the Resource Name:

  1. Inicie sesión en Azure Portal.Sign in to the Azure portal.
  2. Haga clic en Machine Learning en el menú izquierdo.In the left menu, click Machine Learning.
  3. En Nombre, haga clic en el área de trabajo y, a continuación, haga clic en Servicios web.Under Name, click your workspace and then click Web Services.
  4. En Nombre, haga clic en Census Model [predictive exp.] (Modelo de censo [exp. predictivo]).Under Name, click Census Model [predictive exp.].
  5. Haga clic en el nuevo punto de conexión que ha agregado.Click the new endpoint you added.
  6. En el panel del punto de conexión, haga clic en Actualizar recurso.On the endpoint dashboard, click Update Resource.
  7. En la página de documentación de la API de actualización de recurso para el servicio web, encontrará el nombre del recurso en Updatable Resources (Recursos actualizables).On the Update Resource API Documentation page for the web service, you can find the Resource Name under Updatable Resources.

Si el token de SAS expira antes de que termine de actualizar el punto de conexión, debe realizar una operación GET con el Id. del trabajo para obtener un nuevo token.If your SAS token expires before you finish updating the endpoint, you must perform a GET with the Job ID to obtain a fresh token.

Si el código se ha ejecutado correctamente, el nuevo punto de conexión debería comenzar a utilizar el modelo reentrenado en aproximadamente 30 segundos.When the code has successfully run, the new endpoint should start using the retrained model in approximately 30 seconds.

Pasos siguientesNext steps

Para más información acerca de cómo administrar los servicios web o realizar un seguimiento de la ejecución de varios experimentos, consulte los artículos siguientes:To learn more about how to manage web services or keep track of multiple experiments runs, see the following articles: