Naučte se používat reprodukovatelný výstup (Preview)
Pokud ve výchozím nastavení položíte model dokončování chatu Azure OpenAI několikrát stejnou otázku, pravděpodobně dostanete jinou odpověď. Odpovědi jsou proto považovány za nedeterministické. Reprodukovatelný výstup je nová funkce ve verzi Preview, která umožňuje selektivně změnit výchozí chování, které produktu pomůže determinističtějším výstupům.
Podpora reprodukovatelného výstupu
Reprodukovatelný výstup se v současné době podporuje pouze s následujícími funkcemi:
Podporované modely
gpt-35-turbo
(1106)gpt-35-turbo
(0125)gpt-4
(1106-Preview)gpt-4
(0125-Preview)gpt-4
(turbo-2024-04-09)gpt-4o-mini
(2024-07-18)gpt-4o
(2024-05-13)
Nejnovější informace o dostupnosti modelu v jednotlivých oblastech najdete na stránce modelů.
Verze rozhraní API
Podpora reprodukovatelného výstupu byla poprvé přidána ve verzi rozhraní API. 2023-12-01-preview
Příklad
Nejprve vygenerujeme tři odpovědi na stejnou otázku, abychom ukázali variabilitu, která je společná pro odpovědi na dokončení chatu, i když jsou ostatní parametry stejné:
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
Výstup
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
Všimnětesich prvkům, že zatímco každý příběh může mít podobné prvky a opakování, tím déle se odezva rozbíhají.
Teď spustíme stejný kód jako předtím, ale tentokrát odkomentujeme řádek parametru, který říká. 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
Výstup
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.
---
Použitím stejného seed
parametru 42 pro každý ze tří požadavků a zachováním všech ostatních parametrů můžeme dosáhnout mnohem konzistentnějších výsledků.
Důležité
Determinismus není zaručen s reprodukovatelným výstupem. I v případech, kdy se počáteční parametr a system_fingerprint
jsou stejné napříč voláními rozhraní API, v současné době není neobvyklé sledovat stupeň variability odpovědí. Identická volání rozhraní API s většími max_tokens
hodnotami obvykle způsobí méně deterministické odpovědi i v případě, že je nastaven parametr počáteční hodnoty.
Podrobnosti o parametrech
seed
je volitelný parametr, který lze nastavit na celé číslo nebo hodnotu null.
Tato funkce je ve verzi Preview. Pokud je zadáno, náš systém se bude snažit vzorkovat deterministicky, takže opakované požadavky se stejnými počátečními a parametry by měly vrátit stejný výsledek. Determinismus není zaručený a měli byste odkazovat na system_fingerprint
parametr odpovědi pro monitorování změn v back-endu.
system_fingerprint
je řetězec a je součástí objektu dokončení chatu.
Tento otisk prstu představuje konfiguraci back-endu, se kterou model běží.
Dá se použít s parametrem počátečního požadavku, abyste pochopili, kdy byly provedeny změny back-endu, které by mohly ovlivnit determinismus.
Pokud chcete zobrazit úplný objekt system_fingerprint
dokončení chatu , můžete přidat print(response.model_dump_json(indent=2))
do předchozího kódu Pythonu vedle existujícího příkazu tisku nebo $response | convertto-json -depth 5
na konci příkladu PowerShellu. Výsledkem této změny jsou následující další informace, které jsou součástí výstupu:
Výstup
{
"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"
}
}
}
]
}
Další důležité informace
Pokud chcete použít reprodukovatelné výstupy, musíte nastavit seed
stejné celé číslo napříč voláními dokončení chatu. Měli byste také shodovat s jinými parametry, jako temperature
je , max_tokens
atd.