Implementación de modelos mediante CLI de Azure y Bicep

En este artículo, aprenderá a agregar una nueva implementación de modelo a un punto de conexión de Foundry Models. La implementación está disponible para la inferencia en el recurso de Foundry cuando especifique el nombre de implementación en las solicitudes.

Requisitos previos

Para completar este artículo, necesita lo siguiente:

  • Una suscripción Azure.

  • Un proyecto de fundición. Este tipo de proyecto se administra en un recurso Foundry. Si no tiene un proyecto Foundry, consulte Crear un proyecto para Microsoft Foundry.

  • Permisos de control de acceso basado en roles de Azure (RBAC) para crear y administrar implementaciones. Necesitas el rol Colaborador de Cognitive Services o permisos equivalentes para el recurso Foundry.

  • Los modelos de Foundry de partners y de la comunidad requieren acceso a Azure Marketplace. Asegúrese de que tiene los permisos necesarios para suscribirse a las ofertas de modelo. Los modelos de Foundry comercializados por Azure no tienen este requisito.

  • Instale el CLI de Azure (versión 2.60 o posterior). Los az cognitiveservices comandos usados en este artículo forman parte de la CLI principal, por lo que no se requiere ninguna extensión adicional.

  • Algunos comandos de este tutorial usan la jq herramienta , que podría no estar instalada en el sistema. Para obtener instrucciones de instalación, consulte Descargar jq.

  • Identifique la siguiente información:

    • Identificador de suscripción de Azure
    • Nombre del recurso de Foundry
    • El grupo de recursos donde implementó el recurso Foundry.
  • Nombre del modelo, proveedor, versión y SKU que desea implementar. Use el portal de Foundry o la CLI de Azure para encontrar esta información. En este ejemplo, implementará el siguiente modelo:

    • Nombre del modelo: Phi-4-mini-instruct
    • Proveedor: Microsoft
    • Versión: 1
    • Tipo de implementación: estándar global

Permisos necesarios para suscribirse a modelos de socios y de la comunidad

Foundry Models de partners y de la comunidad disponibles para la implementación (por ejemplo, modelos de Cohere) necesitan Azure Marketplace. Los proveedores de modelos definen los términos de licencia y establecen el precio para el uso de sus modelos mediante Azure Marketplace.

Al implementar modelos de terceros, asegúrese de que tiene los permisos siguientes en su cuenta:

  • En la suscripción de Azure:
    • Microsoft.MarketplaceOrdering/agreements/offers/plans/read
    • Microsoft.MarketplaceOrdering/agreements/offers/plans/sign/action
    • Microsoft.MarketplaceOrdering/offerTypes/publishers/offers/plans/agreements/read
    • Microsoft.Marketplace/offerTypes/publishers/offers/plans/agreements/read
    • Microsoft.SaaS/register/action
  • En el grupo de recursos, para crear y usar el recurso de SaaS:
    • Microsoft.SaaS/resources/read
    • Microsoft.SaaS/resources/write

Los roles integrados Owner y Contributor en la suscripción de Azure incluyen estos permisos. Si no tiene los permisos necesarios, pida al administrador de la suscripción que le asigne el rol Colaborador o cree un rol personalizado que incluya las acciones enumeradas.

Para comprobar los permisos, vaya al portal Azure, abra la suscripción, seleccione Control de acceso (IAM)>Check access y revise los roles asignados.

Sugerencia

Microsoft.SaaS/register/action es un registro único del proveedor de recursos de SaaS en la suscripción. Después del registro, no es necesario repetir para cada implementación.

Adición del modelo

