Delen via


Meer informatie over het gebruik van reproduceerbare uitvoer (preview)

Als u standaard een Azure OpenAI Chat-voltooiingsmodel vraagt, krijgt u waarschijnlijk meerdere keren een ander antwoord. De antwoorden worden daarom beschouwd als niet-deterministisch. Reproduceerbare uitvoer is een nieuwe preview-functie waarmee u selectief het standaardgedrag kunt wijzigen om meer deterministische uitvoer van producten te helpen.

Ondersteuning voor reproduceerbare uitvoer

Reproduceerbare uitvoer wordt momenteel alleen ondersteund met het volgende:

Ondersteunde modellen

  • gpt-35-turbo (1106)
  • gpt-35-turbo (0125)
  • gpt-4 (1106-preview)
  • gpt-4 (0125-preview)
  • gpt-4 (turbo-2024-04-09)
  • gpt-4o (2024-05-13)

Raadpleeg de modellenpagina voor de meest recente informatie over regionale beschikbaarheid van modellen.

API-versie

Ondersteuning voor reproduceerbare uitvoer is voor het eerst toegevoegd in api-versie 2023-12-01-preview

Opmerking

Eerst genereren we drie antwoorden op dezelfde vraag om de variabiliteit aan te tonen die gebruikelijk is voor antwoorden op voltooiing van chats, zelfs wanneer andere parameters hetzelfde zijn:

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"
)

for i in range(3):
  print(f'Story Version {i + 1}\n---')
    
  response = client.chat.completions.create(
    model="gpt-35-turbo-0125", # Model = should match the deployment name you chose for your 0125-preview model deployment
    #seed=42,
    temperature=0.7,
    max_tokens =50, 
    messages=[
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Tell me a story about how the universe began?"}
    ]
  )
  
  print(response.choices[0].message.content)
  print("---\n")
  
  del response

Uitvoer

Story Version 1
---
Once upon a time, before there was time, there was nothing but a vast emptiness. In this emptiness, there existed a tiny, infinitely dense point of energy. This point contained all the potential for the universe as we know it. And
---

Story Version 2
---
Once upon a time, long before the existence of time itself, there was nothing but darkness and silence. The universe lay dormant, a vast expanse of emptiness waiting to be awakened. And then, in a moment that defies comprehension, there
---

Story Version 3
---
Once upon a time, before time even existed, there was nothing but darkness and stillness. In this vast emptiness, there was a tiny speck of unimaginable energy and potential. This speck held within it all the elements that would come

U ziet dat hoewel elk verhaal vergelijkbare elementen kan hebben en een aantal exacte herhalingen hoe langer het antwoord opgaat, hoe meer ze vaak afwijken.

Nu voeren we dezelfde code uit als voorheen, maar deze keer wordt de opmerking bij de regel voor de parameter met de tekst verwijderd seed=42

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"
)

for i in range(3):
  print(f'Story Version {i + 1}\n---')
    
  response = client.chat.completions.create(
    model="gpt-35-turbo-0125", # Model = should match the deployment name you chose for your 0125-preview model deployment
    seed=42,
    temperature=0.7,
    max_tokens =50, 
    messages=[
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Tell me a story about how the universe began?"}
    ]
  )
  
  print(response.choices[0].message.content)
  print("---\n")
  
  del response

Uitvoer

Story Version 1
---
In the beginning, there was nothing but darkness and silence. Then, suddenly, a tiny point of light appeared. This point of light contained all the energy and matter that would eventually form the entire universe. With a massive explosion known as the Big Bang
---

Story Version 2
---
In the beginning, there was nothing but darkness and silence. Then, suddenly, a tiny point of light appeared. This point of light contained all the energy and matter that would eventually form the entire universe. With a massive explosion known as the Big Bang
---

Story Version 3
---
In the beginning, there was nothing but darkness and silence. Then, suddenly, a tiny point of light appeared. This was the moment when the universe was born.

The point of light began to expand rapidly, creating space and time as it grew.
---

Door dezelfde seed parameter van 42 te gebruiken voor elk van onze drie aanvragen, terwijl alle andere parameters hetzelfde blijven, kunnen we veel consistentere resultaten produceren.

Belangrijk

