Sdílet prostřednictvím


Modely zdůvodňování Azure OpenAI

Azure OpenAI o1 a o1-mini modely jsou navržené tak, aby řešily důvody a úlohy řešení problémů se zvýšeným zaměřením a schopností. Tyto modely tráví více času zpracováním a porozuměním požadavku uživatele, což je mimořádně silné v oblastech, jako jsou věda, kódování a matematika v porovnání s předchozími iteracemi.

Klíčové funkce řady o1:

  • Komplexní generování kódu: Umožňuje generovat algoritmy a zpracovávat pokročilé úlohy kódování pro podporu vývojářů.
  • Pokročilé řešení problémů: Ideální pro komplexní debaty a řešení vícestranných problémů.
  • Komplexní porovnání dokumentů: Ideální pro analýzu kontraktů, souborů případů nebo právních dokumentů k identifikaci drobných rozdílů.
  • Instrukce Sledování a správa pracovních postupů: Zvláště efektivní pro správu pracovních postupů vyžadujících kratší kontexty.

Dostupnost

Modely řady o1 jsou nyní k dispozici pro přístup k rozhraní API a nasazení modelu. Registrace je povinná a přístup se udělí na základě kritérií způsobilosti microsoftu. Zákazníci, kteří dříve použili a obdrželi přístup , o1-previewnemusí znovu použít, protože jsou automaticky na seznamu čekání pro nejnovější model.

Vyžádání přístupu: aplikace modelu omezeného přístupu

Po udělení přístupu budete muset pro každý model vytvořit nasazení. Pokud máte existující o1-preview nasazení, místní upgrade se v současné době nepodporuje, budete muset vytvořit nové nasazení.

Regionální dostupnost

Model Oblast
o1 USA – východ 2 (globální standard)
Švédsko – střed (Global Standard)
o1-preview Podívejte se na stránku modelů.
o1-mini Podívejte se na stránku modelů.

Podpora rozhraní API

Počáteční podpora modelů o1-preview a o1-mini preview byla přidána ve verzi 2024-09-01-previewAPI .

V rámci této verze max_tokens byl parametr zastaralý a nahrazen novým max_completion_tokens parametrem. Modely řad o1 budou fungovat pouze s parametrem max_completion_tokens .

Nejnovější nejschopnější model řady o1 je o1 verze: 2024-12-17. Tento obecný model dostupnosti (GA) by se měl používat s verzí 2024-12-01-previewrozhraní API.

2024-12-01-preview

2024-12-01-preview přidává podporu pro nový reasoning_effort parametr, strukturované výstupy a zprávy vývojářů. Starší modely preview tyto funkce v současné době nepodporují. Z důvodu modelů jsou tyto funkce v současné době k dispozici pouze ve o1 verzi: 2024-12-17.

Využití

Tyto modely v současné době nepodporují stejnou sadu parametrů jako jiné modely, které používají rozhraní API pro dokončování chatu. V současné době se podporuje pouze omezená podmnožina. Použití standardních parametrů, jako je a temperature top_p bude mít za následek chyby.

Abyste měli přístup k nejnovějším parametrům, budete muset upgradovat klientskou knihovnu OpenAI.

pip install openai --upgrade

Pokud s ověřováním začínáte používat Microsoft Entra ID, přečtěte si téma Konfigurace služby Azure OpenAI s ověřováním 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 = os.getenv("AZURE_OPENAI_ENDPOINT"), 
  azure_ad_token_provider=token_provider,
  api_version="2024-12-01-preview"
)

response = client.chat.completions.create(
    model="o1-new", # replace with the model deployment name of your o1-preview, or o1-mini model
    messages=[
        {"role": "user", "content": "What steps should I think about when writing my first Python API?"},
    ],
    max_completion_tokens = 5000

)

print(response.model_dump_json(indent=2))

Výstup:

