Implementación de modelos de código abierto con proceso administrado (versión preliminar)

Note

El proceso administrado en Foundry se encuentra actualmente en versión preliminar pública y se requiere el registro para usarlo. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las cargas de trabajo de producción. Es posible que algunas características no se admitan o que tengan funcionalidades restringidas. Para más información, consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure.

La implementación de proceso administrado (versión preliminar) en Microsoft Foundry hospeda modelos de código abierto en una capacidad de GPU dedicada. Microsoft se encarga de la topología de las GPU, el entorno de ejecución, la imagen del contenedor y la aplicación de parches de seguridad. Elija el modelo, la plantilla de implementación, la familia de aceleradores y el comportamiento de escalado que se ajusten a la carga de trabajo. En este artículo se explica el flujo de trabajo de un extremo a otro para implementar un modelo de código abierto en un proceso administrado en Microsoft Foundry.

En este artículo aprenderá a:

  • Elegir un modelo en el catálogo de modelos
  • Selección de una plantilla de implementación
  • Implementación del modelo mediante el portal de Foundry o el SDK de Python
  • Realizar inferencias mediante el SDK de OpenAI
  • Escalado y supervisión de la implementación
  • Solicitar más cuota

Para obtener información general sobre la implementación de proceso administrada en Foundry, incluidas instancias de modelo, plantillas de implementación, entornos de ejecución, familias de aceleradores, facturación y limitaciones actuales, consulte Proceso administrado en Microsoft Foundry (versión preliminar).

Prerequisites

  • Una suscripción de Azure activa. Para crear una, consulte Crear la cuenta gratuita de Azure.

  • Un grupo de recursos de la suscripción donde tiene permiso para crear recursos.

  • Una cuenta de Microsoft Foundry (cuenta de Cognitive Services de tipo AIServices) y un proyecto Foundry. Para crear uno, vea Crear un proyecto de Foundry.

  • Las siguientes asignaciones de roles de Azure en el ámbito de la cuenta de Foundry:

  • Cuota de proceso administrado aprobada para la familia de aceleradores en la que planea implementar (A100, H100 o MI300X) en la región de destino. La cuota de proceso administrado es independiente de la cuota de máquinas virtuales de Azure. Consulte Solicitar más cuota al final de este artículo.

  • Herramientas locales para el SDK y ejemplos de la CLI:

    pip install "azure-mgmt-cognitiveservices==15.0.0b2" azure-identity openai requests
    az login
    
  • CLI de Azure 2.60 o posterior.

Importante

La capacidad de proceso administrada en Foundry está en versión preliminar pública. Las API, los nombres de SKU y las regiones admitidas pueden cambiar antes de la disponibilidad general. El filtrado de contenido integrado no forma parte de la ruta de datos del proceso administrado en versión preliminar pública. Si necesita filtrado de nivel de solicitud o de nivel de respuesta, llame a las API Seguridad del contenido de Azure AI directamente desde la aplicación.

Elección de un modelo en el catálogo

Proceso administrado implementa modelos de la Colección Hugging Face en el catálogo de modelos de Foundry, servidos desde el registro de azure-huggingface.

  1. Inicie sesión en Microsoft Foundry. Asegúrese de que el interruptor New Foundry está activado. Estos pasos hacen referencia a Foundry (nuevo).
  2. Seleccione la suscripción y el recurso Foundry.
  3. Seleccione Compilar en el panel superior derecho y, a continuación, seleccione Modelos en el panel izquierdo.
  4. Filtre el catálogo por Colecciones. Elija Hugging Face. También puede usar cualquiera de los otros filtros para restringir el modelo que desea implementar (por ejemplo, elegir una familia de modelos como Qwen) o por modalidad o tarea. También puede buscar por nombre del modelo.
  5. Seleccione una tarjeta de modelo (por ejemplo, nvidia-nemotron-3-nano-30b-a3b-fp8) para abrir sus detalles.

