Funcionamiento de implementaciones aprovisionadas en producción

Visualización actual:Nueva versión - Cambio a la versión del portal de Foundry clásico

En este artículo se describen las tareas integrales para operar implementaciones con rendimiento aprovisionado en producción: administrar la cuota de unidades de rendimiento aprovisionado (PTU), crear implementaciones, comprar Reservas de Azure, realizar llamadas de inferencia, realizar evaluaciones comparativas, supervisar la utilización, gestionar cargas elevadas, escalar y limpiar recursos.

Este artículo da por hecho que está familiarizado con los conceptos de ¿Qué es el rendimiento aprovisionado? y con los detalles de facturación de Facturación de PTU y administración de costos.

Requisitos previos

  • Una suscripción de Azure con un método de pago válido. Si no tiene una suscripción de Azure, cree una cuenta de Azure de pago para comenzar.
  • El rol de Colaborador de Azure o de Colaborador de Cognitive Services en la suscripción o el grupo de recursos donde planea crear la implementación.
  • Un proyecto de Microsoft Foundry en la región donde tienes cuota de PTU. Un proyecto de Foundry se administra dentro de un recurso de Foundry.

Estimación de los requisitos de PTU

Antes de crear una implementación aprovisionada, debe calcular cuántas PTU necesita la carga de trabajo. Para ver las fórmulas de estimación, un ejemplo trabajado y un tutorial de la calculadora de capacidad, consulte Determinar el tamaño de PTU de una carga de trabajo.

Consultar y solicitar cuota de PTU

La cuota de PTU se concede por suscripción, por región y limita el total de PTUs que puede implementar en esa región en todos los modelos. Para más información sobre cómo se relaciona la cuota y la capacidad, consulte Cuota de PTU frente a capacidad.

Para comprobar el uso actual o solicitar cuota adicional:

  1. Vaya a Operar>Cuota>Unidad de rendimiento aprovisionada en el portal de Foundry.
  2. Seleccione la suscripción y la región deseadas para ver el uso actual.
  3. Para solicitar más cuota, seleccione Solicitar cuota y complete el formulario.

Sugerencia

También puede seguir este vínculo directo al formulario de solicitud de cuota.

Crear una implementación aprovisionada

Para crear una implementación aprovisionada, consulte Inicio rápido: Creación de una implementación de rendimiento aprovisionada.

La cuota de PTU se comparte entre todos los despliegues aprovisionados del mismo tipo de despliegue dentro de una región. Si tiene cuota restante después de la implementación inicial, puede usarla para implementar otros modelos compatibles sin solicitar más cuota. Consulte el uso de su cuota en la página Quota, dentro de Operate, en el portal Foundry.

Puede administrar la cuota solicitando cuota adicional o eliminando las implementaciones existentes para liberar ptUs para nuevas implementaciones.

Amplía tu despliegue

Puede aumentar o disminuir el recuento de PTU de una implementación aprovisionada en cualquier momento a través del portal de Foundry o el CLI de Azure. Para conocer las limitaciones de capacidad en el escalado, cuándo se ajusta la facturación y el efecto sobre las reservas existentes, consulte Escalar implementaciones aprovisionadas.

Comprar una reserva

Una vez implementada la implementación aprovisionada, considere adquirir una Reserva de Azure para obtener una tarifa reducida en la facturación de las PTU. Una reserva proporciona un descuento significativo frente a la facturación por hora para las implementaciones que tenga previsto ejecutar durante más de unos pocos días.

Siga este orden de operaciones para evitar comprar una reserva de capacidad que no exista o que no coincida con las PTU implementadas:

  1. Use Foundry para implementar el modelo en una región con cuota disponible. Este paso confirma que la capacidad está disponible.
  2. Después de la implementación, anote los detalles de implementación: tipo de implementación (aprovisionado global, aprovisionado de zona de datos o aprovisionado regional), región (para implementaciones regionales y de zona de datos) y suscripción.
  3. Compre una nueva reserva que coincida con esos detalles o compruebe que una reserva existente ya cubre la implementación. En el caso de las implementaciones globales, la región de reserva no necesita coincidir con la región de implementación porque una sola reserva global puede cubrir implementaciones de PTU globales en varias regiones.

Para obtener instrucciones sobre el ajuste de tamaño, los precios y la administración de reservas, consulte Facturación y administración de costos de PTU.

