Dela via


Azure OpenAI-lagrade kompletteringar och destillation (förhandsvisning)

Med lagrade slutföranden kan du samla in konversationshistoriken från chattsessioner som ska användas som datauppsättningar för utvärderingar och finjustering.

Stöd för lagrade kompletteringar

API-stöd

Supporten lades först till i 2024-10-01-preview, använd 2025-02-01-preview eller senare för åtkomst till de senaste funktionerna.

Distributionstyp

Sparade slutföranden stöds för alla Azure OpenAI-distributionstyper: standard, global, datazon och tilldelad.

Tillgänglighet för modell och region

Så länge du använder API:et för chattslutsättning för slutsatsdragning kan du utnyttja lagrade slutföranden. Det stöds för alla Azure OpenAI-modeller och i alla regioner som stöds (inklusive regioner som endast är globala).

Konfigurera lagrade kompletteringar

Om du vill aktivera lagrade slutföranden för Azure OpenAI-distributionen anger du parametern store till True. Använd parametern metadata för att berika den lagrade datauppsättningen för slutföranden med ytterligare information.

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="2025-02-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)


När lagrade slutföranden har aktiverats för en Azure OpenAI-distribution börjar de visas i Azure AI Foundry-portalen i fönstret Lagrade slutföranden .

Skärmbild av lagrade kompletteringars användarupplevelse.

Destillering

Genom destillation kan du omvandla dina lagrade avslutningar till ett dataset för finjustering. Ett vanligt användningsfall är att använda lagrade slutföranden med en större kraftfullare modell för en viss uppgift och sedan använda lagrade slutföranden för att träna en mindre modell på högkvalitativa exempel på modellinteraktioner.

Destillation kräver minst 10 sparade kompletteringar, men vi rekommenderar att ha hundratals till tusentals sparade kompletteringar för bästa resultat.

  1. I fönstret Lagrade slutföranden i Azure AI Foundry-portalen använder du filteralternativen för att välja de slutföranden som du vill träna din modell med.

  2. Börja destillationen genom att välja Destillera

    Skärmbild av lagrade fullbordningar användarupplevelse med Distill markerat.

  3. Välj vilken modell du vill finjustera med din lagrade slutförandedatauppsättning.

    Skärmbild av valet av modell för lagrad slutförandedestillation.

  4. Bekräfta vilken version av modellen du vill finjustera:

    Skärmbild av den lagrade slutförandedestillationsversionen.

  5. En .jsonl fil med ett slumpmässigt genererat namn skapas som en träningsdatauppsättning från dina lagrade slutföranden. Välj filen >Nästa.

    Anmärkning

    Det går inte att komma åt lagrade träningsfiler för slutföringsdestillation direkt, och de kan inte exporteras eller laddas ner externt.

    Skärmdump av jsonl-filen för den lagrade träningsdatauppsättningen för slutförande.

Resten av stegen motsvarar de typiska finjusteringsstegen för Azure OpenAI. Mer information finns i vår vägledning för att komma igång med finjustering.

Utvärdering

Utvärderingen av stora språkmodeller är ett viktigt steg för att mäta deras prestanda i olika uppgifter och dimensioner. Detta är särskilt viktigt för finjusterade modeller, där bedömning av prestandavinster (eller förluster) från träning är avgörande. Noggranna utvärderingar kan hjälpa dig att förstå hur olika versioner av modellen kan påverka ditt program eller scenario.

Lagrade slutföranden kan användas som en datauppsättning för att köra utvärderingar.

  1. I fönstret Lagrade slutföranden i Azure AI Foundry-portalen använder du filteralternativen för att välja de slutföranden som du vill ska ingå i din utvärderingsdatauppsättning.

  2. Om du vill konfigurera utvärderingen väljer du Utvärdera

    Skärmbild av det lagrade fullbordningsfönstret med utvärdering valt.

  3. Då startas fönstret Utvärderingar med en fördefinierad .jsonl fil med ett slumpmässigt genererat namn som skapas som en utvärderingsdatauppsättning från dina lagrade slutföranden.

    Anmärkning

    Lagrade utvärderingsdatafiler för slutförande kan inte nås direkt och kan inte exporteras externt/laddas ned.

    Skärmbild av utvärderingsfönstret.