La tarjeta de modelo muestra la licencia ascendente, la modalidad, las tareas admitidas y las plantillas de implementación publicadas para el modelo. Si planea realizar la implementación mediante el SDK de Python o REST en lugar de usar el asistente del portal, necesitará tres valores como entrada para la llamada de implementación. Puede encontrar estos valores en el portal de Foundry de la siguiente manera:

  • ID del modelo: identificador completo del recurso del registro para el modelo. Disponible en la tarjeta de modelo del catálogo (copie desde el panel de detalles del modelo). Ejemplo:

    azureml://registries/azure-huggingface/models/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8/versions/2
    
  • Identificador de plantilla de implementación: identifica el entorno de ejecución, la familia y el número de aceleradores, y la longitud de contexto del modelo. Disponible en el Asistente para la implementación que se abre al seleccionar Implementar en la tarjeta de modelo. Seleccione una plantilla y copie el identificador de plantilla de implementación del asistente. Ejemplo:

    azureml://registries/azure-huggingface/deploymenttemplates/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8--nvidia-h100/labels/latest
    

    Note

    Un identificador de modelo y un identificador de plantilla de implementación deben ser compatibles; cada plantilla muestra las versiones del modelo que admite. El asistente del portal solo muestra plantillas compatibles para el modelo seleccionado. Si implementa mediante código, compruebe que ambas referencias se resuelven en recursos válidos del registro en el registro de azure-huggingface.

    Para obtener más información sobre las plantillas de implementación, consulte Plantilla de implementación en el artículo de introducción al proceso administrado.

  • Tipo de acelerador: por ejemplo H100_80GB, , A100_80GBo MI_300_192GB. Se muestra junto a cada plantilla en el Asistente para implementación.

Implementación del modelo

  1. Seleccione Implementar en la tarjeta de modelo para abrir el Asistente para la implementación.

  2. Especifique un nombre de implementación. El nombre de la implementación es el valor que la aplicación envía en el campo model en tiempo de inferencia; elija un nombre estable y adecuado para la aplicación (por ejemplo, nemotron-3-nano-30b).

  3. El tipo de implementación (Proceso administrado global) está seleccionado previamente en el Asistente para la implementación.

  4. Seleccione la plantilla de implementación que se ajuste a su carga de trabajo. Por ejemplo, la plantilla H100 de un acelerador para obtener el menor coste con una longitud de contexto moderada, o una plantilla de dos aceleradores si sus indicaciones superan el límite de contexto de un acelerador.

  5. Seleccione el tipo acelerador, por ejemplo, H100_80GB.

  6. Establezca Instancias de modelo en 1 (o superior si ha medido la carga de trabajo). Las instancias de modelo determinan el tamaño del proceso de cálculo administrado y corresponden al valor capacity de la SKU de implementación. Cada instancia consume el recuento de aceleradores definido por la plantilla; por ejemplo, una plantilla que especifica un H100 por instancia con capacidad 2 usa dos aceleradores H100 en total.

    Tip

    Comience con capacity: 1 para una primera implementación y, a continuación, escale horizontalmente aumentando la capacidad después de medir la carga de trabajo. Consulte Administración y escalado de la implementación para obtener información sobre cómo aumentar la capacidad.

  7. Active la casilla para confirmar el costo de la implementación.

  8. Seleccione Implementar. El aprovisionamiento suele tardar entre 10 y 15 minutos.

Comprobación de la implementación

La página de detalles de la implementación se actualiza de Creating a Succeeded cuando el modelo está activo detrás del punto de conexión de Foundry. Puede ver detalles sobre la implementación, incluido el estado de aprovisionamiento, el tipo de implementación y otras selecciones realizadas al crear la implementación.

Envío de una solicitud de prueba

Cuando la implementación esté lista, pruárela de forma interactiva en foundry Playground.

  1. Seleccione la pestaña Parque infantil para cambiar a ella desde la página Detalles de implementación.
  2. Envíe un prompt para probar el despliegue.

