Compartir a través de


Cómo implementar e inferir con un despliegue de computación administrado

Nota:

Este documento hace referencia al portal de Microsoft Foundry (clásico).

🔍 Consulte la documentación de Microsoft Foundry (nuevo) para obtener información sobre el nuevo portal.

El catálogo de modelos del portal de Microsoft Foundry ofrece más de 1600 modelos. Una manera común de implementar estos modelos es utilizar la opción de despliegue de cómputo administrado. Esta opción también se conoce a veces como una implementación en línea administrada.

Al implementar un modelo de lenguaje grande (LLM), se hace que esté disponible para su uso en un sitio web, una aplicación u otro entorno de producción. La implementación suele implicar hospedar el modelo en un servidor o en la nube y crear una API u otra interfaz para que los usuarios interactúen con el modelo. Puede invocar la implementación para la inferencia en tiempo real de aplicaciones de IA generativa, como chat y Copilot.

En este artículo, aprenderá a implementar modelos con la opción de despliegue computacional administrado y a realizar la inferencia en el modelo implementado.

Prerrequisitos

Búsqueda del modelo en el catálogo de modelos

  1. Inicie sesión en Microsoft Foundry. Asegúrese de que el conmutador New Foundry está desactivado. Estos pasos hacen referencia a Foundry (clásico).
  2. Si aún no está en el proyecto, selecciónelo.
  3. Seleccione Catálogo de modelos en el panel izquierdo.
  1. En el filtro Opciones de implementación, seleccione Proceso administrado.

    Sugerencia

    Dado que puede personalizar el panel izquierdo en el portal de Microsoft Foundry, es posible que vea elementos diferentes de los que se muestran en estos pasos. Si no ve lo que busca, seleccione ... Más en la parte inferior del panel izquierdo.

    Captura de pantalla del catálogo de modelos que muestra cómo filtrar los modelos que se pueden implementar a través del proceso administrado.

  2. Seleccione un modelo para abrir su tarjeta de modelo. En este artículo, use el modelo deepset-roberta-base-squad2.

Implementación del modelo

  1. En la página del modelo, seleccione Usar este modelo para abrir la ventana de implementación.

  2. La ventana de implementación se rellena previamente con algunas selecciones y valores de parámetro. Puede mantenerlos o cambiarlos según sea necesario. También puede seleccionar un punto de conexión existente para la implementación o crear uno nuevo. En este ejemplo, especifique un recuento de instancias de 1 y cree un nuevo punto de conexión para la implementación.

    Captura de pantalla de la configuración de implementación para la implementación de cómputo administrada en Foundry.

  3. Seleccione Implementar para crear la implementación. El proceso de creación puede tardar unos minutos en completarse. Una vez completado, el portal abre la página de implementación del modelo.

    Sugerencia

    Para ver los puntos de conexión implementados en el proyecto, vaya a la sección Mis recursos del panel izquierdo y seleccione Modelos y puntos de conexión.

  4. El punto de conexión creado usa la autenticación de clave para la autorización. Para obtener las claves asociadas a un punto de conexión determinado, siga estos pasos:

    1. Seleccione la implementación y anote el URI de destino y la clave del punto de conexión.
    2. Use estas credenciales para llamar a la implementación y generar predicciones.

Consumo de implementaciones

Después de crear la implementación, siga estos pasos para consumirla:

  1. Seleccione Modelos y puntos de conexión en la sección Mis recursos del proyecto Foundry.
  2. Seleccione la implementación en la pestaña Implementaciones de modelos .
  3. Vaya a la pestaña Prueba para realizar inferencias con muestras en el punto de conexión.
  4. Vuelva a la pestaña Detalles para copiar el "URI de destino" de la implementación, que puede usar para ejecutar la inferencia con código.
  5. Vaya a la pestaña Consumir de la implementación para buscar ejemplos de código para su consumo.
  1. Copie el id. del modelo de la página de detalles del modelo seleccionado. Tiene este aspecto para el modelo seleccionado: azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/17.