Realizar llamadas de inferencia

Para obtener ejemplos de código de inferencia mediante la implementación aprovisionada, consulte el inicio rápido. El código de inferencia para las implementaciones aprovisionadas es el mismo que para cualquier otro tipo de implementación. Use su nombre de implementación (no el nombre del modelo) como valor del parámetro model.

Ejecución de una prueba comparativa

Las capacidades exactas de rendimiento y procesamiento de su despliegue dependen del número de PTU desplegadas, del tipo de solicitudes que realice y del perfil de su carga de trabajo (incluidos el tamaño del prompt, el tamaño de la generación, la frecuencia de llamadas y factores similares). La mejor manera de determinar el rendimiento de la carga de trabajo es ejecutar una prueba comparativa en sus propios datos.

La herramienta de pruebas comparativas proporciona formas de carga de trabajo preconfiguradas y genera métricas clave de rendimiento. Use esta herramienta para ejecutar pruebas comparativas en la implementación. Para obtener detalles y opciones de configuración, consulte el repositorio azure-openai-benchmark en GitHub.

Flujo de trabajo de pruebas comparativas recomendado:

  1. Calcule los requisitos de PTU mediante la calculadora de capacidad.
  2. Ejecute una prueba de rendimiento con este patrón de tráfico durante al menos 10 minutos para observar los resultados en estado estacionario.
  3. Observe el uso, los tokens procesados y la tasa de llamadas de la herramienta de pruebas comparativas y Azure Monitor.
  4. Ejecute una prueba de rendimiento con su propio patrón de tráfico y carga de trabajo utilizando la implementación de su cliente. Implemente la lógica de reintento mediante la biblioteca cliente de OpenAI o la lógica de reintento personalizada.

Medición del uso de la implementación

Al crear una implementación aprovisionada, el servicio asigna una cantidad fija de rendimiento de inferencia. Para realizar un seguimiento de la cantidad de capacidad que consume la carga de trabajo, use la métrica Provisioned-managed utilization V2 en Azure Monitor.

El uso de PTU se define como:

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

Para ver la métrica:

  1. Inicie sesión en Azure Portal.
  2. Vaya al recurso Foundry y seleccione Métricas en el panel de navegación izquierdo.
  3. Seleccione la métrica Utilización aprovisionada y administrada V2.
  4. Si tiene más de una implementación en el recurso, seleccione Aplicar división para ver los valores divididos por implementación.

Captura de pantalla de la métrica Utilización administrada aprovisionada V2 mostrada en el panel de métricas del recurso en Azure Portal.

Cómo funciona la utilización

Cada cliente tiene una cantidad de capacidad establecida que puede usar en una implementación aprovisionada. Para mantener la utilización por debajo del 100 % sin dejar de permitir ciertas ráfagas de tráfico, el servicio utiliza una variación del algoritmo del cubo con fugas de la siguiente manera:

  1. Limitación en 100%: cuando se realiza una solicitud, si el uso actual está en 100%, el servicio devuelve HTTP 429 inmediatamente, con retry-after-ms encabezados de respuesta y retry-after que indican cuánto tiempo se debe esperar.
  2. Estimación de solicitudes: para cada solicitud entrante, el servicio calcula el costo de proceso mediante la combinación del recuento de tokens de solicitud (menos tokens almacenados en caché) y el especificado max_tokens en la llamada. Los tokens almacenados en caché reciben un descuento de 100% y no contribuyen al uso. Si max_tokens no se especifica, el servicio calcula un valor, lo que puede provocar una simultaneidad inferior a la esperada cuando los tokens generados reales son menores de lo estimado. Para obtener la máxima concurrencia, establezca max_tokens lo más cerca posible de su tamaño real de generación.
  3. Corrección posterior a la solicitud: cuando finaliza una solicitud, el servicio corrige la estimación de uso mediante recuentos de tokens reales. Si el costo real del proceso supera la estimación, la diferencia se agrega al uso; si es menor, se resta la diferencia.
  4. Consumo continuo: El consumo se reduce continuamente a una tasa proporcional a las PTU desplegadas. Una implementación con más PTUs se agota más rápido.

Las solicitudes aceptadas siempre se completan con una latencia predecible, ya que las respuestas 429 se devuelven de inmediato en lugar de poner el tráfico en cola.