Supervisa la implementación.

Las implementaciones de proceso administradas emiten métricas en la misma superficie de Azure Monitor que otras implementaciones de Foundry. En la página de detalles de implementación del portal de Foundry, la pestaña Supervisión muestra:

  • Número de solicitudes agrupado por código de estado HTTP.
  • Percentiles de tiempo de respuesta (p50, p90, p99).
  • Para modelos de finalizaciones de chat: recuentos de tokens de entrada y salida, percentiles de tiempo al primer token (TTFT) y percentiles de tiempo de descodificación entre tokens.

Para un análisis o alerta más profundo, abra la implementación en el portal Azure y use Metrics en Monitoring para trazar las mismas métricas, agrupar por implementación y configurar alertas. Las etiquetas de facturación por implementación se emiten automáticamente. Filtra Cost Management por la etiqueta de implementación para atribuir el gasto a una implementación específica de proceso de computación administrado. Para obtener más información, consulte Plan y administrar los costos de Microsoft Foundry.

Eliminar la implementación

Al eliminar un despliegue se libera la asignación de aceleradores y se detiene la facturación inmediatamente. Para eliminar una implementación:

  1. Vaya a la lista de implementaciones en el portal de Foundry.
  2. Seleccione el botón de radio situado junto al nombre de la implementación.
  3. En el panel derecho, seleccione Eliminar.

Solicitar más cuota

La cuota de proceso administrado se concede por familia de aceleradores y por región a través del proceso de cuota de Foundry y es independiente de la cuota de Azure Virtual Machines. La cuota de máquina virtual Azure existente no se puede aplicar a una implementación de proceso administrada.

Para solicitar más cuota:

  1. Seleccione Operaciones en la navegación superior derecha y, a continuación, Cuota en el panel izquierdo.
  2. Seleccione la pestaña Proceso administrado . En la tabla se enumeran las asignaciones actuales agrupadas por familia y región del acelerador.
  3. Seleccione Solicitar cuota en la esquina superior derecha.
  4. En el formulario de solicitud, elija la familia de aceleradores (A100, H100 o MI300X), la región de destino y la cuota solicitada. Envíe la solicitud.

Espere hasta 15 minutos para que un cambio de cuota aprobado surta efecto. Actualice la página Cuota para comprobar la asignación actualizada. Para obtener más información sobre los conceptos relacionados con las cuotas, consulte Administrar y aumentar las cuotas de los recursos.

Use el siguiente script de Python para implementar el modelo. Reemplace los marcadores de posición por su propio identificador de suscripción, grupo de recursos, nombre de cuenta de Foundry y nombre de implementación.

Tip

Comience con capacity: 1 para una primera implementación y, a continuación, escale horizontalmente aumentando la capacidad después de medir la carga de trabajo. Consulte Administración y escalado de la implementación para obtener información sobre cómo aumentar la capacidad.

from azure.identity import DefaultAzureCredential
from azure.mgmt.cognitiveservices import CognitiveServicesManagementClient

SUBSCRIPTION_ID  = "<your-subscription-id>"
RESOURCE_GROUP   = "<your-resource-group>"
ACCOUNT_NAME     = "<your-foundry-account>"
DEPLOYMENT_NAME  = "nemotron-3-nano-30b"

MODEL = "azureml://registries/azure-huggingface/models/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8/versions/2"
TEMPLATE = "azureml://registries/azure-huggingface/deploymenttemplates/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8--nvidia-h100/labels/latest"

client = CognitiveServicesManagementClient(
    DefaultAzureCredential(), SUBSCRIPTION_ID
)

deployment = client.managed_compute_deployments.begin_create_or_update(
    resource_group_name=RESOURCE_GROUP,
    account_name=ACCOUNT_NAME,
    deployment_name=DEPLOYMENT_NAME,
    resource={
        "sku": {"name": "GlobalManagedCompute", "capacity": 1},
        "properties": {
            "model": MODEL,
            "deploymentTemplate": TEMPLATE,
            "acceleratorType": "H100_80GB",
            "versionUpgradeOption": "OnceNewDefaultVersionAvailable",
        },
    },
).result()  # blocks until terminal state (~10–15 min)