Implementación del modelo

  1. Instale el SDK de Azure Machine Learning.

    pip install azure-ai-ml
    pip install azure-identity
    
  2. Autentíquese con Azure Machine Learning y cree un objeto de cliente. Reemplace los marcadores de posición por el identificador de suscripción, el nombre del grupo de recursos y el nombre del proyecto Foundry.

    from azure.ai.ml import MLClient
    from azure.identity import InteractiveBrowserCredential
    
    workspace_ml_client = MLClient(
        credential=InteractiveBrowserCredential,
        subscription_id="your subscription ID goes here",
        resource_group_name="your resource group name goes here",
        workspace_name="your project name goes here",
    )
    
  3. Cree un punto de conexión. Para la opción de implementación de informática gestionada, es necesario crear un punto de conexión antes del despliegue de un modelo. Piense en un punto de conexión como un contenedor que puede albergar múltiples implementaciones de modelos. Los nombres de punto de conexión deben ser únicos en una región, por lo que en este ejemplo se usa la marca de tiempo para crear un nombre de punto de conexión único.

    import time, sys
    from azure.ai.ml.entities import (
        ManagedOnlineEndpoint,
        ManagedOnlineDeployment,
        ProbeSettings,
    )
    
    # Make the endpoint name unique
    timestamp = int(time.time())
    online_endpoint_name = "customize your endpoint name here" + str(timestamp)
    
    # Create an online endpoint
    endpoint = ManagedOnlineEndpoint(
        name=online_endpoint_name,
        auth_mode="key",
    )
    workspace_ml_client.online_endpoints.begin_create_or_update(endpoint).wait()
    
  4. Cree una implementación. Reemplace el identificador de modelo en el código siguiente por el identificador de modelo que copió de la página de detalles del modelo seleccionado en la sección Buscar el modelo en el catálogo de modelos .

    model_name = "azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/17" 
    
    demo_deployment = ManagedOnlineDeployment(
        name="demo",
        endpoint_name=online_endpoint_name,
        model=model_name,
        instance_type="Standard_DS3_v2",
        instance_count=2,
        liveness_probe=ProbeSettings(
            failure_threshold=30,
            success_threshold=1,
            timeout=2,
            period=10,
            initial_delay=1000,
        ),
        readiness_probe=ProbeSettings(
            failure_threshold=10,
            success_threshold=1,
            timeout=10,
            period=10,
            initial_delay=1000,
        ),
    )
    workspace_ml_client.online_deployments.begin_create_or_update(demo_deployment).wait()
    endpoint.traffic = {"demo": 100}
    workspace_ml_client.online_endpoints.begin_create_or_update(endpoint).result()
    

Inferencia de implementación

  1. Necesita datos json de ejemplo para probar la inferencia. Cree sample_score.json con el siguiente código.

    {
      "inputs": {
        "question": [
          "Where do I live?",
          "Where do I live?",
          "What's my name?",
          "Which name is also used to describe the Amazon rainforest in English?"
        ],
        "context": [
          "My name is Wolfgang and I live in Berlin",
          "My name is Sarah and I live in London",
          "My name is Clara and I live in Berkeley.",
          "The Amazon rainforest (Portuguese: Floresta Amaz\u00f4nica or Amaz\u00f4nia; Spanish: Selva Amaz\u00f3nica, Amazon\u00eda or usually Amazonia; French: For\u00eat amazonienne; Dutch: Amazoneregenwoud), also known in English as Amazonia or the Amazon Jungle, is a moist broadleaf forest that covers most of the Amazon basin of South America. This basin encompasses 7,000,000 square kilometres (2,700,000 sq mi), of which 5,500,000 square kilometres (2,100,000 sq mi) are covered by the rainforest. This region includes territory belonging to nine nations. The majority of the forest is contained within Brazil, with 60% of the rainforest, followed by Peru with 13%, Colombia with 10%, and with minor amounts in Venezuela, Ecuador, Bolivia, Guyana, Suriname and French Guiana. States or departments in four nations contain \"Amazonas\" in their names. The Amazon represents over half of the planet's remaining rainforests, and comprises the largest and most biodiverse tract of tropical rainforest in the world, with an estimated 390 billion individual trees divided into 16,000 species."
        ]
      }
    }
    
  2. Inferencia con sample_score.json. Cambie la ubicación del archivo de puntuación en el código siguiente, en función de dónde guardó el archivo json de ejemplo.

    scoring_file = "./sample_score.json" 
    response = workspace_ml_client.online_endpoints.invoke(
        endpoint_name=online_endpoint_name,
        deployment_name="demo",
        request_file=scoring_file,
    )
    response_json = json.loads(response)
    print(json.dumps(response_json, indent=2))
    

Configuración del escalado automático

Para configurar el escalado automático para implementaciones, siga estos pasos:

  1. Inicie sesión en Azure Portal.
  2. Busque el tipo Machine learning online deployment de recurso de Azure para el modelo que acaba de implementar en el grupo de recursos del proyecto de IA.
  3. Seleccione Ajustes>Escalado en el panel izquierdo.
  4. Seleccione Escalado automático personalizado y configure las opciones de escalado automático. Para más información sobre el escalado automático, consulte Escalabilidad automática de puntos de conexión en línea en la documentación de Azure Machine Learning.

Eliminar la implementación

Para eliminar implementaciones en el portal de Foundry, seleccione Eliminar implementación en el panel superior de la página de detalles de implementación.

Consideraciones de cuota

Para implementar y realizar la inferencia con puntos de conexión en tiempo real, se consume la cuota de núcleos de máquina virtual (VM) que Azure asigna a la suscripción por región. Al registrarse en Foundry, recibirá una cuota de máquina virtual predeterminada para varias familias de máquinas virtuales disponibles en la región. Puede seguir creando implementaciones hasta alcanzar el límite de cuota. Una vez que esto suceda, puede solicitar un aumento de cuota.