Para agregar un modelo, primero identifique el modelo que desea implementar. Consulte los modelos disponibles de la siguiente manera:

  1. Inicie sesión en la suscripción de Azure.

    az login
    
  2. Si tiene más de una suscripción, seleccione la suscripción donde se encuentra el recurso.

    subscriptionId="<subscription-id>"
    az account set --subscription $subscriptionId
    
  3. Establezca las siguientes variables de entorno con el nombre del recurso Foundry que planea usar y el grupo de recursos.

    accountName="<ai-services-resource-name>"
    resourceGroupName="<resource-group>"
    location="eastus2"
    
  4. Si aún no ha creado un recurso Foundry, cree uno.

    az cognitiveservices account create -n $accountName -g $resourceGroupName --custom-domain $accountName --location $location --kind AIServices --sku S0
    

    Referencia: az cognitiveservices account

  5. Compruebe qué modelos están disponibles para usted y en qué SKU. Cada tipo de implementación se representa mediante un código SKU en la CLI y ARM, y define cómo la infraestructura de Azure procesa las solicitudes. Los modelos pueden ofrecer diferentes tipos de implementación. El siguiente comando enumera todas las definiciones de modelo disponibles:

    az cognitiveservices account list-models \
        -n $accountName \
        -g $resourceGroupName \
    | jq '.[] | { name: .name, format: .format, version: .version, sku: .skus[0].name, capacity: .skus[0].capacity.default }'
    

    La salida incluye modelos disponibles con sus propiedades:

    {
      "name": "Phi-4-mini-instruct",
      "format": "Microsoft",
      "version": "1",
      "sku": "GlobalStandard",
      "capacity": 1000
    }
    

    Referencia: az cognitiveservices account list-models

  6. Identifique el modelo que desea implementar. Necesita las propiedades name, format, versiony sku. La propiedad format indica el proveedor que ofrece el modelo. En función del tipo de implementación, es posible que también necesite capacidad.

  7. Agregue la implementación del modelo al recurso. En el ejemplo siguiente se agrega Phi-4-mini-instruct:

    az cognitiveservices account deployment create \
        -n $accountName \
        -g $resourceGroupName \
        --deployment-name Phi-4-mini-instruct \
        --model-name Phi-4-mini-instruct \
        --model-version 1 \
        --model-format Microsoft \
        --sku-capacity 1 \
        --sku-name GlobalStandard
    

    Referencia: az cognitiveservices account deployment

  8. Compruebe que la implementación se completó correctamente:

    az cognitiveservices account deployment show \
        --deployment-name Phi-4-mini-instruct \
        -n $accountName \
        -g $resourceGroupName \
    | jq '.properties.provisioningState'
    

    La salida debe mostrar "Succeeded". El modelo está listo para usarse una vez completado el aprovisionamiento.

    Referencia: az cognitiveservices account deployment show

Puede implementar el mismo modelo varias veces si es necesario siempre que le asigne un nombre de implementación diferente. Esta funcionalidad es útil si desea probar configuraciones diferentes para un modelo determinado, incluidos los filtros de contenido.

Adición del modelo

  1. Use la plantilla ai-services-deployment-template.bicep para describir las implementaciones de modelos:

    ai-services-deployment-template.bicep

    @description('Name of the Azure AI services account')
    param accountName string
    
    @description('Name of the model to deploy')
    param modelName string
    
    @description('Version of the model to deploy')
    param modelVersion string
    
    @allowed([
      'AI21 Labs'
      'Cohere'
      'Core42'
      'DeepSeek'
      'xAI'
      'Meta'
      'Microsoft'
      'Mistral AI'
      'OpenAI'
    ])
    @description('Model provider')
    param modelPublisherFormat string
    
    @allowed([
        'GlobalStandard'
        'DataZoneStandard'
        'Standard'
        'GlobalProvisioned'
        'Provisioned'
    ])
    @description('Model deployment SKU name')
    param skuName string = 'GlobalStandard'
    
    @description('Content filter policy name')
    param contentFilterPolicyName string = 'Microsoft.DefaultV2'
    
    @description('Model deployment capacity')
    param capacity int = 1
    
    resource modelDeployment 'Microsoft.CognitiveServices/accounts/deployments@2024-04-01-preview' = {
      name: '${accountName}/${modelName}'
      sku: {
        name: skuName
        capacity: capacity
      }
      properties: {
        model: {
          format: modelPublisherFormat
          name: modelName
          version: modelVersion
        }
        raiPolicyName: contentFilterPolicyName == null ? 'Microsoft.Nill' : contentFilterPolicyName
      }
    }
    
  2. Ejecute la implementación:

    resourceGroupName="<resource-group-name>"
    accountName="<ai-services-resource-name>"
    modelName="Phi-4-mini-instruct"
    provider="Microsoft"
    version=1
    
    az deployment group create \
        --resource-group $resourceGroupName \
        --template-file ai-services-deployment-template.bicep \
        --parameters accountName=$accountName modelName=$modelName modelVersion=$version modelPublisherFormat=$provider
    
  3. Compruebe que la implementación se completó correctamente:

    az cognitiveservices account deployment show \
        --deployment-name $modelName \
        -n $accountName \
        -g $resourceGroupName \
    | jq '.properties.provisioningState'
    

    La salida debe mostrar "Succeeded".