Nota

Las llamadas se aceptan hasta que el uso alcance 100%. Los picos justo por encima del 100% pueden permitirse en períodos cortos, pero con el tiempo, el tráfico se limita a una utilización del 100%.

Captura de pantalla del algoritmo del cubo con fugas para la utilización del rendimiento aprovisionado, que muestra cómo las solicitudes aumentan la utilización mientras la capacidad se reduce en función del número de PTU implementadas.

Gestión del uso elevado

Cuando el uso alcanza 100%, el servicio devuelve HTTP 429 inmediatamente e incluye los retry-after encabezados de respuesta y retry-after-ms que indican cuánto tiempo se debe esperar antes de que se acepte la siguiente solicitud. Este enfoque mantiene los objetivos de latencia por llamada y te permite decidir cómo gestionar las situaciones de alta carga.

Un 429 de una implementación aprovisionada no es un error de servicio; en su lugar, es una señal de administración del tráfico.

Qué hacer cuando reciba una respuesta 429

La respuesta incluye los retry-after-ms encabezados y retry-after que indican cuánto tiempo debe esperar antes de que se acepte la siguiente llamada. La forma de controlar un 429 depende de los requisitos de la aplicación:

  • Redirección a otra implementación o modelo: esta opción genera la latencia adicional más baja porque la acción se puede realizar tan pronto como reciba la señal 429. La función de desbordamiento automatiza el proceso de redirección de las solicitudes de su implementación aprovisionada a una implementación estándar.
  • Reintentar con el tiempo de espera en los encabezados de respuesta: si necesita la implementación aprovisionada y puede tolerar una latencia agregada, espere el tiempo indicado en retry-after-ms y vuelva a intentarlo. Los SDK de OpenAI Azure implementan este comportamiento de reintento de forma predeterminada. Es posible que todavía necesite un ajuste adicional en función de los casos de uso.

Límites de llamadas simultáneas

El número de llamadas simultáneas que puede admitir una implementación depende de las características de cada llamada: el tamaño del prompt, el valor de max_tokens y otros factores similares. El servicio acepta llamadas hasta que el uso alcanza 100%. Para calcular el número máximo de llamadas simultáneas para una forma de llamada específica, use la calculadora de capacidad en la página Cuota del portal de Foundry. Si el modelo genera menos tokens que el max_tokens valor, la implementación puede aceptar más solicitudes simultáneas.

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

Los SDKs de OpenAI reintentan las respuestas 429 de forma predeterminada, respetando el tiempo de retry-after. Puede configurar o deshabilitar el comportamiento de reintento mediante la max_retries opción :

import os
from openai import OpenAI

# Configure the default for all requests:
client = OpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),
    base_url="https://<myResourceName>.openai.azure.com/openai/v1/",
    max_retries=5, # default is 2
)

# Or, configure per-request:
client.with_options(max_retries=5).chat.completions.create(
    messages=[
        {
            "role": "user",
            "content": "When was Microsoft founded?",
        }
    ],
    model="gpt-5.1",
)

Referencia: Lenguajes de programación compatibles con Azure OpenAI

Limpieza de recursos

La facturación por hora comienza el momento en que se crea una implementación aprovisionada y se detiene cuando se elimina la implementación. Los cargos por las implementaciones en un recurso eliminado continúan hasta que se purga el recurso, por lo que siempre se eliminan todas las implementaciones antes de eliminar el propio recurso.

Elimine una implementación aprovisionada correctamente

Para eliminar correctamente un despliegue aprovisionado:

  1. En el portal de Foundry, vaya al recurso y elimine la implementación.
  2. Si también va a quitar el recurso de Azure, elimine primero todas sus implementaciones y, a continuación, elimine el recurso.
  3. Si eliminó el recurso en el paso anterior, purguelo para asegurarse de que la facturación se detiene. Consulte Recuperar o purgar recursos eliminados de Azure AI para obtener instrucciones.
  4. Vaya a la página Reservations del portal de Azure para revisar las reservas existentes. Eliminar una implementación no cancela ni modifica ninguna reserva de PTU. Puede cancelar o intercambiar una reserva en el portal de Azure, pero esta acción podría incurrir en cargos. Consulte Facturación y administración de costos de PTU para obtener más información.