Mer information om utvärdering finns i Komma igång med utvärderingar

API för lagrade slutföranden

För att komma åt API-kommandona för lagrade slutföranden kan du behöva uppgradera din version av OpenAI-biblioteket.

pip install --upgrade openai

Lista lagrade slutföranden

Ytterligare parametrar:

  • metadata: Filtrera efter nyckel/värde-paret i de lagrade slutförandena
  • after: Identifierare för det senast lagrade slutförandemeddelandet från föregående sidnumreringsbegäran.
  • limit: Antal lagrade slutförandemeddelanden som ska hämtas.
  • order: Resultatordning efter index (stigande eller fallande).
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 = "https://YOUR-RESOURCE-NAME.openai.azure.com", 
  azure_ad_token_provider=token_provider,
  api_version="2025-02-01-preview"
)

response = client.chat.completions.list()

print(response.model_dump_json(indent=2))

Hämta lagrad slutföringsdata

Hämta lagrad slutföring med ID.

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 = "https://YOUR-RESOURCE-NAME.openai.azure.com/", 
  azure_ad_token_provider=token_provider,
  api_version="2025-02-01-preview"
)

response = client.chat.completions.retrieve("chatcmpl-A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u")

print(response.model_dump_json(indent=2))

Hämta lagrade meddelanden om chattens slutförande

Ytterligare parametrar:

  • after: Identifierare för det senast lagrade slutförandemeddelandet från föregående sidnumreringsbegäran.
  • limit: Antal lagrade slutförandemeddelanden som ska hämtas.
  • order: Resultatordning efter index (stigande eller fallande).
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 = "https://YOUR-RESOURCE-NAME.openai.azure.com/", 
  azure_ad_token_provider=token_provider,
  api_version="2025-02-01-preview"
)

response = client.chat.completions.messages.list("chatcmpl-A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", limit=2)

print(response.model_dump_json(indent=2))

Uppdatera lagrad chattkomplettering

Lägg till metadatanyckel:värdepar i en befintlig lagrad komplettering.

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 = "https://YOUR-RESOURCE-NAME.openai.azure.com/", 
  azure_ad_token_provider=token_provider,
  api_version="2025-02-01-preview"
)

response = client.chat.completions.update(
    "chatcmpl-C2dE3fH4iJ5kL6mN7oP8qR9sT0uV1w",
    metadata={"fizz": "buzz"}
)

print(response.model_dump_json(indent=2))

Ta bort lagrad chatt

Ta bort lagrad komplettering genom kompletterings-ID.

Microsoft Entra ID

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 = "https://YOUR-RESOURCE-NAME.openai.azure.com/", 
  azure_ad_token_provider=token_provider,
  api_version="2025-02-01-preview"
)

response = client.chat.completions.delete("chatcmpl-A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u")

print(response.model_dump_json(indent=2))

Felsökning

Behöver jag särskilda behörigheter för att använda lagrade slutföranden?

Åtkomst till lagrade slutföranden styrs via två DataActions:

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

Som standard Cognitive Services OpenAI Contributor har åtkomst till båda dessa behörigheter:

Skärmbild av behörigheter för sparade kompletteringar.

Hur gör jag för att ta bort lagrade data?

Data kan tas bort genom att ta bort den associerade Azure OpenAI-resursen. Om du bara vill ta bort lagrade slutförandedata måste du öppna ett ärende med kundsupport.

Hur mycket lagrade slutförandedata kan jag lagra?

Du kan lagra högst 10 GB data.

Kan jag förhindra att lagrade slutföranden någonsin aktiveras i en prenumeration?

Du måste öppna ett ärende med kundsupport för att inaktivera lagrade slutföranden på prenumerationsnivå.

TypeError: Completions.create() fick ett oväntat argument "store"

Det här felet uppstår när du kör en äldre version av OpenAI-klientbiblioteket som föregår den lagrade slutförandefunktionen som släpps. Kör pip install openai --upgrade.