Comparteix a través de


Introducción al uso de implementaciones aprovisionadas en Azure OpenAI Service

La siguiente guía le guía por los pasos clave para crear una implementación aprovisionada con el recurso de Azure OpenAI Service. Para obtener más información sobre los conceptos que se describen aquí, consulte:

Requisitos previos

  • Una suscripción a Azure: cree una cuenta gratuita.
  • Rol Colaborador de Azure o Colaborador de Cognitive Services
  • Acceso a Azure OpenAI Studio

Obtenga o compruebe la disponibilidad de la cuota de PTU.

Las implementaciones de rendimiento aprovisionadas tienen un tamaño en unidades denominadas unidades de procesamiento aprovisionadas (PTU). La cuota de PTU se concede a una suscripción de forma regional y limita el número total de PTU que se pueden implementar en esa región en todos los modelos y versiones.

La creación de una nueva implementación requiere una cuota disponible (sin usar) para cubrir el tamaño deseado de la implementación. Por ejemplo: si una suscripción tiene lo siguiente en Centro-sur de EE. UU.:

  • Cuota total de PTU = 500 PTU
  • Implementaciones:
    • 100 PTU: GPT-4o, 13-05-2024
    • 100 PTU: GPT-4, 0613

A continuación, se consideran usadas 200 PTU de cuota y hay 300 PTU disponibles para su uso para crear nuevas implementaciones.

Se asigna una cantidad predeterminada de cuota de PTU a todas las suscripciones de varias regiones. Para ver la cuota disponible en una región, visite la hoja Cuotas de Azure OpenAI Studio y seleccione la suscripción y la región deseadas. Por ejemplo, en el siguiente recorte de pantalla se muestra un límite de cuota de 500 PTU en el Oeste de EE. UU. para la suscripción seleccionada. Tenga en cuenta que es posible que vea valores inferiores de las cuotas predeterminadas disponibles.

Recorte de pantalla de la cuota disponible en Azure OpenAI Studio.

Se puede solicitar cuota adicional haciendo clic en el vínculo Solicitar cuota a la derecha de la columna “Uso/Límite”. (Esto está fuera de pantalla en el recorte de pantalla anterior).

Creación de un recurso de Azure OpenAI

Las implementaciones de rendimiento aprovisionadas se crean a través de objetos de recursos de Azure OpenAI dentro de Azure. Debe tener un recurso de Azure OpenAI en cada región donde quiera crear una implementación. Use Azure Portal para crear un recurso en una región con cuota disponible, si es necesario.

Nota:

Los recursos de Azure OpenAI pueden admitir varios tipos de implementaciones de Azure OpenAI al mismo tiempo. No es necesario dedicar nuevos recursos a las implementaciones aprovisionadas.

Creación de la implementación aprovisionada: la capacidad está disponible

Después de adquirir un compromiso en la cuota, puede crear una implementación. Para crear una implementación aprovisionada, puede seguir estos pasos; las opciones descritas reflejan las entradas que se muestran en la captura de pantalla.

Captura de pantalla de la página de implementación de Azure OpenAI Studio para una implementación aprovisionada.

  1. Inicio de sesión en Azure OpenAI Studio
  2. Elija la suscripción que se ha habilitado para las implementaciones aprovisionadas y seleccione el recurso deseado en una región donde tenga la cuota.
  3. En Administración, en el panel de navegación izquierdo seleccione Implementaciones.
  4. Seleccione Crear nueva implementación y configure los siguientes campos. Expanda el menú desplegable de opciones avanzadas.
  5. Rellene los valores de cada campo. Este es un ejemplo:
Campo Description Ejemplo
Selección de un modelo Elija el modelo específico que desea implementar. GPT-4
Versión de modelo Elija la versión del modelo que se va a implementar. 0613
Nombre de implementación El nombre de implementación se usa en el código para llamar al modelo a través de las bibliotecas de cliente y las API de REST. gpt-4
Filtro de contenido Especifique la directiva de filtrado que se va a aplicar a la implementación. Descubra más sobre nuestro procedimiento de filtrado de contenido. Valor predeterminado
Tipo de implementación Esto afecta al rendimiento y a las prestaciones. Elija Administrado-Aprovisionado para la implementación aprovisionada Administrado-Aprovisionado
Unidades de procesamiento aprovisionadas Elija la cantidad de rendimiento que desea incluir en la implementación. 100

Aspectos importantes que se deben tener en cuenta:

  • El cuadro de diálogo de implementación contiene un recordatorio de que puede comprar una reserva de Azure para Azure OpenAI aprovisionado para obtener un descuento significativo para un compromiso a plazo.
  • Hay un mensaje que le indica el precio en lista por hora de la implementación que se le cobraría si esta implementación no está cubierta por una reserva. Este es un precio en lista que no incluye ningún descuento negociado para su empresa.

Si desea crear la implementación mediante programación, puede hacerlo con el siguiente comando de la CLI de Azure. Actualice sku-capacity con el número deseado de unidades de rendimiento aprovisionadas.