Nota

Las secciones restantes de este artículo son idénticas para los enfoques de la CLI y de Bicep.

Uso del modelo

Puede consumir modelos implementados para el recurso mediante los puntos de conexión para los modelos de Foundry. Al construir la solicitud, especifique el parámetro model e inserte el nombre de implementación del modelo que creó. Puede obtener mediante programación el URI para el punto de conexión de inferencia mediante el código siguiente:

Punto de conexión de inferencia

az cognitiveservices account show  -n $accountName -g $resourceGroupName | jq '.properties.endpoints["Azure OpenAI Legacy API - Latest moniker"]'

Para realizar solicitudes al punto de conexión de Foundry Models mediante la API v1 de OpenAI, llame a la ruta /openai/v1/ en la dirección URL del punto de conexión https://<resource-name>.openai.azure.com/openai/v1/ y pase el nombre de la implementación en el campo model de la solicitud. La ruta /openai/v1/ usa versionado implícito, por lo que no es necesario pasar un api-version.

Consulte la referencia de api de OpenAI v1 de Azure para todas las operaciones admitidas.

Claves de inferencia

az cognitiveservices account keys list  -n $accountName -g $resourceGroupName

Administración de implementaciones

Use la CLI para ver todas las implementaciones disponibles:

  1. Ejecute el comando siguiente para ver todas las implementaciones activas:

    az cognitiveservices account deployment list -n $accountName -g $resourceGroupName
    

    Referencia: az cognitiveservices account deployment list

  2. Ejecute el siguiente comando para ver los detalles de una implementación determinada:

    az cognitiveservices account deployment show \
        --deployment-name "Phi-4-mini-instruct" \
        -n $accountName \
        -g $resourceGroupName
    

    Referencia: az cognitiveservices account deployment show

  3. Ejecute el siguiente comando para eliminar una implementación determinada:

    az cognitiveservices account deployment delete \
        --deployment-name "Phi-4-mini-instruct" \
        -n $accountName \
        -g $resourceGroupName
    

    Referencia: az cognitiveservices account deployment delete

Solución de problemas

Error Causa Resolución
Cuota superada La suscripción ha alcanzado la cuota de despliegue para la SKU o la región seleccionada. Compruebe la cuota en el portal de Foundry o solicite un aumento a través de Soporte técnico de Azure.
Error de autorización La identidad utilizada no tiene el rol RBAC necesario. Asigne el rol Colaborador de Cognitive Services en el recurso Foundry.
Modelo no disponible El modelo no está disponible en su región o suscripción. Ejecute az cognitiveservices account list-models para comprobar los modelos y regiones disponibles.
Comando no reconocido El CLI de Azure está obsoleto. Actualice a la versión 2.60 o posterior con az upgrade. Los az cognitiveservices comandos forman parte de la CLI principal y no requieren una extensión independiente.