Administración de la cuota de Azure OpenAI Service

La cuota proporciona flexibilidad para administrar activamente la asignación de límites de velocidad en las implementaciones de la suscripción. En este artículo se explica el proceso de administración de la cuota de Azure OpenAI.

Prerrequisitos

Importante

La visualización de la cuota y la implementación de modelos requiere el rol Lector de usos de Cognitive Services. Este rol proporciona el acceso mínimo necesario para ver el uso de la cuota en una suscripción de Azure. Para saber más sobre este rol y los demás roles que necesitará para acceder a Azure OpenAI, consulte nuestra guía de acceso basado en roles de Azure (RBAC de Azure).

Este rol se puede encontrar en el Azure Portal en Subscripciones>Control de acceso (IAM)>Añadir asignación de roles>buscar el Lector de usos de Cognitive Services. Este rol se debe aplicar en el nivel de suscripción, no existe en el nivel de recurso.

Si no desea usar este rol, el rol Lector de la suscripción le proporcionará acceso equivalente, pero también le concederá acceso de lectura más allá del ámbito de lo que se necesita para ver la cuota y la implementación del modelo.

Introducción a la cuota

La característica de cuota de Azure OpenAI permite la asignación de límites de velocidad a las implementaciones, hasta un límite global denominado "cuota". La cuota se asigna a la suscripción por región, por modelo, en unidades de Tokens por minuto (TPM). Al incorporar una suscripción a Azure OpenAI, recibirá la cuota predeterminada para la mayoría de los modelos disponibles. A continuación, asignará TPM a cada implementación a medida que se crean y la cuota disponible para ese modelo se reducirá en esa cantidad. Puede seguir creando implementaciones y asignarlas a TPM hasta que alcance el límite de cuota. Una vez que esto suceda, solo puede crear nuevas implementaciones de ese modelo reduciendo el TPM asignado a otras implementaciones del mismo modelo (lo que libera TPM para su uso), o solicitando y siendo aprobado para un aumento de cuota de modelo en la región deseada.

Nota

Con una cuota de 240 000 TPM para GPT-35-Turbo en el Este de EE. UU., un cliente puede crear una única implementación de 240 000 TPM, 2 implementaciones de 120 000 TPM cada una, o cualquier número de implementaciones en uno o varios recursos de Azure OpenAI siempre que su TPM alcance un total inferior a 240 000 en esa región.

Cuando se crea una implementación, el TPM asignado se asignará directamente al límite de velocidad de tokens por minuto aplicado en sus solicitudes de inferencia. También se aplicará un límite de velocidad de Solicitudes por minuto (RPM) cuyo valor se establece proporcionalmente en la asignación de TPM mediante la siguiente relación:

6 RPM por 1000 TPM.

La flexibilidad para distribuir TPM globalmente dentro de una suscripción y región ha permitido a Azure OpenAI Service flexibilizar otras restricciones:

  • Los recursos máximos por región se incrementan a 30.
  • Se ha quitado el límite de creación de más de una implementación del mismo modelo en un recurso.

Asignar cuota

Al crear una implementación de modelo, tiene la opción de asignar Tokens por minuto (TPM) a esa implementación. TPM se puede modificar en incrementos de 1000 y se asignará a los límites de velocidad de TPM y RPM aplicados en la implementación, como se ha descrito anteriormente.

Para crear una nueva implementación desde Azure AI Studio en Administración, seleccione Implementaciones>Crear nueva implementación.

La opción para establecer el TPM está en la lista desplegable Opciones avanzadas:

Screenshot of the deployment UI of Azure AI Studio

Después de la implementación, puede ajustar la asignación de TPM seleccionando Editar implementación enAdministración>Implementaciones en Azure AI Studio. También puede modificar esta selección dentro de la nueva experiencia de administración de cuotas en Administración>Cuotas.

Importante

Las cuotas y los límites están sujetos a cambios, para obtener la información más actualizada, consulte nuestro artículo sobre cuotas y límites.

Configuración específica del modelo

Las distintas implementaciones de modelos, también denominadas clases de modelo, tienen valores máximos de TPM únicos que ahora puede controlar. Representa la cantidad máxima de TPM que se puede asignar a ese tipo de implementación de modelos en una región determinada. Aunque cada tipo de modelo representa su propia clase de modelo única, el valor máximo de TPM actualmente solo es diferente para determinadas clases de modelo:

  • GPT-4
  • GPT-4-32K
  • Text-Davinci-003