print(f"State: {deployment.properties.provisioning_state}")
print(f"ID:    {deployment.id}")

Comprobación de la implementación

Una vez creada la implementación, confirme que está en buen estado antes de enviar tráfico.

d = client.managed_compute_deployments.get(
    resource_group_name=RESOURCE_GROUP,
    account_name=ACCOUNT_NAME,
    deployment_name=DEPLOYMENT_NAME,
)

print(f"State:        {d.properties.provisioning_state}")    # expect: Succeeded
print(f"Model:        {d.properties.model}")
print(f"Template:     {d.properties.deployment_template}")
print(f"Accelerator:  {d.properties.accelerator_type}")
print(f"Capacity:     {d.sku.capacity}")

Busque:

  • provisioningState: Succeeded significa que la implementación está activa.
  • acceleratorType coincide con el valor solicitado.
  • sku.capacity coincide con el número de instancias solicitadas.

Si provisioningState es Failed, consulte Solución de problemas.

Envío de una solicitud de prueba

Las implementaciones de proceso administrado son accesibles a través del punto de conexión unificado de Foundry en:

https://<account>.services.ai.azure.com/openai/v1/

El model campo del cuerpo de la solicitud toma el nombre de implementación especificado, no el identificador del modelo.

from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import OpenAI

ACCOUNT_NAME    = "<your-foundry-account>"
DEPLOYMENT_NAME = "nemotron-3-nano-30b"

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(),
    "https://cognitiveservices.azure.com/.default",
)

client = OpenAI(
    base_url=f"https://{ACCOUNT_NAME}.services.ai.azure.com/openai/v1",
    api_key="placeholder",  # required by OpenAI SDK; overridden by Authorization header
    default_headers={"Authorization": f"Bearer {token_provider()}"},
)

resp = client.chat.completions.create(
    model=DEPLOYMENT_NAME,
    messages=[{"role": "user", "content": "What is the capital of France?"}],
)

print(resp.choices[0].message.content)

Para invocar la implementación con Microsoft Entra ID, se requiere el rol Azure AI User en la cuenta de Foundry.

Administración y escalado de la implementación

Dado que las implementaciones de proceso administradas están centradas en el modelo, se escalan las implementaciones cambiando el número de instancias del modelo, no cambiando el tamaño de un nodo.

Cambiar capacidad

d = client.managed_compute_deployments.get(
    RESOURCE_GROUP, ACCOUNT_NAME, DEPLOYMENT_NAME
)
d.sku.capacity = 3

client.managed_compute_deployments.begin_create_or_update(
    resource_group_name=RESOURCE_GROUP,
    account_name=ACCOUNT_NAME,
    deployment_name=DEPLOYMENT_NAME,
    resource=d,
).result()

Obtener actualizaciones del entorno de ejecución y del modelo

Configurar versionUpgradeOption como OnceNewDefaultVersionAvailable en la implementación hace que esta adopte nuevas versiones predeterminadas del modelo y del entorno de ejecución cuando Microsoft las publique. Los parches en tiempo de ejecución y las correcciones de CVE se aplican automáticamente a las implementaciones activas de los clientes; no tiene que volver a implementar el modelo para que surtan efecto.

Supervisa la implementación.

Las implementaciones de proceso administradas emiten métricas en la misma superficie de Azure Monitor que otras implementaciones de Foundry. Para un análisis más detallado o para configurar alertas, abra la implementación en el portal de Azure y use Métricas en Supervisión para representar métricas como las siguientes:

  • Número de solicitudes agrupado por código de estado HTTP.
  • Percentiles de tiempo de respuesta (p50, p90, p99).
  • Para modelos de finalizaciones de chat: recuentos de tokens de entrada y salida, percentiles de tiempo al primer token (TTFT) y percentiles de tiempo de descodificación entre tokens.