{
  "id": "chatcmpl-AEj7pKFoiTqDPHuxOcirA9KIvf3yz",
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "logprobs": null,
      "message": {
        "content": "Writing your first Python API is an exciting step in developing software that can communicate with other applications. An API (Application Programming Interface) allows different software systems to interact with each other, enabling data exchange and functionality sharing. Here are the steps you should consider when creating your first Python API...truncated for brevity.",
        "refusal": null,
        "role": "assistant",
        "function_call": null,
        "tool_calls": null
      },
      "content_filter_results": {
        "hate": {
          "filtered": false,
          "severity": "safe"
        },
        "protected_material_code": {
          "filtered": false,
          "detected": false
        },
        "protected_material_text": {
          "filtered": false,
          "detected": false
        },
        "self_harm": {
          "filtered": false,
          "severity": "safe"
        },
        "sexual": {
          "filtered": false,
          "severity": "safe"
        },
        "violence": {
          "filtered": false,
          "severity": "safe"
        }
      }
    }
  ],
  "created": 1728073417,
  "model": "o1-2024-12-17",
  "object": "chat.completion",
  "service_tier": null,
  "system_fingerprint": "fp_503a95a7d8",
  "usage": {
    "completion_tokens": 1843,
    "prompt_tokens": 20,
    "total_tokens": 1863,
    "completion_tokens_details": {
      "audio_tokens": null,
      "reasoning_tokens": 448
    },
    "prompt_tokens_details": {
      "audio_tokens": null,
      "cached_tokens": 0
    }
  },
  "prompt_filter_results": [
    {
      "prompt_index": 0,
      "content_filter_results": {
        "custom_blocklists": {
          "filtered": false
        },
        "hate": {
          "filtered": false,
          "severity": "safe"
        },
        "jailbreak": {
          "filtered": false,
          "detected": false
        },
        "self_harm": {
          "filtered": false,
          "severity": "safe"
        },
        "sexual": {
          "filtered": false,
          "severity": "safe"
        },
        "violence": {
          "filtered": false,
          "severity": "safe"
        }
      }
    }
  ]
}

Poznámka:

Modely odůvodnění jsou reasoning_tokens součástí completion_tokens_details odpovědi modelu. Jedná se o skryté tokeny, které se nevrací jako součást obsahu odpovědi na zprávu, ale model je používá k vygenerování konečné odpovědi na vaši žádost. 2024-12-01-preview přidá další nový parametr reasoning_effort , který lze nastavit na low, mediumnebo high s nejnovějším o1 modelem. Čím vyšší je nastavení úsilí, tím déle model stráví zpracováním požadavku, což obvykle vede k většímu reasoning_tokenspočtu .

Zprávy pro vývojáře

Funkčně vývojářské zprávy "role": "developer" jsou stejné jako systémové zprávy.

  • Systémové zprávy nejsou podporovány modely odůvodnění řady o1.
  • o1-2024-12-17 s verzí rozhraní API: 2024-12-01-preview a novější přidává podporu pro zprávy vývojářů.

Přidání zprávy vývojáře do předchozího příkladu kódu by vypadalo takto:

Abyste měli přístup k nejnovějším parametrům, budete muset upgradovat klientskou knihovnu OpenAI.

pip install openai --upgrade

Pokud s ověřováním začínáte používat ID Microsoft Entra, přečtěte si, jak nakonfigurovat službu Azure OpenAI s ověřováním 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 = os.getenv("AZURE_OPENAI_ENDPOINT"), 
  azure_ad_token_provider=token_provider,
  api_version="2024-12-01-preview"
)

response = client.chat.completions.create(
    model="o1-new", # replace with the model deployment name of your o1-preview, or o1-mini model
    messages=[
        {"role": "developer","content": "You are a helpful assistant."}, # optional equivalent to a system message for reasoning models 
        {"role": "user", "content": "What steps should I think about when writing my first Python API?"},
    ],
    max_completion_tokens = 5000

)

print(response.model_dump_json(indent=2))