Todas las demás clases de modelo tienen un valor máximo de TPM común.

Nota

La asignación de tokens por minuto (TPM) de cuota no está relacionada con el límite máximo de tokens de entrada de un modelo. Los límites del token de entrada del modelo se definen en la tabla de modelos y no se ven afectados por los cambios realizados en TPM.

Visualización y solicitud de cuota

Para ver todas las asignaciones de cuota en implementaciones de una región determinada, seleccione Administración>Cuota en Azure AI Studio:

Screenshot of the quota UI of Azure AI Studio

  • Nombre de cuota: hay un valor de cuota por región para cada tipo de modelo. La cuota cubre todas las versiones de ese modelo. El nombre de la cuota se puede expandir en la interfaz de usuario para mostrar las implementaciones que usan la cuota.
  • Implementación: implementaciones de modelos divididas por clase de modelo.
  • Uso y límite: para el nombre de la cuota, se muestra la cantidad de cuota que usan las implementaciones y la cuota total aprobada para esta suscripción y región. Esta cantidad de cuota usada también se representa en el gráfico de barras.
  • Cuota de solicitud: el icono de este campo navega a un formulario donde se pueden enviar solicitudes para aumentar la cuota.

Migración de implementaciones existentes

Como parte de la transición al nuevo sistema de cuotas y a la asignación basada en TPM, todas las implementaciones de modelos de Azure OpenAI existentes se han migrado automáticamente para usar la cuota. En los casos en los que la asignación de TPM/RPM existente supera los valores predeterminados debido a aumentos de límite de velocidad personalizados anteriores, se asignó un TPM equivalente a las implementaciones afectadas.

Descripción de los límites de frecuencia

La asignación de TPM a una implementación establece los límites de velocidad tokens por minuto (TPM) y solicitudes por minuto (RPM) para la implementación, como se ha descrito anteriormente. Los límites de velocidad de TPM se basan en el número máximo de tokens que se estima que se van a procesar mediante una solicitud en el momento en que se recibe la solicitud. No es lo mismo que el recuento de tokens usado para la facturación, que se calcula una vez completado todo el procesamiento.

A medida que se recibe cada solicitud, Azure OpenAI calcula un recuento máximo estimado de tokens procesados que incluye lo siguiente:

  • Mensaje de texto y recuento
  • Configuración del parámetro max_tokens
  • Configuración del parámetro best_of

A medida que las solicitudes entran en el punto de conexión de implementación, el recuento de tokens máximos procesados estimado se agrega a un recuento de tokens en ejecución de todas las solicitudes que se restablecen cada minuto. Si en cualquier momento durante ese minuto, se alcanza el valor del límite de velocidad de TPM, las solicitudes adicionales recibirán un código de respuesta 429 hasta que se restablezca el contador.

Los límites de velocidad RPM se basan en el número de solicitudes recibidas con el tiempo. El límite de velocidad espera que las solicitudes se distribuyan uniformemente durante un período de un minuto. Si no se mantiene este flujo medio, las solicitudes pueden recibir una respuesta 429 aunque el límite no se cumpla cuando se mida durante un minuto. Para implementar este comportamiento, Azure OpenAI Service evalúa la tasa de solicitudes entrantes durante un pequeño período de tiempo, normalmente de 1 o 10 segundos. Si el número de solicitudes recibidas durante ese tiempo supera lo que se esperaría en el límite de RPM establecido, las nuevas solicitudes recibirán un código de respuesta 429 hasta el siguiente período de evaluación. Por ejemplo, si Azure OpenAI supervisa la tasa de solicitudes en intervalos de 1 segundo, la limitación de velocidad se producirá para una implementación de 600 RPM si se reciben más de 10 solicitudes durante cada período de 1 segundo (600 solicitudes por minuto = 10 solicitudes por segundo).

Procedimientos recomendados de límites de frecuencia

Para minimizar los problemas relacionados con los límites de frecuencia, se recomienda usar las técnicas siguientes:

  • Establezca max_tokens y best_of en los valores mínimos que satisfacen las necesidades de su escenario. Por ejemplo, no establezca un valor de max-tokens grande si espera que las respuestas sean pequeñas.
  • Use la administración de cuotas para aumentar el TPM en las implementaciones con tráfico elevado y reducir el TPM en implementaciones con necesidades limitadas.
  • Implemente lógica de reintento en la aplicación.
  • Evite cambios bruscos en la carga de trabajo. Aumente la carga de trabajo gradualmente.
  • Prueba de diferentes patrones de aumento de carga

