다음을 통해 공유


Azure OpenAI 추론 모델

Azure OpenAI o1o1-mini 모델은 포커스 및 기능 향상을 통해 추론 및 문제 해결 작업을 처리하도록 설계되었습니다. 이러한 모델은 사용자의 요청을 처리하고 이해하는 데 더 많은 시간을 할애하여 이전 반복에 비해 과학, 코딩, 수학과 같은 영역에서 매우 강력한 성능을 보입니다.

o1 시리즈의 주요 기능:

  • 복잡한 코드 생성: 개발자를 지원하기 위해 알고리즘을 생성하고 고급 코딩 작업을 처리할 수 있습니다.
  • 고급 문제 해결: 포괄적인 브레인스토밍 세션 및 다각적인 문제 해결에 이상적입니다.
  • 복잡한 문서 비교: 계약, 사례 파일 또는 법적 문서를 분석하여 미묘한 차이를 식별하는 데 적합합니다.
  • 지침 따르기 및 워크플로 관리: 더 짧은 컨텍스트가 필요한 워크플로를 관리하는 데 특히 효과적입니다.

가용성

이제 o1 시리즈 모델을 API 액세스 및 모델 배포에 사용할 수 있습니다. 등록이 필요하며 Microsoft의 자격 기준에 따라 액세스 권한이 부여됩니다. 이전에 액세스 권한을 o1-preview적용하고 받은 고객은 최신 모델의 대기 목록에 자동으로 있으므로 다시 적용할 필요가 없습니다.

액세스 요청: 모델에 대한 제한된 액세스 신청서

액세스 권한이 부여되면 각 모델에 대한 배포를 만들어야 합니다. 기존 o1-preview 배포가 있는 경우 현재 현재 업그레이드가 지원되지 않는 경우 새 배포를 만들어야 합니다.

사용 가능 지역

모델 지역
o1 미국 동부 2(글로벌 표준)
스웨덴 중부(글로벌 표준)
o1-preview 모델 페이지를 참조하세요.
o1-mini 모델 페이지를 참조하세요.

API 지원

o1-preview 및 o1-mini 미리 보기 모델에 대한 초기 지원이 API 버전2024-09-01-preview에 추가되었습니다.

이 릴리스 max_tokens 의 일부로 매개 변수는 더 이상 사용되지 않으며 새 max_completion_tokens 매개 변수로 대체되었습니다. o1 시리즈 모델은 매개 변수에서 max_completion_tokens 만 작동합니다.

최신 o1 시리즈 모델은 버전: 2024-12-17입니다 o1 . 이 GA(일반 공급) 모델은 API 버전 2024-12-01-preview과 함께 사용해야 합니다.

2024-12-01-preview

2024-12-01-preview 는 새 reasoning_effort 매개 변수, 구조화된 출력 및 개발자 메시지에 대한 지원을 추가합니다. 이전 미리 보기 추론 모델은 현재 이러한 기능을 지원하지 않습니다. 추론 모델의 경우 이러한 기능은 현재 버전: 2024-12-17에서만 사용할 수 있습니다.o1

사용

이러한 모델은 현재 채팅 완료 API를 사용하는 다른 모델과 동일한 매개 변수 집합을 지원하지 않습니다. 현재는 제한된 하위 집합만 지원됩니다. 같은 temperature top_p 표준 매개 변수를 사용하면 오류가 발생합니다.

최신 매개 변수에 액세스하려면 OpenAI 클라이언트 라이브러리를 업그레이드해야 합니다.

pip install openai --upgrade

인증에 Microsoft Entra ID를 사용하는 경우 Microsoft Entra ID 인증을 사용하여 Azure OpenAI 서비스를 구성하는 방법을 참조하세요.

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

출력:

{
  "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"
        }
      }
    }
  ]
}

참고 항목

추론 모델은 모델 reasoning_tokens 응답의 completion_tokens_details 일부로 사용됩니다. 이러한 토큰은 메시지 응답 콘텐츠의 일부로 반환되지 않지만 모델에 의해 요청에 대한 최종 답변을 생성하는 데 사용되는 숨겨진 토큰입니다. 2024-12-01-preview는 또는 최신 o1 모델로 설정할 mediumhigh low수 있는 추가 새 매개 변수 reasoning_effort 를 추가합니다. 작업 설정이 높을수록 모델이 요청을 처리하는 데 더 오래 소비하게 되므로 일반적으로 더 많은 수의 reasoning_tokens작업이 발생합니다.

개발자 메시지

기능적으로 개발자 메시지는 "role": "developer" 시스템 메시지와 동일합니다.

  • 시스템 메시지는 o1 시리즈 추론 모델에서 지원되지 않습니다.
  • o1-2024-12-17 API 버전: 2024-12-01-preview 나중에 개발자 메시지에 대한 지원을 추가합니다.

이전 코드 예제에 개발자 메시지를 추가하면 다음과 같이 표시됩니다.

최신 매개 변수에 액세스하려면 OpenAI 클라이언트 라이브러리를 업그레이드해야 합니다.

pip install openai --upgrade

인증에 Microsoft Entra ID를 사용하는 경우 Microsoft Entra ID 인증을 사용하여 Azure OpenAI 서비스를 구성하는 방법을 참조하세요.

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