az cognitiveservices account deployment create \
--name <myResourceName> \
--resource-group <myResourceGroupName> \
--deployment-name MyModel \
--model-name GPT-4 \
--model-version 0613  \
--model-format OpenAI \
--sku-capacity 100 \
--sku-name ProvisionedManaged

REST, plantilla de ARM, Bicep y Terraform también se pueden usar para crear implementaciones. Consulte la sección sobre la automatización de implementaciones en la guía paso a paso de administración de cuotas y reemplace el sku.name por "AdministradoAprovisionado" en lugar de "Estándar".

Cree su implementación aprovisionada: Capacidad no disponible

Debido a la naturaleza dinámica de la disponibilidad de la capacidad, es posible que la región del recurso seleccionado no tenga la capacidad de servicio para crear la implementación del modelo, la versión y el número de PTU especificadas.

En este caso, Azure OpenAI Studio le dirigirá a otras regiones con cuota y capacidad disponibles para crear una implementación del modelo deseado. Si esto sucede, el cuadro de diálogo de implementación tendrá este aspecto:

Recorte de pantalla de la página de implementación de Azure OpenAI Studio para una implementación aprovisionada sin capacidad disponible.

Cosas que se deben tener en cuenta:

  • Aparecerá un mensaje que le mostrará cuántas PTU tiene en la cuota disponible y cuántas se pueden implementar en este momento.
  • Si selecciona un número de PTU superior a la capacidad del servicio, aparecerá un mensaje que le proporcionará opciones para obtener más capacidad y un botón para permitirle seleccionar una región alternativa. Al hacer clic en el botón "Ver otras regiones", se mostrará un cuadro de diálogo con una lista de recursos de Azure OpenAI donde puede crear una implementación, junto con la implementación de tamaño máximo que se puede crear en función de la cuota y la capacidad de servicio disponibles en cada región.

Recorte de pantalla de la página de implementación de Azure OpenAI Studio para elegir un recurso y una región diferentes.

Al seleccionar un recurso y hacer clic en Cambiar recurso, el cuadro de diálogo de implementación se volverá a reproducir mediante el recurso seleccionado. Después, puede continuar con la creación de la implementación en la nueva región.

Obtenga más información sobre el modelo de compra y cómo comprar una reserva:

Opcionalmente, comprar una reserva

Después de la creación de la implementación, es posible que quiera comprar un descuento a plazo a través de una reserva de Azure. Una reserva de Azure puede proporcionar un descuento considerable en la tarifa por hora para los usuarios que piensan usar la implementación más allá de unos días.

Para obtener más información sobre cómo comprar una reserva, consulte Ahorro de costos con reservas aprovisionadas del servicio OpenAI de Microsoft Azure.

Realización de las primeras llamadas de inferencia

El código de inferencia para las implementaciones aprovisionadas es el mismo tipo de implementación estándar. El siguiente fragmento de código muestra una llamada de finalizaciones de chat a un modelo GPT-4. Si esta es la primera vez que usa estos modelos mediante programación, le recomendamos comenzar con nuestra guía de inicio rápido. Le recomendamos usar la biblioteca de OpenAI con la versión 1.0 o posterior, ya que incluye lógica de reintento dentro de la biblioteca.

    #Note: The openai-python library support for Azure OpenAI is in preview. 
    import os
    from openai import AzureOpenAI

    client = AzureOpenAI(
        azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
        api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
        api_version="2024-02-01"
    )

    response = client.chat.completions.create(
        model="gpt-4", # model = "deployment_name".
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
            {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
            {"role": "user", "content": "Do other Azure AI services support this too?"}
        ]
    )

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

Importante

En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Para obtener más información sobre la seguridad de las credenciales, consulte el artículo Seguridad de servicios de Azure AI.

Descripción del rendimiento esperado

La cantidad de rendimiento que puede lograr en el punto de conexión es un factor del número de PTUs implementados, el tamaño de entrada, el tamaño de salida y la tasa de llamadas. El número de llamadas simultáneas y el número total de tokens procesados puede variar en función de estos valores. La forma determinar el rendimiento de la implementación que recomendamos es la siguiente:

  1. Use la calculadora de capacidad para estimar el tamaño. Puede encontrar la calculadora de capacidad en la página cuotas, en la pestaña Aprovisionado, en Azure OpenAI Studio.
  2. Prueba comparativa de la carga mediante una carga de trabajo de tráfico real. Para obtener más información sobre las pruebas comparativas, consulte la sección pruebas comparativas.

Medición del uso de la implementación

Al implementar un número especificado de unidades de rendimiento aprovisionadas (PTU), se pone a disposición de ese punto de conexión una cantidad establecida de rendimiento de inferencia. El uso de este rendimiento es una fórmula compleja basada en el modelo, la tasa de llamadas de la versión del modelo, el tamaño del símbolo del sistema y el tamaño de generación. Para simplificar este cálculo, se proporciona una métrica de uso en Azure Monitor. La implementación devuelve un 429 en las nuevas llamadas después de que el uso aumente por encima del 100 %. El uso aprovisionado se define de la siguiente manera:

Uso de la implementación de PTU = (PTUs consumidos en el período de tiempo) / (PTUs implementados en el período de tiempo)