También puede agrupar por implementación y configurar alertas. Las etiquetas de facturación por implementación se emiten automáticamente. Filtre Cost Management por la etiqueta de implementación para atribuir el gasto a una implementación de cómputo administrada específica. Para obtener más información, consulte Plan y administrar los costos de Microsoft Foundry.

Eliminar la implementación

Al eliminar un despliegue se libera la asignación de aceleradores y se detiene la facturación inmediatamente. Para eliminar una implementación:

client.managed_compute_deployments.begin_delete(
    resource_group_name=RESOURCE_GROUP,
    account_name=ACCOUNT_NAME,
    deployment_name=DEPLOYMENT_NAME,
).result()

Resumen del control de acceso

Action Rol mínimo
Crear, actualizar o eliminar una implementación de cómputo administrado Colaborador de Cognitive Services (o Propietario de Foundry / Propietario de la cuenta de Foundry) en la cuenta de Foundry
Leer una implementación o una lista de implementaciones Usuario de Cognitive Services, usuario de Foundry, administrador de proyectos de Foundry o cualquiera de los roles anteriores
Llamar a la implementación con Microsoft Entra ID Usuario de Foundry en la cuenta de Foundry
Llamar a la implementación con una clave de API La clave de la cuenta (no se requiere ningún rol de Azure para la llamada en sí; la recuperación de la clave requiere acceso de lectura)

Para obtener la lista completa de operaciones del proveedor de recursos de Azure, la matriz de correspondencia entre roles y permisos y la comparación con las implementaciones estándar, consulte Control de acceso basado en roles para Microsoft Foundry: operaciones administradas del plano de control de computación.

Solución de problemas

provisioningState: Failed

Confirme que la familia de aceleradores solicitada tiene la cuota aprobada en la región de destino y que la plantilla de implementación elegida muestra esa familia de aceleradores. Un modelo y una plantilla de implementación no coincidente, por ejemplo, una plantilla publicada para una versión de modelo diferente es una causa común. Compruebe que ambas referencias apuntan a activos válidos del registro en el registro azure-huggingface.

"Cuota superada" al crear

La cuenta de Foundry no tiene suficiente cuota de proceso administrado en la región para la familia de aceleradores solicitada. Solicite más cuota. La cuota de máquinas virtuales de Azure no se aplica al cómputo administrado.

"Capacidad insuficiente" en la región

La región no devolvió ninguna capacidad para la familia de aceleradores solicitada. Pruebe una familia diferente (por ejemplo, implementar en MI300X en lugar de H100), elija una plantilla con menos aceleradores por instancia o elija una región diferente. Las familias de memoria más grandes, como MI300X, suelen tener capacidad para los modelos que no caben en A100.

404 en la ruta /openai/v1/

Si una solicitud de finalización de chat a https://<account>.services.ai.azure.com/openai/v1/chat/completions devuelve un 404, compruebe que:

  • El nombre de implementación en el cuerpo de la solicitud coincide con la implementación que ha creado.
  • El provisioningState de la implementación es Succeeded.
  • El entorno de ejecución del modelo expone finalizaciones de chat. Algunos entornos de ejecución (por ejemplo, TEI para incrustaciones) no exponen la ruta de finalizaciones de chat; use la ruta documentada en la tarjeta de modelo en su lugar.

Despliegue bloqueado en Creating durante más de 20 minutos

Algunos modelos más grandes tardan más de 10 a 15 minutos en aparecer. Si provisioningState sigue Creating después de 20 minutos, compruebe la página de detalles de la implementación en el portal de Foundry para consultar si hay algún mensaje sobre el estado de la operación y confirme que la región subyacente no se ha degradado. Si la implementación permanece en Creating durante más de 30 minutos sin ningún mensaje de operación, elimínela y vuelva a intentarlo. El aprovisionamiento es idempotente en el nombre de la implementación.