Compartir vía


Finalizaciones almacenadas y destilación de Azure OpenAI (versión preliminar)

Las finalizaciones almacenadas permiten capturar el historial de conversaciones de las sesiones de finalizaciones de chat que se usarán como conjuntos de datos para las evaluaciones y el ajuste preciso.

Compatibilidad con finalizaciones almacenadas

Compatibilidad con API

Compatibilidad agregada por primera vez en 2024-10-01-preview

Tipo de implementación

Actualmente, solo las implementaciones de modelos Standard admiten finalizaciones almacenadas.

Disponibilidad de región y modelo

Región o1-preview, 2024-09-12 o1-mini, 2024-09-12 gpt-4o, 2024-08-06 gpt-4o, 2024-05-13 gpt-4o-mini, 2024-07-18
Centro de Suecia
Centro-Norte de EE. UU - - - -
Este de EE. UU. 2 - - - -

Configurar finalizaciones almacenadas

Para habilitar las finalizaciones almacenadas para la implementación de Azure OpenAI, establezca el parámetro store en True. Use el parámetro metadata para enriquecer el conjunto de datos de finalización almacenado con información adicional.

import os
from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

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

client = AzureOpenAI(
  azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
  azure_ad_token_provider=token_provider,
  api_version="2024-10-01-preview"
)

completion = client.chat.completions.create(
    
    model="gpt-4o", # replace with model deployment name
    store= True,
    metadata =  {
    "user": "admin",
    "category": "docs-test",
  },
    messages=[
    {"role": "system", "content": "Provide a clear and concise summary of the technical content, highlighting key concepts and their relationships. Focus on the main ideas and practical implications."},
    {"role": "user", "content": "Ensemble methods combine multiple machine learning models to create a more robust and accurate predictor. Common techniques include bagging (training models on random subsets of data), boosting (sequentially training models to correct previous errors), and stacking (using a meta-model to combine base model predictions). Random Forests, a popular bagging method, create multiple decision trees using random feature subsets. Gradient Boosting builds trees sequentially, with each tree focusing on correcting the errors of previous trees. These methods often achieve better performance than single models by reducing overfitting and variance while capturing different aspects of the data."}
    ]   
)

print(completion.choices[0].message)


Una vez habilitadas las finalizaciones almacenadas para una implementación de Azure OpenAI, comenzarán a aparecer en el Portal de la Fundición de IA de Azure en el panel Finalizaciones almacenadas.

Recorte de pantalla de las finalizaciones almacenadas de Experiencia del usuario.

Destilación

La destilación permite convertir las finalizaciones almacenadas en un conjunto de datos de ajuste preciso. Un caso de uso común es usar las finalizaciones almacenadas con un modelo más grande y más eficaz para una tarea determinada y, a continuación, usar las finalizaciones almacenadas para entrenar un modelo más pequeño en ejemplos de alta calidad de interacciones del modelo.

La destilación requiere un mínimo de 10 finalizaciones almacenadas, aunque se recomienda proporcionar cientos a miles de finalizaciones almacenadas para obtener los mejores resultados.

  1. En el panel Finalizaciones almacenadas del Portal de la Fundición de IA de Azure, use las opciones del Filtro para seleccionar las finalizaciones con las que desea entrenar el modelo.

  2. Para comenzar la destilación, seleccione Destilar.

    Recorte de pantalla de las finalizaciones almacenadas de Experiencia del usuario con destilado resaltado.

  3. Elija el modelo que desea ajustar con el conjunto de datos de finalización almacenado.

    Recorte de pantalla de la selección del modelo de destilación de finalización almacenada.

  4. Confirme la versión del modelo a la que desea hacer ajustes precisos:

    Recorte de pantalla de la versión de destilación de finalización almacenada.

  5. Se creará un archivo .jsonl con un nombre generado aleatoriamente como un conjunto de datos de entrenamiento a partir de las finalizaciones almacenadas. Seleccione el archivo >Siguiente.

    Nota:

    No se puede acceder directamente a los archivos de entrenamiento de destilación de finalización almacenada y no se puede exportar externamente o descargar.

    Recorte de pantalla del archivo jsonl del conjunto de datos de entrenamiento de la finalización almacenada.

El resto de los pasos corresponde a los pasos típicos de ajuste preciso de Azure OpenAI. Para más información, consulte nuestra guía de introducción al ajuste preciso.

Evaluación

La evaluación de modelos de lenguaje de gran tamaño es un paso crítico para medir su rendimiento en varias tareas y dimensiones. Esto es especialmente importante para los modelos ajustados, donde evaluar las ganancias de rendimiento (o pérdidas) del entrenamiento es fundamental. Las evaluaciones exhaustivas pueden ayudar a comprender cómo las distintas versiones del modelo pueden afectar a la aplicación o el escenario.

Las finalizaciones almacenadas se pueden usar como un conjunto de datos para ejecutar evaluaciones.

  1. En el panel Finalizaciones almacenadas del Portal de la Fundición de IA de Azure, use las opciones del Filtro para seleccionar las finalizaciones que desea que formen parte del conjunto de datos de evaluación.

  2. Para configurar la evaluación, seleccione Evaluar.

    Recorte de pantalla del panel de finalización almacenada con la opción Calcular seleccionada.

  3. Esto inicia el panel Evaluaciones con un archivo .jsonl rellenado previamente con un nombre generado aleatoriamente que se crea como un conjunto de datos de evaluación a partir de las finalizaciones almacenadas.

    Nota:

    No se puede acceder directamente a los archivos de datos de evaluación de la finalización almacenada y no se pueden exportar externamente o descargar.

    Recorte de pantalla del panel de evaluaciones.

Para obtener más información sobre la evaluación, consulte Introducción a las evaluaciones.

Solución de problemas

¿Necesito permisos especiales para usar finalizaciones almacenadas?

El acceso a las finalizaciones almacenadas se controla a través de dos DataActions:

  • Microsoft.CognitiveServices/accounts/OpenAI/stored-completions/read
  • Microsoft.CognitiveServices/accounts/OpenAI/stored-completions/action

De forma predeterminada, Cognitive Services OpenAI Contributor tiene acceso a ambos permisos:

Recorte de pantalla de los permisos de finalizaciones almacenadas.

¿Cómo se eliminan los datos almacenados?

Los datos se pueden eliminar eliminando el recurso de Azure OpenAI asociado. Si desea eliminar solo los datos de finalización almacenados, debe abrir un caso con el servicio de atención al cliente.

¿Cuántos datos de finalización almacenada puedo almacenar?

Puede almacenar un máximo de 10 GB de datos.

¿Puedo impedir que las finalizaciones almacenadas estén habilitadas en una suscripción?

Deberá abrir un caso con el servicio de atención al cliente para deshabilitar las finalizaciones almacenadas en el nivel de suscripción.

TypeError: Completions.create() tiene un argumento 'store' inesperado

Este error se produce cuando se ejecuta una versión anterior de la biblioteca cliente de OpenAI anterior a la característica de finalizaciones almacenadas que se está liberando. Ejecute pip install openai --upgrade.