Puede encontrar la medida de uso en la sección Azure-Monitor del recurso. Para acceder a los paneles de supervisión, inicie sesión en https://portal.azure.com, vaya al recurso de Azure OpenAI y seleccione la página Métricas en el panel de navegación izquierdo. En la página de métricas, seleccione la medida "Uso administrado aprovisionado V2". Si tiene más de una implementación en el recurso, también debe dividir los valores por cada implementación haciendo clic en el botón 'Aplicar división'.

Captura de pantalla del uso administrado aprovisionado en la hoja métricas del recurso en Azure Portal.

Para más información sobre la supervisión de las implementaciones, consulte la página Supervisión del servicio Azure OpenAI.

Control del uso elevado

Las implementaciones aprovisionadas proporcionan una cantidad asignada de capacidad de proceso para ejecutar un modelo determinado. La métrica 'Uso administrado aprovisionado' de Azure Monitor mide el uso de la implementación en incrementos de un minuto. Las implementaciones administradas aprovisionadas también están optimizadas para que las llamadas aceptadas se procesen con una latencia máxima coherente por llamada. Cuando la carga de trabajo supera su capacidad asignada, el servicio devuelve un código de estado HTTP 429 hasta que el uso cae por debajo del 100 %. El tiempo antes de reintentar se proporciona en los encabezados de respuesta retry-after y retry-after-ms que proporcionan el tiempo en segundos y milisegundos respectivamente. Este enfoque mantiene los objetivos de latencia por llamada al mismo tiempo que proporciona al desarrollador control sobre cómo controlar situaciones de alta carga, por ejemplo, reintentar o desviar a otra experiencia o punto de conexión.

¿Qué debo hacer cuando reciba una respuesta 429?

Una respuesta 429 indica que las PTUs asignadas se consumen completamente en el momento de la llamada. La respuesta incluye los encabezados retry-after-ms y retry-after que indican el tiempo de espera antes de que se acepte la siguiente llamada. La forma en que decide gestionar una respuesta 429 depende de los requisitos de la aplicación. A continuación, se indican algunas consideraciones:

  • Si le valen las latencias por llamada más largas, implemente la lógica de reintento del lado cliente para esperar el tiempo retry-after-ms y reintentarlo. Este enfoque le permite maximizar el rendimiento en la implementación. Los SDK de cliente proporcionados por Microsoft ya lo controlan con valores predeterminados razonables. Es posible que todavía necesite un ajuste adicional en función de los casos de uso.
  • Considere la posibilidad de redirigir el tráfico a otros modelos, implementaciones o experiencias. Este enfoque es la solución de latencia más baja porque esta acción se puede realizar tan pronto como reciba la señal 429. La señal 429 no es una respuesta de error inesperada al insertar en un uso elevado, sino que forma parte del diseño para administrar la puesta en cola y la carga alta para las implementaciones aprovisionadas.

Modificación de la lógica de reintento dentro de las bibliotecas cliente

Los SDK de Azure OpenAI reintentan las respuestas 429 de forma predeterminada y en segundo plano en el cliente (hasta el máximo de reintentos). Las bibliotecas respetan el tiempo retry-after. También puede modificar el comportamiento de reintento para mejorar la experiencia. Este es un ejemplo con la biblioteca de Python.

Puede usar la opción max_retries para configurar o deshabilitar los valores de reintento:

from openai import AzureOpenAI

# Configure the default for all requests:
client = AzureOpenAI(
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),
    api_version="2024-02-01",
    max_retries=5,# default is 2
)

# Or, configure per-request:
client.with_options(max_retries=5).chat.completions.create(
    model="gpt-4", # model = "deployment_name".
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
        {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
        {"role": "user", "content": "Do other Azure AI services support this too?"}
    ]
)

Ejecución de una prueba comparativa

Las funcionalidades exactas de rendimiento y prestaciones de la instancia dependen del tipo de solicitudes que realice y de la carga de trabajo exacta. La mejor manera de determinar el rendimiento de la carga de trabajo es ejecutar una prueba comparativa en sus propios datos.

Para ayudarle en este trabajo, la herramienta de pruebas comparativas proporciona una manera de ejecutar pruebas comparativas fácilmente en la implementación. La herramienta incluye varias formas de carga de trabajo preconfiguradas posibles y genera métricas clave de rendimiento. Obtenga más información sobre la herramienta y las opciones de configuración en nuestro repositorio de GitHub: https://aka.ms/aoai/benchmarking.

Recomendamos el siguiente flujo de trabajo:

  1. Calcule las PTU de rendimiento con la calculadora de capacidad.
  2. Ejecute una prueba comparativa con esta forma de tráfico durante un período de tiempo prolongado (más de 10 minutos) para observar los resultados en un estado estable.
  3. Observe los valores de uso, tokens procesados y velocidad de llamadas de la herramienta de pruebas comparativas y Azure Monitor.
  4. Ejecute una prueba comparativa con su propia forma de tráfico y cargas de trabajo mediante la implementación del cliente. Asegúrese de implementar la lógica de reintento mediante una biblioteca cliente de Azure OpenAI o una lógica personalizada.

Pasos siguientes