Automatizar la implementación

Esta sección contiene plantillas de ejemplo breves para ayudarle a empezar a crear implementaciones mediante programación que usan la cuota para establecer límites de velocidad de TPM. Con la introducción de la cuota, debe usar la versión 2023-05-01 de API para las actividades relacionadas con la administración de recursos. Esta versión de API solo es para administrar los recursos y no afecta a la versión de API que se usa para la inferencia de llamadas como finalizaciones, finalizaciones de chat, inserción, generación de imágenes, etc.

Implementación

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/deployments/{deploymentName}?api-version=2023-05-01

Parámetros de la ruta de acceso

Parámetro Tipo ¿Necesario? Descripción
accountName string Obligatorio Nombre del recurso de Azure OpenAI.
deploymentName string Obligatorio Nombre de la implementación que eligió al implementar un modelo existente o el nombre que desea que tenga una nueva implementación de modelo.
resourceGroupName string Obligatorio Nombre del grupo de recursos asociado para esta implementación de modelo.
subscriptionId string Obligatorio Identificador de suscripción de la suscripción asociada.
api-version string Obligatorio Versión de API que se usará para la operación. Sigue el formato AAAA-MM-DD.

Versiones compatibles

Cuerpo de la solicitud

Este es solo un subconjunto de los parámetros del cuerpo de la solicitud disponibles. Para obtener la lista completa de los parámetros, puede consultar la Documentación de referencia de API de REST.

Parámetro Tipo Descripción
sku SKU Definición del modelo de recursos que representa la SKU.
capacity integer Esto representa la cantidad de cuota que va a asignar a esta implementación. Un valor de 1 es igual a 1000 tokens por minuto (TPM). Un valor de 10 equivale a 10 000 tokens por minuto (TPM).

Solicitud de ejemplo

curl -X PUT https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-temp/providers/Microsoft.CognitiveServices/accounts/docs-openai-test-001/deployments/gpt-35-turbo-test-deployment?api-version=2023-05-01 \
  -H "Content-Type: application/json" \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
  -d '{"sku":{"name":"Standard","capacity":10},"properties": {"model": {"format": "OpenAI","name": "gpt-35-turbo","version": "0613"}}}'

Nota:

Hay varias maneras de generar un token de autorización. El método más sencillo para las pruebas iniciales es iniciar Cloud Shell desde Azure Portal. A continuación, ejecute az account get-access-token. Puede usar este token como token de autorización temporal para las pruebas de API.

Para obtener más información, consulte la documentación de referencia de la API de REST para usos e implementación.

Uso

Para consultar el uso de la cuota en una región determinada, para una suscripción específica

GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/locations/{location}/usages?api-version=2023-05-01

Parámetros de la ruta de acceso

Parámetro Tipo ¿Necesario? Descripción
subscriptionId string Obligatorio Identificador de suscripción de la suscripción asociada.
location string Obligatorio Ubicación para ver el uso, por ejemplo: eastus
api-version string Obligatorio Versión de API que se usará para la operación. Sigue el formato AAAA-MM-DD.

Versiones compatibles

Solicitud de ejemplo

curl -X GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.CognitiveServices/locations/eastus/usages?api-version=2023-05-01 \
  -H "Content-Type: application/json" \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN' 

Eliminación de recursos

Cuando se intenta eliminar un recurso de Azure OpenAI desde Azure Portal si alguna implementación todavía está presente, se bloquea hasta que se eliminan las implementaciones asociadas. La eliminación de las implementaciones en primer lugar permite liberar correctamente las asignaciones de la cuota para que se puedan usar en nuevas implementaciones.

Sin embargo, si elimina un recurso mediante la API de REST o algún otro método de programación, esto omite primero la necesidad de eliminar las implementaciones. Cuando esto ocurre, la asignación de la cuota asociada seguirá sin estar disponible para asignarla a una nueva implementación durante 48 horas hasta que se purgue el recurso. Para desencadenar una purga inmediata de un recurso eliminado para liberar cuota, siga las instrucciones de purga de un recurso eliminado.

Pasos siguientes