Determinisme wordt niet gegarandeerd met reproduceerbare uitvoer. Zelfs in gevallen waarin de seed-parameter en system_fingerprint hetzelfde zijn in API-aanroepen, is het momenteel niet ongebruikelijk om nog steeds een mate van variabiliteit in reacties te observeren. Identieke API-aanroepen met grotere max_tokens waarden leiden doorgaans tot minder deterministische antwoorden, zelfs wanneer de seed-parameter is ingesteld.

Parameterdetails

seed is een optionele parameter, die kan worden ingesteld op een geheel getal of null.

Deze functie is beschikbaar als preview-versie. Indien opgegeven, zal ons systeem een best inspanning leveren om de steekproef deterministisch uit te voeren, zodat herhaalde aanvragen met dezelfde seed en parameters hetzelfde resultaat moeten retourneren. Determinisme is niet gegarandeerd en u moet verwijzen naar de system_fingerprint antwoordparameter om wijzigingen in de back-end te controleren.

system_fingerprint is een tekenreeks en maakt deel uit van het voltooiingsobject van de chat.

Deze vingerafdruk vertegenwoordigt de back-endconfiguratie waarmee het model wordt uitgevoerd.

Deze kan worden gebruikt met de seed-aanvraagparameter om te begrijpen wanneer er back-endwijzigingen zijn aangebracht die van invloed kunnen zijn op determinisme.

Als u het volledige voltooiingsobject van de chat wilt system_fingerprintweergeven, kunt u toevoegen print(response.model_dump_json(indent=2)) aan de vorige Python-code naast de bestaande afdrukinstructie of $response | convertto-json -depth 5 aan het einde van het PowerShell-voorbeeld. Deze wijziging resulteert in de volgende aanvullende informatie die deel uitmaakt van de uitvoer:

Uitvoer

{
  "id": "chatcmpl-8LmLRatZxp8wsx07KGLKQF0b8Zez3",
  "choices": [
    {
      "finish_reason": "length",
      "index": 0,
      "message": {
        "content": "In the beginning, there was nothing but a vast emptiness, a void without form or substance. Then, from this nothingness, a singular event occurred that would change the course of existence forever—The Big Bang.\n\nAround 13.8 billion years ago, an infinitely hot and dense point, no larger than a single atom, began to expand at an inconceivable speed. This was the birth of our universe, a moment where time and space came into being. As this primordial fireball grew, it cooled, and the fundamental forces that govern the cosmos—gravity, electromagnetism, and the strong and weak nuclear forces—began to take shape.\n\nMatter coalesced into the simplest elements, hydrogen and helium, which later formed vast clouds in the expanding universe. These clouds, driven by the force of gravity, began to collapse in on themselves, creating the first stars. The stars were crucibles of nuclear fusion, forging heavier elements like carbon, nitrogen, and oxygen",
        "role": "assistant",
        "function_call": null,
        "tool_calls": null
      },
      "content_filter_results": {
        "hate": {
          "filtered": false,
          "severity": "safe"
        },
        "self_harm": {
          "filtered": false,
          "severity": "safe"
        },
        "sexual": {
          "filtered": false,
          "severity": "safe"
        },
        "violence": {
          "filtered": false,
          "severity": "safe"
        }
      }
    }
  ],
  "created": 1700201417,
  "model": "gpt-4",
  "object": "chat.completion",
  "system_fingerprint": "fp_50a4261de5",
  "usage": {
    "completion_tokens": 200,
    "prompt_tokens": 27,
    "total_tokens": 227
  },
  "prompt_filter_results": [
    {
      "prompt_index": 0,
      "content_filter_results": {
        "hate": {
          "filtered": false,
          "severity": "safe"
        },
        "self_harm": {
          "filtered": false,
          "severity": "safe"
        },
        "sexual": {
          "filtered": false,
          "severity": "safe"
        },
        "violence": {
          "filtered": false,
          "severity": "safe"
        }
      }
    }
  ]
}

Aanvullende overwegingen

Wanneer u reproduceerbare uitvoer wilt gebruiken, moet u hetzelfde seed gehele getal instellen voor het voltooien van chatgesprekken. U moet ook overeenkomen met andere parameters, zoals temperature, max_tokensenzovoort.